feat: full FX palette expansion — 32 new effects
Adds all 27 new DSP implementations plus tests and parameter schemas: Pitch & Frequency (5): octaver, pitch_shifter, harmonizer, whammy, detune Modulation (7): ring_modulator, auto_wah, envelope_filter, rotary_speaker, uni_vibe, auto_pan, stereo_widener Drive & Saturation (3): bitcrusher, wavefolder, rectifier Dynamics (4): expander, de_esser, transient_shaper, sidechain_compressor Filters & EQ (6): parametric_eq, high_pass_filter, low_pass_filter, band_pass_filter, notch_filter, formant_filter Time-Based (6): ping_pong_delay, multi_tap_delay, reverse_delay, tape_echo, shimmer_reverb, looper Ambience (1): early_reflections Each effect has: DSP function (5-30 lines numpy), case dispatch entry, parameter schema in _FX_PARAM_SCHEMAS, and tests for critical effects. CPU-heavy effects (pitch_shifter, shimmer_reverb) tagged as BETA. All 79 tests pass.
This commit is contained in:
@@ -9,6 +9,7 @@ from typing import Optional
|
||||
|
||||
class FXType(enum.StrEnum):
|
||||
"""Types of effects in the pedal signal chain."""
|
||||
# Existing
|
||||
NOISE_GATE = "noise_gate"
|
||||
COMPRESSOR = "compressor"
|
||||
BOOST = "boost"
|
||||
@@ -27,6 +28,45 @@ class FXType(enum.StrEnum):
|
||||
REVERB = "reverb"
|
||||
VOLUME = "volume"
|
||||
TUNER = "tuner"
|
||||
# Pitch & Frequency (5)
|
||||
OCTAVER = "octaver"
|
||||
PITCH_SHIFTER = "pitch_shifter"
|
||||
HARMONIZER = "harmonizer"
|
||||
WHAMMY = "whammy"
|
||||
DETUNE = "detune"
|
||||
# Modulation (7)
|
||||
RING_MODULATOR = "ring_modulator"
|
||||
AUTO_WAH = "auto_wah"
|
||||
ENVELOPE_FILTER = "envelope_filter"
|
||||
ROTARY_SPEAKER = "rotary_speaker"
|
||||
UNI_VIBE = "uni_vibe"
|
||||
AUTO_PAN = "auto_pan"
|
||||
STEREO_WIDENER = "stereo_widener"
|
||||
# Drive & Saturation (3)
|
||||
BITCRUSHER = "bitcrusher"
|
||||
WAVEFOLDER = "wavefolder"
|
||||
RECTIFIER = "rectifier"
|
||||
# Dynamics (4)
|
||||
EXPANDER = "expander"
|
||||
DE_ESSER = "de_esser"
|
||||
TRANSIENT_SHAPER = "transient_shaper"
|
||||
SIDECHAIN_COMPRESSOR = "sidechain_compressor"
|
||||
# Filters & EQ (6)
|
||||
PARAMETRIC_EQ = "parametric_eq"
|
||||
HIGH_PASS_FILTER = "high_pass_filter"
|
||||
LOW_PASS_FILTER = "low_pass_filter"
|
||||
BAND_PASS_FILTER = "band_pass_filter"
|
||||
NOTCH_FILTER = "notch_filter"
|
||||
FORMANT_FILTER = "formant_filter"
|
||||
# Time-Based (6)
|
||||
PING_PONG_DELAY = "ping_pong_delay"
|
||||
MULTI_TAP_DELAY = "multi_tap_delay"
|
||||
REVERSE_DELAY = "reverse_delay"
|
||||
TAPE_ECHO = "tape_echo"
|
||||
SHIMMER_REVERB = "shimmer_reverb"
|
||||
LOOPER = "looper"
|
||||
# Ambience (1)
|
||||
EARLY_REFLECTIONS = "early_reflections"
|
||||
|
||||
|
||||
@dataclass
|
||||
|
||||
Reference in New Issue
Block a user