HouMIDI
HouMIDI is a set of Houdini HDAs for importing, exporting, and generating MIDI directly from geometry. Notes are driven by point attributes. No CHOPs, no heavy dependencies, minimal external package installs required.
Originally built to give sound designers consistent timing out of Houdini, the scope grew quickly into a full geometry-to-music pipeline.
Available on Gumroad
Geometry-Driven MIDI
This started as a weekend project to sharpen my Python and HDA skills, then turned into something I could stop using for weeks.
The main idea was simple, why not represent midi nodes as points? After all Geometry and MIDI is just data.
Particle Lenia Sonification
How It Works
Notes are triggered directly from point attributes. Each point can carry i@note, f@velocity, i@noteLength, and a i@trigger attribute. Channels are auto-assigned from point id. Timing is frame-based and adapts to scene time — no manual BPM wrangling.
Houdini’s userData stores active note and trigger states across frames, so the script tracks what’s playing and what’s changed on a per-frame basis without re-evaluating everything from scratch.
Features
Hold Mode & Timed Notes
Two trigger modes: Hold keeps a note on for as long as the trigger attribute is active. Timed fires a note and cuts it off after note_length frames or a fallback default.
Pitch Bend + Mod Wheel
Global detail attributes map directly to MIDI controllers. A 0–1 float on pitchbend remaps to the full MIDI bend range (−8192 to 8191). A 0–1 float on modwheel maps to CC #1 (0–127).
Minimal Dependencies
Uses only hou, mido for MIDI I/O, and standard library modules (json, time, os). No CHOPs, no compiled extensions, no install scripts.
make music in houdini
using midi data for sound design
Get HouMIDI
using midi data for sound design