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
This commit is contained in:
Armin 2026-09-13 22:04:43 +02:00
commit bdd3b38cee
7 changed files with 943 additions and 56 deletions

View file

@ -2,7 +2,7 @@
A self-contained **subtractive synthesizer** written in modern C++ on top of 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 [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. embedded 4x80 HD44780-style LCD driven by a cascaded on-screen menu.
## Why this is pretty good ## Why this is pretty good
@ -29,7 +29,10 @@ embedded 4x80 HD44780-style LCD driven by a cascaded on-screen menu.
## Features ## Features
* 12-voice polyphonic engine with voice stealing and glide * 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 …) * Dual-waveform oscillator section (sine / tri / saw / square / noise …)
* SVF low-pass filter with resonance **and** drive * SVF low-pass filter with resonance **and** drive
* ADSR with a per-voice envelope and cutoff modulation * 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 * 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 and voice count. The delay's SYNC mode locks to the host tempo and lets you
pick rhythmic subdivisions. 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 ## Layout
@ -87,7 +93,7 @@ Build: Makefile -> CMake -> JUCE (fetched into build/juce, never committed)
Source/ Source/
PluginProcessor.* audio processor + DSP shell PluginProcessor.* audio processor + DSP shell
SynthEngine.* osc/filter/ADSR/delay voice engine (12 voices) 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 SynthParams.* parameter model + formatting
PluginEditor.* panel, knobs, nav diamond, status footer PluginEditor.* panel, knobs, nav diamond, status footer
LcdDisplay.* 4x80 HD44780-style display renderer LcdDisplay.* 4x80 HD44780-style display renderer

View file

@ -236,4 +236,12 @@ void LcdDisplay::paint (juce::Graphics& g)
} }
} }
void LcdDisplay::timerCallback() { repaint(); } 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);
}

View file

@ -16,6 +16,9 @@ public:
void showCursor (bool show); void showCursor (bool show);
void clear(); void clear();
void paint (juce::Graphics&) override; void paint (juce::Graphics&) override;
void mouseDown (const juce::MouseEvent&) override;
std::function<void(int row)> onPressed;
private: private:
void timerCallback() override; void timerCallback() override;

View file

@ -15,6 +15,7 @@ SM26AudioProcessorEditor::SM26AudioProcessorEditor (SM26AudioProcessor& p)
setResizeLimits (760, 620, 1500, 1300); setResizeLimits (760, 620, 1500, 1300);
addAndMakeVisible (lcd); addAndMakeVisible (lcd);
lcd.onPressed = [this](int) { if (! menu.isOpen()) openPresetMenu(); };
setupKnobs(); setupKnobs();
setupNavButtons(); setupNavButtons();
@ -85,12 +86,12 @@ void SM26AudioProcessorEditor::setupNavButtons()
addAndMakeVisible (btn); addAndMakeVisible (btn);
}; };
setup (navUp, juce::Colour (0xFF2A2A2A)); setup (navUp, juce::Colour (0xFF000000));
setup (navDown, juce::Colour (0xFF2A2A2A)); setup (navDown, juce::Colour (0xFF000000));
setup (navLeft, juce::Colour (0xFF2A2A2A)); setup (navLeft, juce::Colour (0xFF000000));
setup (navRight, juce::Colour (0xFF2A2A2A)); setup (navRight, juce::Colour (0xFF000000));
setup (navEnter, juce::Colour (0xFF3F3F3F)); setup (navEnter, juce::Colour (0xFF000000));
setup (navEsc, juce::Colour (0xFF333333)); setup (navEsc, juce::Colour (0xFF000000));
navUp.setTriggeredOnMouseDown (true); navUp.setTriggeredOnMouseDown (true);
navUp.setRepeatSpeed (250, 50); navUp.setRepeatSpeed (250, 50);
@ -120,17 +121,6 @@ void SM26AudioProcessorEditor::buildRootMenu()
s.title = "SM-26 MAIN MENU"; s.title = "SM-26 MAIN MENU";
s.selected = 0; 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 auto addValue = [&](const char* n, int pid) -> MenuItem
{ {
MenuItem mi; MenuItem mi;
@ -167,27 +157,7 @@ void SM26AudioProcessorEditor::buildRootMenu()
MenuItem m; MenuItem m;
m.label = "PRESETS (" + juce::String (sm26::PresetStore::count()) + ")"; m.label = "PRESETS (" + juce::String (sm26::PresetStore::count()) + ")";
m.kind = MenuItem::Submenu; m.kind = MenuItem::Submenu;
m.onEnter = [this, addPreset]() { m.onEnter = [this]() { openPresetMenu(); };
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);
};
s.items.push_back (m); s.items.push_back (m);
} }
@ -277,6 +247,64 @@ void SM26AudioProcessorEditor::buildRootMenu()
menu.setRootScreenBuilder (builder); menu.setRootScreenBuilder (builder);
} }
void SM26AudioProcessorEditor::openPresetMenu()
{
struct Cat { juce::String name; int first; int count; };
std::vector<Cat> 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) void SM26AudioProcessorEditor::paint (juce::Graphics& g)
{ {
g.fillAll (juce::Colour (0xFF000000)); g.fillAll (juce::Colour (0xFF000000));
@ -284,12 +312,17 @@ void SM26AudioProcessorEditor::paint (juce::Graphics& g)
const float totalW = (float) getWidth(); const float totalW = (float) getWidth();
const float totalH = (float) getHeight(); 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.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); 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.setColour (juce::Colour (0xFFC8C8C8));
g.setFont (juce::Font (juce::FontOptions { juce::Font::getDefaultMonospacedFontName(), 14.0f, juce::Font::bold })); 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); 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) : ""; juce::String notesStr = notes > 0 ? "NOTES:" + juce::String (notes) : "";
lcd.setLine (6, bpmStr + (notesStr.isNotEmpty() ? " " + notesStr : "")); 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) for (int r = 0; r < LcdDisplay::kRows; ++r)
lcd.setInverted (r, false); lcd.setInverted (r, false);
lcd.showCursor (false); lcd.showCursor (false);

View file

@ -29,6 +29,7 @@ private:
void buildRootMenu(); void buildRootMenu();
void updateLCD(); void updateLCD();
void cyclePreset (int delta); void cyclePreset (int delta);
void openPresetMenu();
SM26AudioProcessor& proc; SM26AudioProcessor& proc;
MenuSystem menu; MenuSystem menu;

View file

@ -71,26 +71,53 @@ juce::AudioProcessorEditor* SM26AudioProcessor::createEditor()
void SM26AudioProcessor::getStateInformation (juce::MemoryBlock& destData) 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()); destData.replaceAll (xmlStr.toRawUTF8(), (size_t) xmlStr.length());
} }
void SM26AudioProcessor::setStateInformation (const void* data, int sizeInBytes) void SM26AudioProcessor::setStateInformation (const void* data, int sizeInBytes)
{ {
auto xml = juce::XmlDocument::parse (juce::String::fromUTF8 ((const char*) data, 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); for (int i = 0; i < sm26::kNumParams; ++i)
if (tree.isValid())
{ {
paramsReady.store (false); auto prop = engineState.getProperty (juce::Identifier (juce::String ("p") + juce::String (i)));
apvts.replaceState (tree); if (prop.isVoid())
paramsReady.store (true); continue;
int idx = (int) *apvts.getRawParameterValue ("preset"); engine.setParam (i, (float) (double) prop);
engine.setPresetIndex (idx);
applyPresetKnobs();
} }
} }
applyPresetKnobs();
} }
void SM26AudioProcessor::setKnob (int knob, float value01) void SM26AudioProcessor::setKnob (int knob, float value01)

View file

@ -5,7 +5,7 @@ namespace sm26 {
namespace { namespace {
struct Catalog { struct Catalog {
Preset data[256]; Preset data[512];
int n = 0; 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 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 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 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 ------------------------------------------------------------ // BASS ------------------------------------------------------------
add("Sub Square", "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}, {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} }, {PDSYNC,1.0f},{PDSTEPS,6.0f/15.0f},{PDMIX,0.3f},{PMASTER,0.75f} },
cBell); 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; return cat;