ποΈ AudioHax: Reviving a 15-Year-Old Dream ποΈ
October 21, 2025 β project intro, audiohax, acoustic art
βββββββ βββ βββββββββββ ββββββ βββββββ βββ βββ
ββββββββββββ βββββββββββββββββββββββββββββββ ββββ
βββ ββββββ ββ βββββββββ ββββββββββββββββ βββββββ
βββββ βββββββββββββββββββ ββββββββββββββββ βββββ
ββββββββββββββββββββββββββββββ ββββββ βββ βββ
βββββββ ββββββββ βββββββββββ ββββββ βββ βββ
Fifteen years ago, I wasnβt the one writing the code.
I was the music guy, the consultant, the theory nerd, the one arguing about chord progressions while others hammered C++ into submission at 3 AM.
The real engine was three friends:
- Vince β the archivist and realist. It turns out he also held on to the files after all these years. One of the greatest friends one could ask for.
- Creede β the thinker and planner. Just last week, he told me he still thinks about the project regularly. One of the kindest people you could hope to know.
- Kyle β the legend. A βsuper-coderβ who wrote undetectable viruses just to understand them, then deleted them for fun. I always hoped he found a job worthy of that kind of raw skill.
Back then, we called it Acoustic Art. The idea:
Take an image β Break it into data β Translate that into music.
It wasnβt just βassign colors to notes.β It was deeper: texture, shape, balance, rhythm. A blend of computer vision and music theory, with enough knobs to make each piece unique.
I kept the code. For a decade and a half, it sat on my drives like a ghost. A project that wouldnβt leave me alone. I didnβt have the skills to resurrect it back then, but I told myself: One day.
Now, one day has arrived.
I dusted off the old code, rebuilt the vision in Rust, and reimagined what Acoustic Art could be with modern tools. When I told my friends I was resurrecting it, it was heartwarming to find out theyβd been thinking about it too.
π The Present Day
The project has a new name now: AudioHax. And for the first time in 15 years, itβs alive.
Right now, I can:
- Take an image
- Run it through an analysis pipeline
- Map its features to musical data
- Output it as MIDI
- Render it into audio
Iβve captured a proof-of-concept video of this exact process, which Iβll be linking below.
This isnβt the end goal β far from it β but itβs a massive milestone.
π οΈ Currently Implemented
High-level modules in the current repo:
- mapping_loader β loads JSON mapping tables (
assets/mappings.json) that map visual features (hue ranges, brightness, edge density) to musical modes, chord choices, instrument patches, and velocity/rhythm heuristics. - chord_engine β takes mapping + feature vectors and produces chord progressions and per-instrument note sets. Supports program changes and arpeggiation.
- image_source β abstract source model (preselected image path or a camera/source abstraction).
- image_analysis β OpenCV-based feature extractor:
- Global features (avg hue, edge density, brightness)
- Scan-bar features (per-section brightness, hue deltas β mapped to multiple instruments)
- Local helpers (histograms, Laplacian variance for texture, edge orientation metrics)
- midi_output β wraps
midirto send program changes, note on/off, and arpeggios. - CLI glue (main.rs) β parses
--instrumentsandplayflags; defaults toassets/example.jpgwhen no path is provided.
π§ The Road Ahead
Three big steps remain before AudioHax becomes what Iβve been imagining all these years:
- Music Theory Mapping β Refine mappings with full integration of key signatures, chord progressions, and stylistic options so the music feels intentional, not random.
- Webcam Integration β Real-time operation, pulling visual data from a live feed. Imagine standing in an installation space, moving objects around, and hearing the music shift instantly.
- Data Transmission & Decoding β The βHaxβ side of AudioHax. Encode data in the music itself, transmit it over an audio channel, and decode it on the other end. Think about data quietly transmitted in everyday sound environments β elevators, public transit, coffee shops β without anyone realizing it.
π‘ Why It Matters to Me
This project started as a creative experiment with friends. Now, itβs a blend of art, tech, and security research that perfectly hits all my passions.
Itβs also proof that some ideas arenβt meant to be abandoned. They just need time, skills, and the right spark to come back to life.
Next up: building a custom Rust-based audio modem β a tool that can encode arbitrary data, transmit it over audio, and decode it on the other end. Thatβs going to open up a lot of possibilities, both in art and in security research.
But first, hereβs the proof-of-concept that started it allβ¦ again: