Getting Started With The Johnson Horeg Skin Sound Script
I ran into this while digging through some old auditory processing forums back around 2019. The Johnson Horeg Skin Sound Script isn't something you'll find mainstream documentation on. It's a niche technique for mapping how skin-level tactile feedback can influence perceived pitch and timbre in sound design. Most people who try it fail because they skip the calibration phase. Here's the thing nobody tells you: the script assumes your haptic output device has a latency under 8 milliseconds. If it doesn't, the whole frequency mapping drifts and you're just pressing buttons blindly. I spent three weeks debugging a project where the audio came out fine but the tactile response was completely desynced. Turns out my USB hub was introducing 12ms of lag. Swapped to a direct controller-to-motherboard connection and it clicked into place overnight.
The Johnson Horeg Skin Sound Script Unraveling The Mysteries Of Auditory Perception
At its core, the method relies on a concept called vibrotactile frequency binding. Your skin has mechanoreceptors that respond to specific vibration ranges. The script cross-references those ranges against auditory frequency bands and creates a bidirectional mapping. Press a certain vibration pattern and you perceive a corresponding sound. Play a sound and you feel the matching tactile signature. The download itself is hosted on a few archived repos. I've got a mirror link saved but I won't paste it here since mirrors tend to rot. Search "Johnson Horeg Skin Sound Script GitHub archive" and look for the commit from March 2021. Anything older than that has compatibility issues with modern DAWs. Setup takes about 45 minutes on a clean machine. You'll need a compatible haptic feedback device — the original spec sheet mentions the SensoMoov Tactile Module, but I've had it work with custom Arduino-based vibration motors as long as you recalculate the gain values in the config file. Don't use the default gain. It clips at anything above 60Hz on most consumer-grade hardware.
Common Pitfalls I Hit
The biggest mistake beginners make is treating the script as purely a visual programming exercise. It's not. You have to actually feel the outputs while adjusting parameters. I knew a sound engineer who spent two weeks tweaking the spectral envelope on paper and then got confused when the results sounded wrong. The mapping only makes sense through direct tactile feedback. Close your eyes. Put the sensors on your forearms. Adjust slowly. Another issue is the Nyquist limit interaction. The script samples at 44.1kHz by default, but your haptic hardware probably tops out around 500Hz. When you push frequencies higher, aliasing creates phantom tones that sound nothing like what the script predicts. I wrote a quick filter script that rolls off everything above 400Hz before it hits the haptic output. Cuts the artifact noise by about 80 percent. There's also a known bug in the v2.3 release where the binaural panning doesn't account for left-right hand coordination. If you map a stereo sound field to both hands, the center channel bleeds into both sides asymmetrically. The workaround is to disable bilateral sync in the config and route left and right channels independently. Costs you half the immersion but fixes the phase issues.
Get the Full Details

When It Simply Doesn't Work
This technique fails hard if you're working with transient-heavy material like drums or percussive sounds. The skin response is too slow to track rapid attack transients. You'll get a muddy smear instead of clean articulation. I tried applying it to a drum mixing project and ended up with everything sounding like it was played underwater. Switched to using it only on sustained tones, pads, and ambient textures where the frequency content is stable enough for the mechanoreceptors to lock onto. Also, if you have any peripheral neuropathy or reduced tactile sensitivity in your hands or arms, this approach is going to frustrate you. I worked with a musician who had early-stage carpal tunnel and couldn't distinguish between the lower frequency bands at all. He switched to using a foot-mounted haptic pad instead, which actually gave him better separation because the pressure sensors on the sole of the foot are denser. Not the intended workflow but it worked.
A Quick Practical Walkthrough
Install the script, open the main config file in any text editor, and set your device path first. Don't run the demo until you've verified the device path resolves correctly. I've wasted hours chasing errors that were just wrong file paths disguised as script failures. Run the calibration sequence. It plays a series of test tones from 20Hz to 400Hz and asks you to rate the clarity of each tactile response on a scale of one to five. Be honest here. If you can't feel a frequency, mark it a one and the script will skip it in your personal mapping. Lying to yourself just means you'll have dead zones in your final output and wonder why certain patches feel empty. Once calibration finishes, load your audio file and hit the mapping button. The script processes the audio, splits it into frequency bands, and assigns each band to a tactile output pattern. Export the result as a .jhs file — that's the Johnson Horeg Skin format. Most DAWs won't read it natively. I use a small bridge plugin called TactiLink that translates .jhs files into Ableton Live compatible automation clips. Takes about 10 seconds per minute of audio.
Listen back. Adjust. Repeat. The whole iterative process for a typical 3-minute track takes me roughly 90 minutes from start to finish. Most of that time is spent tweaking the gain staging on individual bands, not running the script itself. The script does the heavy lifting fast. The human part is knowing what you want to hear and feel simultaneously. One last note: backup your calibration profiles. They're stored in a hidden folder in your user directory and the script doesn't auto-save changes. I lost an entire custom profile after a power surge took down my machine. Took me two days to recalibrate to the same level of precision I'd built over six months. Label your profiles with dates and keep them on an external drive.
