d9682f3bea
- 15 FX blocks implemented with per-block state isolation - All blocks <500us per 256-sample block (reverb closest at 465us on x86) - 57 unit tests all passing (per-effect, chain, bypass, state isolation) - Benchmark script at scripts/benchmark_fx.py - Vectorised delay reads via read_block_varying() - scipy.lfilter for EQ (3-band RBJ) and reverb damping - Fixed _DelayLine.write_block wraparound crash for large blocks - Comb/Allpass buffers sized to BLOCK_SIZE * 2 minimum