rmx-19/Source/PresetBank.cpp

721 lines
41 KiB
C++
Raw Normal View History

#include "PresetBank.h"
// Oscillator wave indices (see prm::waveName)
enum { O_SIN = 0, O_TRI, O_SAW, O_PUL, O_NOI };
// Parameter order matches the prm::desc table:
// 0 osc1Wave 1 osc2Wave 2 detune 3 oscMix
// 4 fltType 5 fltCutoff 6 fltRes 7 fltEnv 8 fltKey
// 9 ampA 10 ampD 11 ampS 12 ampR
// 13 fenvA 14 fenvD 15 fenvS 16 fenvR
// 17 lfoRate 18 lfoShape 19 lfoDepth 20 lfoTarget
// 21 fxType 22 fxAmt 23 fxTime
// 24 vol 25 pan 26 poly 27 glide 28 tune
static const Patch defs[] = {
2026-09-08 21:57:34 +02:00
// == POLY PAD ==========================================================
// 1 Warm Pad
{ "Warm Pad", "POLY PAD", { O_SAW, O_SAW, 8, 55, 1, 2600, 0.20f, 60, 35,
0.60f, 1.6f, 0.80f, 1.20f,
0.40f, 0.9f, 0.35f, 0.5f,
4.0f, 0, 0.18f, 0,
1, 0.32f, 0.30f,
0.82f, 0.0f, 12, 0.0f, 0, 0 } },
2026-09-08 21:57:34 +02:00
// 2 Glass Pad
{ "Glass Pad", "POLY PAD", { O_TRI, O_TRI, 12, 60, 1, 1400, 0.55f, 75, 30,
0.80f, 1.8f, 0.90f, 1.60f,
0.50f, 1.2f, 0.40f, 0.8f,
5.2f, 0, 0.16f, 2,
3, 0.38f, 0.40f,
0.92f, 0.0f, 12, 0.0f, 0, 0 } },
2026-09-08 21:57:34 +02:00
// 3 Dream Pad
{ "Dream Pad", "POLY PAD", { O_SAW, O_PUL, -7, 50, 1, 3000, 0.25f, 70, 40,
1.10f, 2.4f, 0.85f, 1.80f,
0.60f, 1.4f, 0.30f, 0.9f,
0.35f, 1, 0.20f, 0,
1, 0.40f, 0.50f,
0.80f, 0.0f, 12, 0.0f, 0, 0 } },
2026-09-08 21:57:34 +02:00
// 15 Choir Layered
{ "Choir Layered", "POLY PAD",{ O_SAW, O_PUL, 9, 48, 1, 2600, 0.14f, 62, 45,
0.35f, 0.80f, 0.85f, 1.10f,
0.30f, 0.60f, 0.35f, 0.60f,
3.4f, 1, 0.12f, 0,
1, 0.38f, 0.42f,
0.82f, 0.0f, 12, 0.0f, 0, 0 } },
2026-09-08 21:57:34 +02:00
// 17 Shimmer Pad
{ "Shimmer Pad", "POLY PAD", { O_TRI, O_TRI, 14, 55, 1, 1800, 0.50f, 60, 20,
0.50f, 2.0f, 0.85f, 2.0f,
0.30f, 1.5f, 0.40f, 1.0f,
5.2f, 0, 0.20f, 2,
3, 0.38f, 0.55f,
0.90f, 0.0f, 16, 0.0f, 0, 0 } },
2026-09-08 21:57:34 +02:00
// 25 Deep Space Pad
{ "Deep Space Pad","POLY PAD", { O_SAW, O_SAW, 16, 60, 1, 1500, 0.45f, 70, 35,
0.90f, 2.4f, 0.85f, 2.2f,
0.50f, 1.6f, 0.45f, 1.2f,
5.0f, 0, 0.22f, 2,
3, 0.42f, 0.70f,
0.80f, 0.0f, 16, 0.0f, 0, 0 } },
2026-09-08 21:57:34 +02:00
// 34 Space Choir
{ "Space Choir", "POLY PAD", { O_TRI, O_SAW, 12, 50, 1, 2400, 0.35f, 65, 45,
0.45f, 1.4f, 0.82f, 1.7f,
0.30f, 0.90f, 0.40f, 0.9f,
3.8f, 1, 0.15f, 0,
3, 0.46f, 0.65f,
0.82f, 0.0f, 12, 0.0f, 0, 0 } },
2026-09-08 21:57:34 +02:00
// 39 Crystal Pad
{ "Crystal Pad", "POLY PAD", { O_SIN, O_TRI, 18, 55, 1, 3600, 0.40f, 50, 25,
0.60f, 2.2f, 0.85f, 2.0f,
0.40f, 1.4f, 0.40f, 1.2f,
5.5f, 0, 0.20f, 2,
3, 0.40f, 0.60f,
0.80f, 0.0f, 12, 0.0f, 0, 0 } },
// 41 Infinite Pad
{ "Infinite Pad", "POLY PAD", { O_SAW, O_SAW, 20, 50, 1, 1800, 0.30f, 75, 35,
2.0f, 3.5f, 0.90f, 4.0f,
1.5f, 2.5f, 0.50f, 3.0f,
0.25f, 1, 0.25f, 2,
3, 0.50f, 0.55f,
0.80f, 0.0f, 16, 0.0f, 0, 0 } },
// 42 Nebula
{ "Nebula", "POLY PAD", { O_TRI, O_PUL, 15, 55, 1, 2000, 0.25f, 65, 30,
1.8f, 3.0f, 0.88f, 3.5f,
1.2f, 2.0f, 0.45f, 2.5f,
0.30f, 0, 0.20f, 0,
3, 0.55f, 0.65f,
0.82f, 0.0f, 16, 0.0f, 0, 0 } },
// 43 Cathedral Pad
{ "Cathedral Pad","POLY PAD", { O_SIN, O_SAW, 12, 45, 2, 1600, 0.45f, 80, 40,
2.5f, 4.0f, 0.92f, 5.0f,
1.8f, 3.0f, 0.55f, 3.5f,
4.0f, 0, 0.15f, 0,
3, 0.60f, 0.80f,
0.78f, 0.0f, 16, 0.0f, 0, 0 } },
// 45 Monolith
{ "Monolith", "POLY PAD", { O_SIN, O_SIN, 0, 50, 1, 320, 0.25f, 40, 15,
2.0f, 3.0f, 0.88f, 4.5f,
1.5f, 2.5f, 0.50f, 3.0f,
3.5f, 0, 0.18f, 2,
3, 0.42f, 0.75f,
0.78f, 0.0f, 16, 0.0f, 0, 0 } },
// 46 Quantum Drift
{ "Quantum Drift","POLY PAD", { O_SAW, O_SAW, 22, 48, 2, 2200, 0.40f, 70, 30,
0.80f, 2.2f, 0.88f, 3.0f,
0.50f, 1.8f, 0.45f, 2.0f,
5.8f, 0, 0.22f, 0,
3, 0.45f, 0.65f,
0.82f, 0.0f, 16, 0.0f, 0, 0 } },
// 47 Horizon
{ "Horizon", "POLY PAD", { O_TRI, O_SAW, 4, 50, 1, 1800, 0.20f, 65, 35,
1.5f, 2.8f, 0.90f, 3.5f,
1.0f, 2.0f, 0.50f, 2.5f,
0.3f, 1, 0.18f, 0,
1, 0.40f, 0.55f,
0.80f, 0.0f, 16, 0.0f, 0, 0 } },
// 52 Abyss
{ "Abyss", "POLY PAD", { O_SAW, O_TRI, 14, 50, 1, 1200, 0.35f, 80, 30,
2.5f, 3.5f, 0.90f, 5.0f,
2.0f, 3.0f, 0.50f, 3.5f,
4.0f, 1, 0.18f, 0,
3, 0.70f, 0.80f,
0.78f, 0.0f, 16, 0.0f, 0, 0 } },
// 53 Shimmer Reverb
{ "Shimmer Reverb","POLY PAD",{ O_TRI, O_SIN, 8, 55, 2, 3400, 0.50f, 75, 25,
3.0f, 4.0f, 0.92f, 5.5f,
2.2f, 3.5f, 0.55f, 4.0f,
5.0f, 0, 0.20f, 2,
3, 0.75f, 0.70f,
0.76f, 0.0f, 16, 0.0f, 0, 0 } },
// 54 Temple
{ "Temple", "POLY PAD", { O_PUL, O_SAW, 6, 48, 1, 1600, 0.30f, 70, 35,
2.0f, 3.0f, 0.88f, 4.5f,
1.5f, 2.5f, 0.48f, 3.0f,
3.5f, 0, 0.15f, 0,
3, 0.65f, 0.75f,
0.80f, 0.0f, 16, 0.0f, 0, 0 } },
// 55 Silk Pad
{ "Silk Pad", "POLY PAD", { O_TRI, O_TRI, 6, 55, 1, 3400, 0.20f, 55, 25,
1.2f, 2.5f, 0.90f, 3.0f,
0.8f, 1.8f, 0.45f, 2.0f,
3.0f, 0, 0.18f, 0,
1, 0.38f, 0.45f,
0.82f, 0.0f, 16, 0.0f, 0, 0 } },
// 56 Glass Cloud
{ "Glass Cloud", "POLY PAD", { O_SIN, O_TRI, 16, 50, 1, 3800, 0.35f, 65, 20,
1.5f, 2.8f, 0.88f, 3.5f,
1.0f, 2.0f, 0.40f, 2.5f,
0.35f, 1, 0.22f, 0,
3, 0.55f, 0.60f,
0.80f, 0.0f, 16, 0.0f, 0, 0 } },
// 57 Velvet Pad
{ "Velvet Pad", "POLY PAD", { O_SAW, O_TRI, 10, 52, 1, 1600, 0.25f, 70, 30,
1.8f, 3.0f, 0.90f, 3.5f,
1.2f, 2.2f, 0.50f, 2.5f,
0.30f, 1, 0.20f, 0,
3, 0.48f, 0.55f,
0.82f, 0.0f, 16, 0.0f, 0, 0 } },
// == KEY ===============================================================
// 5 Electric Piano
{ "Electric Piano", "KEY", { O_PUL, O_TRI, 5, 62, 1, 2800, 0.25f, 45, 40,
0.004f, 1.4f, 0.30f, 0.40f,
0.004f, 0.2f, 0.10f, 0.3f,
6.0f, 0, 0.05f, 2,
1, 0.35f, 0.30f,
0.80f, 0.0f, 12, 0.0f, 0, 0 } },
// 6 Acoustic Piano
{ "Acoustic Piano", "KEY", { O_SAW, O_TRI, 3, 55, 1, 5200, 0.18f, 30, 60,
0.003f, 2.2f, 0.25f, 0.50f,
0.002f, 0.25f, 0.05f, 0.35f,
4.0f, 0, 0.03f, 2,
1, 0.22f, 0.30f,
0.80f, 0.0f, 12, 0.0f, 0, 0 } },
// 7 Toy Piano
{ "Toy Piano", "KEY", { O_PUL, O_PUL, 0, 70, 1, 2100, 0.50f, 30, 45,
0.002f, 0.35f, 0.0f, 0.18f,
0.002f, 0.05f, 0.02f, 0.08f,
5.0f, 0, 0.03f, 2,
2, 0.18f, 0.17f,
0.90f, 0.0f, 12, 0.0f, 0, 0 } },
// 8 Clavinet 70
{ "Clavinet 70", "KEY", { O_PUL, O_PUL, 0, 40, 1, 1500, 0.40f, 60, 30,
0.002f, 0.50f, 0.45f, 0.12f,
0.001f, 0.05f, 0.05f, 0.10f,
4.0f, 0, 0.05f, 0,
1, 0.30f, 0.28f,
0.92f, 0.0f, 12, 0.0f, 0, 0 } },
// 9 Organ Drawbar
{ "Organ Drawbar", "KEY", { O_SAW, O_SAW, 0, 50, 1, 10000, 0.10f, 20, 80,
0.010f, 0.10f, 0.98f, 0.10f,
0.010f, 0.10f, 0.50f, 0.10f,
8.0f, 3, 0.03f, 1,
1, 0.20f, 0.28f,
0.82f, 0.0f, 8, 0.0f, 0, 0 } },
// 10 FM E.Piano
{ "FM E.Piano", "KEY", { O_SIN, O_TRI, 0, 30, 1, 4000, 0.12f, 50, 50,
0.002f, 1.0f, 0.50f, 0.30f,
0.002f, 0.20f, 0.10f, 0.25f,
4.5f, 0, 0.04f, 2,
1, 0.40f, 0.30f,
0.86f, 0.0f, 12, 0.0f, 0, 0 } },
// 19 Church Bell
{ "Church Bell", "KEY", { O_SIN, O_SIN, 0, 40, 1, 3200, 0.40f, 40, 30,
0.002f, 2.5f, 0.10f, 1.8f,
0.002f, 0.3f, 0.10f, 0.6f,
4.4f, 0, 0.05f, 2,
3, 0.30f, 0.60f,
0.92f, 0.0f, 10, 0.0f, 0, 0 } },
// 20 E.Piano 2
{ "E.Piano 2", "KEY", { O_PUL, O_TRI, 4, 58, 1, 2500, 0.30f, 40, 35,
0.003f, 1.2f, 0.40f, 0.5f,
0.003f, 0.25f, 0.20f, 0.3f,
6.0f, 0, 0.04f, 2,
1, 0.35f, 0.30f,
0.80f, 0.0f, 12, 0.0f, 0, 0 } },
// 26 Liquid Keys
{ "Liquid Keys", "KEY", { O_TRI, O_TRI, 8, 55, 1, 2800, 0.30f, 55, 30,
0.30f, 1.6f, 0.60f, 0.90f,
0.20f, 1.0f, 0.30f, 0.60f,
3.6f, 0, 0.16f, 2,
3, 0.36f, 0.50f,
0.84f, 0.0f, 12, 0.0f, 0, 0 } },
// 29 Glassy Chime
{ "Glassy Chime", "KEY", { O_SIN, O_TRI, 20, 65, 1, 4200, 0.35f, 35, 40,
0.005f, 2.0f, 0.30f, 1.6f,
0.004f, 0.35f, 0.15f, 0.6f,
5.6f, 0, 0.08f, 2,
3, 0.34f, 0.60f,
0.82f, 0.0f, 10, 0.0f, 0, 0 } },
// 30 Chorus Organ
{ "Chorus Organ", "KEY", { O_SAW, O_SAW, 0, 42, 1, 8000, 0.14f, 30, 75,
0.010f, 0.10f, 0.95f, 0.12f,
0.010f, 0.12f, 0.60f, 0.15f,
7.5f, 3, 0.04f, 1,
1, 0.40f, 0.34f,
0.86f, 0.0f, 8, 0.0f, 0, 0 } },
// 35 Retro Clav
{ "Retro Clav", "KEY", { O_PUL, O_TRI, 2, 55, 1, 2600, 0.35f, 40, 35,
0.003f, 0.60f, 0.40f, 0.15f,
0.002f, 0.10f, 0.08f, 0.12f,
5.0f, 0, 0.05f, 2,
3, 0.25f, 0.30f,
0.86f, 0.0f, 10, 0.0f, 0, 0 } },
2026-09-08 21:57:34 +02:00
// 40 Funk Wah
{ "Funk Wah", "KEY", { O_PUL, O_SAW, 0, 40, 1, 1800, 0.55f, 75, 20,
0.004f, 0.70f, 0.50f, 0.20f,
0.004f, 0.20f, 0.20f, 0.15f,
7.0f, 2, 0.40f, 0,
1, 0.32f, 0.30f,
0.88f, 0.0f, 1, 0.03f, 0, 0 } },
2026-09-08 21:57:34 +02:00
// == BASS ==============================================================
// 11 Analog Bass
{ "Analog Bass", "BASS", { O_PUL, O_SIN, 0, 80, 1, 700, 0.35f, 35, 10,
0.002f, 0.30f, 0.82f, 0.12f,
0.002f, 0.10f, 0.15f, 0.10f,
3.0f, 0, 0.05f, 0,
0, 0.0f, 0.30f,
0.94f, 0.0f, 1, 0.04f, 0, 0 } },
// 12 Sub Rez Bass
{ "Sub Rez Bass", "BASS", { O_SAW, O_PUL, -4, 45, 1, 520, 0.70f, 55, 15,
0.004f, 0.40f, 0.70f, 0.10f,
0.004f, 0.15f, 0.25f, 0.10f,
2.4f, 3, 0.30f, 0,
0, 0.0f, 0.30f,
0.94f, 0.0f, 1, 0.03f, 0, 0 } },
// 21 Acid Bass
{ "Acid Bass", "BASS", { O_SAW, O_PUL, 0, 72, 1, 650, 0.60f, 70, 0,
0.002f, 0.30f, 0.75f, 0.15f,
0.002f, 0.10f, 0.12f, 0.05f,
0.6f, 1, 0.30f, 0,
0, 0.0f, 0.30f,
0.90f, 0.0f, 1, 0.04f, 0, 0 } },
// 22 Analog Bass II
{ "Analog Bass II", "BASS", { O_PUL, O_SIN, 0, 82, 1, 420, 0.40f, 45, 20,
0.002f, 0.25f, 0.80f, 0.12f,
0.002f, 0.12f, 0.20f, 0.08f,
4.0f, 0, 0.08f, 1,
1, 0.25f, 0.20f,
0.88f, 0.0f, 1, 0.08f, 0, 0 } },
// 33 Sine Sub Bass
{ "Sine Sub Bass","BASS", { O_SIN, O_SIN, 0, 100, 1, 380, 0.20f, 55, 10,
0.003f, 0.35f, 0.85f, 0.10f,
0.003f, 0.10f, 0.30f, 0.10f,
3.5f, 0, 0.06f, 0,
2, 0.25f, 0.20f,
0.90f, 0.0f, 1, 0.05f, 0, 0 } },
// == LEAD ==============================================================
// 13 Saw Lead
{ "Saw Lead", "LEAD", { O_SAW, O_SAW, 14, 50, 1, 3800, 0.25f, 30, 60,
0.005f, 0.30f, 0.80f, 0.20f,
0.005f, 0.15f, 0.30f, 0.15f,
5.4f, 0, 0.14f, 1,
0, 0.0f, 0.28f,
0.86f, 0.0f, 1, 0.06f, 0, 0 } },
// 14 Mr. Square
{ "Mr. Square", "LEAD", { O_PUL, O_PUL, 7, 60, 1, 2400, 0.22f, 20, 70,
0.003f, 0.25f, 0.72f, 0.18f,
0.003f, 0.12f, 0.25f, 0.12f,
6.6f, 0, 0.10f, 1,
0, 0.0f, 0.25f,
0.84f, 0.0f, 1, 0.05f, 0, 0 } },
// 16 8bit Chiptune
{ "8bit Chiptune", "LEAD", { O_PUL, O_PUL, 0, 30, 1, 9000, 0.10f, 10, 70,
0.003f, 0.12f, 0.90f, 0.12f,
0.003f, 0.06f, 0.10f, 0.08f,
9.0f, 0, 0.05f, 0,
0, 0.0f, 0.20f,
0.80f, 0.0f, 6, 0.0f, 0, 0 } },
// 23 Detuned Lead
{ "Detuned Lead", "LEAD", { O_SAW, O_SAW, 18, 45, 1, 4100, 0.20f, 35, 60,
0.004f, 0.22f, 0.85f, 0.16f,
0.004f, 0.12f, 0.30f, 0.10f,
6.8f, 0, 0.09f, 1,
2, 0.25f, 0.45f,
0.85f, 0.0f, 1, 0.05f, 0, 0 } },
// 24 Square Lead
{ "Square Lead", "LEAD", { O_PUL, O_PUL, 10, 55, 1, 5200, 0.25f, 30, 65,
0.004f, 0.35f, 0.72f, 0.20f,
0.004f, 0.15f, 0.25f, 0.12f,
7.2f, 0, 0.08f, 1,
1, 0.30f, 0.25f,
0.85f, 0.0f, 1, 0.06f, 0, 0 } },
// 28 Octave Lead
{ "Octave Lead", "LEAD", { O_PUL, O_SAW, 0, 45, 1, 4200, 0.20f, 25, 65,
0.004f, 0.28f, 0.78f, 0.18f,
0.004f, 0.14f, 0.28f, 0.12f,
6.0f, 0, 0.12f, 1,
2, 0.28f, 0.35f,
0.86f, 0.0f, 1, 0.05f, 0, 0 } },
// 32 Pulse Echo
{ "Pulse Echo", "LEAD", { O_PUL, O_PUL, 0, 35, 1, 6000, 0.18f, 15, 60,
0.005f, 0.32f, 0.70f, 0.20f,
0.005f, 0.16f, 0.30f, 0.15f,
8.0f, 0, 0.10f, 0,
2, 0.45f, 0.38f,
0.84f, 0.0f, 1, 0.04f, 0, 0 } },
// 37 Echo Flute
{ "Echo Flute", "LEAD", { O_TRI, O_SIN, 0, 85, 1, 3000, 0.15f, 20, 55,
0.05f, 0.50f, 0.75f, 0.25f,
0.04f, 0.30f, 0.40f, 0.20f,
4.8f, 0, 0.10f, 1,
2, 0.40f, 0.45f,
0.86f, 0.0f, 1, 0.06f, 0, 0 } },
// 48 Delay Garden
{ "Delay Garden", "LEAD", { O_SAW, O_SAW, 12, 50, 1, 3200, 0.20f, 55, 40,
0.005f, 0.40f, 0.75f, 0.30f,
0.15f, 0.80f, 0.35f, 0.60f,
4.5f, 0, 0.15f, 0,
2, 0.55f, 0.50f,
0.85f, 0.0f, 1, 0.06f, 0, 0 } },
// 49 Cosmic Echo
{ "Cosmic Echo", "LEAD", { O_TRI, O_SIN, 0, 70, 1, 2600, 0.30f, 50, 35,
0.015f, 0.50f, 0.70f, 0.40f,
0.10f, 1.0f, 0.40f, 0.80f,
5.5f, 0, 0.12f, 1,
2, 0.70f, 0.75f,
0.84f, 0.0f, 1, 0.05f, 0, 0 } },
// 50 Stellar Delay
{ "Stellar Delay", "LEAD", { O_SAW, O_PUL, 10, 45, 1, 2800, 0.35f, 50, 35,
0.008f, 0.45f, 0.72f, 0.35f,
0.12f, 0.90f, 0.38f, 0.70f,
6.0f, 0, 0.10f, 0,
2, 0.60f, 0.65f,
0.85f, 0.0f, 1, 0.05f, 0, 0 } },
// 51 Pulse Train
{ "Pulse Train", "LEAD", { O_PUL, O_PUL, 0, 60, 1, 4000, 0.25f, 45, 55,
0.005f, 0.35f, 0.80f, 0.25f,
0.08f, 0.50f, 0.30f, 0.40f,
8.0f, 0, 0.08f, 0,
2, 0.65f, 0.45f,
0.86f, 0.0f, 1, 0.04f, 0, 0 } },
// == STRINGS ===========================================================
// 4 Movie Strings
{ "Movie Strings", "STRINGS", { O_SAW, O_SAW, 6, 45, 1, 2200, 0.15f, 65, 55,
0.50f, 1.2f, 0.80f, 0.70f,
0.40f, 0.8f, 0.35f, 0.5f,
3.1f, 0, 0.10f, 0,
3, 0.28f, 0.45f,
0.82f, 0.0f, 12, 0.0f, 0, 0 } },
// 18 Strings Ensemble
{ "Strings Ens.", "STRINGS", { O_SAW, O_PUL, 8, 58, 1, 3000, 0.10f, 65, 55,
0.25f, 1.2f, 0.82f, 1.8f,
0.20f, 0.7f, 0.40f, 0.6f,
3.8f, 0, 0.10f, 0,
1, 0.30f, 0.30f,
0.80f, 0.0f, 16, 0.0f, 0, 0 } },
// 31 Night Strings
{ "Night Strings","STRINGS", { O_SAW, O_TRI, 10, 52, 0, 2600, 0.10f, 60, 50,
1.10f, 2.6f, 0.85f, 2.0f,
0.55f, 1.6f, 0.40f, 1.1f,
3.2f, 0, 0.14f, 0,
3, 0.40f, 0.55f,
0.84f, 0.0f, 16, 0.0f, 0, 0 } },
// 36 High Strings
{ "High Strings", "STRINGS", { O_SAW, O_PUL, 6, 60, 1, 3400, 0.10f, 55, 60,
0.20f, 1.0f, 0.80f, 1.6f,
0.15f, 0.60f, 0.40f, 0.7f,
4.2f, 0, 0.10f, 0,
1, 0.35f, 0.40f,
0.82f, 0.0f, 16, 0.0f, 0, 0 } },
// 44 Frozen Strings
{ "Frozen Strings","STRINGS", { O_SAW, O_PUL, 10, 55, 1, 2400, 0.12f, 60, 55,
0.20f, 1.0f, 0.80f, 1.6f,
0.15f, 0.60f, 0.40f, 0.7f,
4.2f, 0, 0.10f, 0,
1, 0.35f, 0.40f,
0.82f, 0.0f, 16, 0.0f, 0, 0 } },
// 58 Deep Strings
{ "Deep Strings", "STRINGS", { O_SAW, O_SAW, 12, 50, 1, 1800, 0.12f, 65, 50,
0.40f, 1.4f, 0.82f, 1.5f,
0.30f, 0.80f, 0.38f, 0.60f,
3.5f, 0, 0.12f, 0,
3, 0.38f, 0.50f,
0.82f, 0.0f, 16, 0.0f, 0, 0 } },
// 59 Vinyl Strings
{ "Vinyl Strings","STRINGS", { O_SAW, O_TRI, 8, 48, 1, 2000, 0.15f, 60, 45,
0.35f, 1.2f, 0.78f, 1.4f,
0.25f, 0.70f, 0.35f, 0.55f,
3.2f, 0, 0.10f, 0,
1, 0.32f, 0.42f,
0.84f, 0.0f, 16, 0.0f, 0, 0 } },
// 60 Brass Ensemble
{ "Brass Ens.", "STRINGS", { O_SAW, O_PUL, 5, 55, 1, 2600, 0.20f, 50, 50,
0.15f, 0.80f, 0.75f, 0.50f,
0.10f, 0.50f, 0.30f, 0.40f,
4.0f, 0, 0.08f, 0,
1, 0.30f, 0.35f,
0.82f, 0.0f, 16, 0.0f, 0, 0 } },
// == DUB ===============================================================
// 27 Techno Bass
{ "Techno Bass", "DUB", { O_SAW, O_PUL, 0, 88, 1, 480, 0.45f, 60, 10,
0.003f, 0.40f, 0.75f, 0.10f,
0.003f, 0.12f, 0.15f, 0.08f,
2.0f, 2, 0.35f, 0,
2, 0.32f, 0.28f,
0.92f, 0.0f, 1, 0.03f, 0, 0 } },
// 38 Dub Rez Bass
{ "Dub Rez Bass", "DUB", { O_SAW, O_PUL, -5, 60, 1, 500, 0.65f, 45, 5,
0.004f, 0.35f, 0.80f, 0.12f,
0.004f, 0.15f, 0.25f, 0.12f,
0.8f, 3, 0.30f, 0,
2, 0.40f, 0.36f,
0.90f, 0.0f, 1, 0.05f, 0, 0 } },
// 61 Dub Sub
{ "Dub Sub", "DUB", { O_SIN, O_SIN, 0, 100, 1, 350, 0.15f, 30, 15,
0.003f, 0.40f, 0.85f, 0.15f,
0.003f, 0.12f, 0.25f, 0.10f,
3.0f, 0, 0.05f, 0,
2, 0.45f, 0.35f,
0.90f, 0.0f, 1, 0.04f, 0, 0 } },
// 62 Dub Wobble
{ "Dub Wobble", "DUB", { O_SAW, O_PUL, 0, 75, 1, 400, 0.55f, 65, 20,
0.003f, 0.35f, 0.78f, 0.12f,
0.003f, 0.15f, 0.20f, 0.10f,
0.5f, 2, 0.40f, 0,
2, 0.50f, 0.40f,
0.90f, 0.0f, 1, 0.03f, 0, 0 } },
// 63 Dub Rumble
{ "Dub Rumble", "DUB", { O_SAW, O_SIN, -3, 65, 1, 380, 0.40f, 50, 10,
0.004f, 0.30f, 0.82f, 0.10f,
0.004f, 0.10f, 0.18f, 0.08f,
1.2f, 3, 0.30f, 0,
2, 0.55f, 0.45f,
0.88f, 0.0f, 1, 0.04f, 0, 0 } },
// 64 Dub Delay Bass
{ "Dub Delay Bs", "DUB", { O_PUL, O_SIN, 0, 78, 1, 420, 0.50f, 55, 15,
0.003f, 0.30f, 0.80f, 0.10f,
0.003f, 0.10f, 0.20f, 0.08f,
1.5f, 2, 0.35f, 0,
2, 0.60f, 0.50f,
0.90f, 0.0f, 1, 0.03f, 0, 0 } },
// == CHORDS ============================================================
// 65 Chord Stab
{ "Chord Stab", "CHORDS", { O_SAW, O_SAW, 6, 55, 1, 3200, 0.20f, 40, 30,
0.003f, 0.20f, 0.0f, 0.10f,
0.002f, 0.10f, 0.02f, 0.08f,
6.0f, 0, 0.05f, 2,
1, 0.35f, 0.25f,
0.84f, 0.0f, 12, 0.0f, 0, 0 } },
// 66 Super Chord
{ "Super Chord", "CHORDS", { O_SAW, O_PUL, 10, 50, 1, 2800, 0.18f, 45, 35,
0.004f, 0.25f, 0.0f, 0.12f,
0.003f, 0.12f, 0.03f, 0.10f,
5.5f, 0, 0.06f, 2,
1, 0.40f, 0.30f,
0.84f, 0.0f, 12, 0.0f, 0, 0 } },
// 67 Poly Brass
{ "Poly Brass", "CHORDS", { O_SAW, O_SAW, 8, 52, 1, 3000, 0.25f, 35, 40,
0.005f, 0.30f, 0.0f, 0.15f,
0.004f, 0.15f, 0.05f, 0.12f,
5.0f, 0, 0.08f, 2,
1, 0.35f, 0.28f,
0.82f, 0.0f, 12, 0.0f, 0, 0 } },
// 68 Saw Stack
{ "Saw Stack", "CHORDS", { O_SAW, O_SAW, 14, 55, 1, 2600, 0.15f, 50, 30,
0.003f, 0.18f, 0.0f, 0.08f,
0.002f, 0.08f, 0.02f, 0.06f,
6.5f, 0, 0.04f, 2,
1, 0.30f, 0.22f,
0.82f, 0.0f, 12, 0.0f, 0, 0 } },
// 69 Deep Chord
{ "Deep Chord", "CHORDS", { O_TRI, O_SAW, 4, 50, 1, 2200, 0.22f, 55, 35,
0.004f, 0.22f, 0.0f, 0.12f,
0.003f, 0.10f, 0.03f, 0.10f,
5.0f, 0, 0.06f, 2,
1, 0.38f, 0.28f,
0.84f, 0.0f, 12, 0.0f, 0, 0 } },
// 70 Synth Stab
{ "Synth Stab", "CHORDS", { O_PUL, O_SAW, 5, 58, 1, 3500, 0.30f, 35, 25,
0.003f, 0.15f, 0.0f, 0.08f,
0.002f, 0.08f, 0.02f, 0.06f,
7.0f, 0, 0.04f, 2,
1, 0.32f, 0.20f,
0.86f, 0.0f, 12, 0.0f, 0, 0 } },
// == SYNTH =============================================================
// 71 Poly Sync
{ "Poly Sync", "SYNTH", { O_SAW, O_PUL, 8, 55, 1, 3400, 0.25f, 40, 35,
0.005f, 0.30f, 0.75f, 0.18f,
0.004f, 0.15f, 0.25f, 0.12f,
5.5f, 0, 0.12f, 0,
1, 0.32f, 0.28f,
0.84f, 0.0f, 10, 0.0f, 0, 0 } },
// 72 Dark Synth
{ "Dark Synth", "SYNTH", { O_SAW, O_SAW, 12, 48, 1, 2000, 0.35f, 60, 25,
0.008f, 0.35f, 0.70f, 0.20f,
0.006f, 0.20f, 0.30f, 0.15f,
4.0f, 0, 0.15f, 0,
1, 0.35f, 0.32f,
0.82f, 0.0f, 10, 0.0f, 0, 0 } },
// 73 Bright Synth
{ "Bright Synth", "SYNTH", { O_SAW, O_TRI, 10, 50, 1, 4200, 0.15f, 30, 45,
0.004f, 0.25f, 0.80f, 0.15f,
0.003f, 0.12f, 0.28f, 0.10f,
6.0f, 0, 0.10f, 1,
1, 0.28f, 0.25f,
0.85f, 0.0f, 10, 0.0f, 0, 0 } },
// 74 Mono Synth
{ "Mono Synth", "SYNTH", { O_PUL, O_SAW, 0, 60, 1, 3000, 0.30f, 45, 40,
0.003f, 0.22f, 0.78f, 0.15f,
0.003f, 0.10f, 0.25f, 0.10f,
5.0f, 0, 0.12f, 1,
0, 0.0f, 0.25f,
0.85f, 0.0f, 1, 0.06f, 0, 0 } },
// 75 Retro Synth
{ "Retro Synth", "SYNTH", { O_SAW, O_PUL, 6, 52, 1, 2800, 0.22f, 38, 50,
0.005f, 0.28f, 0.72f, 0.18f,
0.004f, 0.14f, 0.22f, 0.12f,
5.5f, 0, 0.10f, 0,
1, 0.30f, 0.30f,
0.84f, 0.0f, 10, 0.0f, 0, 0 } },
// 76 Sine Synth
{ "Sine Synth", "SYNTH", { O_SIN, O_TRI, 4, 60, 1, 3600, 0.18f, 35, 30,
0.006f, 0.30f, 0.78f, 0.20f,
0.005f, 0.18f, 0.28f, 0.15f,
4.5f, 0, 0.10f, 0,
1, 0.32f, 0.28f,
0.84f, 0.0f, 10, 0.0f, 0, 0 } },
// == ARP ===============================================================
// 77 Arp Saw
{ "Arp Saw", "ARP", { O_SAW, O_SAW, 6, 55, 1, 3800, 0.20f, 35, 45,
0.005f, 0.15f, 0.70f, 0.08f,
0.004f, 0.10f, 0.20f, 0.08f,
6.0f, 0, 0.10f, 0,
1, 0.28f, 0.20f,
0.84f, 0.0f, 10, 0.0f, 0, 0,
1, 2, 0, 2, 70 } },
// 78 Arp Pulse
{ "Arp Pulse", "ARP", { O_PUL, O_PUL, 4, 58, 1, 3200, 0.25f, 40, 50,
0.004f, 0.12f, 0.65f, 0.06f,
0.003f, 0.08f, 0.18f, 0.06f,
7.0f, 0, 0.08f, 0,
1, 0.30f, 0.18f,
0.84f, 0.0f, 10, 0.0f, 0, 0,
1, 2, 0, 2, 70 } },
// 79 Arp Sine
{ "Arp Sine", "ARP", { O_SIN, O_TRI, 0, 70, 1, 4000, 0.15f, 30, 35,
0.003f, 0.10f, 0.60f, 0.05f,
0.002f, 0.06f, 0.15f, 0.05f,
5.5f, 0, 0.06f, 0,
1, 0.25f, 0.15f,
0.86f, 0.0f, 10, 0.0f, 0, 0,
1, 1, 2, 2, 60 } },
// 80 Arp Space
{ "Arp Space", "ARP", { O_TRI, O_SAW, 8, 52, 1, 3000, 0.22f, 45, 40,
0.005f, 0.18f, 0.70f, 0.10f,
0.004f, 0.12f, 0.22f, 0.08f,
5.0f, 0, 0.12f, 0,
3, 0.45f, 0.40f,
0.82f, 0.0f, 10, 0.0f, 0, 0,
1, 4, 0, 2, 70 } },
// 81 Arp Trance
{ "Arp Trance", "ARP", { O_SAW, O_SAW, 10, 50, 1, 3500, 0.18f, 40, 50,
0.004f, 0.12f, 0.72f, 0.08f,
0.003f, 0.08f, 0.20f, 0.06f,
8.0f, 0, 0.10f, 0,
2, 0.40f, 0.35f,
0.84f, 0.0f, 10, 0.0f, 0, 0,
1, 2, 0, 3, 60 } },
// 82 Arp Square
{ "Arp Square", "ARP", { O_PUL, O_SAW, 0, 65, 1, 3000, 0.30f, 35, 45,
0.003f, 0.10f, 0.65f, 0.05f,
0.002f, 0.06f, 0.18f, 0.05f,
7.5f, 0, 0.06f, 0,
1, 0.30f, 0.18f,
0.85f, 0.0f, 10, 0.0f, 0, 0,
1, 2, 1, 2, 60 } },
// 83 Arp Pluck
{ "Arp Pluck", "ARP", { O_TRI, O_TRI, 3, 60, 1, 3200, 0.18f, 30, 40,
0.002f, 0.08f, 0.55f, 0.04f,
0.002f, 0.05f, 0.15f, 0.04f,
6.5f, 0, 0.05f, 0,
1, 0.28f, 0.15f,
0.86f, 0.0f, 10, 0.0f, 0, 0,
1, 1, 2, 2, 50 } },
// 84 Moon Pad
{ "Moon Pad", "POLY PAD", { O_SIN, O_TRI, 14, 55, 1, 2200, 0.30f, 55, 25,
1.5f, 2.8f, 0.88f, 3.2f,
1.0f, 2.0f, 0.40f, 2.2f,
0.4f, 1, 0.20f, 0,
3, 0.50f, 0.55f,
0.82f, 0.0f, 16, 0.0f, 0, 0 } },
// 85 Orchestral
{ "Orchestral", "STRINGS", { O_SAW, O_PUL, 8, 55, 1, 2400, 0.12f, 60, 55,
0.30f, 1.1f, 0.80f, 1.8f,
0.20f, 0.70f, 0.38f, 0.60f,
3.6f, 0, 0.10f, 0,
3, 0.35f, 0.45f,
0.82f, 0.0f, 16, 0.0f, 0, 0 } },
// 86 Arp Bubble
{ "Arp Bubble", "ARP", { O_TRI, O_SIN, 0, 70, 1, 3800, 0.12f, 25, 30,
0.002f, 0.08f, 0.55f, 0.04f,
0.002f, 0.05f, 0.12f, 0.04f,
7.5f, 0, 0.05f, 0,
1, 0.25f, 0.12f,
0.86f, 0.0f, 10, 0.0f, 0, 0,
1, 1, 3, 2, 50 } },
// 87 Arp Pyramid
{ "Arp Pyramid", "ARP", { O_PUL, O_SAW, 0, 62, 1, 3000, 0.25f, 30, 45,
0.003f, 0.10f, 0.60f, 0.05f,
0.002f, 0.06f, 0.15f, 0.05f,
6.0f, 0, 0.06f, 0,
1, 0.28f, 0.15f,
0.85f, 0.0f, 10, 0.0f, 0, 0,
1, 3, 2, 3, 60 } },
// 88 Arp Sweep
{ "Arp Sweep", "ARP", { O_SAW, O_SAW, 8, 55, 1, 3400, 0.20f, 45, 35,
0.004f, 0.15f, 0.68f, 0.08f,
0.003f, 0.10f, 0.20f, 0.06f,
5.5f, 0, 0.10f, 0,
3, 0.42f, 0.35f,
0.83f, 0.0f, 10, 0.0f, 0, 0,
1, 4, 0, 2, 65 } },
// 89 Arp Chimes
{ "Arp Chimes", "ARP", { O_SIN, O_TRI, 12, 60, 1, 4200, 0.25f, 35, 30,
0.002f, 0.06f, 0.50f, 0.03f,
0.002f, 0.04f, 0.10f, 0.03f,
6.0f, 0, 0.04f, 0,
3, 0.38f, 0.40f,
0.84f, 0.0f, 10, 0.0f, 0, 0,
1, 2, 2, 2, 45 } },
// 90 Arp Midnight
{ "Arp Midnight", "ARP", { O_PUL, O_PUL, 6, 55, 1, 2600, 0.30f, 40, 40,
0.004f, 0.12f, 0.62f, 0.06f,
0.003f, 0.08f, 0.18f, 0.05f,
5.0f, 0, 0.08f, 0,
2, 0.35f, 0.48f,
0.85f, 0.0f, 10, 0.0f, 0, 0,
1, 2, 1, 2, 55 } },
// 91 Arp Cascade
{ "Arp Cascade", "ARP", { O_SAW, O_TRI, 10, 52, 1, 3200, 0.15f, 35, 45,
0.003f, 0.10f, 0.65f, 0.06f,
0.003f, 0.06f, 0.20f, 0.05f,
7.0f, 0, 0.06f, 0,
1, 0.30f, 0.28f,
0.85f, 0.0f, 10, 0.0f, 0, 0,
1, 2, 0, 3, 65 } },
};
PresetBank::PresetBank()
{
patches.assign (defs, defs + juce::numElementsInArray (defs));
2026-09-08 21:57:34 +02:00
buildCategoryIndex();
}
void PresetBank::buildCategoryIndex()
{
catIndex.names.clear();
catIndex.patchIndices.clear();
for (int i = 0; i < (int) patches.size(); ++i)
{
const juce::String cat (patches[i].category);
int idx = catIndex.names.indexOf (cat);
if (idx < 0)
{
idx = catIndex.names.size();
catIndex.names.add (cat);
catIndex.patchIndices.push_back ({});
}
catIndex.patchIndices[(size_t) idx].push_back (i);
}
}
int PresetBank::findByName (const juce::String& name) const
{
for (int i = 0; i < patches.size(); ++i)
if (juce::String (patches[i].name) == name)
return i;
return -1;
}
void PresetBank::writeTo (int i, juce::AudioProcessorValueTreeState& apvts) const
{
const int n = (int) patches.size();
i = juce::jlimit (0, n - 1, i);
const Patch& p = patches[i];
for (int k = 0; k < prm::num; ++k)
{
if (k == static_cast<int> (prm::Id::hq)) continue; // global, not per-patch
if (auto* par = apvts.getParameter (prm::desc (static_cast<prm::Id> (k)).id))
par->setValueNotifyingHost (par->convertTo0to1 (p.v[k]));
}
}