Recording this so nobody spends a week tuning mode tables to fix something that is structural.
acoustickit's ride, crash and hi-hats are the weakest voices in the kit. The dossier (docs/effects-internal/dossiers/instruments/acoustickit.md in the workspace anchor, §3) has the literature on why, and it is specific:
- Skare & Abel, DAFx-19, Real-Time Modal Synthesis of Crash Cymbals: "a cowbell may be synthesized with a few dozen modes, but qualitatively, a cymbal wash benefits from hundreds or even thousands of modes." Their working system runs 1600–1900 modes per cymbal on a GPU.
audiomodal.Bank caps at 64, on a 360 MHz microcontroller, and acoustickit gives the crash seven.
- The same paper names what mode count alone will not buy: "the cymbal attack is instantaneous, and clearly lacks the interesting 'bloom' as we move from linear to nonlinear regimes." A real cymbal's high-frequency content builds over the first tens of milliseconds as energy cascades up through the plate. A linear bank's onset is present or absent, all at once.
So the honest grading is: judge the cymbals against the dossier's §6 criteria, not against a real crash.
Two things that would genuinely move them, in the order I would try them:
- Shape the bloom into the excitation. The bank is linear and fed from outside, so an excitation whose high-frequency content ramps over ~30 ms would put some of the cascade in without touching the node. Cheap, and it is the one idea here that costs nothing at runtime.
- Velocity-switched mode sets, which is Skare & Abel's own workaround — several tables per cymbal, interpolated by strike energy.
set_modes() already loads a whole table in one call, so the machinery exists; what is missing is the tables.
Not doing either now: the kit is at 31% of the P4's block and works, and this is the part the literature says will stay imperfect.
Recording this so nobody spends a week tuning mode tables to fix something that is structural.
acoustickit's ride, crash and hi-hats are the weakest voices in the kit. The dossier (docs/effects-internal/dossiers/instruments/acoustickit.mdin the workspace anchor, §3) has the literature on why, and it is specific:audiomodal.Bankcaps at 64, on a 360 MHz microcontroller, andacoustickitgives the crash seven.So the honest grading is: judge the cymbals against the dossier's §6 criteria, not against a real crash.
Two things that would genuinely move them, in the order I would try them:
set_modes()already loads a whole table in one call, so the machinery exists; what is missing is the tables.Not doing either now: the kit is at 31% of the P4's block and works, and this is the part the literature says will stay imperfect.