From d034139b5ec508562684a19713d0741f1da6c698 Mon Sep 17 00:00:00 2001 From: Armin Date: Thu, 13 Aug 2026 02:09:39 +0200 Subject: [PATCH] rework arpeggiator with blank notes and progressions --- Source/DSP/Arpeggiator.h | 63 ++++++++++++---- Source/PluginEditor.cpp | 145 +++++++++++++++++++++++++++---------- Source/PluginEditor.h | 39 +++++++--- Source/PluginProcessor.cpp | 2 +- Source/PresetManager.h | 74 +++++++++---------- 5 files changed, 219 insertions(+), 104 deletions(-) diff --git a/Source/DSP/Arpeggiator.h b/Source/DSP/Arpeggiator.h index 6d31edb..528ad1e 100644 --- a/Source/DSP/Arpeggiator.h +++ b/Source/DSP/Arpeggiator.h @@ -30,6 +30,8 @@ public: C3C4A, C3C4B, C3C4C, + C3C4D, + C3C4E, numPatterns }; @@ -123,9 +125,16 @@ public: } if (pattern == Chord) { + static const bool chordBlanks[] = + {false, false, true, false, false, true, false, false, + true, false, false, true, false, true, false, true}; + bool blank = chordBlanks[stepIndex % 16]; + ++stepIndex; notesToStop = currentNotes; - notesToPlay = pool; currentNotes.clear(); + if (blank) + return; + notesToPlay = pool; for (const auto& np : pool) currentNotes.push_back(np.note); return; @@ -145,11 +154,15 @@ public: notesToStop = currentNotes; currentNotes.clear(); - currentNotes.push_back(np.note); - notesToPlay.push_back(np); + if (np.note != restNote) { + currentNotes.push_back(np.note); + notesToPlay.push_back(np); + } } private: + static constexpr int restNote = -1; + // Harmony patterns arpeggiate a third + fifth after each root: minor // (root, +3, +7) or major (root, +4, +7). Each is a separate step. bool hasHarmony() const { @@ -300,23 +313,30 @@ private: } break; case PinkyUp: - case PinkyDown: - for (int hi = n - 1, lo = 0; hi >= lo; --hi, ++lo) { - if (pattern == PinkyUp) { - push(hi); - if (lo < hi) push(lo); - } else { - push(lo); - if (lo < hi) push(hi); - } + case PinkyDown: { + int anchor = heldNotes.empty() ? 48 : heldNotes.back(); + int up = anchor + 12; + up = up > 127 ? 127 : up; + float vel = heldNotes.empty() ? 0.9f : velocities[heldNotes.back()]; + NotePitch rest{restNote, vel}; + order.clear(); + if (pattern == PinkyUp) { + order = {{anchor, vel}, rest, {up, vel}, {anchor, vel}, + rest, {up, vel}, {anchor, vel}, {anchor, vel}}; + } else { + order = {{up, vel}, rest, {anchor, vel}, {up, vel}, + rest, {anchor, vel}, {up, vel}, {up, vel}}; } break; + } case AsPlayed: order = pool; break; case C3C4A: case C3C4B: - case C3C4C: { + case C3C4C: + case C3C4D: + case C3C4E: { int anchor = heldNotes.empty() ? 48 : heldNotes.back(); int up = anchor + 12; up = up > 127 ? 127 : up; @@ -328,9 +348,20 @@ private: } else if (pattern == C3C4B) { order = {{up, vel}, {anchor, vel}, {anchor, vel}, {anchor, vel}, {anchor, vel}, {anchor, vel}, {anchor, vel}, {anchor, vel}}; - } else { + } else if (pattern == C3C4C) { order = {{anchor, vel}, {anchor, vel}, {anchor, vel}, {up, vel}, {anchor, vel}, {anchor, vel}, {anchor, vel}, {anchor, vel}}; + } else if (pattern == C3C4D) { + order = {{anchor, vel}, {anchor, vel}, {up, vel}, {anchor, vel}, + {anchor, vel}, {up, vel}, {anchor, vel}, {anchor, vel}, + {up, vel}, {anchor, vel}, {anchor, vel}, {up, vel}, + {anchor, vel}, {anchor, vel}, {anchor, vel}, {anchor, vel}}; + } else { + NotePitch rest{restNote, vel}; + order = {{anchor, vel}, {anchor, vel}, rest, {anchor, vel}, + {anchor, vel}, rest, {anchor, vel}, {anchor, vel}, + rest, {anchor, vel}, {anchor, vel}, rest, + {anchor, vel}, {anchor, vel}, {anchor, vel}, {anchor, vel}}; } break; } @@ -359,7 +390,9 @@ private: } if (direction == DirectionDown && pattern != Random && pattern != RandomOnce - && pattern != AsPlayed && pattern != C3C4A && pattern != C3C4B && pattern != C3C4C) + && pattern != AsPlayed && pattern != C3C4A && pattern != C3C4B + && pattern != C3C4C && pattern != C3C4D && pattern != C3C4E + && pattern != PinkyUp && pattern != PinkyDown) std::sort(order.begin(), order.end(), [](const NotePitch& a, const NotePitch& b) { return a.note > b.note; }); diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index 4b16eab..326e1c4 100644 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -489,8 +489,75 @@ void MidiLed::paint(juce::Graphics& g) { g.fillEllipse(centre.x - radius * 0.75f, centre.y - radius * 0.75f, radius * 1.5f, radius * 1.5f); } +// --- Clickable state LED (on/off, direction) --- +LedToggle::LedToggle(juce::AudioProcessorValueTreeState& apvts, const juce::String& paramId, + const juce::String& onText, const juce::String& offText) + : apvts(apvts), paramId(paramId), onText(onText), offText(offText) { + startTimerHz(30); + setMouseCursor(juce::MouseCursor::PointingHandCursor); +} + +void LedToggle::timerCallback() { + bool v = apvts.getRawParameterValue(paramId)->load() > 0.5f; + if (v != lit) { + lit = v; + repaint(); + if (onChange) + onChange(); + } +} + +void LedToggle::mouseDown(const juce::MouseEvent&) { + auto* param = apvts.getParameter(paramId); + float newVal = param->getValue() > 0.5f ? 0.0f : 1.0f; + param->beginChangeGesture(); + param->setValueNotifyingHost(newVal); + param->endChangeGesture(); +} + +void LedToggle::mouseEnter(const juce::MouseEvent&) { + setMouseCursor(juce::MouseCursor::PointingHandCursor); +} + +void LedToggle::paint(juce::Graphics& g) { + auto b = getLocalBounds().toFloat(); + float ledD = juce::jmin(22.0f, b.getHeight() - 8.0f); + float radius = ledD * 0.5f; + auto centre = juce::Point(b.getX() + radius + 4.0f, b.getCentreY()); + + if (lit) { + float auraR = radius * 1.9f; + float maxAura = juce::jmin(centre.x - b.getX(), b.getRight() - centre.x, + centre.y - b.getY(), b.getBottom() - centre.y) - 1.0f; + auraR = juce::jmin(auraR, maxAura); + g.setColour(juce::Colour(0xffccaa44).withAlpha(0.2f)); + g.fillEllipse(centre.x - auraR, centre.y - auraR, auraR * 2.0f, auraR * 2.0f); + } + + g.setColour(juce::Colour(0xff1a1200)); + g.fillEllipse(centre.x - radius, centre.y - radius, radius * 2.0f, radius * 2.0f); + g.setColour(juce::Colour(0xff555555)); + g.drawEllipse(centre.x - radius, centre.y - radius, radius * 2.0f, radius * 2.0f, 1.5f); + + g.setColour(lit ? juce::Colour(0xffeebb55) : juce::Colour(0xff3a2a06)); + g.fillEllipse(centre.x - radius * 0.78f, centre.y - radius * 0.78f, radius * 1.56f, radius * 1.56f); + + g.setFont(juce::Font(juce::FontOptions(10.0f).withStyle("Bold"))); + g.setColour(lit ? juce::Colour(0xffeebb55) : juce::Colour(0xff666666)); + g.drawText(lit ? onText : offText, + juce::Rectangle(b.getX() + ledD + 12.0f, b.getY(), + b.getWidth() - ledD - 12.0f, b.getHeight()), + juce::Justification::centredLeft); +} + MainContentComponent::MainContentComponent(ChromaFlockProcessor& p) - : processorRef(p), vuMeter(p), waveformDisplay(p), pianoRoll(p), midiLed(p) { + : processorRef(p), vuMeter(p), waveformDisplay(p), pianoRoll(p), midiLed(p), + arpEnabledLed(p.apvts, "arpEnabled", "ON", "OFF"), + arpDirectionLed(p.apvts, "arpDirection", "ON", "OFF"), + delayPingPongLed(p.apvts, "delayPingPong", "ON", "OFF"), + lfo1SyncLed(p.apvts, "lfo1Sync", "SYNC ON", "SYNC OFF"), + lfo2SyncLed(p.apvts, "lfo2Sync", "SYNC ON", "SYNC OFF"), + delaySyncLed(p.apvts, "delaySync", "SYNC ON", "SYNC OFF") { auto setupParam = [&](juce::Slider& knob, std::unique_ptr& attach, const juce::String& paramId, const juce::String& name) { @@ -571,32 +638,32 @@ MainContentComponent::MainContentComponent(ChromaFlockProcessor& p) setupParam(lfo1DepthKnob, lfo1DepthAttach, "lfo1Depth", "DEPTH"); setupCB(lfo1ShapeBox, lfo1ShapeAttach, "lfo1Shape", {"Sine", "Triangle", "Saw", "Square"}); setupCB(lfo1DestBox, lfo1DestAttach, "lfo1Dest", {"Filter", "OSC1", "OSC2", "Both OSC", "OSC2 Phase"}); - setupCB(lfo1SyncBox, lfo1SyncAttach, "lfo1Sync", {"Sync Off", "Sync On"}); - lfo1SyncBox.onChange = [this]() { - setupSyncKnob(lfo1RateKnob, lfo1RateAttach, lfo1BeatAttach, "lfo1Rate", "lfo1Beat", lfo1SyncBox); + addAndMakeVisible(lfo1SyncLed); + lfo1SyncLed.onChange = [this]() { + setupSyncKnob(lfo1RateKnob, lfo1RateAttach, lfo1BeatAttach, "lfo1Rate", "lfo1Beat", lfo1SyncLed.isLit()); }; - setupSyncKnob(lfo1RateKnob, lfo1RateAttach, lfo1BeatAttach, "lfo1Rate", "lfo1Beat", lfo1SyncBox); + setupSyncKnob(lfo1RateKnob, lfo1RateAttach, lfo1BeatAttach, "lfo1Rate", "lfo1Beat", lfo1SyncLed.isLit()); setupKnob(lfo2RateKnob, "RATE"); setupParam(lfo2DepthKnob, lfo2DepthAttach, "lfo2Depth", "DEPTH"); setupCB(lfo2ShapeBox, lfo2ShapeAttach, "lfo2Shape", {"Sine", "Triangle", "Saw", "Square"}); setupCB(lfo2DestBox, lfo2DestAttach, "lfo2Dest", {"Filter", "OSC1", "OSC2", "Both OSC", "OSC2 Phase"}); - setupCB(lfo2SyncBox, lfo2SyncAttach, "lfo2Sync", {"Sync Off", "Sync On"}); - lfo2SyncBox.onChange = [this]() { - setupSyncKnob(lfo2RateKnob, lfo2RateAttach, lfo2BeatAttach, "lfo2Rate", "lfo2Beat", lfo2SyncBox); + addAndMakeVisible(lfo2SyncLed); + lfo2SyncLed.onChange = [this]() { + setupSyncKnob(lfo2RateKnob, lfo2RateAttach, lfo2BeatAttach, "lfo2Rate", "lfo2Beat", lfo2SyncLed.isLit()); }; - setupSyncKnob(lfo2RateKnob, lfo2RateAttach, lfo2BeatAttach, "lfo2Rate", "lfo2Beat", lfo2SyncBox); + setupSyncKnob(lfo2RateKnob, lfo2RateAttach, lfo2BeatAttach, "lfo2Rate", "lfo2Beat", lfo2SyncLed.isLit()); // FX2 setupKnob(delayTimeKnob, "TIME"); - setupCB(delaySyncBox, delaySyncAttach, "delaySync", {"Sync Off", "Sync On"}); - delaySyncBox.onChange = [this]() { - setupSyncKnob(delayTimeKnob, delayTimeAttach, delayBeatAttach, "delayTime", "delayBeat", delaySyncBox); + addAndMakeVisible(delaySyncLed); + delaySyncLed.onChange = [this]() { + setupSyncKnob(delayTimeKnob, delayTimeAttach, delayBeatAttach, "delayTime", "delayBeat", delaySyncLed.isLit()); }; - setupSyncKnob(delayTimeKnob, delayTimeAttach, delayBeatAttach, "delayTime", "delayBeat", delaySyncBox); + setupSyncKnob(delayTimeKnob, delayTimeAttach, delayBeatAttach, "delayTime", "delayBeat", delaySyncLed.isLit()); setupParam(delayFbKnob, delayFbAttach, "delayFeedback", "FBACK"); setupParam(delayMixKnob, delayMixAttach, "delayMix", "MIX"); - setupParam(delayPingPongKnob, delayPingPongAttach, "delayPingPong", "PING"); + addAndMakeVisible(delayPingPongLed); setupParam(reverbSizeKnob, reverbSizeAttach, "reverbSize", "SIZE"); setupParam(reverbDampKnob, reverbDampAttach, "reverbDamping", "DAMP"); setupParam(reverbMixKnob, reverbMixAttach, "reverbMix", "MIX"); @@ -691,20 +758,21 @@ MainContentComponent::MainContentComponent(ChromaFlockProcessor& p) label.setJustificationType(juce::Justification::centred); addAndMakeVisible(label); }; - setupArpLabel(arpEnabledLabel, "ON"); + setupArpLabel(arpEnabledLabel, "ON/OFF"); setupArpLabel(arpPatternLabel, "PATTERN"); setupArpLabel(arpOctavesLabel, "OCTAVES"); - setupArpLabel(arpDirectionLabel, "DIR"); + setupArpLabel(arpDirectionLabel, "INVERT"); setupArpLabel(arpRateLabel, "RATE"); - setupCB(arpEnabledBox, arpEnabledAttach, "arpEnabled", {"Off", "On"}); + addAndMakeVisible(arpEnabledLed); + addAndMakeVisible(arpDirectionLed); + setupCB(arpPatternBox, arpPatternAttach, "arpPattern", {"Up / Minor", "Down / Minor", "Up & Down / Major", "Down & Up / Major", "Random", "As Played", "Chord", "Up & Down X", "Down & Up X", "Random Once", "Octave Up", "Octave Down", "Pinky Up", "Pinky Down", "Up / Major", "Down / Major", - "Up & Down / Minor", "C3/C4 1", "C3/C4 2", "C3/C4 3"}); + "Up & Down / Minor", "C3/C4 1", "C3/C4 2", "C3/C4 3", "C3/C4 4", "C3/C4 5"}); setupCB(arpOctavesBox, arpOctavesAttach, "arpOctaves", {"1", "2", "3"}); - setupCB(arpDirectionBox, arpDirectionAttach, "arpDirection", {"Up", "Down"}); setupCB(arpRateBox, arpRateAttach, "arpRate", {"1/32", "1/16", "1/8", "1/4", "1/2", "1", "2"}); setupCombo(uiScaleBox); @@ -762,11 +830,10 @@ void MainContentComponent::setupSyncKnob(juce::Slider& knob, std::unique_ptr& beatAttach, const juce::String& rateId, const juce::String& beatId, - juce::ComboBox& syncBox) { - bool on = syncBox.getSelectedId() == 2; + bool syncOn) { rateAttach.reset(); beatAttach.reset(); - if (on) + if (syncOn) beatAttach = std::make_unique(processorRef.apvts, beatId, knob); else rateAttach = std::make_unique(processorRef.apvts, rateId, knob); @@ -916,9 +983,9 @@ void MainContentComponent::loadPresetFile() { currentPresetIndex = -1; patchLCD.setText(file.getFileNameWithoutExtension()); - setupSyncKnob(lfo1RateKnob, lfo1RateAttach, lfo1BeatAttach, "lfo1Rate", "lfo1Beat", lfo1SyncBox); - setupSyncKnob(lfo2RateKnob, lfo2RateAttach, lfo2BeatAttach, "lfo2Rate", "lfo2Beat", lfo2SyncBox); - setupSyncKnob(delayTimeKnob, delayTimeAttach, delayBeatAttach, "delayTime", "delayBeat", delaySyncBox); + setupSyncKnob(lfo1RateKnob, lfo1RateAttach, lfo1BeatAttach, "lfo1Rate", "lfo1Beat", lfo1SyncLed.isLit()); + setupSyncKnob(lfo2RateKnob, lfo2RateAttach, lfo2BeatAttach, "lfo2Rate", "lfo2Beat", lfo2SyncLed.isLit()); + setupSyncKnob(delayTimeKnob, delayTimeAttach, delayBeatAttach, "delayTime", "delayBeat", delaySyncLed.isLit()); }); } @@ -930,11 +997,11 @@ void MainContentComponent::applyCurrentPreset() { processorRef.presetManager.applyPreset(presets[currentPresetIndex].name, processorRef.apvts); patchLCD.setText(presets[currentPresetIndex].name); - // The ComboBoxAttachment updates the sync boxes without firing onChange, - // so re-sync the rate/beat knob attachments to match. - setupSyncKnob(lfo1RateKnob, lfo1RateAttach, lfo1BeatAttach, "lfo1Rate", "lfo1Beat", lfo1SyncBox); - setupSyncKnob(lfo2RateKnob, lfo2RateAttach, lfo2BeatAttach, "lfo2Rate", "lfo2Beat", lfo2SyncBox); - setupSyncKnob(delayTimeKnob, delayTimeAttach, delayBeatAttach, "delayTime", "delayBeat", delaySyncBox); + // The LedToggle updates itself via its timer, so re-sync the rate/beat + // knob attachments to match. + setupSyncKnob(lfo1RateKnob, lfo1RateAttach, lfo1BeatAttach, "lfo1Rate", "lfo1Beat", lfo1SyncLed.isLit()); + setupSyncKnob(lfo2RateKnob, lfo2RateAttach, lfo2BeatAttach, "lfo2Rate", "lfo2Beat", lfo2SyncLed.isLit()); + setupSyncKnob(delayTimeKnob, delayTimeAttach, delayBeatAttach, "delayTime", "delayBeat", delaySyncLed.isLit()); } void MainContentComponent::randomizeParameters() { @@ -957,9 +1024,9 @@ void MainContentComponent::randomizeParameters() { 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); + setupSyncKnob(lfo1RateKnob, lfo1RateAttach, lfo1BeatAttach, "lfo1Rate", "lfo1Beat", lfo1SyncLed.isLit()); + setupSyncKnob(lfo2RateKnob, lfo2RateAttach, lfo2BeatAttach, "lfo2Rate", "lfo2Beat", lfo2SyncLed.isLit()); + setupSyncKnob(delayTimeKnob, delayTimeAttach, delayBeatAttach, "delayTime", "delayBeat", delaySyncLed.isLit()); } void MainContentComponent::paint(juce::Graphics& g) { @@ -1219,14 +1286,14 @@ void MainContentComponent::resized() { lfo1DepthKnob.setBounds(132, lfoKnobY, lfoKnobSize, lfoKnobSize); lfo1ShapeBox.setBounds(242, lfoKnobY + (lfoKnobSize - 28) / 2, 105, 28); lfo1DestBox.setBounds(357, lfoKnobY + (lfoKnobSize - 28) / 2, 105, 28); - lfo1SyncBox.setBounds(22, lfoKnobY + lfoKnobSize + 6, 200, 28); + lfo1SyncLed.setBounds(22, lfoKnobY + lfoKnobSize + 6, 200, 28); // LFO 2 sub-section (X=560, Y=642, W=530, H=110) lfo2RateKnob.setBounds(568, lfoKnobY, lfoKnobSize, lfoKnobSize); lfo2DepthKnob.setBounds(678, lfoKnobY, lfoKnobSize, lfoKnobSize); lfo2ShapeBox.setBounds(788, lfoKnobY + (lfoKnobSize - 28) / 2, 105, 28); lfo2DestBox.setBounds(903, lfoKnobY + (lfoKnobSize - 28) / 2, 105, 28); - lfo2SyncBox.setBounds(568, lfoKnobY + lfoKnobSize + 6, 200, 28); + lfo2SyncLed.setBounds(568, lfoKnobY + lfoKnobSize + 6, 200, 28); // --- FX2 SECTION --- int fx2KnobY = lfoKnobY; @@ -1237,8 +1304,8 @@ void MainContentComponent::resized() { delayTimeKnob.setBounds(dx, fx2KnobY, lfoKnobSize, lfoKnobSize); delayFbKnob.setBounds(dx + dGap, fx2KnobY, lfoKnobSize, lfoKnobSize); delayMixKnob.setBounds(dx + dGap * 2, fx2KnobY, lfoKnobSize, lfoKnobSize); - delayPingPongKnob.setBounds(dx + dGap * 3, fx2KnobY, lfoKnobSize, lfoKnobSize); - delaySyncBox.setBounds(dx, fx2KnobY + lfoKnobSize + 6, 250, 28); + delayPingPongLed.setBounds(dx + dGap * 3, fx2KnobY, lfoKnobSize, lfoKnobSize); + delaySyncLed.setBounds(dx, fx2KnobY + lfoKnobSize + 6, 250, 28); // Reverb sub-section: SIZE, DAMP, MIX (right edge aligned to 1650) { @@ -1297,7 +1364,7 @@ void MainContentComponent::resized() { int x = arpX + (arpW - totalW) / 2; arpEnabledLabel.setBounds(x, labelY, widths[0], labelH); - arpEnabledBox.setBounds(x, comboY, widths[0], comboH); + arpEnabledLed.setBounds(x, comboY, widths[0], comboH); x += widths[0] + gap; arpPatternLabel.setBounds(x, labelY, widths[1], labelH); @@ -1309,7 +1376,7 @@ void MainContentComponent::resized() { x += widths[2] + gap; arpDirectionLabel.setBounds(x, labelY, widths[3], labelH); - arpDirectionBox.setBounds(x, comboY, widths[3], comboH); + arpDirectionLed.setBounds(x, comboY, widths[3], comboH); x += widths[3] + gap; arpRateLabel.setBounds(x, labelY, widths[4], labelH); diff --git a/Source/PluginEditor.h b/Source/PluginEditor.h index 1500468..3a8b0d1 100644 --- a/Source/PluginEditor.h +++ b/Source/PluginEditor.h @@ -79,6 +79,23 @@ private: ChromaFlockProcessor& processor; }; +class LedToggle : public juce::Component, public juce::Timer { +public: + LedToggle(juce::AudioProcessorValueTreeState& apvts, const juce::String& paramId, + const juce::String& onText, const juce::String& offText); + void paint(juce::Graphics& g) override; + void mouseDown(const juce::MouseEvent&) override; + void mouseEnter(const juce::MouseEvent&) override; + void timerCallback() override; + bool isLit() const { return lit; } + std::function onChange; +private: + juce::AudioProcessorValueTreeState& apvts; + juce::String paramId; + juce::String onText, offText; + bool lit = false; +}; + class PianoRollComponent : public juce::Component, public juce::Timer { public: explicit PianoRollComponent(ChromaFlockProcessor& p) : processor(p) { startTimerHz(60); } @@ -167,18 +184,19 @@ private: // LFO controls KnobSlider lfo1RateKnob, lfo1DepthKnob; - juce::ComboBox lfo1ShapeBox, lfo1DestBox, lfo1SyncBox; + juce::ComboBox lfo1ShapeBox, lfo1DestBox; KnobSlider lfo2RateKnob, lfo2DepthKnob; - juce::ComboBox lfo2ShapeBox, lfo2DestBox, lfo2SyncBox; + juce::ComboBox lfo2ShapeBox, lfo2DestBox; + LedToggle lfo1SyncLed, lfo2SyncLed, delaySyncLed; // FX2 controls - KnobSlider delayTimeKnob, delayFbKnob, delayMixKnob, delayPingPongKnob; - juce::ComboBox delaySyncBox; + KnobSlider delayTimeKnob, delayFbKnob, delayMixKnob; KnobSlider reverbSizeKnob, reverbDampKnob, reverbMixKnob; // Arpeggiator controls juce::Label arpEnabledLabel, arpPatternLabel, arpOctavesLabel, arpDirectionLabel, arpRateLabel; - juce::ComboBox arpEnabledBox, arpPatternBox, arpOctavesBox, arpDirectionBox, arpRateBox; + juce::ComboBox arpPatternBox, arpOctavesBox, arpRateBox; + LedToggle arpEnabledLed, arpDirectionLed, delayPingPongLed; // Preset menu juce::TextButton presetButton{"PRESET"}; @@ -212,19 +230,16 @@ private: // LFO attachments std::unique_ptr lfo1RateAttach, lfo1DepthAttach, lfo1BeatAttach; - std::unique_ptr lfo1ShapeAttach, lfo1DestAttach, lfo1SyncAttach; + std::unique_ptr lfo1ShapeAttach, lfo1DestAttach; std::unique_ptr lfo2RateAttach, lfo2DepthAttach, lfo2BeatAttach; - std::unique_ptr lfo2ShapeAttach, lfo2DestAttach, lfo2SyncAttach; + std::unique_ptr lfo2ShapeAttach, lfo2DestAttach; // FX2 attachments std::unique_ptr delayTimeAttach, delayFbAttach, delayMixAttach, delayBeatAttach; - std::unique_ptr delaySyncAttach; - std::unique_ptr delayPingPongAttach; std::unique_ptr reverbSizeAttach, reverbDampAttach, reverbMixAttach; // Arpeggiator attachments - std::unique_ptr arpEnabledAttach, arpPatternAttach, arpOctavesAttach; - std::unique_ptr arpDirectionAttach, arpRateAttach; + std::unique_ptr arpPatternAttach, arpOctavesAttach, arpRateAttach; void setupLabel(juce::Label& label, const juce::String& text); void setupKnob(juce::Slider& knob, const juce::String& name); @@ -234,7 +249,7 @@ private: std::unique_ptr& beatAttach, const juce::String& rateId, const juce::String& beatId, - juce::ComboBox& syncBox); + bool syncOn); void showPresetMenu(); void showFileMenu(); void loadPresetFile(); diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index 3d92b7e..7bb1eee 100644 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -284,7 +284,7 @@ juce::AudioProcessorValueTreeState::ParameterLayout ChromaFlockProcessor::create "Down & Up / Major", "Random", "As Played", "Chord", "Up & Down X", "Down & Up X", "Random Once", "Octave Up", "Octave Down", "Pinky Up", "Pinky Down", "Up / Major", "Down / Major", "Up & Down / Minor", - "C3/C4 1", "C3/C4 2", "C3/C4 3"}, 0)); + "C3/C4 1", "C3/C4 2", "C3/C4 3", "C3/C4 4", "C3/C4 5"}, 0)); layout.add(std::make_unique( juce::ParameterID{"arpOctaves", 1}, "Arp Octaves", juce::StringArray{"1", "2", "3"}, 1)); diff --git a/Source/PresetManager.h b/Source/PresetManager.h index 4989d96..64ee14c 100644 --- a/Source/PresetManager.h +++ b/Source/PresetManager.h @@ -150,8 +150,8 @@ private: {"envAttack", 0.001f}, {"envDecay", 0.25f}, {"envSustain", 0.6f}, {"envRelease", 0.15f}, {"pan", 0}, {"drive", 3.5f}, {"masterLevel", 0.625}, {"pitchBendRange", 2}, - {"distType", 2}, {"distAmount", 0}, - {"compThreshold", -14}, {"compRatio", 6}, {"compAttack", 2}, {"compRelease", 50}, {"compMakeup", 5}, + {"distType", 2}, {"distAmount", 0.4f}, + {"compThreshold", -19}, {"compRatio", 8}, {"compAttack", 2}, {"compRelease", 50}, {"compMakeup", 5}, {"autoPanRate", 2}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, @@ -402,29 +402,29 @@ private: }); // --- FX --- - add("Wobble Cell", "FX1", {{{"osc1Wave", 2}, {"osc1Oct", -1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 1}, {"osc2Oct", -1}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 400}, {"filterRes", 0.8f}, {"filterEnvAmt", 0.9f}, {"keyTrack", 0.3f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.3f}, {"fEnvSustain", 0.5f}, {"fEnvRelease", 0.3f}, {"envAttack", 0.005f}, {"envDecay", 0.3f}, {"envSustain", 0.8f}, {"envRelease", 0.3f}, {"pan", 0}, {"drive", 2.5f}, {"masterLevel", 0.618}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"compThreshold", -15}, {"compRatio", 5}, {"compAttack", 5}, {"compRelease", 80}, {"compMakeup", 4}, {"autoPanRate", 2}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 4.0f}, {"lfo1Depth", 0.7f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 8.0f}, {"lfo2Depth", 0.3f}, {"lfo2Shape", 3}, {"lfo2Dest", 3}, {"delayTime", 200}, {"delayFeedback", 0.3f}, {"delayMix", 0.15f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.5f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.15f}}}); + add("Wobble Cell", "FX1", {{{"osc1Wave", 2}, {"osc1Oct", -1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 1}, {"osc2Oct", -1}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 400}, {"filterRes", 0.8f}, {"filterEnvAmt", 0.9f}, {"keyTrack", 0.3f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.3f}, {"fEnvSustain", 0.5f}, {"fEnvRelease", 0.3f}, {"envAttack", 0.005f}, {"envDecay", 0.3f}, {"envSustain", 0.8f}, {"envRelease", 0.3f}, {"pan", 0}, {"drive", 2.5f}, {"masterLevel", 0.618}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0.3f}, {"compThreshold", -20}, {"compRatio", 6}, {"compAttack", 5}, {"compRelease", 80}, {"compMakeup", 4}, {"autoPanRate", 2}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 4.0f}, {"lfo1Depth", 0.7f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 8.0f}, {"lfo2Depth", 0.3f}, {"lfo2Shape", 3}, {"lfo2Dest", 3}, {"delayTime", 200}, {"delayFeedback", 0.3f}, {"delayMix", 0.15f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.5f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.15f}}}); - add("Distortion Beam", "FX1", {{{"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, {"osc2Wave", 1}, {"osc2Oct", 0}, {"osc2Semi", 7}, {"osc2Fine", 0}, {"osc2Level", 0.6f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 600}, {"filterRes", 0.3f}, {"filterEnvAmt", 0.2f}, {"keyTrack", 0.5f}, {"fEnvAttack", 0.005f}, {"fEnvDecay", 0.3f}, {"fEnvSustain", 0.5f}, {"fEnvRelease", 0.3f}, {"envAttack", 0.005f}, {"envDecay", 0.2f}, {"envSustain", 0.8f}, {"envRelease", 0.3f}, {"pan", 0}, {"drive", 3.0f}, {"masterLevel", 0.734}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"compThreshold", -20}, {"compRatio", 4}, {"compAttack", 8}, {"compRelease", 100}, {"compMakeup", 6}, {"autoPanRate", 2}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 5.0f}, {"lfo1Depth", 0.2f}, {"lfo1Shape", 2}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 150}, {"delayFeedback", 0.2f}, {"delayMix", 0.1f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.3f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.1f}}}); + add("Distortion Beam", "FX1", {{{"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, {"osc2Wave", 1}, {"osc2Oct", 0}, {"osc2Semi", 7}, {"osc2Fine", 0}, {"osc2Level", 0.6f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 600}, {"filterRes", 0.3f}, {"filterEnvAmt", 0.2f}, {"keyTrack", 0.5f}, {"fEnvAttack", 0.005f}, {"fEnvDecay", 0.3f}, {"fEnvSustain", 0.5f}, {"fEnvRelease", 0.3f}, {"envAttack", 0.005f}, {"envDecay", 0.2f}, {"envSustain", 0.8f}, {"envRelease", 0.3f}, {"pan", 0}, {"drive", 3.0f}, {"masterLevel", 0.734}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0.35f}, {"compThreshold", -25}, {"compRatio", 6}, {"compAttack", 8}, {"compRelease", 100}, {"compMakeup", 6}, {"autoPanRate", 2}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 5.0f}, {"lfo1Depth", 0.2f}, {"lfo1Shape", 2}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 150}, {"delayFeedback", 0.2f}, {"delayMix", 0.1f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.3f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.1f}}}); add("Pan Matrix", "FX1", {{{"osc1Wave", 0}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.6f}, {"osc2Wave", 3}, {"osc2Oct", 0}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.4f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 800}, {"filterRes", 0.1f}, {"filterEnvAmt", 0}, {"keyTrack", 0.5f}, {"fEnvAttack", 0.01f}, {"fEnvDecay", 0.3f}, {"fEnvSustain", 0.5f}, {"fEnvRelease", 0.5f}, {"envAttack", 0.01f}, {"envDecay", 0.3f}, {"envSustain", 0.7f}, {"envRelease", 0.5f}, {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 1.0f}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"distSymmetry", 0}, {"distTone", 1.0f}, {"compThreshold", -20}, {"compRatio", 3}, {"compAttack", 10}, {"compRelease", 100}, {"compMakeup", 2}, {"autoPanRate", 2.0f}, {"autoPanDepth", 0.8f}, {"autoPanPhase", 0}, {"lfo1Rate", 0.3f}, {"lfo1Depth", 0.2f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.15f}, {"lfo2Depth", 0.15f}, {"lfo2Shape", 1}, {"lfo2Dest", 0}, {"delayTime", 300}, {"delayFeedback", 0.25f}, {"delayMix", 0.15f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.4f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.15f}}}); - add("Filtered Static", "FX1", {{{"osc1Wave", 4}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 4}, {"osc2Oct", 0}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 2}, {"filterCutoff", 400}, {"filterRes", 0.6f}, {"filterEnvAmt", 0.8f}, {"keyTrack", 0}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.5f}, {"fEnvSustain", 0.3f}, {"fEnvRelease", 0.5f}, {"envAttack", 0.01f}, {"envDecay", 0.5f}, {"envSustain", 0.5f}, {"envRelease", 1.0f}, {"pan", 0}, {"drive", 1.5f}, {"masterLevel", 1.0}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0}, {"compThreshold", -18}, {"compRatio", 4}, {"compAttack", 5}, {"compRelease", 100}, {"compMakeup", 4}, {"autoPanRate", 0.5f}, {"autoPanDepth", 0.6f}, {"autoPanPhase", 0}, {"lfo1Rate", 2.5f}, {"lfo1Depth", 0.5f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.4f}, {"lfo2Depth", 0.3f}, {"lfo2Shape", 2}, {"lfo2Dest", 0}, {"delayTime", 250}, {"delayFeedback", 0.35f}, {"delayMix", 0.2f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.6f}, {"reverbDamping", 0.3f}, {"reverbMix", 0.25f}}}); + add("Filtered Static", "FX1", {{{"osc1Wave", 4}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 4}, {"osc2Oct", 0}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 2}, {"filterCutoff", 400}, {"filterRes", 0.6f}, {"filterEnvAmt", 0.8f}, {"keyTrack", 0}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.5f}, {"fEnvSustain", 0.3f}, {"fEnvRelease", 0.5f}, {"envAttack", 0.01f}, {"envDecay", 0.5f}, {"envSustain", 0.5f}, {"envRelease", 1.0f}, {"pan", 0}, {"drive", 1.5f}, {"masterLevel", 1.0}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0.2f}, {"compThreshold", -23}, {"compRatio", 5}, {"compAttack", 5}, {"compRelease", 100}, {"compMakeup", 4}, {"autoPanRate", 0.5f}, {"autoPanDepth", 0.6f}, {"autoPanPhase", 0}, {"lfo1Rate", 2.5f}, {"lfo1Depth", 0.5f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.4f}, {"lfo2Depth", 0.3f}, {"lfo2Shape", 2}, {"lfo2Dest", 0}, {"delayTime", 250}, {"delayFeedback", 0.35f}, {"delayMix", 0.2f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.6f}, {"reverbDamping", 0.3f}, {"reverbMix", 0.25f}}}); add("Echo Buffer", "FX2", {{{"osc1Wave", 1}, {"osc1Oct", -1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 2}, {"osc2Oct", -1}, {"osc2Semi", 0}, {"osc2Fine", 5}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 500}, {"filterRes", 0.7f}, {"filterEnvAmt", 0.4f}, {"keyTrack", 0.3f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.3f}, {"fEnvSustain", 0.3f}, {"fEnvRelease", 0.3f}, {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.7f}, {"envRelease", 0.2f}, {"pan", 0}, {"drive", 1.5f}, {"masterLevel", 0.93}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"compThreshold", -16}, {"compRatio", 4}, {"compAttack", 5}, {"compRelease", 80}, {"compMakeup", 3}, {"autoPanRate", 2}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 0}, {"lfo1Depth", 0}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 500}, {"delayFeedback", 0.7f}, {"delayMix", 0.4f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.6f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.3f}}}); add("Reverse Wash", "FX2", {{{"osc1Wave", 3}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.6f}, {"osc2Wave", 0}, {"osc2Oct", 1}, {"osc2Semi", 12}, {"osc2Fine", 0}, {"osc2Level", 0.4f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 600}, {"filterRes", 0.2f}, {"filterEnvAmt", 0.3f}, {"keyTrack", 0.5f}, {"fEnvAttack", 0.5f}, {"fEnvDecay", 1.0f}, {"fEnvSustain", 0.5f}, {"fEnvRelease", 2.0f}, {"envAttack", 0.3f}, {"envDecay", 0.8f}, {"envSustain", 0.6f}, {"envRelease", 1.5f}, {"pan", 0}, {"drive", 1.2f}, {"masterLevel", 0.325f}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"distSymmetry", 0}, {"distTone", 1.0f}, {"compThreshold", -20}, {"compRatio", 2}, {"compAttack", 20}, {"compRelease", 200}, {"compMakeup", 2}, {"autoPanRate", 0.3f}, {"autoPanDepth", 0.3f}, {"autoPanPhase", 0}, {"lfo1Rate", 0.1f}, {"lfo1Depth", 0.5f}, {"lfo1Shape", 0}, {"lfo1Dest", 4}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 800}, {"delayFeedback", 0.6f}, {"delayMix", 0.5f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.95f}, {"reverbDamping", 0.1f}, {"reverbMix", 0.6f}}}); - add("Laser Pulse", "FX2", {{{"osc1Wave", 1}, {"osc1Oct", 2}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, {"osc2Wave", 4}, {"osc2Oct", 0}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 200}, {"filterRes", 0.9f}, {"filterEnvAmt", 1.0f}, {"keyTrack", 0}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.08f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.05f}, {"envAttack", 0.001f}, {"envDecay", 0.1f}, {"envSustain", 0.0f}, {"envRelease", 0.05f}, {"pan", 0}, {"drive", 2.0f}, {"masterLevel", 1.0}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0}, {"compThreshold", -15}, {"compRatio", 5}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 5}, {"autoPanRate", 2}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 12.0f}, {"lfo1Depth", 0.8f}, {"lfo1Shape", 2}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 100}, {"delayFeedback", 0.4f}, {"delayMix", 0.25f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.3f}, {"reverbDamping", 0.6f}, {"reverbMix", 0.2f}}}); + add("Laser Pulse", "FX2", {{{"osc1Wave", 1}, {"osc1Oct", 2}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, {"osc2Wave", 4}, {"osc2Oct", 0}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 200}, {"filterRes", 0.9f}, {"filterEnvAmt", 1.0f}, {"keyTrack", 0}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.08f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.05f}, {"envAttack", 0.001f}, {"envDecay", 0.1f}, {"envSustain", 0.0f}, {"envRelease", 0.05f}, {"pan", 0}, {"drive", 2.0f}, {"masterLevel", 1.0}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0.25f}, {"compThreshold", -20}, {"compRatio", 6}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 5}, {"autoPanRate", 2}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 12.0f}, {"lfo1Depth", 0.8f}, {"lfo1Shape", 2}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 100}, {"delayFeedback", 0.4f}, {"delayMix", 0.25f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.3f}, {"reverbDamping", 0.6f}, {"reverbMix", 0.2f}}}); add("Orbital Drone", "FX2", {{{"osc1Wave", 0}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", -7}, {"osc1Level", 0.5f}, {"osc2Wave", 3}, {"osc2Oct", 0}, {"osc2Semi", 7}, {"osc2Fine", 7}, {"osc2Level", 0.5f}, {"phaseOffset", 0.1f}, {"filterType", 0}, {"filterCutoff", 300}, {"filterRes", 0.5f}, {"filterEnvAmt", 0.2f}, {"keyTrack", 0.3f}, {"fEnvAttack", 2.0f}, {"fEnvDecay", 3.0f}, {"fEnvSustain", 0.7f}, {"fEnvRelease", 5.0f}, {"envAttack", 3.0f}, {"envDecay", 2.0f}, {"envSustain", 0.9f}, {"envRelease", 6.0f}, {"pan", 0}, {"drive", 1.1f}, {"masterLevel", 0.439f}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"compThreshold", -25}, {"compRatio", 2}, {"compAttack", 40}, {"compRelease", 500}, {"compMakeup", 3}, {"autoPanRate", 0.1f}, {"autoPanDepth", 0.6f}, {"autoPanPhase", 0}, {"lfo1Rate", 0.08f}, {"lfo1Depth", 0.6f}, {"lfo1Shape", 0}, {"lfo1Dest", 4}, {"lfo2Rate", 0.02f}, {"lfo2Depth", 0.25f}, {"lfo2Shape", 1}, {"lfo2Dest", 0}, {"delayTime", 900}, {"delayFeedback", 0.75f}, {"delayMix", 0.5f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.95f}, {"reverbDamping", 0.05f}, {"reverbMix", 0.7f}}}); - add("Ring Logic", "FX2", {{{"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 0}, {"osc2Oct", 3}, {"osc2Semi", 5}, {"osc2Fine", 0}, {"osc2Level", 0.6f}, {"phaseOffset", 0.5f}, {"filterType", 2}, {"filterCutoff", 800}, {"filterRes", 0.3f}, {"filterEnvAmt", 0.5f}, {"keyTrack", 0.4f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.3f}, {"fEnvSustain", 0.4f}, {"fEnvRelease", 0.3f}, {"envAttack", 0.001f}, {"envDecay", 0.3f}, {"envSustain", 0.7f}, {"envRelease", 0.3f}, {"pan", 0}, {"drive", 2.0f}, {"masterLevel", 0.836}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0}, {"compThreshold", -15}, {"compRatio", 4}, {"compAttack", 3}, {"compRelease", 50}, {"compMakeup", 4}, {"autoPanRate", 3.0f}, {"autoPanDepth", 0.5f}, {"autoPanPhase", 0}, {"lfo1Rate", 7.0f}, {"lfo1Depth", 0.6f}, {"lfo1Shape", 3}, {"lfo1Dest", 0}, {"lfo2Rate", 11.0f}, {"lfo2Depth", 0.4f}, {"lfo2Shape", 2}, {"lfo2Dest", 0}, {"delayTime", 180}, {"delayFeedback", 0.3f}, {"delayMix", 0.2f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.5f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.2f}}}); + add("Ring Logic", "FX2", {{{"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 0}, {"osc2Oct", 3}, {"osc2Semi", 5}, {"osc2Fine", 0}, {"osc2Level", 0.6f}, {"phaseOffset", 0.5f}, {"filterType", 2}, {"filterCutoff", 800}, {"filterRes", 0.3f}, {"filterEnvAmt", 0.5f}, {"keyTrack", 0.4f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.3f}, {"fEnvSustain", 0.4f}, {"fEnvRelease", 0.3f}, {"envAttack", 0.001f}, {"envDecay", 0.3f}, {"envSustain", 0.7f}, {"envRelease", 0.3f}, {"pan", 0}, {"drive", 2.0f}, {"masterLevel", 0.836}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0.25f}, {"compThreshold", -20}, {"compRatio", 5}, {"compAttack", 3}, {"compRelease", 50}, {"compMakeup", 4}, {"autoPanRate", 3.0f}, {"autoPanDepth", 0.5f}, {"autoPanPhase", 0}, {"lfo1Rate", 7.0f}, {"lfo1Depth", 0.6f}, {"lfo1Shape", 3}, {"lfo1Dest", 0}, {"lfo2Rate", 11.0f}, {"lfo2Depth", 0.4f}, {"lfo2Shape", 2}, {"lfo2Dest", 0}, {"delayTime", 180}, {"delayFeedback", 0.3f}, {"delayMix", 0.2f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.5f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.2f}}}); - add("Glitch Buffer", "FX2", {{{"osc1Wave", 2}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, {"osc2Wave", 4}, {"osc2Oct", 0}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.4f}, {"phaseOffset", 0.5f}, {"filterType", 1}, {"filterCutoff", 600}, {"filterRes", 0.6f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.2f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.05f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.03f}, {"envAttack", 0.001f}, {"envDecay", 0.05f}, {"envSustain", 0.0f}, {"envRelease", 0.03f}, {"pan", 0}, {"drive", 3.0f}, {"masterLevel", 1.0}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0}, {"compThreshold", -12}, {"compRatio", 8}, {"compAttack", 1}, {"compRelease", 20}, {"compMakeup", 6}, {"autoPanRate", 8.0f}, {"autoPanDepth", 0.8f}, {"autoPanPhase", 0}, {"lfo1Rate", 15.0f}, {"lfo1Depth", 1.0f}, {"lfo1Shape", 3}, {"lfo1Dest", 0}, {"lfo2Rate", 0.1f}, {"lfo2Depth", 0.5f}, {"lfo2Shape", 3}, {"lfo2Dest", 3}, {"delayTime", 60}, {"delayFeedback", 0.5f}, {"delayMix", 0.3f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.4f}, {"reverbDamping", 0.3f}, {"reverbMix", 0.15f}}}); + add("Glitch Buffer", "FX2", {{{"osc1Wave", 2}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, {"osc2Wave", 4}, {"osc2Oct", 0}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.4f}, {"phaseOffset", 0.5f}, {"filterType", 1}, {"filterCutoff", 600}, {"filterRes", 0.6f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.2f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.05f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.03f}, {"envAttack", 0.001f}, {"envDecay", 0.05f}, {"envSustain", 0.0f}, {"envRelease", 0.03f}, {"pan", 0}, {"drive", 3.0f}, {"masterLevel", 1.0}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0.35f}, {"compThreshold", -17}, {"compRatio", 10}, {"compAttack", 1}, {"compRelease", 20}, {"compMakeup", 6}, {"autoPanRate", 8.0f}, {"autoPanDepth", 0.8f}, {"autoPanPhase", 0}, {"lfo1Rate", 15.0f}, {"lfo1Depth", 1.0f}, {"lfo1Shape", 3}, {"lfo1Dest", 0}, {"lfo2Rate", 0.1f}, {"lfo2Depth", 0.5f}, {"lfo2Shape", 3}, {"lfo2Dest", 3}, {"delayTime", 60}, {"delayFeedback", 0.5f}, {"delayMix", 0.3f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.4f}, {"reverbDamping", 0.3f}, {"reverbMix", 0.15f}}}); // ======== INSANITY ======== - add("Alien Protocol", "Insanity", {{{"osc1Wave", 1}, {"osc1Oct", 2}, {"osc1Semi", 0}, {"osc1Fine", 17}, {"osc1Level", 0.7f}, {"osc2Wave", 4}, {"osc2Oct", 1}, {"osc2Semi", 7}, {"osc2Fine", -13}, {"osc2Level", 0.6f}, {"phaseOffset", 0.73f}, {"filterType", 3}, {"filterCutoff", 900}, {"filterRes", 0.95f}, {"filterEnvAmt", 0.8f}, {"keyTrack", 0.3f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.15f}, {"fEnvSustain", 0.2f}, {"fEnvRelease", 0.1f}, {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.6f}, {"envRelease", 0.15f}, {"pan", 0}, {"drive", 3.5f}, {"masterLevel", 1.0}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0}, {"compThreshold", -18}, {"compRatio", 6}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 5}, {"autoPanRate", 7.0f}, {"autoPanDepth", 0.9f}, {"autoPanPhase", 0}, {"lfo1Rate", 0.8f}, {"lfo1Depth", 0.5f}, {"lfo1Shape", 3}, {"lfo1Dest", 4}, {"lfo2Rate", 19.0f}, {"lfo2Depth", 0.7f}, {"lfo2Shape", 3}, {"lfo2Dest", 1}, {"delayTime", 47}, {"delayFeedback", 0.6f}, {"delayMix", 0.35f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.7f}, {"reverbDamping", 0.2f}, {"reverbMix", 0.4f}}}); + add("Alien Protocol", "Insanity", {{{"osc1Wave", 1}, {"osc1Oct", 2}, {"osc1Semi", 0}, {"osc1Fine", 17}, {"osc1Level", 0.7f}, {"osc2Wave", 4}, {"osc2Oct", 1}, {"osc2Semi", 7}, {"osc2Fine", -13}, {"osc2Level", 0.6f}, {"phaseOffset", 0.73f}, {"filterType", 3}, {"filterCutoff", 900}, {"filterRes", 0.95f}, {"filterEnvAmt", 0.8f}, {"keyTrack", 0.3f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.15f}, {"fEnvSustain", 0.2f}, {"fEnvRelease", 0.1f}, {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.6f}, {"envRelease", 0.15f}, {"pan", 0}, {"drive", 3.5f}, {"masterLevel", 1.0}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0.4f}, {"compThreshold", -23}, {"compRatio", 8}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 5}, {"autoPanRate", 7.0f}, {"autoPanDepth", 0.9f}, {"autoPanPhase", 0}, {"lfo1Rate", 0.8f}, {"lfo1Depth", 0.5f}, {"lfo1Shape", 3}, {"lfo1Dest", 4}, {"lfo2Rate", 19.0f}, {"lfo2Depth", 0.7f}, {"lfo2Shape", 3}, {"lfo2Dest", 1}, {"delayTime", 47}, {"delayFeedback", 0.6f}, {"delayMix", 0.35f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.7f}, {"reverbDamping", 0.2f}, {"reverbMix", 0.4f}}}); add("Siren Core", "Insanity", { {"osc1Wave", 1}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.9f}, @@ -435,8 +435,8 @@ private: {"envAttack", 0.01f}, {"envDecay", 0.3f}, {"envSustain", 0.9f}, {"envRelease", 1.0f}, {"pan", 0}, {"drive", 4.0f}, {"masterLevel", 0.624}, {"pitchBendRange", 2}, - {"distType", 0}, {"distAmount", 0}, - {"compThreshold", -10}, {"compRatio", 8}, {"compAttack", 1}, {"compRelease", 60}, {"compMakeup", 3}, + {"distType", 0}, {"distAmount", 0.45f}, + {"compThreshold", -15}, {"compRatio", 10}, {"compAttack", 1}, {"compRelease", 60}, {"compMakeup", 3}, {"autoPanRate", 0.3f}, {"autoPanDepth", 0.5f}, {"autoPanPhase", 0}, {"lfo1Rate", 0.15f}, {"lfo1Depth", 1.0f}, {"lfo1Shape", 0}, {"lfo1Dest", 1}, {"lfo2Rate", 0.12f}, {"lfo2Depth", 0.8f}, {"lfo2Shape", 0}, {"lfo2Dest", 2}, @@ -445,13 +445,13 @@ private: {"reverbSize", 0.8f}, {"reverbDamping", 0.1f}, {"reverbMix", 0.35f} }); - add("Plasma Ray", "Insanity", {{{"osc1Wave", 2}, {"osc1Oct", 3}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, {"osc2Wave", 4}, {"osc2Oct", 0}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, {"phaseOffset", 0.5f}, {"filterType", 3}, {"filterCutoff", 200}, {"filterRes", 1.0f}, {"filterEnvAmt", 1.0f}, {"keyTrack", 0.0f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.05f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.02f}, {"envAttack", 0.001f}, {"envDecay", 0.08f}, {"envSustain", 0.0f}, {"envRelease", 0.02f}, {"pan", 0}, {"drive", 5.0f}, {"masterLevel", 0.499}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0}, {"compThreshold", -8}, {"compRatio", 12}, {"compAttack", 0.5f}, {"compRelease", 15}, {"compMakeup", 8}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 20.0f}, {"lfo1Depth", 1.0f}, {"lfo1Shape", 3}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 25}, {"delayFeedback", 0.8f}, {"delayMix", 0.4f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.3f}, {"reverbDamping", 0.7f}, {"reverbMix", 0.15f}}}); + add("Plasma Ray", "Insanity", {{{"osc1Wave", 2}, {"osc1Oct", 3}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, {"osc2Wave", 4}, {"osc2Oct", 0}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.3f}, {"phaseOffset", 0.5f}, {"filterType", 3}, {"filterCutoff", 200}, {"filterRes", 1.0f}, {"filterEnvAmt", 1.0f}, {"keyTrack", 0.0f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.05f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.02f}, {"envAttack", 0.001f}, {"envDecay", 0.08f}, {"envSustain", 0.0f}, {"envRelease", 0.02f}, {"pan", 0}, {"drive", 5.0f}, {"masterLevel", 0.499}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0.55f}, {"compThreshold", -13}, {"compRatio", 14}, {"compAttack", 0.5f}, {"compRelease", 15}, {"compMakeup", 8}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 20.0f}, {"lfo1Depth", 1.0f}, {"lfo1Shape", 3}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 25}, {"delayFeedback", 0.8f}, {"delayMix", 0.4f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.3f}, {"reverbDamping", 0.7f}, {"reverbMix", 0.15f}}}); - add("Toxin Core", "Insanity", {{{"osc1Wave", 1}, {"osc1Oct", -1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, {"osc2Wave", 2}, {"osc2Oct", -1}, {"osc2Semi", 6}, {"osc2Fine", 23}, {"osc2Level", 0.7f}, {"phaseOffset", 0.37f}, {"filterType", 0}, {"filterCutoff", 350}, {"filterRes", 0.92f}, {"filterEnvAmt", 0.85f}, {"keyTrack", 0.4f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.12f}, {"fEnvSustain", 0.15f}, {"fEnvRelease", 0.1f}, {"envAttack", 0.001f}, {"envDecay", 0.15f}, {"envSustain", 0.5f}, {"envRelease", 0.1f}, {"pan", 0}, {"drive", 4.5f}, {"masterLevel", 0.75}, {"pitchBendRange", 2}, {"distType", 2}, {"distAmount", 0}, {"compThreshold", -12}, {"compRatio", 10}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 6}, {"autoPanRate", 5.0f}, {"autoPanDepth", 0.7f}, {"autoPanPhase", 0}, {"lfo1Rate", 6.5f}, {"lfo1Depth", 0.8f}, {"lfo1Shape", 2}, {"lfo1Dest", 0}, {"lfo2Rate", 11.0f}, {"lfo2Depth", 0.5f}, {"lfo2Shape", 3}, {"lfo2Dest", 3}, {"delayTime", 73}, {"delayFeedback", 0.55f}, {"delayMix", 0.3f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.5f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.2f}}}); + add("Toxin Core", "Insanity", {{{"osc1Wave", 1}, {"osc1Oct", -1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, {"osc2Wave", 2}, {"osc2Oct", -1}, {"osc2Semi", 6}, {"osc2Fine", 23}, {"osc2Level", 0.7f}, {"phaseOffset", 0.37f}, {"filterType", 0}, {"filterCutoff", 350}, {"filterRes", 0.92f}, {"filterEnvAmt", 0.85f}, {"keyTrack", 0.4f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.12f}, {"fEnvSustain", 0.15f}, {"fEnvRelease", 0.1f}, {"envAttack", 0.001f}, {"envDecay", 0.15f}, {"envSustain", 0.5f}, {"envRelease", 0.1f}, {"pan", 0}, {"drive", 4.5f}, {"masterLevel", 0.75}, {"pitchBendRange", 2}, {"distType", 2}, {"distAmount", 0.5f}, {"compThreshold", -17}, {"compRatio", 12}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 6}, {"autoPanRate", 5.0f}, {"autoPanDepth", 0.7f}, {"autoPanPhase", 0}, {"lfo1Rate", 6.5f}, {"lfo1Depth", 0.8f}, {"lfo1Shape", 2}, {"lfo1Dest", 0}, {"lfo2Rate", 11.0f}, {"lfo2Depth", 0.5f}, {"lfo2Shape", 3}, {"lfo2Dest", 3}, {"delayTime", 73}, {"delayFeedback", 0.55f}, {"delayMix", 0.3f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.5f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.2f}}}); - add("Fractured Signal", "Insanity", {{{"osc1Wave", 4}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.6f}, {"osc2Wave", 2}, {"osc2Oct", 0}, {"osc2Semi", 3}, {"osc2Fine", 37}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 2}, {"filterCutoff", 600}, {"filterRes", 0.8f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.1f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.08f}, {"fEnvSustain", 0.3f}, {"fEnvRelease", 0.15f}, {"envAttack", 0.001f}, {"envDecay", 0.1f}, {"envSustain", 0.4f}, {"envRelease", 0.08f}, {"pan", 0}, {"drive", 3.0f}, {"masterLevel", 0.932}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0}, {"compThreshold", -14}, {"compRatio", 8}, {"compAttack", 2}, {"compRelease", 25}, {"compMakeup", 5}, {"autoPanRate", 12.0f}, {"autoPanDepth", 0.8f}, {"autoPanPhase", 0}, {"lfo1Rate", 17.0f}, {"lfo1Depth", 0.6f}, {"lfo1Shape", 3}, {"lfo1Dest", 0}, {"lfo2Rate", 0.3f}, {"lfo2Depth", 0.9f}, {"lfo2Shape", 2}, {"lfo2Dest", 1}, {"delayTime", 33}, {"delayFeedback", 0.7f}, {"delayMix", 0.35f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.4f}, {"reverbDamping", 0.6f}, {"reverbMix", 0.25f}}}); + add("Fractured Signal", "Insanity", {{{"osc1Wave", 4}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.6f}, {"osc2Wave", 2}, {"osc2Oct", 0}, {"osc2Semi", 3}, {"osc2Fine", 37}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 2}, {"filterCutoff", 600}, {"filterRes", 0.8f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.1f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.08f}, {"fEnvSustain", 0.3f}, {"fEnvRelease", 0.15f}, {"envAttack", 0.001f}, {"envDecay", 0.1f}, {"envSustain", 0.4f}, {"envRelease", 0.08f}, {"pan", 0}, {"drive", 3.0f}, {"masterLevel", 0.932}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0.35f}, {"compThreshold", -19}, {"compRatio", 10}, {"compAttack", 2}, {"compRelease", 25}, {"compMakeup", 5}, {"autoPanRate", 12.0f}, {"autoPanDepth", 0.8f}, {"autoPanPhase", 0}, {"lfo1Rate", 17.0f}, {"lfo1Depth", 0.6f}, {"lfo1Shape", 3}, {"lfo1Dest", 0}, {"lfo2Rate", 0.3f}, {"lfo2Depth", 0.9f}, {"lfo2Shape", 2}, {"lfo2Dest", 1}, {"delayTime", 33}, {"delayFeedback", 0.7f}, {"delayMix", 0.35f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.4f}, {"reverbDamping", 0.6f}, {"reverbMix", 0.25f}}}); - add("Biomech Scar", "Insanity", {{{"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", -8}, {"osc1Level", 0.9f}, {"osc2Wave", 2}, {"osc2Oct", 0}, {"osc2Semi", 1}, {"osc2Fine", 11}, {"osc2Level", 0.8f}, {"phaseOffset", 0.42f}, {"filterType", 1}, {"filterCutoff", 500}, {"filterRes", 0.85f}, {"filterEnvAmt", 0.9f}, {"keyTrack", 0.5f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.4f}, {"fEnvRelease", 0.08f}, {"envAttack", 0.001f}, {"envDecay", 0.12f}, {"envSustain", 0.7f}, {"envRelease", 0.1f}, {"pan", 0}, {"drive", 5.0f}, {"masterLevel", 0.522}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0}, {"compThreshold", -10}, {"compRatio", 10}, {"compAttack", 0.5f}, {"compRelease", 20}, {"compMakeup", 8}, {"autoPanRate", 3.0f}, {"autoPanDepth", 0.6f}, {"autoPanPhase", 0}, {"lfo1Rate", 8.0f}, {"lfo1Depth", 0.7f}, {"lfo1Shape", 2}, {"lfo1Dest", 0}, {"lfo2Rate", 14.0f}, {"lfo2Depth", 0.4f}, {"lfo2Shape", 3}, {"lfo2Dest", 3}, {"delayTime", 55}, {"delayFeedback", 0.4f}, {"delayMix", 0.2f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.25f}, {"reverbDamping", 0.8f}, {"reverbMix", 0.1f}}}); + add("Biomech Scar", "Insanity", {{{"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", -8}, {"osc1Level", 0.9f}, {"osc2Wave", 2}, {"osc2Oct", 0}, {"osc2Semi", 1}, {"osc2Fine", 11}, {"osc2Level", 0.8f}, {"phaseOffset", 0.42f}, {"filterType", 1}, {"filterCutoff", 500}, {"filterRes", 0.85f}, {"filterEnvAmt", 0.9f}, {"keyTrack", 0.5f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.4f}, {"fEnvRelease", 0.08f}, {"envAttack", 0.001f}, {"envDecay", 0.12f}, {"envSustain", 0.7f}, {"envRelease", 0.1f}, {"pan", 0}, {"drive", 5.0f}, {"masterLevel", 0.522}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0.55f}, {"compThreshold", -15}, {"compRatio", 12}, {"compAttack", 0.5f}, {"compRelease", 20}, {"compMakeup", 8}, {"autoPanRate", 3.0f}, {"autoPanDepth", 0.6f}, {"autoPanPhase", 0}, {"lfo1Rate", 8.0f}, {"lfo1Depth", 0.7f}, {"lfo1Shape", 2}, {"lfo1Dest", 0}, {"lfo2Rate", 14.0f}, {"lfo2Depth", 0.4f}, {"lfo2Shape", 3}, {"lfo2Dest", 3}, {"delayTime", 55}, {"delayFeedback", 0.4f}, {"delayMix", 0.2f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.25f}, {"reverbDamping", 0.8f}, {"reverbMix", 0.1f}}}); add("Scrap Hound", "Insanity", { {"osc1Wave", 1}, {"osc1Oct", -2}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.9f}, @@ -462,8 +462,8 @@ private: {"envAttack", 0.001f}, {"envDecay", 0.25f}, {"envSustain", 0.6f}, {"envRelease", 0.2f}, {"pan", 0}, {"drive", 4.8f}, {"masterLevel", 0.413}, {"pitchBendRange", 2}, - {"distType", 2}, {"distAmount", 0}, - {"compThreshold", -8}, {"compRatio", 12}, {"compAttack", 1}, {"compRelease", 25}, {"compMakeup", 7}, + {"distType", 2}, {"distAmount", 0.53f}, + {"compThreshold", -13}, {"compRatio", 14}, {"compAttack", 1}, {"compRelease", 25}, {"compMakeup", 7}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 0.3f}, {"lfo1Depth", 0.4f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, @@ -472,11 +472,11 @@ private: {"reverbSize", 0.15f}, {"reverbDamping", 0.9f}, {"reverbMix", 0.05f} }); - add("Pixel Storm", "Insanity", {{{"osc1Wave", 2}, {"osc1Oct", 2}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 4}, {"osc2Oct", 1}, {"osc2Semi", 7}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 1}, {"filterCutoff", 800}, {"filterRes", 0.95f}, {"filterEnvAmt", 1.0f}, {"keyTrack", 0.0f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.03f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.02f}, {"envAttack", 0.001f}, {"envDecay", 0.04f}, {"envSustain", 0.0f}, {"envRelease", 0.02f}, {"pan", 0}, {"drive", 3.0f}, {"masterLevel", 1.0}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0}, {"compThreshold", -12}, {"compRatio", 10}, {"compAttack", 0.5f}, {"compRelease", 10}, {"compMakeup", 6}, {"autoPanRate", 20.0f}, {"autoPanDepth", 1.0f}, {"autoPanPhase", 0}, {"lfo1Rate", 20.0f}, {"lfo1Depth", 1.0f}, {"lfo1Shape", 3}, {"lfo1Dest", 0}, {"lfo2Rate", 15.0f}, {"lfo2Depth", 0.8f}, {"lfo2Shape", 3}, {"lfo2Dest", 3}, {"delayTime", 20}, {"delayFeedback", 0.6f}, {"delayMix", 0.3f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.3f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.2f}}}); + add("Pixel Storm", "Insanity", {{{"osc1Wave", 2}, {"osc1Oct", 2}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 4}, {"osc2Oct", 1}, {"osc2Semi", 7}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 1}, {"filterCutoff", 800}, {"filterRes", 0.95f}, {"filterEnvAmt", 1.0f}, {"keyTrack", 0.0f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.03f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.02f}, {"envAttack", 0.001f}, {"envDecay", 0.04f}, {"envSustain", 0.0f}, {"envRelease", 0.02f}, {"pan", 0}, {"drive", 3.0f}, {"masterLevel", 1.0}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0.35f}, {"compThreshold", -17}, {"compRatio", 12}, {"compAttack", 0.5f}, {"compRelease", 10}, {"compMakeup", 6}, {"autoPanRate", 20.0f}, {"autoPanDepth", 1.0f}, {"autoPanPhase", 0}, {"lfo1Rate", 20.0f}, {"lfo1Depth", 1.0f}, {"lfo1Shape", 3}, {"lfo1Dest", 0}, {"lfo2Rate", 15.0f}, {"lfo2Depth", 0.8f}, {"lfo2Shape", 3}, {"lfo2Dest", 3}, {"delayTime", 20}, {"delayFeedback", 0.6f}, {"delayMix", 0.3f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.3f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.2f}}}); - add("Venom Vector", "Insanity", {{{"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 3}, {"osc1Level", 0.85f}, {"osc2Wave", 0}, {"osc2Oct", 1}, {"osc2Semi", 7}, {"osc2Fine", -5}, {"osc2Level", 0.6f}, {"phaseOffset", 0.28f}, {"filterType", 0}, {"filterCutoff", 400}, {"filterRes", 0.98f}, {"filterEnvAmt", 0.95f}, {"keyTrack", 0.5f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.18f}, {"fEnvSustain", 0.1f}, {"fEnvRelease", 0.12f}, {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.65f}, {"envRelease", 0.15f}, {"pan", 0}, {"drive", 3.8f}, {"masterLevel", 0.755}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0}, {"compThreshold", -14}, {"compRatio", 8}, {"compAttack", 2}, {"compRelease", 35}, {"compMakeup", 5}, {"autoPanRate", 4.0f}, {"autoPanDepth", 0.5f}, {"autoPanPhase", 0}, {"lfo1Rate", 5.5f}, {"lfo1Depth", 0.85f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 9.0f}, {"lfo2Depth", 0.3f}, {"lfo2Shape", 2}, {"lfo2Dest", 1}, {"delayTime", 66}, {"delayFeedback", 0.5f}, {"delayMix", 0.25f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.45f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.2f}}}); + add("Venom Vector", "Insanity", {{{"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 3}, {"osc1Level", 0.85f}, {"osc2Wave", 0}, {"osc2Oct", 1}, {"osc2Semi", 7}, {"osc2Fine", -5}, {"osc2Level", 0.6f}, {"phaseOffset", 0.28f}, {"filterType", 0}, {"filterCutoff", 400}, {"filterRes", 0.98f}, {"filterEnvAmt", 0.95f}, {"keyTrack", 0.5f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.18f}, {"fEnvSustain", 0.1f}, {"fEnvRelease", 0.12f}, {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.65f}, {"envRelease", 0.15f}, {"pan", 0}, {"drive", 3.8f}, {"masterLevel", 0.755}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0.43f}, {"compThreshold", -19}, {"compRatio", 10}, {"compAttack", 2}, {"compRelease", 35}, {"compMakeup", 5}, {"autoPanRate", 4.0f}, {"autoPanDepth", 0.5f}, {"autoPanPhase", 0}, {"lfo1Rate", 5.5f}, {"lfo1Depth", 0.85f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 9.0f}, {"lfo2Depth", 0.3f}, {"lfo2Shape", 2}, {"lfo2Dest", 1}, {"delayTime", 66}, {"delayFeedback", 0.5f}, {"delayMix", 0.25f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.45f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.2f}}}); - add("Eagle Protocol", "Insanity", {{{"osc1Wave", 0}, {"osc1Oct", 3}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, {"osc2Wave", 1}, {"osc2Oct", 3}, {"osc2Semi", 0}, {"osc2Fine", 7}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 3}, {"filterCutoff", 1200}, {"filterRes", 0.9f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.8f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.3f}, {"fEnvRelease", 0.08f}, {"envAttack", 0.001f}, {"envDecay", 0.15f}, {"envSustain", 0.5f}, {"envRelease", 0.1f}, {"pan", 0}, {"drive", 2.5f}, {"masterLevel", 0.735}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"compThreshold", -16}, {"compRatio", 6}, {"compAttack", 2}, {"compRelease", 30}, {"compMakeup", 4}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 10.0f}, {"lfo1Depth", 1.0f}, {"lfo1Shape", 0}, {"lfo1Dest", 1}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 40}, {"delayFeedback", 0.7f}, {"delayMix", 0.4f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.6f}, {"reverbDamping", 0.3f}, {"reverbMix", 0.3f}}}); + add("Eagle Protocol", "Insanity", {{{"osc1Wave", 0}, {"osc1Oct", 3}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.8f}, {"osc2Wave", 1}, {"osc2Oct", 3}, {"osc2Semi", 0}, {"osc2Fine", 7}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 3}, {"filterCutoff", 1200}, {"filterRes", 0.9f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.8f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.3f}, {"fEnvRelease", 0.08f}, {"envAttack", 0.001f}, {"envDecay", 0.15f}, {"envSustain", 0.5f}, {"envRelease", 0.1f}, {"pan", 0}, {"drive", 2.5f}, {"masterLevel", 0.735}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0.3f}, {"compThreshold", -21}, {"compRatio", 7}, {"compAttack", 2}, {"compRelease", 30}, {"compMakeup", 4}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 10.0f}, {"lfo1Depth", 1.0f}, {"lfo1Shape", 0}, {"lfo1Dest", 1}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 40}, {"delayFeedback", 0.7f}, {"delayMix", 0.4f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.6f}, {"reverbDamping", 0.3f}, {"reverbMix", 0.3f}}}); // ======== TEXTURES ======== @@ -782,8 +782,8 @@ private: {"envAttack", 0.5f}, {"envDecay", 0.5f}, {"envSustain", 0.8f}, {"envRelease", 1.5f}, {"pan", 0}, {"drive", 3.5f}, {"masterLevel", 0.584}, {"pitchBendRange", 2}, - {"distType", 3}, {"distAmount", 0}, - {"compThreshold", -12}, {"compRatio", 6}, {"compAttack", 5}, {"compRelease", 80}, {"compMakeup", 4}, + {"distType", 3}, {"distAmount", 0.4f}, + {"compThreshold", -17}, {"compRatio", 8}, {"compAttack", 5}, {"compRelease", 80}, {"compMakeup", 4}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 0.15f}, {"lfo1Depth", 0.4f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.08f}, {"lfo2Depth", 0.2f}, {"lfo2Shape", 1}, {"lfo2Dest", 0}, @@ -801,8 +801,8 @@ private: {"envAttack", 0.3f}, {"envDecay", 0.8f}, {"envSustain", 0.6f}, {"envRelease", 2.0f}, {"pan", 0}, {"drive", 2.5f}, {"masterLevel", 0.746}, {"pitchBendRange", 2}, - {"distType", 0}, {"distAmount", 0}, - {"compThreshold", -15}, {"compRatio", 5}, {"compAttack", 2}, {"compRelease", 60}, {"compMakeup", 4}, + {"distType", 0}, {"distAmount", 0.3f}, + {"compThreshold", -20}, {"compRatio", 6}, {"compAttack", 2}, {"compRelease", 60}, {"compMakeup", 4}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 0.2f}, {"lfo1Depth", 0.6f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, @@ -843,8 +843,8 @@ private: {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.7f}, {"envRelease", 0.15f}, {"pan", 0}, {"drive", 4.0f}, {"masterLevel", 0.457}, {"pitchBendRange", 2}, - {"distType", 1}, {"distAmount", 0}, - {"compThreshold", -10}, {"compRatio", 8}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 6}, + {"distType", 1}, {"distAmount", 0.45f}, + {"compThreshold", -15}, {"compRatio", 10}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 6}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 0.3f}, {"lfo1Depth", 0.3f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, @@ -853,9 +853,9 @@ private: {"reverbSize", 0.1f}, {"reverbDamping", 0.9f}, {"reverbMix", 0.03f} }); - add("Storm Drain", "Bass", {{{"osc1Wave", 2}, {"osc1Oct", -2}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.9f}, {"osc2Wave", 0}, {"osc2Oct", -1}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 200}, {"filterRes", 0.7f}, {"filterEnvAmt", 0.6f}, {"keyTrack", 0.3f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.2f}, {"fEnvSustain", 0.1f}, {"fEnvRelease", 0.15f}, {"envAttack", 0.001f}, {"envDecay", 0.3f}, {"envSustain", 0.6f}, {"envRelease", 0.2f}, {"pan", 0}, {"drive", 3.0f}, {"masterLevel", 0.539}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"compThreshold", -12}, {"compRatio", 6}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 5}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 0.2f}, {"lfo1Depth", 0.5f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 100}, {"delayFeedback", 0.3f}, {"delayMix", 0.12f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.15f}, {"reverbDamping", 0.85f}, {"reverbMix", 0.05f}}}); + add("Storm Drain", "Bass", {{{"osc1Wave", 2}, {"osc1Oct", -2}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.9f}, {"osc2Wave", 0}, {"osc2Oct", -1}, {"osc2Semi", 0}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 200}, {"filterRes", 0.7f}, {"filterEnvAmt", 0.6f}, {"keyTrack", 0.3f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.2f}, {"fEnvSustain", 0.1f}, {"fEnvRelease", 0.15f}, {"envAttack", 0.001f}, {"envDecay", 0.3f}, {"envSustain", 0.6f}, {"envRelease", 0.2f}, {"pan", 0}, {"drive", 3.0f}, {"masterLevel", 0.539}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0.35f}, {"compThreshold", -17}, {"compRatio", 8}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 5}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 0.2f}, {"lfo1Depth", 0.5f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 100}, {"delayFeedback", 0.3f}, {"delayMix", 0.12f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.15f}, {"reverbDamping", 0.85f}, {"reverbMix", 0.05f}}}); - add("Cyber Sub", "Bass", {{{"osc1Wave", 1}, {"osc1Oct", -1}, {"osc1Semi", 0}, {"osc1Fine", -8}, {"osc1Level", 0.8f}, {"osc2Wave", 1}, {"osc2Oct", -1}, {"osc2Semi", 5}, {"osc2Fine", 12}, {"osc2Level", 0.7f}, {"phaseOffset", 0.25f}, {"filterType", 1}, {"filterCutoff", 300}, {"filterRes", 0.75f}, {"filterEnvAmt", 0.6f}, {"keyTrack", 0.3f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.18f}, {"fEnvSustain", 0.15f}, {"fEnvRelease", 0.12f}, {"envAttack", 0.001f}, {"envDecay", 0.25f}, {"envSustain", 0.65f}, {"envRelease", 0.2f}, {"pan", 0}, {"drive", 3.5f}, {"masterLevel", 0.562}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0}, {"compThreshold", -12}, {"compRatio", 7}, {"compAttack", 2}, {"compRelease", 35}, {"compMakeup", 5}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 4.0f}, {"lfo1Depth", 0.6f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.15f}, {"lfo2Depth", 0.3f}, {"lfo2Shape", 2}, {"lfo2Dest", 0}, {"delayTime", 90}, {"delayFeedback", 0.3f}, {"delayMix", 0.15f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.2f}, {"reverbDamping", 0.8f}, {"reverbMix", 0.08f}}}); + add("Cyber Sub", "Bass", {{{"osc1Wave", 1}, {"osc1Oct", -1}, {"osc1Semi", 0}, {"osc1Fine", -8}, {"osc1Level", 0.8f}, {"osc2Wave", 1}, {"osc2Oct", -1}, {"osc2Semi", 5}, {"osc2Fine", 12}, {"osc2Level", 0.7f}, {"phaseOffset", 0.25f}, {"filterType", 1}, {"filterCutoff", 300}, {"filterRes", 0.75f}, {"filterEnvAmt", 0.6f}, {"keyTrack", 0.3f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.18f}, {"fEnvSustain", 0.15f}, {"fEnvRelease", 0.12f}, {"envAttack", 0.001f}, {"envDecay", 0.25f}, {"envSustain", 0.65f}, {"envRelease", 0.2f}, {"pan", 0}, {"drive", 3.5f}, {"masterLevel", 0.562}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0.4f}, {"compThreshold", -17}, {"compRatio", 9}, {"compAttack", 2}, {"compRelease", 35}, {"compMakeup", 5}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 4.0f}, {"lfo1Depth", 0.6f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.15f}, {"lfo2Depth", 0.3f}, {"lfo2Shape", 2}, {"lfo2Dest", 0}, {"delayTime", 90}, {"delayFeedback", 0.3f}, {"delayMix", 0.15f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.2f}, {"reverbDamping", 0.8f}, {"reverbMix", 0.08f}}}); add("808 Pulse", "Bass", { {"osc1Wave", 0}, {"osc1Oct", -3}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 1.0f}, @@ -882,7 +882,7 @@ private: add("Solar Nova", "Lead", {{{"osc1Wave", 0}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 3}, {"osc1Level", 0.7f}, {"osc2Wave", 0}, {"osc2Oct", 1}, {"osc2Semi", 12}, {"osc2Fine", -5}, {"osc2Level", 0.5f}, {"phaseOffset", 0.35f}, {"filterType", 0}, {"filterCutoff", 4000}, {"filterRes", 0.15f}, {"filterEnvAmt", 0.5f}, {"keyTrack", 0.8f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.3f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.2f}, {"envAttack", 0.001f}, {"envDecay", 0.3f}, {"envSustain", 0.7f}, {"envRelease", 0.4f}, {"pan", 0}, {"drive", 1.3f}, {"masterLevel", 0.768f}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"distSymmetry", 0}, {"distTone", 1.0f}, {"compThreshold", -16}, {"compRatio", 2}, {"compAttack", 5}, {"compRelease", 100}, {"compMakeup", 2}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 0.2f}, {"lfo1Depth", 0.15f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.1f}, {"lfo2Depth", 0.1f}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 300}, {"delayFeedback", 0.25f}, {"delayMix", 0.15f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.3f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.12f}}}); - add("Quantum Beam", "Lead", {{{"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.85f}, {"osc2Wave", 0}, {"osc2Oct", 0}, {"osc2Semi", 5}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 3000}, {"filterRes", 0.5f}, {"filterEnvAmt", 0.8f}, {"keyTrack", 0.7f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.08f}, {"envAttack", 0.001f}, {"envDecay", 0.12f}, {"envSustain", 0.7f}, {"envRelease", 0.15f}, {"pan", 0}, {"drive", 2.5f}, {"masterLevel", 0.651}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"compThreshold", -12}, {"compRatio", 4}, {"compAttack", 1}, {"compRelease", 40}, {"compMakeup", 3}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 7.0f}, {"lfo1Depth", 0.6f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.3f}, {"lfo2Depth", 0.2f}, {"lfo2Shape", 1}, {"lfo2Dest", 0}, {"delayTime", 120}, {"delayFeedback", 0.25f}, {"delayMix", 0.12f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.2f}, {"reverbDamping", 0.7f}, {"reverbMix", 0.08f}}}); + add("Quantum Beam", "Lead", {{{"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.85f}, {"osc2Wave", 0}, {"osc2Oct", 0}, {"osc2Semi", 5}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 3000}, {"filterRes", 0.5f}, {"filterEnvAmt", 0.8f}, {"keyTrack", 0.7f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.08f}, {"envAttack", 0.001f}, {"envDecay", 0.12f}, {"envSustain", 0.7f}, {"envRelease", 0.15f}, {"pan", 0}, {"drive", 2.5f}, {"masterLevel", 0.651}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0.3f}, {"compThreshold", -17}, {"compRatio", 5}, {"compAttack", 1}, {"compRelease", 40}, {"compMakeup", 3}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 7.0f}, {"lfo1Depth", 0.6f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.3f}, {"lfo2Depth", 0.2f}, {"lfo2Shape", 1}, {"lfo2Dest", 0}, {"delayTime", 120}, {"delayFeedback", 0.25f}, {"delayMix", 0.12f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.2f}, {"reverbDamping", 0.7f}, {"reverbMix", 0.08f}}}); add("Android Flock", "Lead", {{{"osc1Wave", 0}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", -7}, {"osc1Level", 0.7f}, {"osc2Wave", 0}, {"osc2Oct", 0}, {"osc2Semi", 0}, {"osc2Fine", 7}, {"osc2Level", 0.7f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 3000}, {"filterRes", 0.35f}, {"filterEnvAmt", 0.6f}, {"keyTrack", 0.7f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.2f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.15f}, {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.7f}, {"envRelease", 0.3f}, {"pan", 0}, {"drive", 1.2f}, {"masterLevel", 0.712f}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"distSymmetry", 0}, {"distTone", 1.0f}, {"compThreshold", -16}, {"compRatio", 2}, {"compAttack", 3}, {"compRelease", 80}, {"compMakeup", 2}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 0.15f}, {"lfo1Depth", 0.2f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.12f}, {"lfo2Depth", 0.15f}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 250}, {"delayFeedback", 0.2f}, {"delayMix", 0.1f}, {"lfo1Sync", 0}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.25f}, {"reverbDamping", 0.6f}, {"reverbMix", 0.1f}}}); @@ -947,13 +947,13 @@ private: // ======== MORE FX ======== - add("Bootleg Signal", "FX", {{{"osc1Wave", 4}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 2}, {"osc2Oct", 0}, {"osc2Semi", 3}, {"osc2Fine", 31}, {"osc2Level", 0.4f}, {"phaseOffset", 0.5f}, {"filterType", 2}, {"filterCutoff", 500}, {"filterRes", 0.8f}, {"filterEnvAmt", 0.6f}, {"keyTrack", 0.0f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.3f}, {"fEnvRelease", 0.15f}, {"envAttack", 0.001f}, {"envDecay", 0.15f}, {"envSustain", 0.5f}, {"envRelease", 0.1f}, {"pan", 0}, {"drive", 2.5f}, {"masterLevel", 0.785}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0}, {"compThreshold", -15}, {"compRatio", 5}, {"compAttack", 3}, {"compRelease", 40}, {"compMakeup", 4}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 3.0f}, {"lfo1Depth", 0.5f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.2f}, {"lfo2Depth", 0.7f}, {"lfo2Shape", 2}, {"lfo2Dest", 0}, {"delayTime", 120}, {"delayFeedback", 0.5f}, {"delayMix", 0.3f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.4f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.2f}}}); + add("Bootleg Signal", "FX", {{{"osc1Wave", 4}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 2}, {"osc2Oct", 0}, {"osc2Semi", 3}, {"osc2Fine", 31}, {"osc2Level", 0.4f}, {"phaseOffset", 0.5f}, {"filterType", 2}, {"filterCutoff", 500}, {"filterRes", 0.8f}, {"filterEnvAmt", 0.6f}, {"keyTrack", 0.0f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.3f}, {"fEnvRelease", 0.15f}, {"envAttack", 0.001f}, {"envDecay", 0.15f}, {"envSustain", 0.5f}, {"envRelease", 0.1f}, {"pan", 0}, {"drive", 2.5f}, {"masterLevel", 0.785}, {"pitchBendRange", 2}, {"distType", 1}, {"distAmount", 0.3f}, {"compThreshold", -20}, {"compRatio", 6}, {"compAttack", 3}, {"compRelease", 40}, {"compMakeup", 4}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 3.0f}, {"lfo1Depth", 0.5f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.2f}, {"lfo2Depth", 0.7f}, {"lfo2Shape", 2}, {"lfo2Dest", 0}, {"delayTime", 120}, {"delayFeedback", 0.5f}, {"delayMix", 0.3f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.4f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.2f}}}); add("Vapor Trace", "FX", {{{"osc1Wave", 3}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 5}, {"osc1Level", 0.5f}, {"osc2Wave", 0}, {"osc2Oct", 1}, {"osc2Semi", 12}, {"osc2Fine", -5}, {"osc2Level", 0.4f}, {"phaseOffset", 0.6f}, {"filterType", 0}, {"filterCutoff", 600}, {"filterRes", 0.15f}, {"filterEnvAmt", 0.2f}, {"keyTrack", 0.5f}, {"fEnvAttack", 1.5f}, {"fEnvDecay", 2.0f}, {"fEnvSustain", 0.5f}, {"fEnvRelease", 3.0f}, {"envAttack", 2.5f}, {"envDecay", 1.0f}, {"envSustain", 0.7f}, {"envRelease", 4.0f}, {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 1.0f}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"distSymmetry", 0}, {"distTone", 1.0f}, {"compThreshold", -25}, {"compRatio", 2}, {"compAttack", 30}, {"compRelease", 300}, {"compMakeup", 2}, {"autoPanRate", 0.25f}, {"autoPanDepth", 0.7f}, {"autoPanPhase", 0}, {"lfo1Rate", 0.2f}, {"lfo1Depth", 0.2f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.1f}, {"lfo2Depth", 0.15f}, {"lfo2Shape", 0}, {"lfo2Dest", 0}, {"delayTime", 500}, {"delayFeedback", 0.6f}, {"delayMix", 0.4f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.85f}, {"reverbDamping", 0.15f}, {"reverbMix", 0.55f}}}); add("Candy Overdrive", "FX", {{{"osc1Wave", 0}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 3}, {"osc2Oct", 1}, {"osc2Semi", 7}, {"osc2Fine", 0}, {"osc2Level", 0.5f}, {"phaseOffset", 0.5f}, {"filterType", 0}, {"filterCutoff", 1000}, {"filterRes", 0.1f}, {"filterEnvAmt", 0.5f}, {"keyTrack", 0.8f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.1f}, {"fEnvSustain", 0.0f}, {"fEnvRelease", 0.08f}, {"envAttack", 0.001f}, {"envDecay", 0.12f}, {"envSustain", 0.3f}, {"envRelease", 0.1f}, {"pan", 0}, {"drive", 1.0f}, {"masterLevel", 1.0f}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"distSymmetry", 0}, {"distTone", 1.0f}, {"compThreshold", -18}, {"compRatio", 3}, {"compAttack", 3}, {"compRelease", 40}, {"compMakeup", 2}, {"autoPanRate", 3.0f}, {"autoPanDepth", 0.5f}, {"autoPanPhase", 0}, {"lfo1Rate", 6.0f}, {"lfo1Depth", 0.3f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0.5f}, {"lfo2Depth", 0.2f}, {"lfo2Shape", 1}, {"lfo2Dest", 0}, {"delayTime", 200}, {"delayFeedback", 0.35f}, {"delayMix", 0.2f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.5f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.25f}}}); - add("Polymorph Unit", "FX", {{{"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 2}, {"osc2Oct", 0}, {"osc2Semi", 1}, {"osc2Fine", 8}, {"osc2Level", 0.6f}, {"phaseOffset", 0.3f}, {"filterType", 0}, {"filterCutoff", 400}, {"filterRes", 0.8f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.4f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.15f}, {"fEnvSustain", 0.2f}, {"fEnvRelease", 0.1f}, {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.6f}, {"envRelease", 0.15f}, {"pan", 0}, {"drive", 3.0f}, {"masterLevel", 0.776}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0}, {"compThreshold", -14}, {"compRatio", 6}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 4}, {"autoPanRate", 4.0f}, {"autoPanDepth", 0.5f}, {"autoPanPhase", 0}, {"lfo1Rate", 5.0f}, {"lfo1Depth", 0.6f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 8.0f}, {"lfo2Depth", 0.3f}, {"lfo2Shape", 2}, {"lfo2Dest", 0}, {"delayTime", 80}, {"delayFeedback", 0.4f}, {"delayMix", 0.2f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.5f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.2f}}}); + add("Polymorph Unit", "FX", {{{"osc1Wave", 1}, {"osc1Oct", 0}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.7f}, {"osc2Wave", 2}, {"osc2Oct", 0}, {"osc2Semi", 1}, {"osc2Fine", 8}, {"osc2Level", 0.6f}, {"phaseOffset", 0.3f}, {"filterType", 0}, {"filterCutoff", 400}, {"filterRes", 0.8f}, {"filterEnvAmt", 0.7f}, {"keyTrack", 0.4f}, {"fEnvAttack", 0.001f}, {"fEnvDecay", 0.15f}, {"fEnvSustain", 0.2f}, {"fEnvRelease", 0.1f}, {"envAttack", 0.001f}, {"envDecay", 0.2f}, {"envSustain", 0.6f}, {"envRelease", 0.15f}, {"pan", 0}, {"drive", 3.0f}, {"masterLevel", 0.776}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0.35f}, {"compThreshold", -19}, {"compRatio", 8}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 4}, {"autoPanRate", 4.0f}, {"autoPanDepth", 0.5f}, {"autoPanPhase", 0}, {"lfo1Rate", 5.0f}, {"lfo1Depth", 0.6f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 8.0f}, {"lfo2Depth", 0.3f}, {"lfo2Shape", 2}, {"lfo2Dest", 0}, {"delayTime", 80}, {"delayFeedback", 0.4f}, {"delayMix", 0.2f}, {"lfo1Sync", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.5f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.2f}}}); // ======== PIANO ======== @@ -1191,7 +1191,7 @@ private: {"reverbSize", 0.2f}, {"reverbDamping", 0.7f}, {"reverbMix", 0.08f} }); - add("Squelch Circuit", "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.599}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"compThreshold", -12}, {"compRatio", 6}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 5}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 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", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.15f}, {"reverbDamping", 0.8f}, {"reverbMix", 0.05f}}}); + add("Squelch Circuit", "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.599}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0.33f}, {"compThreshold", -17}, {"compRatio", 7}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 5}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 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", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.15f}, {"reverbDamping", 0.8f}, {"reverbMix", 0.05f}}}); add("Reso Core", "Bass", { {"osc1Wave", 0}, {"osc1Oct", -3}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 1.0f}, @@ -1478,7 +1478,7 @@ private: // ======== MORE FX 2 ======== - add("Byte Crusher", "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.709}, {"pitchBendRange", 2}, {"distType", 2}, {"distAmount", 0}, {"compThreshold", -14}, {"compRatio", 5}, {"compAttack", 2}, {"compRelease", 50}, {"compMakeup", 4}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 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", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.4f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.2f}}}); + add("Byte Crusher", "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.709}, {"pitchBendRange", 2}, {"distType", 2}, {"distAmount", 0.25f}, {"compThreshold", -19}, {"compRatio", 6}, {"compAttack", 2}, {"compRelease", 50}, {"compMakeup", 4}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 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", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.4f}, {"reverbDamping", 0.5f}, {"reverbMix", 0.2f}}}); add("Comb Array", "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.933f}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"compThreshold", -16}, {"compRatio", 4}, {"compAttack", 3}, {"compRelease", 60}, {"compMakeup", 3}, {"autoPanRate", 0.3f}, {"autoPanDepth", 0.5f}, {"autoPanPhase", 0}, {"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", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 1}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.5f}, {"reverbDamping", 0.4f}, {"reverbMix", 0.25f}}}); @@ -1524,7 +1524,7 @@ private: {"reverbSize", 0.5f}, {"reverbDamping", 0.3f}, {"reverbMix", 0.22f} }); - add("Acid Emitter", "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.585}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0}, {"compThreshold", -12}, {"compRatio", 5}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 4}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 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", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.2f}, {"reverbDamping", 0.7f}, {"reverbMix", 0.08f}}}); + add("Acid Emitter", "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.585}, {"pitchBendRange", 2}, {"distType", 0}, {"distAmount", 0.31f}, {"compThreshold", -17}, {"compRatio", 6}, {"compAttack", 1}, {"compRelease", 30}, {"compMakeup", 4}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 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", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 1}, {"delayBeat", 4}, {"reverbSize", 0.2f}, {"reverbDamping", 0.7f}, {"reverbMix", 0.08f}}}); add("Deep Cell", "Bass", { {"osc1Wave", 1}, {"osc1Oct", -2}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.85f}, @@ -1545,7 +1545,7 @@ private: {"reverbSize", 0.15f}, {"reverbDamping", 0.8f}, {"reverbMix", 0.05f} }); - add("Neural Drain", "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.449}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0}, {"compThreshold", -10}, {"compRatio", 8}, {"compAttack", 1}, {"compRelease", 25}, {"compMakeup", 6}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 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", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.1f}, {"reverbDamping", 0.9f}, {"reverbMix", 0.03f}}}); + add("Neural Drain", "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.449}, {"pitchBendRange", 2}, {"distType", 3}, {"distAmount", 0.45f}, {"compThreshold", -15}, {"compRatio", 10}, {"compAttack", 1}, {"compRelease", 25}, {"compMakeup", 6}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 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", 1}, {"lfo1Beat", 4}, {"lfo2Sync", 0}, {"lfo2Beat", 4}, {"delaySync", 0}, {"delayBeat", 4}, {"reverbSize", 0.1f}, {"reverbDamping", 0.9f}, {"reverbMix", 0.03f}}}); add("Prism Wash", "Pad", { {"osc1Wave", 0}, {"osc1Oct", 1}, {"osc1Semi", 0}, {"osc1Fine", 0}, {"osc1Level", 0.45f}, @@ -1646,8 +1646,8 @@ private: {"envAttack", 0.005f}, {"envDecay", 0.25f}, {"envSustain", 0.8f}, {"envRelease", 0.2f}, {"pan", 0}, {"drive", 2.5f}, {"masterLevel", 0.686}, {"pitchBendRange", 2}, - {"distType", 0}, {"distAmount", 0}, - {"compThreshold", -12}, {"compRatio", 5}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 4}, + {"distType", 0}, {"distAmount", 0.3f}, + {"compThreshold", -17}, {"compRatio", 6}, {"compAttack", 2}, {"compRelease", 40}, {"compMakeup", 4}, {"autoPanRate", 0}, {"autoPanDepth", 0}, {"autoPanPhase", 0}, {"lfo1Rate", 4.0f}, {"lfo1Depth", 0.2f}, {"lfo1Shape", 0}, {"lfo1Dest", 0}, {"lfo2Rate", 0}, {"lfo2Depth", 0}, {"lfo2Shape", 0}, {"lfo2Dest", 0},