diff --git a/Source/DSP/Voice.h b/Source/DSP/Voice.h index 36270e6..3e921e8 100644 --- a/Source/DSP/Voice.h +++ b/Source/DSP/Voice.h @@ -57,6 +57,9 @@ public: env.noteOn(); filterEnv.noteOn(); + + quickFade = 1.0f; + quickFadeStep = 0.0f; } void stopNote(float velocity, bool allowTailOff) override { @@ -80,6 +83,10 @@ public: return; } + // Per-voice quick fade (triggered on preset change) + if (quickFade < 1.0f) + quickFade = std::max(0.0f, quickFade - quickFadeStep); + // LFO outputs float lfo1Out = lfo1.getNextSample(); float lfo2Out = lfo2.getNextSample(); @@ -135,8 +142,13 @@ public: left = std::tanh(left * drive) / std::tanh(drive); right = std::tanh(right * drive) / std::tanh(drive); - outputBuffer.addSample(0, i, left * outputLevel); - outputBuffer.addSample(1, i, right * outputLevel); + outputBuffer.addSample(0, i, left * outputLevel * quickFade); + outputBuffer.addSample(1, i, right * outputLevel * quickFade); + + if (quickFade <= 0.0f) { + clearCurrentNote(); + return; + } } } @@ -197,6 +209,16 @@ public: void setPitchBend(float semitones) { pitchBendSemitones = semitones; } + // Quickly fade out this voice (e.g. when a preset is switched) so any + // long release tail from the previous sound is silenced over `seconds`. + void triggerQuickRelease(float seconds) { + double sr = getSampleRate(); + if (sr <= 0.0) sr = 44100.0; + quickFadeStep = 1.0f / static_cast(seconds * sr); + env.noteOff(); + filterEnv.noteOff(); + } + private: Oscillator osc1, osc2; Filter filter; @@ -228,4 +250,6 @@ private: float pitchBendSemitones = 0.0f; int currentMidiNote = 60; float noteVelocity = 1.0f; + float quickFade = 1.0f; + float quickFadeStep = 0.0f; }; diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index 9e41d4a..6c247a5 100644 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -118,7 +118,7 @@ void ComboBoxLookAndFeel::drawComboBox(juce::Graphics& g, int width, int height, void ComboBoxLookAndFeel::drawPopupMenuItem(juce::Graphics& g, const juce::Rectangle& area, bool isSeparator, bool /*isActive*/, - bool isHighlighted, bool /*isTicked*/, + bool isHighlighted, bool isTicked, bool /*hasSubMenu*/, const juce::String& text, const juce::String& /*shortcutKeyText*/, const juce::Drawable* /*icon*/, @@ -130,12 +130,19 @@ void ComboBoxLookAndFeel::drawPopupMenuItem(juce::Graphics& g, const juce::Recta return; } + // Persistent highlight for the currently selected (ticked) entry + if (isTicked && !isHighlighted) { + g.setColour(juce::Colour(0xffccaa44).withAlpha(0.3f)); + g.fillRoundedRectangle(area.reduced(2).toFloat(), 3.0f); + } + if (isHighlighted) { g.setColour(juce::Colour(0xffccaa44)); g.fillRoundedRectangle(area.reduced(2).toFloat(), 3.0f); } - g.setColour(isHighlighted ? juce::Colour(0xff1a1a1a) : juce::Colour(0xffcccccc)); + g.setColour(isHighlighted ? juce::Colour(0xff1a1a1a) + : (isTicked ? juce::Colour(0xffccaa44) : juce::Colour(0xffcccccc))); g.setFont(juce::Font(13.0f)); g.drawText(text, area.reduced(8, 0), juce::Justification::centredLeft, true); } @@ -537,6 +544,12 @@ MainContentComponent::MainContentComponent(ChromaFlockProcessor& p) applyCurrentPreset(); }; + randomizeButton.setColour(juce::TextButton::buttonColourId, juce::Colour(0xff2a2a2a)); + randomizeButton.setColour(juce::TextButton::textColourOffId, juce::Colour(0xffccaa44)); + randomizeButton.setLookAndFeel(&comboLaf); + randomizeButton.onClick = [this]() { randomizeParameters(); }; + addAndMakeVisible(randomizeButton); + auto& presets = processorRef.presetManager.getPresets(); if (!presets.empty()) { currentPresetIndex = 0; @@ -645,12 +658,19 @@ void MainContentComponent::showPresetMenu() { std::vector menuOrder; auto categories = processorRef.presetManager.getCategories(); + + juce::String currentName; + auto& allPresets = processorRef.presetManager.getPresets(); + if (currentPresetIndex >= 0 && currentPresetIndex < static_cast(allPresets.size())) + currentName = allPresets[currentPresetIndex].name; + for (auto& cat : categories) { juce::PopupMenu subMenu; auto presets = processorRef.presetManager.getPresetsInCategory(cat); for (auto& preset : presets) { menuOrder.push_back(preset.name); - subMenu.addItem(static_cast(menuOrder.size()), preset.name); + bool isCurrent = (preset.name == currentName); + subMenu.addItem(static_cast(menuOrder.size()), preset.name, true, isCurrent); } menu.addSubMenu(cat, subMenu); } @@ -675,6 +695,7 @@ void MainContentComponent::applyCurrentPreset() { auto& presets = processorRef.presetManager.getPresets(); if (presets.empty()) return; currentPresetIndex = juce::jlimit(0, static_cast(presets.size()) - 1, currentPresetIndex); + processorRef.fadeOutActiveVoices(0.25f); processorRef.presetManager.applyPreset(presets[currentPresetIndex].name, processorRef.apvts); patchLCD.setText(presets[currentPresetIndex].name); @@ -685,6 +706,30 @@ void MainContentComponent::applyCurrentPreset() { setupSyncKnob(delayTimeKnob, delayTimeAttach, delayBeatAttach, "delayTime", "delayBeat", delaySyncBox); } +void MainContentComponent::randomizeParameters() { + juce::Random rand; + processorRef.fadeOutActiveVoices(0.25f); + for (auto* p : processorRef.getParameters()) { + auto* rap = dynamic_cast(p); + if (rap == nullptr) + continue; + const auto& id = rap->paramID; + if (id == "octaveTranspose" || id == "semitoneTranspose") + continue; + float v = rand.nextFloat(); + if (id == "masterLevel") + v = 0.4f + 0.6f * v; + rap->setValueNotifyingHost(v); + } + + patchLCD.setText("RANDOM"); + + // Re-sync the rate/beat knob attachments to match the randomized sync states. + setupSyncKnob(lfo1RateKnob, lfo1RateAttach, lfo1BeatAttach, "lfo1Rate", "lfo1Beat", lfo1SyncBox); + setupSyncKnob(lfo2RateKnob, lfo2RateAttach, lfo2BeatAttach, "lfo2Rate", "lfo2Beat", lfo2SyncBox); + setupSyncKnob(delayTimeKnob, delayTimeAttach, delayBeatAttach, "delayTime", "delayBeat", delaySyncBox); +} + void MainContentComponent::paint(juce::Graphics& g) { g.fillAll(juce::Colour(0xff1a1a1a)); @@ -915,6 +960,7 @@ void MainContentComponent::resized() { // --- PRESET + SCALE --- presetButton.setBounds(20, 8, 90, 28); + randomizeButton.setBounds(20, 42, 90, 28); patchLCD.setBounds(118, 8, 360, 28); prevPresetButton.setBounds(486, 8, 28, 28); nextPresetButton.setBounds(518, 8, 28, 28); diff --git a/Source/PluginEditor.h b/Source/PluginEditor.h index 4330259..b954375 100644 --- a/Source/PluginEditor.h +++ b/Source/PluginEditor.h @@ -156,6 +156,7 @@ private: juce::TextButton presetButton{"PRESET"}; PatchLCD patchLCD; juce::TextButton prevPresetButton{"<"}, nextPresetButton{">"}; + juce::TextButton randomizeButton{"RANDOM"}; int currentPresetIndex = 0; juce::ComboBox uiScaleBox; @@ -201,6 +202,7 @@ private: juce::ComboBox& syncBox); void showPresetMenu(); void applyCurrentPreset(); + void randomizeParameters(); JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(MainContentComponent) }; diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index a95930d..95486d5 100644 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -44,6 +44,11 @@ juce::AudioProcessorValueTreeState::ParameterLayout ChromaFlockProcessor::create auto zeroOne = juce::NormalisableRange(0.0f, 1.0f, 0.01f); + // LFO1 depth: fine 0.001 step, with a skew of 2.0 (value = p^2) so the + // lower knob range resolves much finer and the 0.001 step only applies + // in the upper range. + juce::NormalisableRange lfoDepthRange(0.0f, 1.0f, 0.001f, 2.0f); + // OSC 1 layout.add(std::make_unique( juce::ParameterID{"osc1Wave", 1}, "OSC1 Wave", @@ -181,7 +186,7 @@ juce::AudioProcessorValueTreeState::ParameterLayout ChromaFlockProcessor::create juce::ParameterID{"lfo1Rate", 1}, "LFO1 Rate", juce::NormalisableRange(0.05f, 20.0f, 0.01f, 0.4f), 2.0f)); layout.add(std::make_unique( - juce::ParameterID{"lfo1Depth", 1}, "LFO1 Depth", zeroOne, 0.0f)); + juce::ParameterID{"lfo1Depth", 1}, "LFO1 Depth", lfoDepthRange, 0.0f)); layout.add(std::make_unique( juce::ParameterID{"lfo1Shape", 1}, "LFO1 Shape", juce::StringArray{"Sine", "Triangle", "Saw", "Square"}, 0)); @@ -202,7 +207,7 @@ juce::AudioProcessorValueTreeState::ParameterLayout ChromaFlockProcessor::create juce::ParameterID{"lfo2Rate", 1}, "LFO2 Rate", juce::NormalisableRange(0.05f, 20.0f, 0.01f, 0.4f), 2.0f)); layout.add(std::make_unique( - juce::ParameterID{"lfo2Depth", 1}, "LFO2 Depth", zeroOne, 0.0f)); + juce::ParameterID{"lfo2Depth", 1}, "LFO2 Depth", lfoDepthRange, 0.0f)); layout.add(std::make_unique( juce::ParameterID{"lfo2Shape", 1}, "LFO2 Shape", juce::StringArray{"Sine", "Triangle", "Saw", "Square"}, 0)); @@ -259,6 +264,15 @@ void ChromaFlockProcessor::prepareToPlay(double sampleRate, int samplesPerBlock) void ChromaFlockProcessor::releaseResources() {} +void ChromaFlockProcessor::fadeOutActiveVoices(float seconds) { + for (int i = 0; i < synth.getNumVoices(); ++i) { + if (auto* v = dynamic_cast(synth.getVoice(i))) { + if (v->isVoiceActive()) + v->triggerQuickRelease(seconds); + } + } +} + void ChromaFlockProcessor::updateVoiceParameters() { auto getParam = [&](const juce::String& id) -> float { auto* p = apvts.getRawParameterValue(id); diff --git a/Source/PluginProcessor.h b/Source/PluginProcessor.h index aa7de11..d38802e 100644 --- a/Source/PluginProcessor.h +++ b/Source/PluginProcessor.h @@ -71,6 +71,10 @@ public: int getTransposeSemitones() const; + // Fade out all currently sounding voices over `seconds` so a long release + // tail from the previous preset is silenced on preset change. + void fadeOutActiveVoices(float seconds); + std::atomic pitchBendValue{0.0f}; float getPitchBend() const { return pitchBendValue.load(std::memory_order_relaxed); } diff --git a/Source/PresetManager.h b/Source/PresetManager.h index 58425d4..a01c3fd 100644 --- a/Source/PresetManager.h +++ b/Source/PresetManager.h @@ -1792,5 +1792,789 @@ private: {"reverbSize", 0.3f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.12f} }); + + // ======== MORE BASS 2 ======== + + add("Slap Bass", "Bass", { + {"osc1Wave", 2}, {"osc1Oct", -1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, + {"osc2Wave", 1}, {"osc2Oct", -2}, {"osc2Semi", 0}, {"osc2Fine", 7}, {"osc2Level", 0.5f}, + {"phaseOffset", 0.45f}, + {"filterType", 0}, {"filterCutoff", 450}, {"filterRes", 0.5f}, {"filterEnvAmt", 0.6f}, {"keyTrack", 0.6f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.12f}, {"fEnvSustain", 0.1f}, {"fEnvRelease", 0.1f}, + {"envAttack", 0.001f}, {"envDecay", 0.12f}, {"envSustain", 0.0f}, {"envRelease", 0.08f}, + {"pan", 0}, {"drive", 2.2f}, {"masterLevel", 0.8f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.2f}, {"distMix", 0.25f}, + {"compThreshold", -14}, {"compRatio", 5}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 4}, {"compMix", 0.6f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 90}, {"delayFeedback", 0.1f}, {"delayMix", 0.06f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.12f}, {"reverbDamping", 0.85f}, {"reverbMix", 0.04f} + }); + + add("Synthwave Bass", "Bass", { + {"osc1Wave", 1}, {"osc1Oct", -1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, + {"osc2Wave", 1}, {"osc2Oct", -1}, {"osc2Semi", 12}, {"osc2Fine", -5}, {"osc2Level", 0.6f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 350}, {"filterRes", 0.65f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.5f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.18f}, {"fEnvSustain", 0.15f}, {"fEnvRelease", 0.12f}, + {"envAttack", 0.001f}, {"envDecay", 0.25f}, {"envSustain", 0.6f}, {"envRelease", 0.15f}, + {"pan", 0}, {"drive", 2.4f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.2f}, {"distMix", 0.25f}, + {"compThreshold", -12}, {"compRatio", 5}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 4}, {"compMix", 0.7f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 110}, {"delayFeedback", 0.15f}, {"delayMix", 0.08f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.2f}, {"reverbDamping", 0.7f}, {"reverbMix", 0.08f} + }); + + add("Acid Squelch", "Bass", { + {"osc1Wave", 1}, {"osc1Oct", -1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.9f}, + {"osc2Wave", 1}, {"osc2Oct", -1}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.4f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 250}, {"filterRes", 0.95f}, {"filterEnvAmt", 0.9f}, {"keyTrack", 0.4f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.25f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.2f}, + {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.3f}, {"envRelease", 0.15f}, + {"pan", 0}, {"drive", 2.8f}, {"masterLevel", 0.7f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.2f}, {"distMix", 0.2f}, + {"compThreshold", -12}, {"compRatio", 6}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 5}, {"compMix", 0.7f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 3.0f}, {"lfo1Depth", 0.4f}, {"lfo1Shape", 2}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 90}, {"delayFeedback", 0.2f}, {"delayMix", 0.1f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.15f}, {"reverbDamping", 0.8f}, {"reverbMix", 0.05f} + }); + + add("Resonant Sub", "Bass", { + {"osc1Wave", 0}, {"osc1Oct", -3}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 1.0f}, + {"osc2Wave", 0}, {"osc2Oct", -2}, {"osc2Semi", 0}, {"osc2Fine", 12}, {"osc2Level", 0.4f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 90}, {"filterRes", 0.85f}, {"filterEnvAmt", 0.5f}, {"keyTrack", 0.3f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.2f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.15f}, + {"envAttack", 0.001f}, {"envDecay", 0.4f}, {"envSustain", 0.0f}, {"envRelease", 0.25f}, + {"pan", 0}, {"drive", 1.6f}, {"masterLevel", 0.9f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.1f}, {"distMix", 0.1f}, + {"compThreshold", -8}, {"compRatio", 4}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 4}, {"compMix", 0.6f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 100}, {"delayFeedback", 0}, {"delayMix", 0}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.1f}, {"reverbDamping", 0.9f}, {"reverbMix", 0.03f} + }); + + // ======== MORE LEADS 2 ======== + + add("Brass Stab", "Lead", { + {"osc1Wave", 2}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, + {"osc2Wave", 2}, {"osc2Oct", 0}, {"osc2Semi", 7}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 2500}, {"filterRes", 0.4f}, {"filterEnvAmt", 0.8f}, {"keyTrack", 0.8f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.08f}, {"fEnvSustain", 0.5f}, {"fEnvRelease", 0.1f}, + {"envAttack", 0.001f}, {"envDecay", 0.1f}, {"envSustain", 0.8f}, {"envRelease", 0.15f}, + {"pan", 0}, {"drive", 2.0f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.15f}, {"distMix", 0.2f}, + {"compThreshold", -14}, {"compRatio", 3}, {"compAttack", 2}, {"compRelease", 50}, {"compMakeup", 3}, {"compMix", 0.4f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 4.0f}, {"lfo1Depth", 0.1f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 150}, {"delayFeedback", 0.2f}, {"delayMix", 0.1f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.2f}, {"reverbDamping", 0.7f}, {"reverbMix", 0.08f} + }); + + add("Pluck Lead", "Lead", { + {"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, + {"osc2Wave", 0}, {"osc2Oct", 0}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 4000}, {"filterRes", 0.3f}, {"filterEnvAmt", 0.9f}, {"keyTrack", 0.7f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.06f}, + {"envAttack", 0.001f}, {"envDecay", 0.12f}, {"envSustain", 0.0f}, {"envRelease", 0.06f}, + {"pan", 0}, {"drive", 1.8f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.1f}, {"distMix", 0.12f}, + {"compThreshold", -16}, {"compRatio", 3}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 2}, {"compMix", 0.35f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 6.0f}, {"lfo1Depth", 0.08f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 140}, {"delayFeedback", 0.25f}, {"delayMix", 0.12f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.15f}, {"reverbDamping", 0.75f}, {"reverbMix", 0.06f} + }); + + add("Vocal Lead", "Lead", { + {"osc1Wave", 3}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", -5}, {"osc1Level", 0.6f}, + {"osc2Wave", 0}, {"osc2Oct", 0}, {"osc2Semi", 12}, {"osc2Fine", 5}, {"osc2Level", 0.4f}, + {"phaseOffset", 0.3f}, + {"filterType", 0}, {"filterCutoff", 2800}, {"filterRes", 0.25f}, {"filterEnvAmt", 0.4f}, {"keyTrack", 0.7f}, + {"fEnvAttack", 0.02f}, {"fEnvDecay", 0.3f}, {"fEnvSustain", 0.4f}, {"fEnvRelease", 0.2f}, + {"envAttack", 0.05f}, {"envDecay", 0.3f}, {"envSustain", 0.7f}, {"envRelease", 0.3f}, + {"pan", 0}, {"drive", 1.3f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -16}, {"compRatio", 2}, {"compAttack", 5}, {"compRelease", 80}, {"compMakeup", 2}, {"compMix", 0.3f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 5.5f}, {"lfo1Depth", 0.15f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0.1f}, {"lfo2Depth", 0.08f}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 180}, {"delayFeedback", 0.2f}, {"delayMix", 0.1f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.3f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.12f} + }); + + add("Supersaw Lead", "Lead", { + {"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.6f}, + {"osc2Wave", 1}, {"osc2Oct", 0}, {"osc2Semi", 0}, {"osc2Fine", 8}, {"osc2Level", 0.6f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 3500}, {"filterRes", 0.3f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.7f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.12f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.1f}, + {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.85f}, {"envRelease", 0.25f}, + {"pan", 0}, {"drive", 2.2f}, {"masterLevel", 0.7f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.2f}, {"distMix", 0.25f}, + {"compThreshold", -14}, {"compRatio", 3}, {"compAttack", 2}, {"compRelease", 60}, {"compMakeup", 3}, {"compMix", 0.45f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 5.5f}, {"lfo1Depth", 0.12f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0.6f}, {"lfo2Depth", 0.1f}, {"lfo2Shape", 1}, {"lfo2Dest", 0}, + {"delayTime", 140}, {"delayFeedback", 0.2f}, {"delayMix", 0.1f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.2f}, {"reverbDamping", 0.7f}, {"reverbMix", 0.08f} + }); + + // ======== MORE PADS 2 ======== + + add("Heaven Pad", "Pad", { + {"osc1Wave", 0}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 3}, {"osc1Level", 0.5f}, + {"osc2Wave", 3}, {"osc2Oct", 0}, {"osc2Semi", 12}, {"osc2Fine", -5}, {"osc2Level", 0.5f}, + {"phaseOffset", 0.4f}, + {"filterType", 0}, {"filterCutoff", 450}, {"filterRes", 0.1f}, {"filterEnvAmt", 0.15f}, {"keyTrack", 0.6f}, + {"fEnvAttack", 2.0f}, {"fEnvDecay", 3.0f}, {"fEnvSustain", 0.7f}, {"fEnvRelease", 5.0f}, + {"envAttack", 3.0f}, {"envDecay", 2.5f}, {"envSustain", 0.85f}, {"envRelease", 6.0f}, + {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 0.65f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -30}, {"compRatio", 1.5f}, {"compAttack", 50}, {"compRelease", 600}, {"compMakeup", 2}, {"compMix", 0.2f}, + {"autoPanRate", 0.1f}, {"autoPanDepth", 0.5f}, + {"lfo1Rate", 0.05f}, {"lfo1Depth", 0.25f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0.03f}, {"lfo2Depth", 0.15f}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 800}, {"delayFeedback", 0.6f}, {"delayMix", 0.4f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.98f}, {"reverbDamping", 0.02f}, {"reverbMix", 0.8f} + }); + + add("Vintage Pad", "Pad", { + {"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", -4}, {"osc1Level", 0.5f}, + {"osc2Wave", 1}, {"osc2Oct", 0}, {"osc2Semi", 7}, {"osc2Fine", 4}, {"osc2Level", 0.5f}, + {"phaseOffset", 0.3f}, + {"filterType", 0}, {"filterCutoff", 320}, {"filterRes", 0.25f}, {"filterEnvAmt", 0.2f}, {"keyTrack", 0.4f}, + {"fEnvAttack", 1.5f}, {"fEnvDecay", 2.0f}, {"fEnvSustain", 0.5f}, {"fEnvRelease", 3.0f}, + {"envAttack", 2.0f}, {"envDecay", 1.5f}, {"envSustain", 0.75f}, {"envRelease", 4.0f}, + {"pan", 0}, {"drive", 1.2f}, {"masterLevel", 0.7f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -24}, {"compRatio", 2}, {"compAttack", 25}, {"compRelease", 250}, {"compMakeup", 2}, {"compMix", 0.3f}, + {"autoPanRate", 0.15f}, {"autoPanDepth", 0.25f}, + {"lfo1Rate", 0.12f}, {"lfo1Depth", 0.2f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0.07f}, {"lfo2Depth", 0.12f}, {"lfo2Shape", 1}, {"lfo2Dest", 0}, + {"delayTime", 500}, {"delayFeedback", 0.4f}, {"delayMix", 0.25f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.8f}, {"reverbDamping", 0.2f}, {"reverbMix", 0.45f} + }); + + add("Dream Catcher", "Pad", { + {"osc1Wave", 3}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.45f}, + {"osc2Wave", 0}, {"osc2Oct", 0}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.45f}, + {"phaseOffset", 0.6f}, + {"filterType", 0}, {"filterCutoff", 600}, {"filterRes", 0.12f}, {"filterEnvAmt", 0.25f}, {"keyTrack", 0.6f}, + {"fEnvAttack", 1.5f}, {"fEnvDecay", 2.5f}, {"fEnvSustain", 0.6f}, {"fEnvRelease", 4.0f}, + {"envAttack", 2.5f}, {"envDecay", 2.0f}, {"envSustain", 0.8f}, {"envRelease", 5.0f}, + {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 0.65f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -26}, {"compRatio", 2}, {"compAttack", 30}, {"compRelease", 300}, {"compMakeup", 2}, {"compMix", 0.25f}, + {"autoPanRate", 0.2f}, {"autoPanDepth", 0.4f}, + {"lfo1Rate", 0.08f}, {"lfo1Depth", 0.3f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0.04f}, {"lfo2Depth", 0.15f}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 650}, {"delayFeedback", 0.5f}, {"delayMix", 0.3f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.9f}, {"reverbDamping", 0.1f}, {"reverbMix", 0.6f} + }); + + add("Astral Drift", "Pad", { + {"osc1Wave", 0}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", -7}, {"osc1Level", 0.5f}, + {"osc2Wave", 4}, {"osc2Oct", 1}, {"osc2Semi", 7}, {"osc2Fine", 11}, {"osc2Level", 0.3f}, + {"phaseOffset", 0.7f}, + {"filterType", 0}, {"filterCutoff", 500}, {"filterRes", 0.18f}, {"filterEnvAmt", 0.2f}, {"keyTrack", 0.5f}, + {"fEnvAttack", 2.0f}, {"fEnvDecay", 3.0f}, {"fEnvSustain", 0.6f}, {"fEnvRelease", 5.0f}, + {"envAttack", 3.0f}, {"envDecay", 2.5f}, {"envSustain", 0.8f}, {"envRelease", 6.0f}, + {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 0.6f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -28}, {"compRatio", 1.5f}, {"compAttack", 40}, {"compRelease", 500}, {"compMakeup", 3}, {"compMix", 0.2f}, + {"autoPanRate", 0.08f}, {"autoPanDepth", 0.6f}, + {"lfo1Rate", 0.03f}, {"lfo1Depth", 0.35f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0.02f}, {"lfo2Depth", 0.2f}, {"lfo2Shape", 1}, {"lfo2Dest", 0}, + {"delayTime", 900}, {"delayFeedback", 0.6f}, {"delayMix", 0.4f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.95f}, {"reverbDamping", 0.05f}, {"reverbMix", 0.75f} + }); + + // ======== MORE KEYS 2 ======== + + add("Celesta", "Keys", { + {"osc1Wave", 0}, {"osc1Oct", 2}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, + {"osc2Wave", 3}, {"osc2Oct", 2}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 1500}, {"filterRes", 0.05f}, {"filterEnvAmt", 0.3f}, {"keyTrack", 0.9f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.5f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.5f}, + {"envAttack", 0.001f}, {"envDecay", 0.5f}, {"envSustain", 0.0f}, {"envRelease", 0.6f}, + {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -18}, {"compRatio", 2}, {"compAttack", 5}, {"compRelease", 60}, {"compMakeup", 2}, {"compMix", 0.3f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 300}, {"delayFeedback", 0}, {"delayMix", 0}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.5f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.2f} + }); + + add("Music Box", "Keys", { + {"osc1Wave", 0}, {"osc1Oct", 2}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.6f}, + {"osc2Wave", 2}, {"osc2Oct", 2}, {"osc2Semi", 12}, {"osc2Fine", -3}, {"osc2Level", 0.25f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 1800}, {"filterRes", 0.08f}, {"filterEnvAmt", 0.4f}, {"keyTrack", 0.9f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.3f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.4f}, + {"envAttack", 0.001f}, {"envDecay", 0.3f}, {"envSustain", 0.0f}, {"envRelease", 0.5f}, + {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -18}, {"compRatio", 2}, {"compAttack", 3}, {"compRelease", 50}, {"compMakeup", 2}, {"compMix", 0.3f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 250}, {"delayFeedback", 0}, {"delayMix", 0}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.45f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.18f} + }); + + add("Vibraphone", "Keys", { + {"osc1Wave", 0}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, + {"osc2Wave", 0}, {"osc2Oct", 1}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 1200}, {"filterRes", 0.1f}, {"filterEnvAmt", 0.4f}, {"keyTrack", 0.8f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.6f}, {"fEnvSustain", 0.2f}, {"fEnvRelease", 0.8f}, + {"envAttack", 0.001f}, {"envDecay", 0.7f}, {"envSustain", 0.2f}, {"envRelease", 1.0f}, + {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -18}, {"compRatio", 2}, {"compAttack", 5}, {"compRelease", 80}, {"compMakeup", 2}, {"compMix", 0.3f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 4.5f}, {"lfo1Depth", 0.4f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 350}, {"delayFeedback", 0.1f}, {"delayMix", 0.05f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.55f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.25f} + }); + + add("Accordion", "Keys", { + {"osc1Wave", 2}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.5f}, + {"osc2Wave", 1}, {"osc2Oct", 0}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.4f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 900}, {"filterRes", 0.1f}, {"filterEnvAmt", 0.1f}, {"keyTrack", 0.7f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.8f}, {"fEnvRelease", 0.1f}, + {"envAttack", 0.02f}, {"envDecay", 0.1f}, {"envSustain", 0.9f}, {"envRelease", 0.1f}, + {"pan", 0}, {"drive", 1.2f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -18}, {"compRatio", 3}, {"compAttack", 8}, {"compRelease", 80}, {"compMakeup", 2}, {"compMix", 0.5f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 5.5f}, {"lfo1Depth", 0.05f}, {"lfo1Shape", 3}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 150}, {"delayFeedback", 0}, {"delayMix", 0}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.3f}, {"reverbDamping", 0.6f}, {"reverbMix", 0.1f} + }); + + // ======== BRASS ======== + + add("Section Brass", "Brass", { + {"osc1Wave", 2}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, + {"osc2Wave", 0}, {"osc2Oct", 0}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 1800}, {"filterRes", 0.3f}, {"filterEnvAmt", 0.6f}, {"keyTrack", 0.8f}, + {"fEnvAttack", 0.02f}, {"fEnvDecay", 0.15f}, {"fEnvSustain", 0.6f}, {"fEnvRelease", 0.15f}, + {"envAttack", 0.05f}, {"envDecay", 0.2f}, {"envSustain", 0.8f}, {"envRelease", 0.2f}, + {"pan", 0}, {"drive", 1.8f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.1f}, {"distMix", 0.12f}, + {"compThreshold", -14}, {"compRatio", 3}, {"compAttack", 3}, {"compRelease", 60}, {"compMakeup", 3}, {"compMix", 0.4f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 4.0f}, {"lfo1Depth", 0.08f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0.1f}, {"lfo2Depth", 0.05f}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 180}, {"delayFeedback", 0.15f}, {"delayMix", 0.08f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.35f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.15f} + }); + + add("Stab Brass", "Brass", { + {"osc1Wave", 2}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, + {"osc2Wave", 2}, {"osc2Oct", 0}, {"osc2Semi", 7}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 2200}, {"filterRes", 0.45f}, {"filterEnvAmt", 0.85f}, {"keyTrack", 0.8f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.4f}, {"fEnvRelease", 0.15f}, + {"envAttack", 0.001f}, {"envDecay", 0.15f}, {"envSustain", 0.7f}, {"envRelease", 0.2f}, + {"pan", 0}, {"drive", 2.2f}, {"masterLevel", 0.7f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.15f}, {"distMix", 0.2f}, + {"compThreshold", -12}, {"compRatio", 4}, {"compAttack", 1}, {"compRelease", 40}, {"compMakeup", 3}, {"compMix", 0.5f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 5.0f}, {"lfo1Depth", 0.1f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 150}, {"delayFeedback", 0.2f}, {"delayMix", 0.1f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.25f}, {"reverbDamping", 0.6f}, {"reverbMix", 0.1f} + }); + + // ======== STRINGS ======== + + add("Solo Cello", "Strings", { + {"osc1Wave", 1}, {"osc1Oct", -1}, {"osc1Semi", 0}, {"osc1Fine", -8}, {"osc1Level", 0.7f}, + {"osc2Wave", 0}, {"osc2Oct", -1}, {"osc2Semi", 12}, {"osc2Fine", 5}, {"osc2Level", 0.3f}, + {"phaseOffset", 0.4f}, + {"filterType", 0}, {"filterCutoff", 600}, {"filterRes", 0.15f}, {"filterEnvAmt", 0.2f}, {"keyTrack", 0.5f}, + {"fEnvAttack", 0.2f}, {"fEnvDecay", 0.5f}, {"fEnvSustain", 0.5f}, {"fEnvRelease", 0.5f}, + {"envAttack", 0.3f}, {"envDecay", 0.4f}, {"envSustain", 0.8f}, {"envRelease", 0.8f}, + {"pan", 0}, {"drive", 1.2f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -20}, {"compRatio", 2}, {"compAttack", 15}, {"compRelease", 150}, {"compMakeup", 2}, {"compMix", 0.4f}, + {"autoPanRate", 0.15f}, {"autoPanDepth", 0.2f}, + {"lfo1Rate", 0.2f}, {"lfo1Depth", 0.1f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 300}, {"delayFeedback", 0.2f}, {"delayMix", 0.12f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.6f}, {"reverbDamping", 0.3f}, {"reverbMix", 0.3f} + }); + + add("Orchestra", "Strings", { + {"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", -5}, {"osc1Level", 0.6f}, + {"osc2Wave", 0}, {"osc2Oct", 0}, {"osc2Semi", 7}, {"osc2Fine", 5}, {"osc2Level", 0.4f}, + {"phaseOffset", 0.3f}, + {"filterType", 0}, {"filterCutoff", 700}, {"filterRes", 0.1f}, {"filterEnvAmt", 0.15f}, {"keyTrack", 0.5f}, + {"fEnvAttack", 0.8f}, {"fEnvDecay", 1.0f}, {"fEnvSustain", 0.6f}, {"fEnvRelease", 1.5f}, + {"envAttack", 1.0f}, {"envDecay", 0.8f}, {"envSustain", 0.85f}, {"envRelease", 2.0f}, + {"pan", 0}, {"drive", 1.2f}, {"masterLevel", 0.7f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -22}, {"compRatio", 2}, {"compAttack", 20}, {"compRelease", 200}, {"compMakeup", 2}, {"compMix", 0.4f}, + {"autoPanRate", 0.1f}, {"autoPanDepth", 0.25f}, + {"lfo1Rate", 0.12f}, {"lfo1Depth", 0.08f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0.08f}, {"lfo2Depth", 0.06f}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 400}, {"delayFeedback", 0.3f}, {"delayMix", 0.15f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.8f}, {"reverbDamping", 0.2f}, {"reverbMix", 0.45f} + }); + + // ======== WIND ======== + + add("Flute", "Wind", { + {"osc1Wave", 0}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, + {"osc2Wave", 0}, {"osc2Oct", 1}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.2f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 1500}, {"filterRes", 0.08f}, {"filterEnvAmt", 0.1f}, {"keyTrack", 0.8f}, + {"fEnvAttack", 0.05f}, {"fEnvDecay", 0.3f}, {"fEnvSustain", 0.6f}, {"fEnvRelease", 0.4f}, + {"envAttack", 0.08f}, {"envDecay", 0.3f}, {"envSustain", 0.8f}, {"envRelease", 0.5f}, + {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -20}, {"compRatio", 2}, {"compAttack", 8}, {"compRelease", 100}, {"compMakeup", 2}, {"compMix", 0.4f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 5.0f}, {"lfo1Depth", 0.12f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 250}, {"delayFeedback", 0}, {"delayMix", 0}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.5f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.2f} + }); + + add("Saxophone", "Wind", { + {"osc1Wave", 3}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", -7}, {"osc1Level", 0.6f}, + {"osc2Wave", 1}, {"osc2Oct", 0}, {"osc2Semi", 0}, {"osc2Fine", 7}, {"osc2Level", 0.4f}, + {"phaseOffset", 0.35f}, + {"filterType", 0}, {"filterCutoff", 1000}, {"filterRes", 0.2f}, {"filterEnvAmt", 0.3f}, {"keyTrack", 0.6f}, + {"fEnvAttack", 0.03f}, {"fEnvDecay", 0.3f}, {"fEnvSustain", 0.5f}, {"fEnvRelease", 0.4f}, + {"envAttack", 0.05f}, {"envDecay", 0.3f}, {"envSustain", 0.75f}, {"envRelease", 0.4f}, + {"pan", 0}, {"drive", 1.5f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.05f}, {"distMix", 0.08f}, + {"compThreshold", -16}, {"compRatio", 3}, {"compAttack", 5}, {"compRelease", 80}, {"compMakeup", 2}, {"compMix", 0.4f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 5.5f}, {"lfo1Depth", 0.15f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 200}, {"delayFeedback", 0.1f}, {"delayMix", 0.06f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.4f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.16f} + }); + + // ======== ARP ======== + + add("Bright Arp", "Arp", { + {"osc1Wave", 2}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, + {"osc2Wave", 2}, {"osc2Oct", 0}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 3000}, {"filterRes", 0.25f}, {"filterEnvAmt", 0.8f}, {"keyTrack", 0.9f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.08f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.04f}, + {"envAttack", 0.001f}, {"envDecay", 0.08f}, {"envSustain", 0.0f}, {"envRelease", 0.04f}, + {"pan", 0}, {"drive", 1.8f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.1f}, {"distMix", 0.12f}, + {"compThreshold", -14}, {"compRatio", 4}, {"compAttack", 1}, {"compRelease", 25}, {"compMakeup", 3}, {"compMix", 0.5f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 130}, {"delayFeedback", 0.3f}, {"delayMix", 0.15f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.25f}, {"reverbDamping", 0.6f}, {"reverbMix", 0.1f} + }); + + add("Mellow Arp", "Arp", { + {"osc1Wave", 0}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, + {"osc2Wave", 3}, {"osc2Oct", 1}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.4f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 1200}, {"filterRes", 0.15f}, {"filterEnvAmt", 0.6f}, {"keyTrack", 0.7f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.15f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.1f}, + {"envAttack", 0.001f}, {"envDecay", 0.15f}, {"envSustain", 0.0f}, {"envRelease", 0.1f}, + {"pan", 0}, {"drive", 1.2f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -16}, {"compRatio", 3}, {"compAttack", 3}, {"compRelease", 40}, {"compMakeup", 2}, {"compMix", 0.4f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 250}, {"delayFeedback", 0.3f}, {"delayMix", 0.18f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.45f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.2f} + }); + + // ======== PLUCK ======== + + add("Koto Pluck", "Pluck", { + {"osc1Wave", 0}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, + {"osc2Wave", 4}, {"osc2Oct", 1}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.2f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 2500}, {"filterRes", 0.1f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.9f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.12f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.08f}, + {"envAttack", 0.001f}, {"envDecay", 0.15f}, {"envSustain", 0.0f}, {"envRelease", 0.1f}, + {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 0.8f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -18}, {"compRatio", 2}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 2}, {"compMix", 0.3f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 200}, {"delayFeedback", 0.2f}, {"delayMix", 0.1f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.4f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.18f} + }); + + add("Pizzicato", "Pluck", { + {"osc1Wave", 1}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, + {"osc2Wave", 1}, {"osc2Oct", 1}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 2200}, {"filterRes", 0.2f}, {"filterEnvAmt", 0.8f}, {"keyTrack", 0.8f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.06f}, + {"envAttack", 0.001f}, {"envDecay", 0.12f}, {"envSustain", 0.0f}, {"envRelease", 0.08f}, + {"pan", 0}, {"drive", 1.2f}, {"masterLevel", 0.78f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -16}, {"compRatio", 3}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 2}, {"compMix", 0.35f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 150}, {"delayFeedback", 0.25f}, {"delayMix", 0.12f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.35f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.15f} + }); + + // ======== MORE FX 2 ======== + + add("Bitcrush", "FX", { + {"osc1Wave", 2}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, + {"osc2Wave", 1}, {"osc2Oct", 0}, {"osc2Semi", 7}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 800}, {"filterRes", 0.3f}, {"filterEnvAmt", 0.4f}, {"keyTrack", 0.5f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.15f}, {"fEnvSustain", 0.4f}, {"fEnvRelease", 0.15f}, + {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.7f}, {"envRelease", 0.2f}, + {"pan", 0}, {"drive", 2.0f}, {"masterLevel", 0.7f}, + {"pitchBendRange", 2}, + {"distType", 2}, {"distAmount", 0.7f}, {"distMix", 0.7f}, + {"compThreshold", -14}, {"compRatio", 5}, {"compAttack", 2}, {"compRelease", 50}, {"compMakeup", 4}, {"compMix", 0.6f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 6.0f}, {"lfo1Depth", 0.3f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0.2f}, {"lfo2Depth", 0.5f}, {"lfo2Shape", 2}, {"lfo2Dest", 0}, + {"delayTime", 150}, {"delayFeedback", 0.3f}, {"delayMix", 0.15f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.4f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.2f} + }); + + add("Comb Filter", "FX", { + {"osc1Wave", 4}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.6f}, + {"osc2Wave", 4}, {"osc2Oct", 1}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.4f}, + {"phaseOffset", 0.5f}, + {"filterType", 1}, {"filterCutoff", 600}, {"filterRes", 0.9f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.0f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.2f}, {"fEnvSustain", 0.4f}, {"fEnvRelease", 0.2f}, + {"envAttack", 0.001f}, {"envDecay", 0.3f}, {"envSustain", 0.6f}, {"envRelease", 0.3f}, + {"pan", 0}, {"drive", 1.8f}, {"masterLevel", 0.7f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.1f}, {"distMix", 0.12f}, + {"compThreshold", -16}, {"compRatio", 4}, {"compAttack", 3}, {"compRelease", 60}, {"compMakeup", 3}, {"compMix", 0.5f}, + {"autoPanRate", 0.3f}, {"autoPanDepth", 0.5f}, + {"lfo1Rate", 3.0f}, {"lfo1Depth", 0.4f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0.1f}, {"lfo2Depth", 0.3f}, {"lfo2Shape", 1}, {"lfo2Dest", 0}, + {"delayTime", 300}, {"delayFeedback", 0.5f}, {"delayMix", 0.3f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.5f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.25f} + }); + + add("Granular Cloud", "FX", { + {"osc1Wave", 4}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.4f}, + {"osc2Wave", 4}, {"osc2Oct", 0}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 500}, {"filterRes", 0.5f}, {"filterEnvAmt", 0.5f}, {"keyTrack", 0.0f}, + {"fEnvAttack", 1.0f}, {"fEnvDecay", 2.0f}, {"fEnvSustain", 0.5f}, {"fEnvRelease", 3.0f}, + {"envAttack", 1.5f}, {"envDecay", 1.5f}, {"envSustain", 0.7f}, {"envRelease", 3.0f}, + {"pan", 0}, {"drive", 1.2f}, {"masterLevel", 0.6f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.05f}, {"distMix", 0.08f}, + {"compThreshold", -28}, {"compRatio", 1.5f}, {"compAttack", 40}, {"compRelease", 400}, {"compMakeup", 3}, {"compMix", 0.3f}, + {"autoPanRate", 0.2f}, {"autoPanDepth", 0.7f}, + {"lfo1Rate", 0.1f}, {"lfo1Depth", 0.5f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0.05f}, {"lfo2Depth", 0.3f}, {"lfo2Shape", 1}, {"lfo2Dest", 0}, + {"delayTime", 700}, {"delayFeedback", 0.7f}, {"delayMix", 0.5f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.95f}, {"reverbDamping", 0.05f}, {"reverbMix", 0.7f} + }); + + // ======== ENCORE 9 ======== + + add("Kalimba", "Pluck", { + {"osc1Wave", 0}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, + {"osc2Wave", 0}, {"osc2Oct", 2}, {"osc2Semi", 7}, {"osc2Fine", 0}, {"osc2Level", 0.4f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 3000}, {"filterRes", 0.05f}, {"filterEnvAmt", 0.6f}, {"keyTrack", 0.9f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.12f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.1f}, + {"envAttack", 0.001f}, {"envDecay", 0.14f}, {"envSustain", 0.0f}, {"envRelease", 0.12f}, + {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 0.8f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -18}, {"compRatio", 2}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 2}, {"compMix", 0.3f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 220}, {"delayFeedback", 0.25f}, {"delayMix", 0.12f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.4f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.18f} + }); + + add("Harp", "Pluck", { + {"osc1Wave", 0}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, + {"osc2Wave", 3}, {"osc2Oct", 1}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 3500}, {"filterRes", 0.08f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.9f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.15f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.1f}, + {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.0f}, {"envRelease", 0.15f}, + {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 0.78f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -18}, {"compRatio", 2}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 2}, {"compMix", 0.3f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 300}, {"delayFeedback", 0.3f}, {"delayMix", 0.15f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.5f}, {"reverbDamping", 0.3f}, {"reverbMix", 0.22f} + }); + + add("Acid Lead", "Lead", { + {"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.85f}, + {"osc2Wave", 1}, {"osc2Oct", 0}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.4f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 800}, {"filterRes", 0.95f}, {"filterEnvAmt", 0.95f}, {"keyTrack", 0.4f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.2f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.15f}, + {"envAttack", 0.001f}, {"envDecay", 0.18f}, {"envSustain", 0.6f}, {"envRelease", 0.2f}, + {"pan", 0}, {"drive", 2.6f}, {"masterLevel", 0.7f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.2f}, {"distMix", 0.25f}, + {"compThreshold", -12}, {"compRatio", 5}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 4}, {"compMix", 0.6f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 4.0f}, {"lfo1Depth", 0.3f}, {"lfo1Shape", 2}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 130}, {"delayFeedback", 0.25f}, {"delayMix", 0.12f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.2f}, {"reverbDamping", 0.7f}, {"reverbMix", 0.08f} + }); + + add("Deep House Bass", "Bass", { + {"osc1Wave", 1}, {"osc1Oct", -2}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.85f}, + {"osc2Wave", 0}, {"osc2Oct", -1}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 220}, {"filterRes", 0.55f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.4f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.18f}, {"fEnvSustain", 0.1f}, {"fEnvRelease", 0.12f}, + {"envAttack", 0.001f}, {"envDecay", 0.25f}, {"envSustain", 0.5f}, {"envRelease", 0.15f}, + {"pan", 0}, {"drive", 2.0f}, {"masterLevel", 0.8f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.15f}, {"distMix", 0.2f}, + {"compThreshold", -12}, {"compRatio", 5}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 4}, {"compMix", 0.7f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 120}, {"delayFeedback", 0.15f}, {"delayMix", 0.08f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.15f}, {"reverbDamping", 0.8f}, {"reverbMix", 0.05f} + }); + + add("Neuro Bass", "Bass", { + {"osc1Wave", 1}, {"osc1Oct", -2}, {"osc1Semi", 0}, {"osc1Fine", -10}, {"osc1Level", 0.9f}, + {"osc2Wave", 2}, {"osc2Oct", -1}, {"osc2Semi", 5}, {"osc2Fine", 14}, {"osc2Level", 0.6f}, + {"phaseOffset", 0.3f}, + {"filterType", 1}, {"filterCutoff", 300}, {"filterRes", 0.9f}, {"filterEnvAmt", 0.95f}, {"keyTrack", 0.2f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.12f}, {"fEnvSustain", 0.1f}, {"fEnvRelease", 0.1f}, + {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.5f}, {"envRelease", 0.15f}, + {"pan", 0}, {"drive", 4.0f}, {"masterLevel", 0.6f}, + {"pitchBendRange", 2}, + {"distType", 3}, {"distAmount", 0.5f}, {"distMix", 0.55f}, + {"compThreshold", -10}, {"compRatio", 8}, {"compAttack", 1}, {"compRelease", 25}, {"compMakeup", 6}, {"compMix", 0.8f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 5.0f}, {"lfo1Depth", 0.5f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0.2f}, {"lfo2Depth", 0.3f}, {"lfo2Shape", 2}, {"lfo2Dest", 0}, + {"delayTime", 80}, {"delayFeedback", 0.3f}, {"delayMix", 0.12f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.1f}, {"reverbDamping", 0.9f}, {"reverbMix", 0.03f} + }); + + add("Crystal Pad", "Pad", { + {"osc1Wave", 0}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.45f}, + {"osc2Wave", 0}, {"osc2Oct", 2}, {"osc2Semi", 7}, {"osc2Fine", 0}, {"osc2Level", 0.4f}, + {"phaseOffset", 0.6f}, + {"filterType", 0}, {"filterCutoff", 700}, {"filterRes", 0.08f}, {"filterEnvAmt", 0.2f}, {"keyTrack", 0.7f}, + {"fEnvAttack", 1.5f}, {"fEnvDecay", 2.5f}, {"fEnvSustain", 0.6f}, {"fEnvRelease", 4.0f}, + {"envAttack", 2.5f}, {"envDecay", 2.0f}, {"envSustain", 0.8f}, {"envRelease", 5.0f}, + {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 0.6f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -28}, {"compRatio", 1.5f}, {"compAttack", 40}, {"compRelease", 500}, {"compMakeup", 2}, {"compMix", 0.2f}, + {"autoPanRate", 0.12f}, {"autoPanDepth", 0.5f}, + {"lfo1Rate", 0.06f}, {"lfo1Depth", 0.2f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0.03f}, {"lfo2Depth", 0.12f}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 700}, {"delayFeedback", 0.55f}, {"delayMix", 0.35f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.92f}, {"reverbDamping", 0.08f}, {"reverbMix", 0.7f} + }); + + add("Trumpet", "Brass", { + {"osc1Wave", 2}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.75f}, + {"osc2Wave", 1}, {"osc2Oct", 0}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 2000}, {"filterRes", 0.25f}, {"filterEnvAmt", 0.5f}, {"keyTrack", 0.8f}, + {"fEnvAttack", 0.02f}, {"fEnvDecay", 0.2f}, {"fEnvSustain", 0.6f}, {"fEnvRelease", 0.2f}, + {"envAttack", 0.04f}, {"envDecay", 0.25f}, {"envSustain", 0.8f}, {"envRelease", 0.3f}, + {"pan", 0}, {"drive", 1.8f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.08f}, {"distMix", 0.1f}, + {"compThreshold", -14}, {"compRatio", 3}, {"compAttack", 3}, {"compRelease", 60}, {"compMakeup", 3}, {"compMix", 0.4f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 4.0f}, {"lfo1Depth", 0.1f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 180}, {"delayFeedback", 0.15f}, {"delayMix", 0.08f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.4f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.18f} + }); + + add("Steel Drum", "Keys", { + {"osc1Wave", 0}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, + {"osc2Wave", 0}, {"osc2Oct", 2}, {"osc2Semi", 0}, {"osc2Fine", 4}, {"osc2Level", 0.4f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 2500}, {"filterRes", 0.1f}, {"filterEnvAmt", 0.5f}, {"keyTrack", 0.9f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.15f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.12f}, + {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.0f}, {"envRelease", 0.15f}, + {"pan", 0}, {"drive", 1.2f}, {"masterLevel", 0.78f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0}, {"distMix", 0}, + {"compThreshold", -16}, {"compRatio", 3}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 2}, {"compMix", 0.35f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 250}, {"delayFeedback", 0.2f}, {"delayMix", 0.1f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.45f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.2f} + }); + + add("Echo Pluck", "Arp", { + {"osc1Wave", 1}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, + {"osc2Wave", 0}, {"osc2Oct", 1}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 2800}, {"filterRes", 0.2f}, {"filterEnvAmt", 0.85f}, {"keyTrack", 0.8f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.06f}, + {"envAttack", 0.001f}, {"envDecay", 0.12f}, {"envSustain", 0.0f}, {"envRelease", 0.08f}, + {"pan", 0}, {"drive", 1.6f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.1f}, {"distMix", 0.12f}, + {"compThreshold", -16}, {"compRatio", 3}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 3}, {"compMix", 0.45f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 290}, {"delayFeedback", 0.55f}, {"delayMix", 0.35f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.4f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.2f} + }); + + // ======== TECHNO ======== + + add("Techno Stab", "Techno", { + {"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, + {"osc2Wave", 2}, {"osc2Oct", 0}, {"osc2Semi", 7}, {"osc2Fine", 5}, {"osc2Level", 0.5f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 1200}, {"filterRes", 0.4f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.6f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.18f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.12f}, + {"envAttack", 0.001f}, {"envDecay", 0.18f}, {"envSustain", 0.0f}, {"envRelease", 0.12f}, + {"pan", 0}, {"drive", 1.8f}, {"masterLevel", 0.8f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.1f}, {"distMix", 0.12f}, + {"compThreshold", -14}, {"compRatio", 4}, {"compAttack", 1}, {"compRelease", 40}, {"compMakeup", 3}, {"compMix", 0.5f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 1.5f}, {"lfo1Depth", 0.15f}, {"lfo1Shape", 0}, {"lfo1Dest", 3}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 200}, {"delayFeedback", 0.2f}, {"delayMix", 0.1f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.3f}, {"reverbDamping", 0.6f}, {"reverbMix", 0.1f} + }); + + add("Acid Pulse", "Techno", { + {"osc1Wave", 1}, {"osc1Oct", -1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, + {"osc2Wave", 1}, {"osc2Oct", -1}, {"osc2Semi", 0}, {"osc2Fine", 8}, {"osc2Level", 0.5f}, + {"phaseOffset", 0.5f}, + {"filterType", 0}, {"filterCutoff", 300}, {"filterRes", 0.8f}, {"filterEnvAmt", 0.8f}, {"keyTrack", 0.3f}, + {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.2f}, {"fEnvSustain", 0.1f}, {"fEnvRelease", 0.15f}, + {"envAttack", 0.001f}, {"envDecay", 0.25f}, {"envSustain", 0.5f}, {"envRelease", 0.2f}, + {"pan", 0}, {"drive", 2.2f}, {"masterLevel", 0.75f}, + {"pitchBendRange", 2}, + {"distType", 0}, {"distAmount", 0.2f}, {"distMix", 0.25f}, + {"compThreshold", -12}, {"compRatio", 5}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 4}, {"compMix", 0.6f}, + {"autoPanRate", 0}, {"autoPanDepth", 0}, + {"lfo1Rate", 0.8f}, {"lfo1Depth", 0.18f}, {"lfo1Shape", 2}, {"lfo1Dest", 3}, + {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, + {"delayTime", 120}, {"delayFeedback", 0.3f}, {"delayMix", 0.15f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, + + {"reverbSize", 0.2f}, {"reverbDamping", 0.7f}, {"reverbMix", 0.08f} + }); } }; diff --git a/bg.png b/bg.png index 1ad178e..666a47e 100644 Binary files a/bg.png and b/bg.png differ