Real-time Greenwood filterbank, envelope extractor, sine/noise vocoder simulation, and declarative cross-modal mapping console.
Write real-time mapping scripts in Javascript to route cochlear envelope channels to tactile actuators. Evaluated at 60 FPS.
Greenwood's function describes the relationship between the frequency of an incoming sound and the position of the corresponding hair cells inside the human cochlea. The formula is:
F = A * (10^(a * x) - k)
For human ears, we use the values A = 165.4, a = 2.1, and k = 0.85, where x represents the position from apex (highest sensitivity to low frequencies, x = 0) to base (highest sensitivity to high frequencies, x = 1).
This emulator calculates $N$ bands spaced logarithmically along the cochlear partition using Greenwood's mapping, then creates a bank of filters to isolate the respective bands, simulating a multi-electrode cochlear implant array.
For Deaf and Hard-of-Hearing musicians, we map auditory filters to distinct haptic touch points. However, a static linear map is rarely sufficient to capture the dynamics of complex music.
The Hoxel Scripting Panel allows you to design custom mathematical translation rules. You can use time-varying functions (e.g. Math.sin(t * frequency)) or conditional logic (e.g. envelopes[i] > threshold) to trigger custom rhythms, clicks, sweeps, or motor accelerations dynamically.