Yo! Sysadmin / audio-DSP / app-dev guy here, been circling this repo for years without a way in, because I’m not a vision or touch person. Many years ago I read On Intelligence, then Thousand Brains, and have been trying to keep up with Numenta ever since. Three weeks ago I found Richard Lyon’s Human and Machine Hearing and realized Monty was deaf, and that I could fix it.
This is what’s in the repo (I’m still cleaning it up, ignore the references to GODOT ports):
- A real cochlea. No spectrogram here. Lyon’s full CARFAC cascade plus the Stabilized Auditory Image, running in real time, verified against the google/carfac Python reference. Every constant is a published physiological parameter. A hearing scientist can lesion it. An engineer using REAPER can analyze tracks in real time with it.
- An AudioSM. SAI frames become Monty percepts: (channel, log-lag) as location, a small harmonic-timbre vector as the feature. Same skeleton as CameraSM. No audio-specific code anywhere in the learning module.
- Objects learned from one exposure, as graphs. A siren is a path, a drone is a knot, a guitar riff is a tangle you can read the chord changes off of. The JSFX makes an excellent guitar tuner, and I’ll be using that aspect to develop new ideas for my open-source JSFX suite.
- Innate transposition invariance. Because the frame is log-lag, a key change is a translation, and Monty matches anywhere in the tests so far. A tune learned in A minor is recognized in C minor, first hearing, same step count as the in-key take. Tested on a synthetic sweep and on my own guitar, +3.0 semitones on the nose.
- Timbre as texture. Adding the harmonic vector to each node took a drone from “timed out, hedging” to certain in 26 steps. Still no audio-specific code in the LM, which is the point of the theory, and Im happy to report that it’s holding.
Two sensors are better than one, especially if they’re speaking the same language.
I went crazy and kept asking questions, and the system started measuring things I didn’t ask it to. It told two guitars apart by how much the hollow-body’s resonances spawn rival percepts compared to a solid-body Ibanez 7-string. It found a ruler bug in my tolerance geometry (Hz where it should have been cents) by producing a rad result that died under its own control. Every wrong guess turned into an experiment, and every experiment ran in about five minutes. Around 100 runs in one enjoyable, particularly-for-coding, day. I even got to play guitar. Hypotheses died by the pound, my friends, and I think I gained a gram of understanding from it.
At first I was happy just to connect the ideas of two researchers I’ve grown to respect. Then I started running tons of experiments. I have a day job that has nothing to do with neuroscience or AI research, so I’ll keep running these at around two afternoons a week and posting results. But this is just fun for me, and could be useful in other more serious hands than mine. And that brought me here.
Plots, configs, the frozen baseline, and the percept logs are all in the repo: [link]. Everything above has a registered prediction and a control behind it. For what it’s worth, the results ring true to my… ears… and much of the tuning was done through 25 years of audio engineering and electronics experience. It’s nice to be able to put a graph to the mystical world of “tone,” and I couldn’t have done it without y’all’s work on Monty and Lyon’s on the cochlea.
What I’d love from this crowd: eyes on the AudioSM contract (am I abusing the pose plumbing?), thoughts on where mode should live (it’s visible in the residual and invisible in the verdict, which smells like a hierarchy question) and anyone who’s thought about a learning-module-level notion of time, because right now a tune is the same graph at any tempo. Time and phase are just as good indicators of difference as the shape of the signal itself, and something I have taken advantage of in many-a-plugin. I think the model would benefit greatly from a sense of time.
edit: ran an echolocation experiment. Please enjoy the graph below, showing a bat coorrectly guesing the shape of a room on sound alone.
edit 2: late night experiments. 10 bats search with no knowledge to get around the obstacle. Bat 11, fed with the map built with Monty, immediately takes the shortcut. Bat goal includes cost of achieving its goal. Dope.




