eigenlab-instruments

ModalKeys

Sintetizador de percusión tonal basado en Modal Synthesis con resonadores de 2 polos.

Concepto

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.

Algoritmo Core

Resonador 2-Polos

y[n] = x[n] + 2r·cos(ω)·y[n-1] - r²·y[n-2]

Donde:

Inharmonicidad

f_n = n × f_1 × √(1 + B × n²)

Parámetros

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

Presets

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

Arquitectura

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

Roadmap

Fase 1: Modal Synthesis ✅ (Actual)

Fase 2: Dispersive Waveguide (Piano Realista)

Fase 3: Física Avanzada

Fase 4: Instrumentos Adicionales


Referencias


Build

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