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

on Gumroad

using midi data for sound design

other Projects ↘

Settle HDA