Sintetizador de percusión tonal basado en Modal Synthesis con resonadores de 2 polos.
Banco de resonadores que modelan instrumentos de percusión golpeada: marimba, vibráfono, piano eléctrico, celesta, campanas.
Cada nota activa N resonadores sintonizados a los parciales (armónicos o inarmónicos) del instrumento.
y[n] = x[n] + 2r·cos(ω)·y[n-1] - r²·y[n-2]
Donde:
ω = 2π × freq / Fs (frecuencia angular)r = 10^(-3 / (T60 × Fs)) (decay mapeado a T60)f_n = n × f_1 × √(1 + B × n²)
B varía por registro: 0.0004 (graves) → 0.000005 (agudos)| Parámetro | Rango | Descripción |
|---|---|---|
| Modes | 4-12 | Número de resonadores por nota |
| Inharmonicity | 0-200% | Escala del coeficiente B |
| Decay | 0.5-10s | Tiempo T60 del fundamental |
| Tilt | 0-1 | Decay relativo de agudos (0=igual, 1=rápido) |
| Brightness | 0-1 | Energía en parciales altos |
| Volume | 0-1 | Volumen master |
| Preset | Modes | Inharm | Decay | Tilt | Bright | Carácter |
|---|---|---|---|---|---|---|
| Marimba | 6 | 0% | 3s | 0.6 | 0.5 | Madera cálida |
| Vibraphone | 8 | 15% | 6s | 0.3 | 0.7 | Metal brillante, sustain largo |
| Rhodes | 10 | 40% | 4s | 0.5 | 0.6 | Tines de piano eléctrico |
| Celesta | 8 | 20% | 2s | 0.4 | 0.9 | Brillante, tipo campana |
| Bells | 12 | 100% | 8s | 0.2 | 0.8 | Campanas, muy inarmónico |
plugins/ModalKeys/
├── src/
│ ├── core/
│ │ ├── BandedMode.h # Resonador 2-pole
│ │ ├── BandedString.h # Banco de resonadores
│ │ └── Inharmonicity.h # Coeficientes B por registro
│ ├── synth/
│ │ ├── PianoVoice.h # Voz polifónica
│ │ └── VoiceManager.h # Gestión de 16 voces
│ ├── fx/
│ │ └── Limiter.h # Limitador de seguridad
│ ├── PluginProcessor.cpp
│ └── PluginEditor.cpp
└── CMakeLists.txt
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --target ModalKeys_Standalone -j8
# Abrir
open build/plugins/ModalKeys/ModalKeys_artefacts/Release/Standalone/Modal\ Keys.app
Color: Violet (#8b5cf6) Namespace: modalkeys