From bdd3b38cee07b74963aa997915e19fab1c76f17b Mon Sep 17 00:00:00 2001 From: Armin Date: Sun, 13 Sep 2026 22:04:43 +0200 Subject: [PATCH] Persist engine state in DAW projects, black monochrome panel, expand preset bank - Save/load the engine's full parameter set alongside the preset index so knob and menu tweaks survive relaunching a song project - Make the plugin panel black: top/surround laser border and bottom deck (rotary + nav keys) are now #000000 - Extend factory bank to 320 categorized presets and add LCD click-to-open preset category browser --- README.md | 12 +- Source/LcdDisplay.cpp | 10 +- Source/LcdDisplay.h | 3 + Source/PluginEditor.cpp | 115 ++++-- Source/PluginEditor.h | 1 + Source/PluginProcessor.cpp | 47 ++- Source/Presets.cpp | 811 ++++++++++++++++++++++++++++++++++++- 7 files changed, 943 insertions(+), 56 deletions(-) diff --git a/README.md b/README.md index ea2c2b0..5738f13 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A self-contained **subtractive synthesizer** written in modern C++ on top of [JUCE](https://juce.com). It ships as a **VST3** on macOS and Linux plus a -macOS **Audio Unit**, with a hand-rolled DSP core, 52 factory presets and an +macOS **Audio Unit**, with a hand-rolled DSP core, 320 factory presets and an embedded 4x80 HD44780-style LCD driven by a cascaded on-screen menu. ## Why this is pretty good @@ -29,7 +29,10 @@ embedded 4x80 HD44780-style LCD driven by a cascaded on-screen menu. ## Features * 12-voice polyphonic engine with voice stealing and glide -* 52 factory presets across Bass / Lead / Pad / Keys / Pluck / FX / Stab / Arp +* 320 factory presets across Bass / Lead / Pad / Keys / Pluck / String / Organ / + Bell / Stab / Arp / FX / Wind / Brass / Voice / Perc / SFX / Grit / Retro / + Ambient +* Click the patch line on the LCD to open a categorized preset browser * Dual-waveform oscillator section (sine / tri / saw / square / noise …) * SVF low-pass filter with resonance **and** drive * ADSR with a per-voice envelope and cutoff modulation @@ -79,6 +82,9 @@ sudo killall -HUP coreaudiod * The LCD shows the active preset, knob mappings with live values, host BPM and voice count. The delay's SYNC mode locks to the host tempo and lets you pick rhythmic subdivisions. +* **Click the patch line** on the LCD to browse presets by category: a + "SELECT PATCH CATEGORY" menu opens, ENTER drills into a category, and + confirming a patch loads it and returns you home. ## Layout @@ -87,7 +93,7 @@ Build: Makefile -> CMake -> JUCE (fetched into build/juce, never committed) Source/ PluginProcessor.* audio processor + DSP shell SynthEngine.* osc/filter/ADSR/delay voice engine (12 voices) - Presets.* 52 preset definitions + per-preset knob routings + Presets.* 320 preset definitions + per-preset knob routings SynthParams.* parameter model + formatting PluginEditor.* panel, knobs, nav diamond, status footer LcdDisplay.* 4x80 HD44780-style display renderer diff --git a/Source/LcdDisplay.cpp b/Source/LcdDisplay.cpp index 4fc2f0e..3800929 100644 --- a/Source/LcdDisplay.cpp +++ b/Source/LcdDisplay.cpp @@ -236,4 +236,12 @@ void LcdDisplay::paint (juce::Graphics& g) } } -void LcdDisplay::timerCallback() { repaint(); } \ No newline at end of file +void LcdDisplay::timerCallback() { repaint(); } + +void LcdDisplay::mouseDown (const juce::MouseEvent& e) +{ + const int row = juce::jlimit (0, kRows - 1, + (int) (e.position.y / (float) (getHeight() / kRows))); + if (onPressed) + onPressed (row); +} \ No newline at end of file diff --git a/Source/LcdDisplay.h b/Source/LcdDisplay.h index 94a0a6d..7ecfc99 100644 --- a/Source/LcdDisplay.h +++ b/Source/LcdDisplay.h @@ -16,6 +16,9 @@ public: void showCursor (bool show); void clear(); void paint (juce::Graphics&) override; + void mouseDown (const juce::MouseEvent&) override; + + std::function onPressed; private: void timerCallback() override; diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index e2b07cf..c9d2cf0 100644 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -15,6 +15,7 @@ SM26AudioProcessorEditor::SM26AudioProcessorEditor (SM26AudioProcessor& p) setResizeLimits (760, 620, 1500, 1300); addAndMakeVisible (lcd); + lcd.onPressed = [this](int) { if (! menu.isOpen()) openPresetMenu(); }; setupKnobs(); setupNavButtons(); @@ -85,12 +86,12 @@ void SM26AudioProcessorEditor::setupNavButtons() addAndMakeVisible (btn); }; - setup (navUp, juce::Colour (0xFF2A2A2A)); - setup (navDown, juce::Colour (0xFF2A2A2A)); - setup (navLeft, juce::Colour (0xFF2A2A2A)); - setup (navRight, juce::Colour (0xFF2A2A2A)); - setup (navEnter, juce::Colour (0xFF3F3F3F)); - setup (navEsc, juce::Colour (0xFF333333)); + setup (navUp, juce::Colour (0xFF000000)); + setup (navDown, juce::Colour (0xFF000000)); + setup (navLeft, juce::Colour (0xFF000000)); + setup (navRight, juce::Colour (0xFF000000)); + setup (navEnter, juce::Colour (0xFF000000)); + setup (navEsc, juce::Colour (0xFF000000)); navUp.setTriggeredOnMouseDown (true); navUp.setRepeatSpeed (250, 50); @@ -120,17 +121,6 @@ void SM26AudioProcessorEditor::buildRootMenu() s.title = "SM-26 MAIN MENU"; s.selected = 0; - auto addPreset = [&](const char* name, int idx) -> MenuItem - { - MenuItem item; - item.label = name; - item.kind = MenuItem::Action; - item.onEnter = [this, idx]() { - proc.setPresetByIndex (idx); - }; - return item; - }; - auto addValue = [&](const char* n, int pid) -> MenuItem { MenuItem mi; @@ -167,27 +157,7 @@ void SM26AudioProcessorEditor::buildRootMenu() MenuItem m; m.label = "PRESETS (" + juce::String (sm26::PresetStore::count()) + ")"; m.kind = MenuItem::Submenu; - m.onEnter = [this, addPreset]() { - MenuScreen ps; - ps.title = "SELECT PRESET"; - ps.selected = proc.engine.presetIndex(); - juce::String lastCat; - const int count = sm26::PresetStore::count(); - for (int i = 0; i < count; ++i) - { - const auto* p = sm26::PresetStore::get (i); - if (lastCat != p->category) - { - MenuItem h; - h.label = "---- " + juce::String (p->category) + " ----"; - h.kind = MenuItem::Separator; - ps.items.push_back (h); - lastCat = p->category; - } - ps.items.push_back (addPreset (p->name, i)); - } - menu.pushScreen (ps); - }; + m.onEnter = [this]() { openPresetMenu(); }; s.items.push_back (m); } @@ -277,6 +247,64 @@ void SM26AudioProcessorEditor::buildRootMenu() menu.setRootScreenBuilder (builder); } +void SM26AudioProcessorEditor::openPresetMenu() +{ + struct Cat { juce::String name; int first; int count; }; + std::vector cats; + const int total = sm26::PresetStore::count(); + for (int i = 0; i < total; ++i) + { + const auto* p = sm26::PresetStore::get (i); + if (cats.empty() || cats.back().name != p->category) + cats.push_back ({ juce::String (p->category), i, 0 }); + cats.back().count++; + } + + MenuScreen s; + s.title = "SELECT PATCH CATEGORY"; + s.selected = 0; + + const juce::String curCat = sm26::PresetStore::findByIndex (proc.engine.presetIndex())->category; + for (int c = 0; c < (int) cats.size(); ++c) + { + if (cats[(size_t) c].name == curCat) + s.selected = c; + + MenuItem mi; + mi.label = cats[(size_t) c].name + " (" + juce::String (cats[(size_t) c].count) + ")"; + mi.kind = MenuItem::Submenu; + mi.onEnter = [this, cats, c]() { + const Cat& cat = cats[(size_t) c]; + MenuScreen catScreen; + catScreen.title = "PATCHES: " + cat.name; + catScreen.selected = 0; + + const juce::String curName = sm26::PresetStore::findByIndex (proc.engine.presetIndex())->name; + for (int i = cat.first; i < cat.first + cat.count; ++i) + { + const auto* p = sm26::PresetStore::get (i); + if (juce::String (p->name) == curName) + catScreen.selected = i - cat.first; + + MenuItem pi; + pi.label = p->name; + pi.kind = MenuItem::Action; + pi.onEnter = [this, i]() { + proc.setPresetByIndex (i); + menu.close(); + }; + catScreen.items.push_back (pi); + } + menu.pushScreen (catScreen); + }; + s.items.push_back (mi); + } + + if (! menu.isOpen()) + menu.open(); + menu.pushScreen (s); +} + void SM26AudioProcessorEditor::paint (juce::Graphics& g) { g.fillAll (juce::Colour (0xFF000000)); @@ -284,12 +312,17 @@ void SM26AudioProcessorEditor::paint (juce::Graphics& g) const float totalW = (float) getWidth(); const float totalH = (float) getHeight(); - g.setColour (juce::Colour (0xFF1A1A1A)); + g.setColour (juce::Colour (0xFF000000)); g.fillRoundedRectangle (8.0f, 8.0f, totalW - 16.0f, totalH - 16.0f, 6.0f); - g.setColour (juce::Colour (0xFF333333)); + g.setColour (juce::Colour (0xFF000000)); g.drawRoundedRectangle (8.0f, 8.0f, totalW - 16.0f, totalH - 16.0f, 6.0f, 1.5f); + const float lcdBottom = 16.0f + 302.0f; + g.setColour (juce::Colour (0xFF000000)); + g.fillRoundedRectangle (8.0f, lcdBottom, totalW - 16.0f, + juce::jmax (0.0f, totalH - 16.0f - lcdBottom), 6.0f); + g.setColour (juce::Colour (0xFFC8C8C8)); g.setFont (juce::Font (juce::FontOptions { juce::Font::getDefaultMonospacedFontName(), 14.0f, juce::Font::bold })); g.drawText ("SM-26", 20.0f, 16.0f, 100.0f, 22.0f, juce::Justification::centredLeft); @@ -417,7 +450,7 @@ void SM26AudioProcessorEditor::updateLCD() juce::String notesStr = notes > 0 ? "NOTES:" + juce::String (notes) : ""; lcd.setLine (6, bpmStr + (notesStr.isNotEmpty() ? " " + notesStr : "")); - lcd.setLine (7, juce::String ("SM-26") + " UP/DN=PATCH OK=MENU"); + lcd.setLine (7, juce::String ("SM-26") + " UP/DN=PATCH CLICK=BROWSE OK=MENU"); for (int r = 0; r < LcdDisplay::kRows; ++r) lcd.setInverted (r, false); lcd.showCursor (false); diff --git a/Source/PluginEditor.h b/Source/PluginEditor.h index 0c910ab..190f608 100644 --- a/Source/PluginEditor.h +++ b/Source/PluginEditor.h @@ -29,6 +29,7 @@ private: void buildRootMenu(); void updateLCD(); void cyclePreset (int delta); + void openPresetMenu(); SM26AudioProcessor& proc; MenuSystem menu; diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index b0fc6ff..24b94a9 100644 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -71,26 +71,53 @@ juce::AudioProcessorEditor* SM26AudioProcessor::createEditor() void SM26AudioProcessor::getStateInformation (juce::MemoryBlock& destData) { - auto xmlStr = apvts.copyState().createXml()->toString(); + auto state = apvts.copyState(); + + if (state.getChildWithName ("engine").isValid()) + state.removeChild (state.getChildWithName ("engine"), nullptr); + + juce::ValueTree engineState ("engine"); + for (int i = 0; i < sm26::kNumParams; ++i) + engineState.setProperty (juce::Identifier (juce::String ("p") + juce::String (i)), + (double) engine.getParam (i), nullptr); + state.appendChild (engineState, nullptr); + + auto xmlStr = state.createXml()->toString(); destData.replaceAll (xmlStr.toRawUTF8(), (size_t) xmlStr.length()); } void SM26AudioProcessor::setStateInformation (const void* data, int sizeInBytes) { auto xml = juce::XmlDocument::parse (juce::String::fromUTF8 ((const char*) data, sizeInBytes)); - if (xml != nullptr) + if (xml == nullptr) + return; + + auto tree = juce::ValueTree::fromXml (*xml); + if (! tree.isValid()) + return; + + auto engineState = tree.getChildWithName ("engine"); + + paramsReady.store (false); + apvts.replaceState (tree); + paramsReady.store (true); + + int idx = (int) *apvts.getRawParameterValue ("preset"); + idx = juce::jlimit (0, sm26::PresetStore::count() - 1, idx); + engine.setPresetIndex (idx); + + if (engineState.isValid()) { - auto tree = juce::ValueTree::fromXml (*xml); - if (tree.isValid()) + for (int i = 0; i < sm26::kNumParams; ++i) { - paramsReady.store (false); - apvts.replaceState (tree); - paramsReady.store (true); - int idx = (int) *apvts.getRawParameterValue ("preset"); - engine.setPresetIndex (idx); - applyPresetKnobs(); + auto prop = engineState.getProperty (juce::Identifier (juce::String ("p") + juce::String (i))); + if (prop.isVoid()) + continue; + engine.setParam (i, (float) (double) prop); } } + + applyPresetKnobs(); } void SM26AudioProcessor::setKnob (int knob, float value01) diff --git a/Source/Presets.cpp b/Source/Presets.cpp index 3c3c2d9..cd5005b 100644 --- a/Source/Presets.cpp +++ b/Source/Presets.cpp @@ -5,7 +5,7 @@ namespace sm26 { namespace { struct Catalog { - Preset data[256]; + Preset data[512]; int n = 0; }; @@ -50,6 +50,13 @@ Catalog& catalog() const C cOrgan[4] = { K("CUTOFF",PCUTOFF,0.05f,1.0f),K("DRIVE",PDRIVE,0.0f,1.0f),K("DECAY",PDEC,0.1f,0.9f), K("D-MIX",PDMIX,0.0f,0.6f) }; const C cStr[4] = { K("CUTOFF",PCUTOFF,0.05f,0.95f),K("F-ENV",PFENV,0.0f,1.0f), K("DECAY",PDEC,0.2f,0.95f), K("D-MIX",PDMIX,0.0f,1.0f) }; const C cTone[4] = { K("CUTOFF",PCUTOFF,0.05f,1.0f),K("DRIVE",PDRIVE,0.0f,1.0f),K("DECAY",PDEC,0.1f,0.9f), K("DELAY",PDMIX,0.0f,1.0f) }; + const C cWind[4] = { K("CUTOFF",PCUTOFF,0.05f,1.0f),K("F-ENV",PFENV,0.0f,1.0f),K("DECAY",PDEC,0.1f,0.98f),K("D-MIX",PDMIX,0.0f,1.0f) }; + const C cBrass[4] = { K("CUTOFF",PCUTOFF,0.05f,1.0f),K("F-ENV",PFENV,0.0f,1.0f),K("DRIVE",PDRIVE,0.0f,1.0f),K("D-MIX",PDMIX,0.0f,1.0f) }; + const C cVoice[4] = { K("CUTOFF",PCUTOFF,0.05f,1.0f),K("ATK",PATK,0.0f,1.0f),K("DECAY",PDEC,0.1f,0.98f),K("D-MIX",PDMIX,0.0f,1.0f) }; + const C cPerc[4] = { K("DECAY",PDEC,0.05f,0.9f),K("NOISE",PNOISE,0.0f,1.0f),K("CUTOFF",PCUTOFF,0.05f,1.0f),K("RES",PRES,0.0f,1.0f) }; + const C cSeq[4] = { K("CUTOFF",PCUTOFF,0.05f,1.0f),K("RES",PRES,0.0f,1.0f),K("DECAY",PDEC,0.05f,0.9f),K("D-MIX",PDMIX,0.0f,1.0f) }; + const C cSfx[4] = { K("CUTOFF",PCUTOFF,0.05f,1.0f),K("RES",PRES,0.0f,1.0f),K("F-ENV",PFENV,0.0f,1.0f),K("D-MIX",PDMIX,0.0f,1.0f) }; + const C cRetro[4] = { K("CUTOFF",PCUTOFF,0.05f,1.0f),K("DECAY",PDEC,0.05f,0.8f),K("DRIVE",PDRIVE,0.0f,1.0f),K("D-MIX",PDMIX,0.0f,1.0f) }; // BASS ------------------------------------------------------------ add("Sub Square", "BASS", @@ -828,6 +835,808 @@ Catalog& catalog() {PCUTOFF,0.4f},{PRES,0.35f},{PFENV,0.5f},{PATK,0.001f},{PDEC,0.35f},{PSUS,0.0f},{PREL,0.3f}, {PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.3f},{PMASTER,0.75f} }, cBell); + + // WIND ------------------------------------------------------------- + add("Flute Air", "WIND", + { {PO1WAVE,0.0f},{PO2WAVE,0.25f},{PMIX,0.3f},{PNOISE,0.12f},{PCUTOFF,0.5f},{PRES,0.18f},{PFENV,0.25f}, + {PATK,0.18f},{PDEC,0.25f},{PSUS,0.8f},{PREL,0.12f},{PGLIDE,0.15f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cWind); + add("Alto Flute", "WIND", + { {PO1WAVE,0.0f},{PO2WAVE,0.25f},{PMIX,0.35f},{PNOISE,0.1f},{PCUTOFF,0.45f},{PRES,0.25f},{PFENV,0.3f}, + {PATK,0.3f},{PDEC,0.2f},{PSUS,0.85f},{PREL,0.15f},{PGLIDE,0.2f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cWind); + add("Pan Flute", "WIND", + { {PO1WAVE,0.25f},{PO2WAVE,0.0f},{PMIX,0.5f},{PCUTOFF,0.45f},{PRES,0.3f},{PFENV,0.3f}, + {PATK,0.01f},{PDEC,0.3f},{PSUS,0.75f},{PREL,0.15f},{PGLIDE,0.35f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cWind); + add("Ocarina", "WIND", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PMIX,0.9f},{PCUTOFF,0.4f},{PRES,0.4f},{PFENV,0.35f}, + {PATK,0.02f},{PDEC,0.2f},{PSUS,0.85f},{PREL,0.1f},{PGLIDE,0.15f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cWind); + add("Recorder", "WIND", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PMIX,0.6f},{PNOISE,0.08f},{PCUTOFF,0.55f},{PRES,0.2f},{PFENV,0.3f}, + {PATK,0.04f},{PDEC,0.2f},{PSUS,0.8f},{PREL,0.12f},{PGLIDE,0.12f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cWind); + add("Clarinet Room", "WIND", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PMIX,0.9f},{PNOISE,0.06f},{PCUTOFF,0.42f},{PRES,0.3f},{PFENV,0.4f}, + {PATK,0.05f},{PDEC,0.2f},{PSUS,0.85f},{PREL,0.12f},{PGLIDE,0.15f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cWind); + add("Bass Clarinet", "WIND", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PMIX,0.9f},{PNOISE,0.05f},{PCUTOFF,0.35f},{PRES,0.35f},{PFENV,0.35f}, + {PATK,0.04f},{PDEC,0.25f},{PSUS,0.9f},{PREL,0.15f},{PGLIDE,0.2f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cWind); + add("Oboe Reed", "WIND", + { {PO1WAVE,0.75f},{PO2WAVE,0.0f},{PMIX,0.4f},{PNOISE,0.1f},{PCUTOFF,0.38f},{PRES,0.5f},{PFENV,0.5f}, + {PATK,0.04f},{PDEC,0.2f},{PSUS,0.85f},{PREL,0.15f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cWind); + add("English Horn", "WIND", + { {PO1WAVE,0.25f},{PO2WAVE,0.5f},{PMIX,0.5f},{PNOISE,0.08f},{PCUTOFF,0.36f},{PRES,0.45f},{PFENV,0.45f}, + {PATK,0.05f},{PDEC,0.25f},{PSUS,0.85f},{PREL,0.18f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cWind); + add("Bassoon", "WIND", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1OCT,0.25f},{PO1CT,0.5f},{PO2CT,0.52f},{PMIX,0.5f},{PNOISE,0.06f}, + {PCUTOFF,0.33f},{PRES,0.4f},{PFENV,0.4f},{PATK,0.06f},{PDEC,0.3f},{PSUS,0.82f},{PREL,0.2f},{PGLIDE,0.2f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cWind); + add("Harmonica", "WIND", + { {PO1WAVE,0.0f},{PO2WAVE,0.75f},{PMIX,0.4f},{PNOISE,0.2f},{PCUTOFF,0.4f},{PRES,0.4f},{PFENV,0.45f}, + {PATK,0.008f},{PDEC,0.3f},{PSUS,0.7f},{PREL,0.15f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cWind); + add("Accordion Vox", "WIND", + { {PO1WAVE,0.75f},{PO2WAVE,0.25f},{PMIX,0.5f},{PNOISE,0.2f},{PCUTOFF,0.42f},{PRES,0.3f},{PFENV,0.4f}, + {PATK,0.01f},{PDEC,0.3f},{PSUS,0.75f},{PREL,0.15f},{PDRIVE,0.3f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cWind); + add("Breath Wash", "WIND", + { {PO1WAVE,0.25f},{PO2WAVE,0.0f},{PMIX,0.4f},{PNOISE,0.45f},{PCUTOFF,0.6f},{PRES,0.15f},{PFENV,0.3f}, + {PATK,0.5f},{PDEC,0.3f},{PSUS,0.7f},{PREL,0.4f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.5f},{PMASTER,0.68f} }, + cVoice); + add("Shakuhachi", "WIND", + { {PO1WAVE,0.0f},{PO2WAVE,0.5f},{PMIX,0.5f},{PNOISE,0.15f},{PCUTOFF,0.4f},{PRES,0.6f},{PFENV,0.5f}, + {PATK,0.04f},{PDEC,0.2f},{PSUS,0.8f},{PREL,0.25f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cWind); + add("Tin Whistle", "WIND", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PMIX,0.95f},{PNOISE,0.05f},{PCUTOFF,0.6f},{PRES,0.2f},{PFENV,0.3f}, + {PATK,0.012f},{PDEC,0.25f},{PSUS,0.75f},{PREL,0.1f},{PGLIDE,0.25f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cWind); + add("Piccolo", "WIND", + { {PO1WAVE,0.0f},{PO2WAVE,0.75f},{PO1OCT,0.62f},{PMIX,0.4f},{PNOISE,0.1f},{PCUTOFF,0.65f},{PRES,0.25f},{PFENV,0.3f}, + {PATK,0.012f},{PDEC,0.2f},{PSUS,0.8f},{PREL,0.1f},{PGLIDE,0.2f},{PDSYNC,0.0f},{PMASTER,0.7f} }, + cWind); + add("Zampona", "WIND", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.52f},{PMIX,0.5f},{PCUTOFF,0.5f},{PRES,0.3f},{PFENV,0.4f}, + {PATK,0.012f},{PDEC,0.3f},{PSUS,0.78f},{PREL,0.18f},{PGLIDE,0.3f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cWind); + add("Echo Flute", "WIND", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PMIX,1.0f},{PNOISE,0.1f},{PCUTOFF,0.55f},{PRES,0.25f},{PFENV,0.3f}, + {PATK,0.02f},{PDEC,0.25f},{PSUS,0.78f},{PREL,0.15f},{PGLIDE,0.2f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.55f},{PDMIX,0.4f},{PMASTER,0.75f} }, + cWind); + add("Glass Flute", "WIND", + { {PO1WAVE,0.25f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PMIX,0.5f},{PNOISE,0.2f},{PCUTOFF,0.7f},{PRES,0.2f},{PFENV,0.35f}, + {PATK,0.08f},{PDEC,0.25f},{PSUS,0.8f},{PREL,0.3f},{PGLIDE,0.15f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.45f},{PMASTER,0.7f} }, + cWind); + + // BRASS ----------------------------------------------------------- + add("Trumpet", "BRASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.0f},{PMIX,0.4f},{PNOISE,0.15f},{PCUTOFF,0.45f},{PRES,0.4f},{PFENV,0.55f}, + {PATK,0.02f},{PDEC,0.3f},{PSUS,0.8f},{PREL,0.12f},{PDRIVE,0.3f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cBrass); + add("Mellow Horn", "BRASS", + { {PO1WAVE,0.0f},{PO2WAVE,0.25f},{PMIX,0.5f},{PNOISE,0.1f},{PCUTOFF,0.4f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.04f},{PDEC,0.25f},{PSUS,0.85f},{PREL,0.15f},{PGLIDE,0.1f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cBrass); + add("French Horn", "BRASS", + { {PO1WAVE,0.25f},{PO2WAVE,0.5f},{PMIX,0.5f},{PNOISE,0.08f},{PCUTOFF,0.38f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.06f},{PDEC,0.3f},{PSUS,0.85f},{PREL,0.2f},{PGLIDE,0.15f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cBrass); + add("Trombone", "BRASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.0f},{PMIX,0.6f},{PNOISE,0.12f},{PCUTOFF,0.4f},{PRES,0.35f},{PFENV,0.5f}, + {PATK,0.02f},{PDEC,0.25f},{PSUS,0.82f},{PREL,0.12f},{PDRIVE,0.25f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cBrass); + add("Bass Trombone", "BRASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PMIX,0.6f},{PNOISE,0.12f},{PCUTOFF,0.32f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.03f},{PDEC,0.3f},{PSUS,0.82f},{PREL,0.15f},{PDRIVE,0.3f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cBrass); + add("Tuba", "BRASS", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PO2OCT,0.25f},{PMIX,0.85f},{PNOISE,0.08f},{PCUTOFF,0.32f},{PRES,0.35f},{PFENV,0.4f}, + {PATK,0.03f},{PDEC,0.3f},{PSUS,0.85f},{PREL,0.15f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cBrass); + add("Muted Brass", "BRASS", + { {PO1WAVE,0.75f},{PO2WAVE,0.5f},{PMIX,0.5f},{PNOISE,0.2f},{PCUTOFF,0.55f},{PRES,0.6f},{PFENV,0.6f}, + {PATK,0.02f},{PDEC,0.25f},{PSUS,0.7f},{PREL,0.15f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cBrass); + add("Bugle", "BRASS", + { {PO1WAVE,0.75f},{PO2WAVE,0.5f},{PMIX,0.6f},{PCUTOFF,0.45f},{PRES,0.35f},{PFENV,0.5f}, + {PATK,0.03f},{PDEC,0.25f},{PSUS,0.8f},{PREL,0.15f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cBrass); + add("Sax Alto", "BRASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.0f},{PMIX,0.45f},{PNOISE,0.18f},{PCUTOFF,0.45f},{PRES,0.4f},{PFENV,0.55f}, + {PATK,0.03f},{PDEC,0.22f},{PSUS,0.85f},{PREL,0.15f},{PDRIVE,0.4f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cBrass); + add("Sax Tenor", "BRASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PMIX,0.45f},{PNOISE,0.15f},{PCUTOFF,0.42f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.03f},{PDEC,0.25f},{PSUS,0.85f},{PREL,0.18f},{PDRIVE,0.35f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cBrass); + add("Sax Baritone", "BRASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PMIX,0.5f},{PNOISE,0.15f},{PCUTOFF,0.36f},{PRES,0.45f},{PFENV,0.55f}, + {PATK,0.04f},{PDEC,0.3f},{PSUS,0.82f},{PREL,0.2f},{PDRIVE,0.4f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cBrass); + add("Brass Section", "BRASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.52f},{PMIX,0.5f},{PNOISE,0.1f},{PCUTOFF,0.42f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.03f},{PDEC,0.28f},{PSUS,0.85f},{PREL,0.2f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cBrass); + add("Synth Brass", "BRASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.5f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.01f},{PDEC,0.3f},{PSUS,0.8f},{PREL,0.12f},{PDRIVE,0.3f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cBrass); + add("Smooth Brass Pad", "BRASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.25f},{PMIX,0.5f},{PCUTOFF,0.4f},{PRES,0.35f},{PFENV,0.6f}, + {PATK,0.3f},{PDEC,0.35f},{PSUS,0.8f},{PREL,0.5f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.35f},{PMASTER,0.72f} }, + cBrass); + + // VOICE ----------------------------------------------------------- + add("Ooh Choir", "VOICE", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.34f},{PRES,0.25f},{PFENV,0.5f}, + {PATK,0.4f},{PDEC,0.4f},{PSUS,0.8f},{PREL,0.6f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.4f},{PMASTER,0.7f} }, + cVoice); + add("Ahh Choir", "VOICE", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.42f},{PRES,0.25f},{PFENV,0.5f}, + {PATK,0.35f},{PDEC,0.4f},{PSUS,0.78f},{PREL,0.6f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.4f},{PMASTER,0.7f} }, + cVoice); + add("Gregorian", "VOICE", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1OCT,0.25f},{PO2OCT,0.25f},{PO1CT,0.52f},{PO2CT,0.48f},{PMIX,0.5f},{PCUTOFF,0.3f},{PRES,0.3f},{PFENV,0.45f}, + {PATK,0.5f},{PDEC,0.4f},{PSUS,0.85f},{PREL,0.7f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cVoice); + add("Tenor Breath", "VOICE", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PMIX,0.6f},{PNOISE,0.3f},{PCUTOFF,0.5f},{PRES,0.2f},{PFENV,0.3f}, + {PATK,0.1f},{PDEC,0.3f},{PSUS,0.82f},{PREL,0.5f},{PDSYNC,0.0f},{PMASTER,0.7f} }, + cVoice); + add("Space Opera", "VOICE", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1OCT,0.55f},{PO2OCT,0.62f},{PO1CT,0.53f},{PO2CT,0.47f},{PMIX,0.5f},{PCUTOFF,0.5f},{PRES,0.3f},{PFENV,0.55f}, + {PATK,0.3f},{PDEC,0.4f},{PSUS,0.7f},{PREL,0.7f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.55f},{PMASTER,0.7f} }, + cVoice); + add("Vocoder Choir", "VOICE", + { {PO1WAVE,0.75f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.53f},{PMIX,0.5f},{PCUTOFF,0.3f},{PRES,0.65f},{PFTYPE,0.5f},{PFENV,0.6f}, + {PATK,0.02f},{PDEC,0.3f},{PSUS,0.7f},{PREL,0.25f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.5f},{PDMIX,0.5f},{PMASTER,0.78f} }, + cSeq); + add("Whisper", "VOICE", + { {PO1WAVE,0.25f},{PO2WAVE,0.0f},{PMIX,0.4f},{PNOISE,0.8f},{PCUTOFF,0.65f},{PRES,0.2f},{PFENV,0.25f}, + {PATK,0.02f},{PDEC,0.2f},{PSUS,0.6f},{PREL,0.15f},{PDSYNC,0.0f},{PMASTER,0.68f} }, + cVoice); + add("Hum Canon", "VOICE", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO2OCT,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.3f},{PRES,0.25f},{PFENV,0.3f}, + {PATK,0.25f},{PDEC,0.3f},{PSUS,0.85f},{PREL,0.5f},{PGLIDE,0.2f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cVoice); + add("Glass Voice", "VOICE", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.62f},{PO2OCT,0.5f},{PMIX,0.5f},{PCUTOFF,0.55f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.15f},{PDEC,0.35f},{PSUS,0.75f},{PREL,0.4f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.45f},{PMASTER,0.7f} }, + cVoice); + add("Voice Pad", "VOICE", + { {PO1WAVE,0.5f},{PO2WAVE,0.25f},{PO1CT,0.48f},{PO2CT,0.52f},{PMIX,0.5f},{PCUTOFF,0.38f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.55f},{PDEC,0.4f},{PSUS,0.8f},{PREL,0.75f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.5f},{PMASTER,0.7f} }, + cVoice); + add("Ethereal Ooh", "VOICE", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1OCT,0.5f},{PO2OCT,0.55f},{PO1CT,0.5f},{PO2CT,0.54f},{PMIX,0.5f},{PCUTOFF,0.4f},{PRES,0.35f},{PFENV,0.6f}, + {PATK,0.5f},{PDEC,0.4f},{PSUS,0.7f},{PREL,0.8f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.55f},{PMASTER,0.68f} }, + cVoice); + add("Night Choir", "VOICE", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1OCT,0.28f},{PO2OCT,0.3f},{PO1CT,0.5f},{PO2CT,0.55f},{PMIX,0.5f},{PCUTOFF,0.25f},{PRES,0.5f},{PFENV,0.5f}, + {PATK,0.5f},{PDEC,0.4f},{PSUS,0.8f},{PREL,0.8f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.55f},{PDMIX,0.5f},{PMASTER,0.7f} }, + cVoice); + + // PERC ------------------------------------------------------------ + add("Kick 26", "PERC", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PO2OCT,0.24f},{PMIX,0.95f},{PNOISE,0.04f},{PCUTOFF,0.25f},{PRES,0.4f},{PFENV,0.45f}, + {PATK,0.001f},{PDEC,0.5f},{PSUS,0.05f},{PREL,0.08f},{PDSYNC,0.0f},{PMASTER,0.88f} }, + cPerc); + add("Kick 808", "PERC", + { {PO1WAVE,0.0f},{PO2WAVE,0.25f},{PO1OCT,0.25f},{PO2OCT,0.24f},{PMIX,0.9f},{PCUTOFF,0.32f},{PRES,0.6f},{PFENV,0.5f}, + {PATK,0.002f},{PDEC,0.6f},{PSUS,0.1f},{PREL,0.12f},{PDSYNC,0.0f},{PMASTER,0.88f} }, + cPerc); + add("Snare Tight", "PERC", + { {PO1WAVE,0.25f},{PO2WAVE,0.8f},{PO1OCT,0.25f},{PO2OCT,0.5f},{PMIX,0.5f},{PNOISE,0.5f},{PCUTOFF,0.38f},{PRES,0.35f},{PFENV,0.5f}, + {PATK,0.001f},{PDEC,0.18f},{PSUS,0.0f},{PREL,0.1f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cPerc); + add("Rimshot", "PERC", + { {PO1WAVE,0.75f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PMIX,0.8f},{PNOISE,0.15f},{PCUTOFF,0.45f},{PRES,0.6f},{PFENV,0.6f}, + {PATK,0.001f},{PDEC,0.2f},{PSUS,0.0f},{PREL,0.08f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cPerc); + add("Clap Hands", "PERC", + { {PO1WAVE,0.8f},{PO2WAVE,0.8f},{PMIX,0.5f},{PNOISE,0.9f},{PCUTOFF,0.42f},{PRES,0.5f},{PFENV,0.6f}, + {PATK,0.001f},{PDEC,0.3f},{PSUS,0.0f},{PREL,0.12f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cPerc); + add("Hat Open", "PERC", + { {PO1WAVE,0.8f},{PO2WAVE,0.8f},{PMIX,0.4f},{PNOISE,0.95f},{PCUTOFF,0.78f},{PRES,0.15f},{PFTYPE,1.0f},{PFENV,0.2f}, + {PATK,0.001f},{PDEC,0.25f},{PSUS,0.0f},{PREL,0.2f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cPerc); + add("Hat Closed", "PERC", + { {PO1WAVE,0.8f},{PO2WAVE,0.8f},{PMIX,0.4f},{PNOISE,0.95f},{PCUTOFF,0.82f},{PRES,0.15f},{PFTYPE,1.0f},{PFENV,0.2f}, + {PATK,0.001f},{PDEC,0.06f},{PSUS,0.0f},{PREL,0.05f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cPerc); + add("Tom Low", "PERC", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PO2OCT,0.25f},{PMIX,0.9f},{PCUTOFF,0.3f},{PRES,0.5f},{PFENV,0.3f}, + {PATK,0.001f},{PDEC,0.5f},{PSUS,0.0f},{PREL,0.2f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cPerc); + add("Tom Mid", "PERC", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.4f},{PO2OCT,0.4f},{PMIX,0.9f},{PCUTOFF,0.35f},{PRES,0.5f},{PFENV,0.3f}, + {PATK,0.001f},{PDEC,0.45f},{PSUS,0.0f},{PREL,0.18f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cPerc); + add("Tom High", "PERC", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.55f},{PO2OCT,0.55f},{PMIX,0.9f},{PCUTOFF,0.4f},{PRES,0.6f},{PFENV,0.3f}, + {PATK,0.001f},{PDEC,0.4f},{PSUS,0.0f},{PREL,0.15f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cPerc); + add("Wood Block", "PERC", + { {PO1WAVE,0.75f},{PO2WAVE,0.75f},{PO1OCT,0.5f},{PO2OCT,0.5f},{PMIX,0.5f},{PCUTOFF,0.5f},{PRES,0.7f},{PFENV,0.5f}, + {PATK,0.001f},{PDEC,0.15f},{PSUS,0.0f},{PREL,0.06f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cPerc); + add("Maracas", "PERC", + { {PO1WAVE,0.8f},{PO2WAVE,0.8f},{PMIX,0.4f},{PNOISE,0.95f},{PCUTOFF,0.65f},{PFTYPE,0.5f},{PRES,0.3f},{PFENV,0.35f}, + {PATK,0.001f},{PDEC,0.12f},{PSUS,0.0f},{PREL,0.06f},{PDSYNC,0.0f},{PMASTER,0.7f} }, + cPerc); + add("Shaker", "PERC", + { {PO1WAVE,0.8f},{PO2WAVE,0.8f},{PMIX,0.4f},{PNOISE,0.9f},{PCUTOFF,0.55f},{PRES,0.3f},{PFENV,0.3f}, + {PATK,0.001f},{PDEC,0.2f},{PSUS,0.0f},{PREL,0.1f},{PDSYNC,0.0f},{PMASTER,0.7f} }, + cPerc); + add("Cowbell", "PERC", + { {PO1WAVE,0.75f},{PO2WAVE,0.75f},{PO1OCT,0.5f},{PO2OCT,0.62f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.45f},{PRES,0.6f},{PFENV,0.4f}, + {PATK,0.001f},{PDEC,0.3f},{PSUS,0.0f},{PREL,0.12f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cPerc); + add("Timbale", "PERC", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PO2OCT,0.83f},{PMIX,0.5f},{PCUTOFF,0.4f},{PRES,0.6f},{PFENV,0.6f}, + {PATK,0.001f},{PDEC,0.4f},{PSUS,0.0f},{PREL,0.15f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cPerc); + add("Crash", "PERC", + { {PO1WAVE,0.8f},{PO2WAVE,0.8f},{PMIX,0.5f},{PNOISE,0.95f},{PCUTOFF,0.5f},{PRES,0.5f},{PFENV,0.4f}, + {PATK,0.001f},{PDEC,0.8f},{PSUS,0.0f},{PREL,0.7f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cPerc); + add("Gong Hit", "PERC", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PO2OCT,0.83f},{PMIX,0.5f},{PNOISE,0.3f},{PCUTOFF,0.28f},{PRES,0.5f},{PFENV,0.5f}, + {PATK,0.001f},{PDEC,0.85f},{PSUS,0.0f},{PREL,0.8f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cPerc); + add("Gabber Kick", "PERC", + { {PO1WAVE,0.75f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PO2OCT,0.25f},{PMIX,0.9f},{PNOISE,0.08f},{PCUTOFF,0.32f},{PRES,0.5f},{PFENV,0.5f}, + {PATK,0.001f},{PDEC,0.4f},{PSUS,0.1f},{PREL,0.1f},{PDRIVE,0.9f},{PDSYNC,0.0f},{PMASTER,0.9f} }, + cPerc); + + // SFX ------------------------------------------------------------- + add("Riser Up", "SFX", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1OCT,0.3f},{PO2OCT,0.4f},{PMIX,0.5f},{PNOISE,0.5f},{PCUTOFF,0.2f},{PRES,0.5f},{PFENV,0.9f}, + {PATK,0.9f},{PDEC,0.1f},{PSUS,0.8f},{PREL,0.15f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cSfx); + add("Riser Down", "SFX", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1OCT,0.5f},{PO2OCT,0.5f},{PMIX,0.5f},{PNOISE,0.6f},{PCUTOFF,0.5f},{PRES,0.5f},{PFENV,0.8f}, + {PATK,0.2f},{PDEC,0.3f},{PSUS,0.5f},{PREL,0.6f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cSfx); + add("Laser Zap", "SFX", + { {PO1WAVE,0.75f},{PO2WAVE,0.0f},{PMIX,1.0f},{PCUTOFF,0.1f},{PRES,0.8f},{PFENV,0.8f}, + {PATK,0.002f},{PDEC,0.3f},{PSUS,0.0f},{PREL,0.3f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.4f},{PDMIX,0.4f},{PMASTER,0.8f} }, + cShp); + add("Phaser Sweep", "SFX", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.4f},{PO2CT,0.6f},{PMIX,0.5f},{PCUTOFF,0.18f},{PRES,0.8f},{PFENV,0.9f}, + {PATK,0.01f},{PDEC,0.5f},{PSUS,0.3f},{PREL,0.4f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.7f},{PDMIX,0.5f},{PMASTER,0.8f} }, + cShp); + add("Alarm Siren", "SFX", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.15f},{PRES,0.8f},{PFENV,0.9f}, + {PATK,0.4f},{PDEC,0.4f},{PSUS,0.7f},{PREL,0.4f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cSfx); + add("Robot Beep", "SFX", + { {PO1WAVE,0.75f},{PO2WAVE,0.75f},{PMIX,0.5f},{PCUTOFF,0.6f},{PRES,0.3f},{PFENV,0.4f}, + {PATK,0.001f},{PDEC,0.25f},{PSUS,0.0f},{PREL,0.2f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cRetro); + add("Power Down", "SFX", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.6f},{PO2CT,0.4f},{PMIX,0.5f},{PNOISE,0.4f},{PCUTOFF,0.6f},{PRES,0.4f},{PFENV,0.8f}, + {PATK,0.01f},{PDEC,0.7f},{PSUS,0.2f},{PREL,0.8f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cSfx); + add("Engine Drone", "SFX", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1OCT,0.22f},{PO2OCT,0.2f},{PO1CT,0.55f},{PO2CT,0.5f},{PMIX,0.5f},{PNOISE,0.3f},{PCUTOFF,0.25f},{PRES,0.5f},{PFENV,0.35f}, + {PATK,0.6f},{PDEC,0.3f},{PSUS,0.85f},{PREL,0.6f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cSfx); + add("Wobble Growl", "SFX", + { {PO1WAVE,0.5f},{PO2WAVE,0.75f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PNOISE,0.2f},{PCUTOFF,0.12f},{PRES,0.8f},{PFENV,0.9f}, + {PATK,0.008f},{PDEC,0.4f},{PSUS,0.4f},{PREL,0.3f},{PDRIVE,0.6f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.6f},{PDMIX,0.4f},{PMASTER,0.85f} }, + cSfx); + add("Police Siren", "SFX", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1OCT,0.4f},{PO2OCT,0.5f},{PMIX,0.6f},{PCUTOFF,0.2f},{PRES,0.8f},{PFENV,0.9f}, + {PATK,0.35f},{PDEC,0.4f},{PSUS,0.8f},{PREL,0.35f},{PDSYNC,0.0f},{PMASTER,0.82f} }, + cSfx); + add("Glitch Blip", "SFX", + { {PO1WAVE,0.75f},{PO2WAVE,0.8f},{PO1CT,0.5f},{PO2CT,0.6f},{PMIX,0.5f},{PNOISE,0.6f},{PCUTOFF,0.55f},{PRES,0.6f},{PFENV,0.6f}, + {PATK,0.001f},{PDEC,0.15f},{PSUS,0.0f},{PREL,0.1f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.6f},{PDMIX,0.6f},{PMASTER,0.8f} }, + cSfx); + add("Data Stream", "SFX", + { {PO1WAVE,0.75f},{PO2WAVE,0.5f},{PO1CT,0.4f},{PO2CT,0.6f},{PMIX,0.5f},{PNOISE,0.3f},{PCUTOFF,0.3f},{PRES,0.8f},{PFENV,0.8f}, + {PATK,0.001f},{PDEC,0.2f},{PSUS,0.2f},{PREL,0.15f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.8f},{PDMIX,0.7f},{PMASTER,0.8f} }, + cSfx); + add("Boing", "SFX", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PO2OCT,0.83f},{PMIX,0.5f},{PCUTOFF,0.4f},{PRES,0.6f},{PFENV,0.7f}, + {PATK,0.002f},{PDEC,0.6f},{PSUS,0.0f},{PREL,0.4f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cSfx); + add("Impact Boom", "SFX", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PO2OCT,0.25f},{PMIX,0.9f},{PNOISE,0.4f},{PCUTOFF,0.18f},{PRES,0.4f},{PFENV,0.8f}, + {PATK,0.002f},{PDEC,0.7f},{PSUS,0.0f},{PREL,0.6f},{PDSYNC,0.0f},{PMASTER,0.85f} }, + cSfx); + add("UFO Bleep", "SFX", + { {PO1WAVE,0.75f},{PO2WAVE,0.25f},{PO1OCT,0.5f},{PO2OCT,0.83f},{PMIX,0.5f},{PCUTOFF,0.45f},{PRES,0.7f},{PFENV,0.6f}, + {PATK,0.001f},{PDEC,0.3f},{PSUS,0.0f},{PREL,0.2f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.5f},{PDMIX,0.5f},{PMASTER,0.78f} }, + cSfx); + add("Alarm Clang", "SFX", + { {PO1WAVE,0.75f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PO2OCT,0.62f},{PMIX,0.6f},{PNOISE,0.2f},{PCUTOFF,0.4f},{PRES,0.8f},{PFENV,0.7f}, + {PATK,0.002f},{PDEC,0.5f},{PSUS,0.0f},{PREL,0.4f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cSfx); + + // GRIT ------------------------------------------------------------ + add("Industrial Stab", "GRIT", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PNOISE,0.3f},{PCUTOFF,0.28f},{PRES,0.6f},{PFENV,0.6f}, + {PATK,0.002f},{PDEC,0.3f},{PSUS,0.2f},{PREL,0.2f},{PDRIVE,0.85f},{PDSYNC,0.0f},{PMASTER,0.82f} }, + cShp); + add("Metal Grind", "GRIT", + { {PO1WAVE,0.75f},{PO2WAVE,0.75f},{PO1CT,0.45f},{PO2CT,0.55f},{PMIX,0.5f},{PNOISE,0.4f},{PCUTOFF,0.45f},{PRES,0.7f},{PFENV,0.5f}, + {PATK,0.004f},{PDEC,0.4f},{PSUS,0.3f},{PREL,0.25f},{PDRIVE,0.9f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cShp); + add("Rusty Saw", "GRIT", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.4f},{PO2CT,0.6f},{PMIX,0.5f},{PCUTOFF,0.22f},{PRES,0.5f},{PFENV,0.7f}, + {PATK,0.005f},{PDEC,0.35f},{PSUS,0.4f},{PREL,0.15f},{PDRIVE,0.9f},{PDSYNC,0.0f},{PMASTER,0.82f} }, + cDrift); + add("Broken Radio", "GRIT", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.55f},{PO2CT,0.45f},{PMIX,0.5f},{PNOISE,0.5f},{PCUTOFF,0.55f},{PRES,0.6f},{PFENV,0.6f}, + {PATK,0.002f},{PDEC,0.3f},{PSUS,0.3f},{PREL,0.2f},{PDRIVE,0.7f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.6f},{PMASTER,0.8f} }, + cSfx); + add("Grunge Lead", "GRIT", + { {PO1WAVE,0.75f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.4f},{PRES,0.35f},{PFENV,0.6f}, + {PATK,0.01f},{PDEC,0.4f},{PSUS,0.6f},{PREL,0.2f},{PDRIVE,0.8f},{PDSYNC,0.0f},{PMASTER,0.82f} }, + cDrift); + add("Dirt Squelch", "GRIT", + { {PO1WAVE,0.25f},{PO2WAVE,0.75f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.15f},{PRES,0.75f},{PFENV,0.9f}, + {PATK,0.004f},{PDEC,0.4f},{PSUS,0.3f},{PREL,0.25f},{PDRIVE,0.8f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.4f},{PMASTER,0.85f} }, + cShp); + add("Cement Mix", "GRIT", + { {PO1WAVE,0.5f},{PO2WAVE,0.8f},{PNOISE,0.7f},{PCUTOFF,0.32f},{PRES,0.5f},{PFENV,0.5f}, + {PATK,0.01f},{PDEC,0.45f},{PSUS,0.3f},{PREL,0.3f},{PDRIVE,0.85f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cNoise); + add("Screech", "GRIT", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.4f},{PO2CT,0.6f},{PMIX,0.5f},{PCUTOFF,0.65f},{PRES,0.75f},{PFENV,0.4f}, + {PATK,0.002f},{PDEC,0.4f},{PSUS,0.5f},{PREL,0.3f},{PDRIVE,0.9f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cShp); + add("Grind Bass", "GRIT", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1OCT,0.25f},{PO2OCT,0.25f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PNOISE,0.2f},{PCUTOFF,0.2f},{PRES,0.6f},{PFENV,0.7f}, + {PATK,0.004f},{PDEC,0.45f},{PSUS,0.5f},{PREL,0.15f},{PDRIVE,0.95f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.3f},{PMASTER,0.88f} }, + cDrift); + add("Static Chord", "GRIT", + { {PO1WAVE,0.8f},{PO2WAVE,0.8f},{PMIX,0.4f},{PNOISE,0.85f},{PCUTOFF,0.4f},{PRES,0.5f},{PFENV,0.4f}, + {PATK,0.05f},{PDEC,0.4f},{PSUS,0.6f},{PREL,0.4f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cNoise); + add("Spit Noise", "GRIT", + { {PO1WAVE,0.25f},{PO2WAVE,0.8f},{PNOISE,0.8f},{PCUTOFF,0.5f},{PRES,0.6f},{PFENV,0.6f}, + {PATK,0.001f},{PDEC,0.2f},{PSUS,0.0f},{PREL,0.15f},{PDRIVE,0.6f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cNoise); + add("Fuzz Keys", "GRIT", + { {PO1WAVE,0.75f},{PO2WAVE,0.75f},{PO1CT,0.5f},{PO2CT,0.52f},{PMIX,0.5f},{PCUTOFF,0.35f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.004f},{PDEC,0.5f},{PSUS,0.3f},{PREL,0.3f},{PDRIVE,0.9f},{PDSYNC,0.0f},{PMASTER,0.85f} }, + cDrift); + add("Rust Lead", "GRIT", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.55f},{PO2CT,0.5f},{PMIX,0.5f},{PNOISE,0.3f},{PCUTOFF,0.3f},{PRES,0.6f},{PFENV,0.7f}, + {PATK,0.01f},{PDEC,0.4f},{PSUS,0.5f},{PREL,0.25f},{PDRIVE,0.85f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.5f},{PDMIX,0.4f},{PMASTER,0.82f} }, + cDrift); + add("Dirty Choad", "GRIT", + { {PO1WAVE,0.5f},{PO2WAVE,0.75f},{PO1OCT,0.5f},{PO2OCT,0.55f},{PO1CT,0.48f},{PO2CT,0.52f},{PMIX,0.5f},{PNOISE,0.15f},{PCUTOFF,0.3f},{PRES,0.6f},{PFENV,0.7f}, + {PATK,0.002f},{PDEC,0.4f},{PSUS,0.4f},{PREL,0.3f},{PDRIVE,0.85f},{PDSYNC,0.0f},{PMASTER,0.82f} }, + cShp); + + // RETRO ----------------------------------------------------------- + add("8-Bit Square", "RETRO", + { {PO1WAVE,0.75f},{PO2WAVE,0.75f},{PMIX,0.6f},{PCUTOFF,0.5f},{PRES,0.2f},{PFENV,0.4f}, + {PATK,0.002f},{PDEC,0.25f},{PSUS,0.4f},{PREL,0.1f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cRetro); + add("NES Lead", "RETRO", + { {PO1WAVE,0.75f},{PO2WAVE,0.25f},{PMIX,0.6f},{PCUTOFF,0.55f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.001f},{PDEC,0.2f},{PSUS,0.5f},{PREL,0.08f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cRetro); + add("Game Boy", "RETRO", + { {PO1WAVE,0.75f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PNOISE,0.15f},{PCUTOFF,0.45f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.001f},{PDEC,0.3f},{PSUS,0.3f},{PREL,0.1f},{PDRIVE,0.4f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cRetro); + add("Arcade Blip", "RETRO", + { {PO1WAVE,0.75f},{PO2WAVE,0.0f},{PMIX,0.8f},{PCUTOFF,0.5f},{PRES,0.5f},{PFENV,0.6f}, + {PATK,0.001f},{PDEC,0.2f},{PSUS,0.0f},{PREL,0.12f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cRetro); + add("Chiptune Bass", "RETRO", + { {PO1WAVE,0.75f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PMIX,0.9f},{PCUTOFF,0.35f},{PRES,0.3f},{PFENV,0.4f}, + {PATK,0.001f},{PDEC,0.25f},{PSUS,0.4f},{PREL,0.08f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cRetro); + add("Pong", "RETRO", + { {PO1WAVE,0.5f},{PO2WAVE,0.75f},{PMIX,0.6f},{PCUTOFF,0.6f},{PRES,0.2f},{PFENV,0.3f}, + {PATK,0.001f},{PDEC,0.15f},{PSUS,0.2f},{PREL,0.08f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cRetro); + add("Pac Siren", "RETRO", + { {PO1WAVE,0.75f},{PO2WAVE,0.75f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.2f},{PRES,0.8f},{PFENV,0.9f}, + {PATK,0.1f},{PDEC,0.4f},{PSUS,0.8f},{PREL,0.3f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cSfx); + add("Dragon Quest", "RETRO", + { {PO1WAVE,0.75f},{PO2WAVE,0.0f},{PO1CT,0.5f},{PMIX,0.7f},{PCUTOFF,0.5f},{PRES,0.35f},{PFENV,0.4f}, + {PATK,0.002f},{PDEC,0.3f},{PSUS,0.6f},{PREL,0.12f},{PGLIDE,0.2f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cRetro); + add("Sega Sweep", "RETRO", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.4f},{PO2CT,0.6f},{PMIX,0.5f},{PCUTOFF,0.22f},{PRES,0.7f},{PFENV,0.9f}, + {PATK,0.005f},{PDEC,0.4f},{PSUS,0.3f},{PREL,0.3f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.5f},{PMASTER,0.8f} }, + cShp); + add("Console Pad", "RETRO", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1CT,0.5f},{PO2CT,0.52f},{PMIX,0.5f},{PCUTOFF,0.4f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.3f},{PDEC,0.4f},{PSUS,0.7f},{PREL,0.6f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.4f},{PMASTER,0.72f} }, + cRetro); + add("Pixel Pluck", "RETRO", + { {PO1WAVE,0.75f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PMIX,0.7f},{PCUTOFF,0.4f},{PRES,0.5f},{PFENV,0.6f}, + {PATK,0.001f},{PDEC,0.2f},{PSUS,0.0f},{PREL,0.15f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.4f},{PDMIX,0.35f},{PMASTER,0.75f} }, + cRetro); + add("Tiny Lead", "RETRO", + { {PO1WAVE,0.75f},{PO2WAVE,0.75f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.55f},{PRES,0.25f},{PFENV,0.45f}, + {PATK,0.003f},{PDEC,0.25f},{PSUS,0.5f},{PREL,0.1f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.3f},{PMASTER,0.75f} }, + cRetro); + add("16-Bit Lead", "RETRO", + { {PO1WAVE,0.5f},{PO2WAVE,0.25f},{PO1CT,0.5f},{PO2CT,0.52f},{PMIX,0.6f},{PCUTOFF,0.45f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.004f},{PDEC,0.35f},{PSUS,0.6f},{PREL,0.15f},{PDRIVE,0.3f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cRetro); + add("Turtle Power", "RETRO", + { {PO1WAVE,0.75f},{PO2WAVE,0.5f},{PO1CT,0.52f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.35f},{PRES,0.5f},{PFENV,0.6f}, + {PATK,0.002f},{PDEC,0.3f},{PSUS,0.3f},{PREL,0.2f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.5f},{PDMIX,0.4f},{PMASTER,0.78f} }, + cRetro); + add("Wicked Blip", "RETRO", + { {PO1WAVE,0.75f},{PO2WAVE,0.8f},{PNOISE,0.5f},{PCUTOFF,0.62f},{PRES,0.5f},{PFENV,0.5f}, + {PATK,0.001f},{PDEC,0.12f},{PSUS,0.0f},{PREL,0.08f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.5f},{PDMIX,0.5f},{PMASTER,0.78f} }, + cRetro); + add("End Boss", "RETRO", + { {PO1WAVE,0.75f},{PO2WAVE,0.75f},{PO1OCT,0.25f},{PO2OCT,0.5f},{PMIX,0.5f},{PNOISE,0.2f},{PCUTOFF,0.2f},{PRES,0.75f},{PFENV,0.9f}, + {PATK,0.01f},{PDEC,0.5f},{PSUS,0.5f},{PREL,0.4f},{PDRIVE,0.6f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.5f},{PMASTER,0.82f} }, + cShp); + + // AMBIENT --------------------------------------------------------- + add("Tundra", "AMBIENT", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1OCT,0.4f},{PO2OCT,0.45f},{PO1CT,0.5f},{PO2CT,0.54f},{PMIX,0.5f},{PNOISE,0.15f},{PCUTOFF,0.35f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.9f},{PDEC,0.3f},{PSUS,0.85f},{PREL,0.9f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.6f},{PMASTER,0.68f} }, + cPads); + add("Underwater", "AMBIENT", + { {PO1WAVE,0.0f},{PO2WAVE,0.25f},{PO1OCT,0.3f},{PO2OCT,0.35f},{PNOISE,0.2f},{PCUTOFF,0.25f},{PRES,0.6f},{PFENV,0.6f}, + {PATK,0.7f},{PDEC,0.3f},{PSUS,0.8f},{PREL,0.9f},{PDSYNC,0.0f},{PMASTER,0.7f} }, + cPads); + add("Glass Rain", "AMBIENT", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.62f},{PO2OCT,0.83f},{PMIX,0.45f},{PNOISE,0.1f},{PCUTOFF,0.5f},{PRES,0.4f},{PFENV,0.55f}, + {PATK,0.02f},{PDEC,0.6f},{PSUS,0.0f},{PREL,0.6f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.6f},{PDMIX,0.6f},{PMASTER,0.7f} }, + cBell); + add("Fog Bank", "AMBIENT", + { {PO1WAVE,0.5f},{PO2WAVE,0.25f},{PO1CT,0.5f},{PO2CT,0.53f},{PMIX,0.5f},{PNOISE,0.3f},{PCUTOFF,0.3f},{PRES,0.5f},{PFENV,0.4f}, + {PATK,0.8f},{PDEC,0.3f},{PSUS,0.85f},{PREL,0.9f},{PDSYNC,0.0f},{PMASTER,0.68f} }, + cPads); + add("Northern Lights", "AMBIENT", + { {PO1WAVE,0.25f},{PO2WAVE,0.5f},{PO1OCT,0.6f},{PO2OCT,0.55f},{PO1CT,0.53f},{PO2CT,0.47f},{PMIX,0.5f},{PNOISE,0.1f},{PCUTOFF,0.45f},{PRES,0.45f},{PFENV,0.6f}, + {PATK,0.6f},{PDEC,0.4f},{PSUS,0.7f},{PREL,0.9f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.7f},{PDMIX,0.7f},{PMASTER,0.68f} }, + cPads); + add("Slow Motion", "AMBIENT", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.49f},{PO2CT,0.51f},{PMIX,0.5f},{PCUTOFF,0.3f},{PRES,0.35f},{PFENV,0.5f}, + {PATK,0.95f},{PDEC,0.3f},{PSUS,0.9f},{PREL,0.95f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.6f},{PMASTER,0.68f} }, + cPads); + add("Meridian", "AMBIENT", + { {PO1WAVE,0.0f},{PO2WAVE,0.25f},{PO1OCT,0.5f},{PO2OCT,0.5f},{PMIX,0.5f},{PCUTOFF,0.42f},{PRES,0.3f},{PFENV,0.55f}, + {PATK,0.5f},{PDEC,0.4f},{PSUS,0.75f},{PREL,0.8f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.55f},{PMASTER,0.7f} }, + cPads); + add("Cosmic Drift", "AMBIENT", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.4f},{PO2CT,0.6f},{PMIX,0.5f},{PNOISE,0.15f},{PCUTOFF,0.28f},{PRES,0.6f},{PFENV,0.6f}, + {PATK,0.8f},{PDEC,0.3f},{PSUS,0.8f},{PREL,0.9f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.7f},{PDMIX,0.7f},{PMASTER,0.68f} }, + cPads); + add("Deep Space", "AMBIENT", + { {PO1WAVE,0.25f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PO2OCT,0.3f},{PNOISE,0.25f},{PCUTOFF,0.2f},{PRES,0.5f},{PFENV,0.5f}, + {PATK,0.85f},{PDEC,0.3f},{PSUS,0.85f},{PREL,0.95f},{PDSYNC,0.0f},{PMASTER,0.7f} }, + cPads); + add("Rainforest", "AMBIENT", + { {PO1WAVE,0.0f},{PO2WAVE,0.25f},{PO1OCT,0.4f},{PO2OCT,0.62f},{PMIX,0.4f},{PNOISE,0.4f},{PCUTOFF,0.5f},{PRES,0.3f},{PFENV,0.4f}, + {PATK,0.05f},{PDEC,0.4f},{PSUS,0.5f},{PREL,0.5f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.8f},{PDMIX,0.8f},{PMASTER,0.7f} }, + cPads); + add("Hourglass", "AMBIENT", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.4f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.6f},{PDEC,0.4f},{PSUS,0.7f},{PREL,0.8f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.55f},{PDMIX,0.6f},{PMASTER,0.7f} }, + cPads); + add("Starlight", "AMBIENT", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.62f},{PO2OCT,0.5f},{PO1CT,0.55f},{PO2CT,0.5f},{PMIX,0.5f},{PNOISE,0.12f},{PCUTOFF,0.55f},{PRES,0.35f},{PFENV,0.6f}, + {PATK,0.4f},{PDEC,0.5f},{PSUS,0.5f},{PREL,0.9f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.6f},{PDMIX,0.7f},{PMASTER,0.68f} }, + cPads); + add("Glacier", "AMBIENT", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1OCT,0.4f},{PO2OCT,0.55f},{PO1CT,0.5f},{PO2CT,0.55f},{PMIX,0.5f},{PNOISE,0.2f},{PCUTOFF,0.35f},{PRES,0.55f},{PFENV,0.6f}, + {PATK,0.7f},{PDEC,0.4f},{PSUS,0.8f},{PREL,0.9f},{PDSYNC,0.0f},{PMASTER,0.68f} }, + cPads); + add("Floating", "AMBIENT", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO2OCT,0.62f},{PMIX,0.6f},{PCUTOFF,0.45f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.5f},{PDEC,0.4f},{PSUS,0.6f},{PREL,0.7f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.6f},{PMASTER,0.7f} }, + cPads); + add("Midnight Drive", "AMBIENT", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1OCT,0.25f},{PO2OCT,0.28f},{PMIX,0.5f},{PNOISE,0.1f},{PCUTOFF,0.25f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.4f},{PDEC,0.4f},{PSUS,0.8f},{PREL,0.7f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.6f},{PMASTER,0.72f} }, + cPads); + add("Afterglow", "AMBIENT", + { {PO1WAVE,0.5f},{PO2WAVE,0.25f},{PO1CT,0.48f},{PO2CT,0.52f},{PMIX,0.45f},{PCUTOFF,0.32f},{PRES,0.35f},{PFENV,0.5f}, + {PATK,0.6f},{PDEC,0.4f},{PSUS,0.8f},{PREL,0.8f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.55f},{PDMIX,0.55f},{PMASTER,0.7f} }, + cPads); + + // BASS (extra) ---------------------------------------------------- + add("Wobble Sub", "BASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.14f},{PRES,0.75f},{PFENV,0.85f}, + {PATK,0.004f},{PDEC,0.35f},{PSUS,0.5f},{PREL,0.18f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.35f},{PMASTER,0.85f} }, + cShp); + add("Slap Funk", "BASS", + { {PO1WAVE,0.75f},{PO2WAVE,0.5f},{PO1OCT,0.25f},{PO2OCT,0.28f},{PMIX,0.7f},{PCUTOFF,0.38f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.001f},{PDEC,0.3f},{PSUS,0.3f},{PREL,0.12f},{PDRIVE,0.4f},{PDSYNC,0.0f},{PMASTER,0.82f} }, + cTone); + add("Smooth Sub", "BASS", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PO2OCT,0.25f},{PO1CT,0.5f},{PO2CT,0.51f},{PMIX,0.6f},{PCUTOFF,0.45f},{PRES,0.2f},{PFENV,0.3f}, + {PATK,0.02f},{PDEC,0.35f},{PSUS,0.75f},{PREL,0.2f},{PDSYNC,0.0f},{PMASTER,0.82f} }, + cCff); + add("808 Noir", "BASS", + { {PO1WAVE,0.0f},{PO2WAVE,0.25f},{PO1OCT,0.25f},{PO2OCT,0.24f},{PMIX,0.85f},{PNOISE,0.08f},{PCUTOFF,0.18f},{PRES,0.5f},{PFENV,0.85f}, + {PATK,0.008f},{PDEC,0.65f},{PSUS,0.0f},{PREL,0.5f},{PDSYNC,0.0f},{PMASTER,0.88f} }, + cTone); + add("Hoover Bass", "BASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.45f},{PO2CT,0.55f},{PMIX,0.5f},{PNOISE,0.1f},{PCUTOFF,0.25f},{PRES,0.6f},{PFTYPE,0.5f},{PFENV,0.7f}, + {PATK,0.006f},{PDEC,0.45f},{PSUS,0.5f},{PREL,0.2f},{PDRIVE,0.5f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.3f},{PMASTER,0.82f} }, + cDrift); + add("Reese Drift", "BASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.42f},{PO2CT,0.58f},{PMIX,0.5f},{PCUTOFF,0.3f},{PRES,0.45f},{PFENV,0.6f}, + {PATK,0.01f},{PDEC,0.5f},{PSUS,0.6f},{PREL,0.2f},{PDRIVE,0.35f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.4f},{PDMIX,0.25f},{PMASTER,0.8f} }, + cDrift); + add("FM Bass", "BASS", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PO2OCT,0.62f},{PMIX,0.5f},{PCUTOFF,0.3f},{PRES,0.4f},{PFENV,0.7f}, + {PATK,0.002f},{PDEC,0.4f},{PSUS,0.2f},{PREL,0.25f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.3f},{PMASTER,0.82f} }, + cBell); + add("Acid 303", "BASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PMIX,0.95f},{PCUTOFF,0.16f},{PRES,0.75f},{PFENV,0.9f}, + {PATK,0.006f},{PDEC,0.4f},{PSUS,0.4f},{PREL,0.2f},{PDSYNC,0.0f},{PDTIME,0.2f},{PDFB,0.5f},{PDMIX,0.3f},{PMASTER,0.85f} }, + cShp); + add("Dub Sub", "BASS", + { {PO1WAVE,0.0f},{PO2WAVE,0.25f},{PO1OCT,0.25f},{PO2OCT,0.25f},{PMIX,0.6f},{PCUTOFF,0.42f},{PRES,0.2f},{PFENV,0.35f}, + {PATK,0.01f},{PDEC,0.3f},{PSUS,0.75f},{PREL,0.2f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.4f},{PMASTER,0.82f} }, + cResDcy); + add("Square Teeth", "BASS", + { {PO1WAVE,0.75f},{PO2WAVE,0.75f},{PO1OCT,0.25f},{PO2OCT,0.25f},{PO1CT,0.5f},{PO2CT,0.52f},{PMIX,0.6f},{PCUTOFF,0.4f},{PRES,0.3f},{PFENV,0.4f}, + {PATK,0.005f},{PDEC,0.3f},{PSUS,0.7f},{PREL,0.15f},{PDSYNC,0.0f},{PMASTER,0.82f} }, + cCff); + add("Pluck Bass", "BASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.0f},{PO1OCT,0.25f},{PO2OCT,0.3f},{PMIX,0.8f},{PCUTOFF,0.35f},{PRES,0.5f},{PFENV,0.7f}, + {PATK,0.002f},{PDEC,0.25f},{PSUS,0.0f},{PREL,0.2f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.4f},{PDMIX,0.35f},{PMASTER,0.8f} }, + cPluck); + add("Growl Bass", "BASS", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PNOISE,0.15f},{PCUTOFF,0.2f},{PRES,0.7f},{PFENV,0.8f}, + {PATK,0.005f},{PDEC,0.4f},{PSUS,0.5f},{PREL,0.15f},{PDRIVE,0.7f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.3f},{PMASTER,0.85f} }, + cDrift); + + // LEAD (extra) ---------------------------------------------------- + add("Echo Lead", "LEAD", + { {PO1WAVE,0.5f},{PO2WAVE,0.0f},{PO1CT,0.51f},{PMIX,0.6f},{PCUTOFF,0.5f},{PRES,0.3f},{PFENV,0.4f}, + {PATK,0.005f},{PDEC,0.3f},{PSUS,0.7f},{PREL,0.15f},{PGLIDE,0.3f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.65f},{PDMIX,0.6f},{PMASTER,0.75f} }, + cCff); + add("Wasp Lead", "LEAD", + { {PO1WAVE,0.25f},{PO2WAVE,0.0f},{PO1CT,0.5f},{PMIX,0.7f},{PCUTOFF,0.3f},{PRES,0.75f},{PFTYPE,0.5f},{PFENV,0.7f}, + {PATK,0.003f},{PDEC,0.3f},{PSUS,0.5f},{PREL,0.2f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cShp); + add("Glass Synth", "LEAD", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.62f},{PO2OCT,0.83f},{PMIX,0.5f},{PCUTOFF,0.55f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.004f},{PDEC,0.3f},{PSUS,0.5f},{PREL,0.3f},{PGLIDE,0.2f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.4f},{PMASTER,0.75f} }, + cCff); + add("Solar Lead", "LEAD", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.55f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.002f},{PDEC,0.35f},{PSUS,0.6f},{PREL,0.15f},{PGLIDE,0.25f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.3f},{PMASTER,0.78f} }, + cCff); + add("Overtone Lead", "LEAD", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PO2OCT,0.62f},{PMIX,0.5f},{PCUTOFF,0.5f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.003f},{PDEC,0.3f},{PSUS,0.6f},{PREL,0.2f},{PGLIDE,0.2f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cCff); + add("Sleazy Lead", "LEAD", + { {PO1WAVE,0.5f},{PO2WAVE,0.0f},{PO1CT,0.53f},{PMIX,0.6f},{PCUTOFF,0.45f},{PRES,0.35f},{PFENV,0.5f}, + {PATK,0.002f},{PDEC,0.3f},{PSUS,0.7f},{PREL,0.15f},{PDRIVE,0.3f},{PGLIDE,0.35f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.4f},{PMASTER,0.78f} }, + cDrift); + add("Marshmallow", "LEAD", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1CT,0.5f},{PO2CT,0.51f},{PMIX,0.5f},{PCUTOFF,0.4f},{PRES,0.25f},{PFENV,0.4f}, + {PATK,0.03f},{PDEC,0.4f},{PSUS,0.7f},{PREL,0.3f},{PGLIDE,0.25f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.35f},{PMASTER,0.75f} }, + cCff); + add("Blade Lead", "LEAD", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.55f},{PRES,0.35f},{PFTYPE,1.0f},{PFENV,0.4f}, + {PATK,0.003f},{PDEC,0.3f},{PSUS,0.5f},{PREL,0.2f},{PGLIDE,0.3f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDMIX,0.4f},{PMASTER,0.75f} }, + cShp); + add("Chord Lead", "LEAD", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1OCT,0.5f},{PO2OCT,0.62f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.4f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.004f},{PDEC,0.35f},{PSUS,0.55f},{PREL,0.2f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.35f},{PMASTER,0.78f} }, + cCff); + add("Cyber Lead", "LEAD", + { {PO1WAVE,0.75f},{PO2WAVE,0.0f},{PO1CT,0.5f},{PMIX,0.8f},{PCUTOFF,0.55f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.002f},{PDEC,0.3f},{PSUS,0.5f},{PREL,0.12f},{PDRIVE,0.3f},{PGLIDE,0.2f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.4f},{PDMIX,0.3f},{PMASTER,0.78f} }, + cRetro); + add("Warm Nelly", "LEAD", + { {PO1WAVE,0.25f},{PO2WAVE,0.0f},{PO1CT,0.51f},{PMIX,0.6f},{PCUTOFF,0.42f},{PRES,0.3f},{PFENV,0.45f}, + {PATK,0.01f},{PDEC,0.35f},{PSUS,0.75f},{PREL,0.25f},{PGLIDE,0.3f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cCff); + add("Silver Lining", "LEAD", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PO2OCT,0.5f},{PMIX,0.7f},{PCUTOFF,0.6f},{PRES,0.25f},{PFENV,0.4f}, + {PATK,0.005f},{PDEC,0.3f},{PSUS,0.6f},{PREL,0.2f},{PGLIDE,0.2f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.45f},{PMASTER,0.75f} }, + cCff); + + // PAD (extra) ----------------------------------------------------- + add("Lush Pad", "PAD", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.49f},{PO2CT,0.51f},{PMIX,0.45f},{PCUTOFF,0.35f},{PRES,0.35f},{PFENV,0.5f}, + {PATK,0.5f},{PDEC,0.45f},{PSUS,0.75f},{PREL,0.7f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.45f},{PMASTER,0.7f} }, + cPads); + add("Bowed Glass", "PAD", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PO2OCT,0.62f},{PMIX,0.5f},{PCUTOFF,0.5f},{PRES,0.3f},{PFENV,0.55f}, + {PATK,0.7f},{PDEC,0.4f},{PSUS,0.7f},{PREL,0.8f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.5f},{PMASTER,0.7f} }, + cPads); + add("Tape Pad", "PAD", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.48f},{PO2CT,0.52f},{PMIX,0.5f},{PCUTOFF,0.3f},{PRES,0.4f},{PFENV,0.45f}, + {PATK,0.55f},{PDEC,0.4f},{PSUS,0.8f},{PREL,0.7f},{PDRIVE,0.2f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.5f},{PMASTER,0.7f} }, + cPads); + add("Andromeda", "PAD", + { {PO1WAVE,0.5f},{PO2WAVE,0.0f},{PO1CT,0.5f},{PO2CT,0.53f},{PMIX,0.5f},{PNOISE,0.12f},{PCUTOFF,0.33f},{PRES,0.5f},{PFENV,0.6f}, + {PATK,0.6f},{PDEC,0.4f},{PSUS,0.7f},{PREL,0.8f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.55f},{PMASTER,0.68f} }, + cPads); + add("Cloud Choir", "PAD", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1CT,0.5f},{PO2CT,0.52f},{PMIX,0.5f},{PCUTOFF,0.42f},{PRES,0.3f},{PFENV,0.55f}, + {PATK,0.4f},{PDEC,0.4f},{PSUS,0.75f},{PREL,0.7f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.55f},{PDMIX,0.5f},{PMASTER,0.7f} }, + cPads); + add("Aurora", "PAD", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.4f},{PO2CT,0.6f},{PMIX,0.5f},{PNOISE,0.1f},{PCUTOFF,0.4f},{PRES,0.45f},{PFENV,0.6f}, + {PATK,0.5f},{PDEC,0.4f},{PSUS,0.7f},{PREL,0.85f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.65f},{PDMIX,0.6f},{PMASTER,0.68f} }, + cPads); + add("Daydream", "PAD", + { {PO1WAVE,0.25f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PO2OCT,0.5f},{PMIX,0.6f},{PCUTOFF,0.4f},{PRES,0.25f},{PFENV,0.5f}, + {PATK,0.6f},{PDEC,0.4f},{PSUS,0.75f},{PREL,0.7f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.5f},{PMASTER,0.7f} }, + cPads); + add("Horizon", "PAD", + { {PO1WAVE,0.5f},{PO2WAVE,0.25f},{PO1CT,0.5f},{PO2CT,0.53f},{PMIX,0.5f},{PCUTOFF,0.32f},{PRES,0.45f},{PFENV,0.6f}, + {PATK,0.5f},{PDEC,0.45f},{PSUS,0.75f},{PREL,0.8f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.55f},{PMASTER,0.7f} }, + cPads); + add("Nebula", "PAD", + { {PO1WAVE,0.0f},{PO2WAVE,0.25f},{PO1OCT,0.5f},{PO2OCT,0.55f},{PMIX,0.5f},{PNOISE,0.15f},{PCUTOFF,0.38f},{PRES,0.5f},{PFENV,0.6f}, + {PATK,0.65f},{PDEC,0.4f},{PSUS,0.7f},{PREL,0.9f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.6f},{PMASTER,0.68f} }, + cPads); + add("Mist", "PAD", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PNOISE,0.3f},{PCUTOFF,0.35f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.6f},{PDEC,0.35f},{PSUS,0.8f},{PREL,0.85f},{PDSYNC,0.0f},{PMASTER,0.68f} }, + cPads); + add("Night Sky", "PAD", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.62f},{PO2OCT,0.5f},{PMIX,0.5f},{PCUTOFF,0.5f},{PRES,0.3f},{PFENV,0.55f}, + {PATK,0.4f},{PDEC,0.5f},{PSUS,0.6f},{PREL,0.8f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.6f},{PDMIX,0.65f},{PMASTER,0.7f} }, + cPads); + add("Slow Breath", "PAD", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1CT,0.5f},{PO2CT,0.51f},{PMIX,0.5f},{PNOISE,0.15f},{PCUTOFF,0.4f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.9f},{PDEC,0.3f},{PSUS,0.85f},{PREL,0.95f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.55f},{PDMIX,0.55f},{PMASTER,0.68f} }, + cPads); + + // KEYS (extra) ---------------------------------------------------- + add("Dream Keys", "KEYS", + { {PO1WAVE,0.25f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PO2OCT,0.5f},{PMIX,0.6f},{PCUTOFF,0.4f},{PRES,0.35f},{PFENV,0.5f}, + {PATK,0.006f},{PDEC,0.45f},{PSUS,0.2f},{PREL,0.35f},{PDRIVE,0.2f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.35f},{PMASTER,0.75f} }, + cKeys); + add("Chip Key", "KEYS", + { {PO1WAVE,0.75f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PMIX,0.7f},{PCUTOFF,0.5f},{PRES,0.3f},{PFENV,0.4f}, + {PATK,0.002f},{PDEC,0.4f},{PSUS,0.3f},{PREL,0.12f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cKeys); + add("Piano Sweet", "KEYS", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PO2OCT,0.83f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.45f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.002f},{PDEC,0.35f},{PSUS,0.1f},{PREL,0.3f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cKeys); + add("Honky Pluck", "KEYS", + { {PO1WAVE,0.25f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PO2OCT,0.62f},{PO1CT,0.55f},{PO2CT,0.45f},{PMIX,0.5f},{PCUTOFF,0.38f},{PRES,0.5f},{PFENV,0.6f}, + {PATK,0.002f},{PDEC,0.4f},{PSUS,0.1f},{PREL,0.25f},{PDRIVE,0.3f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cKeys); + add("Glass Room", "KEYS", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.62f},{PO2OCT,0.62f},{PMIX,0.5f},{PCUTOFF,0.55f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.003f},{PDEC,0.5f},{PSUS,0.15f},{PREL,0.5f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.4f},{PMASTER,0.72f} }, + cKeys); + add("Felt Note", "KEYS", + { {PO1WAVE,0.25f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PO2OCT,0.5f},{PMIX,0.7f},{PCUTOFF,0.32f},{PRES,0.5f},{PFENV,0.6f}, + {PATK,0.004f},{PDEC,0.4f},{PSUS,0.2f},{PREL,0.3f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cKeys); + add("Savannah", "KEYS", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1OCT,0.5f},{PO2OCT,0.62f},{PMIX,0.5f},{PNOISE,0.08f},{PCUTOFF,0.42f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.005f},{PDEC,0.5f},{PSUS,0.2f},{PREL,0.35f},{PDRIVE,0.3f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.4f},{PMASTER,0.75f} }, + cKeys); + + // PLUCK (extra) --------------------------------------------------- + add("Ice Pick", "PLUCK", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.62f},{PO2OCT,0.62f},{PMIX,0.5f},{PCUTOFF,0.5f},{PRES,0.3f},{PFENV,0.6f}, + {PATK,0.001f},{PDEC,0.25f},{PSUS,0.0f},{PREL,0.2f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.4f},{PDMIX,0.3f},{PMASTER,0.75f} }, + cPluck); + add("Jazz Guitar", "PLUCK", + { {PO1WAVE,0.25f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.4f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.001f},{PDEC,0.45f},{PSUS,0.0f},{PREL,0.25f},{PDRIVE,0.2f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cPluck); + add("Pluck Tahiti", "PLUCK", + { {PO1WAVE,0.5f},{PO2WAVE,0.25f},{PO1CT,0.5f},{PO2CT,0.53f},{PMIX,0.5f},{PCUTOFF,0.45f},{PRES,0.35f},{PFENV,0.5f}, + {PATK,0.001f},{PDEC,0.35f},{PSUS,0.0f},{PREL,0.2f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.35f},{PMASTER,0.75f} }, + cPluck); + add("Tremolo Pluck", "PLUCK", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.51f},{PMIX,0.5f},{PCUTOFF,0.3f},{PRES,0.55f},{PFENV,0.6f}, + {PATK,0.002f},{PDEC,0.3f},{PSUS,0.0f},{PREL,0.25f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.6f},{PDMIX,0.5f},{PMASTER,0.75f} }, + cPluck); + add("Yarn", "PLUCK", + { {PO1WAVE,0.25f},{PO2WAVE,0.0f},{PMIX,0.6f},{PCUTOFF,0.35f},{PRES,0.4f},{PFENV,0.45f}, + {PATK,0.004f},{PDEC,0.4f},{PSUS,0.05f},{PREL,0.3f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.35f},{PMASTER,0.7f} }, + cPluck); + add("Springy", "PLUCK", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO2OCT,0.62f},{PMIX,0.5f},{PCUTOFF,0.35f},{PRES,0.7f},{PFENV,0.7f}, + {PATK,0.002f},{PDEC,0.5f},{PSUS,0.0f},{PREL,0.35f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.5f},{PDMIX,0.4f},{PMASTER,0.75f} }, + cPluck); + add("Overtone Ping", "PLUCK", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PO2OCT,0.83f},{PMIX,0.5f},{PCUTOFF,0.45f},{PRES,0.35f},{PFENV,0.5f}, + {PATK,0.001f},{PDEC,0.45f},{PSUS,0.0f},{PREL,0.3f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.4f},{PDMIX,0.35f},{PMASTER,0.75f} }, + cPluck); + + // STRING (extra) -------------------------------------------------- + add("Cinema Strings", "STRING", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.49f},{PO2CT,0.51f},{PMIX,0.5f},{PCUTOFF,0.33f},{PRES,0.35f},{PFENV,0.55f}, + {PATK,0.5f},{PDEC,0.4f},{PSUS,0.78f},{PREL,0.8f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.55f},{PDMIX,0.5f},{PMASTER,0.72f} }, + cStr); + add("Slow Strings", "STRING", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.48f},{PO2CT,0.52f},{PMIX,0.5f},{PCUTOFF,0.3f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.7f},{PDEC,0.35f},{PSUS,0.8f},{PREL,0.85f},{PDSYNC,0.0f},{PMASTER,0.72f} }, + cStr); + add("70s Strings", "STRING", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1CT,0.5f},{PO2CT,0.53f},{PMIX,0.5f},{PCUTOFF,0.38f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.4f},{PDEC,0.4f},{PSUS,0.75f},{PREL,0.6f},{PDRIVE,0.15f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.45f},{PMASTER,0.72f} }, + cStr); + add("Chamber", "STRING", + { {PO1WAVE,0.5f},{PO2WAVE,0.25f},{PO1CT,0.5f},{PO2CT,0.52f},{PMIX,0.6f},{PCUTOFF,0.36f},{PRES,0.35f},{PFENV,0.55f}, + {PATK,0.3f},{PDEC,0.4f},{PSUS,0.7f},{PREL,0.5f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.5f},{PDMIX,0.4f},{PMASTER,0.72f} }, + cStr); + add("Staccato Strings", "STRING", + { {PO1WAVE,0.5f},{PO2WAVE,0.25f},{PO1CT,0.5f},{PO2CT,0.51f},{PMIX,0.6f},{PCUTOFF,0.35f},{PRES,0.4f},{PFENV,0.5f}, + {PATK,0.01f},{PDEC,0.25f},{PSUS,0.0f},{PREL,0.15f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.4f},{PDMIX,0.35f},{PMASTER,0.78f} }, + cPluck); + add("Saw Ensemble", "STRING", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.46f},{PO2CT,0.54f},{PMIX,0.5f},{PCUTOFF,0.35f},{PRES,0.35f},{PFENV,0.55f}, + {PATK,0.15f},{PDEC,0.4f},{PSUS,0.75f},{PREL,0.6f},{PDRIVE,0.2f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.4f},{PMASTER,0.75f} }, + cStr); + + // ORGAN (extra) --------------------------------------------------- + add("Smooth B3", "ORGAN", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.38f},{PRES,0.3f},{PFENV,0.3f}, + {PATK,0.02f},{PDEC,0.3f},{PSUS,0.8f},{PREL,0.12f},{PDRIVE,0.2f},{PDSYNC,0.0f},{PMASTER,0.78f} }, + cOrgan); + add("Drawbar 9", "ORGAN", + { {PO1WAVE,0.75f},{PO2WAVE,0.75f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.32f},{PRES,0.5f},{PFENV,0.35f}, + {PATK,0.004f},{PDEC,0.3f},{PSUS,0.85f},{PREL,0.1f},{PDRIVE,0.4f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.25f},{PMASTER,0.8f} }, + cOrgan); + add("Purple Organ", "ORGAN", + { {PO1WAVE,0.75f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.4f},{PRES,0.45f},{PFENV,0.35f}, + {PATK,0.005f},{PDEC,0.35f},{PSUS,0.8f},{PREL,0.12f},{PDRIVE,0.45f},{PDSYNC,0.0f},{PMASTER,0.8f} }, + cOrgan); + + // BELL (extra) ---------------------------------------------------- + add("Steel Drum", "BELL", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.62f},{PO2OCT,0.5f},{PO1CT,0.53f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.4f},{PRES,0.4f},{PFENV,0.6f}, + {PATK,0.001f},{PDEC,0.35f},{PSUS,0.0f},{PREL,0.25f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.4f},{PDMIX,0.3f},{PMASTER,0.75f} }, + cBell); + add("Tubular Bell", "BELL", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.5f},{PO2OCT,0.5f},{PMIX,0.5f},{PCUTOFF,0.3f},{PRES,0.5f},{PFENV,0.5f}, + {PATK,0.001f},{PDEC,0.8f},{PSUS,0.0f},{PREL,0.5f},{PDSYNC,0.0f},{PMASTER,0.75f} }, + cBell); + add("Celesta", "BELL", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.62f},{PO2OCT,0.62f},{PMIX,0.5f},{PCUTOFF,0.55f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.002f},{PDEC,0.4f},{PSUS,0.0f},{PREL,0.3f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.35f},{PMASTER,0.72f} }, + cBell); + add("Crystal Bells", "BELL", + { {PO1WAVE,0.0f},{PO2WAVE,0.0f},{PO1OCT,0.83f},{PO2OCT,0.62f},{PO1CT,0.55f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.6f},{PRES,0.35f},{PFENV,0.5f}, + {PATK,0.001f},{PDEC,0.45f},{PSUS,0.0f},{PREL,0.35f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.5f},{PDMIX,0.45f},{PMASTER,0.72f} }, + cBell); + + // STAB / ARP (extra) ---------------------------------------------- + add("Euphoria Stab", "STAB", + { {PO1WAVE,0.5f},{PO2WAVE,0.5f},{PO1CT,0.52f},{PO2CT,0.48f},{PMIX,0.5f},{PCUTOFF,0.4f},{PRES,0.4f},{PFENV,0.65f}, + {PATK,0.003f},{PDEC,0.35f},{PSUS,0.3f},{PREL,0.2f},{PDRIVE,0.3f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.35f},{PMASTER,0.78f} }, + cStab); + add("Ninja Stab", "STAB", + { {PO1WAVE,0.75f},{PO2WAVE,0.5f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.5f},{PCUTOFF,0.3f},{PRES,0.6f},{PFENV,0.7f}, + {PATK,0.002f},{PDEC,0.3f},{PSUS,0.3f},{PREL,0.15f},{PDRIVE,0.5f},{PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDFB,0.4f},{PDMIX,0.3f},{PMASTER,0.8f} }, + cStab); + add("Vapor Arp", "ARP", + { {PO1WAVE,0.25f},{PO2WAVE,0.25f},{PO1CT,0.5f},{PO2CT,0.52f},{PMIX,0.5f},{PCUTOFF,0.45f},{PRES,0.3f},{PFENV,0.5f}, + {PATK,0.003f},{PDEC,0.35f},{PSUS,0.2f},{PREL,0.25f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.6f},{PDMIX,0.55f},{PMASTER,0.78f} }, + cCff); + add("Chip Arp", "ARP", + { {PO1WAVE,0.75f},{PO2WAVE,0.75f},{PO1CT,0.5f},{PO2CT,0.5f},{PMIX,0.6f},{PCUTOFF,0.5f},{PRES,0.25f},{PFENV,0.4f}, + {PATK,0.001f},{PDEC,0.3f},{PSUS,0.1f},{PREL,0.1f},{PDSYNC,1.0f},{PDSTEPS,4.0f/15.0f},{PDFB,0.5f},{PDMIX,0.45f},{PMASTER,0.78f} }, + cRetro); } return cat;