Skip to content
Haoran Hou
← ResearchTeam research · programming tools for music
Team research · programming tools for music

MaxPy / FoRG

Working with Mark Santolucito’s group on MaxPy, with the current team project focused on type checking.

MaxPy / FoRG
Two MaxPy-generated oscillators from the project’s NIME 2023 paper, Figure 4. Ranger Liu, Satchel Peterson, Richard Lee and Mark Santolucito. CC BY 4.0.

Python and the patching canvas

MaxPy and MaxPyLang use Python to generate and edit Max/MSP patches. A short program can place objects, repeat structures, and make connections that would take many manual steps on a patching canvas. The resulting patch can then be opened and worked on visually in Max.

Our current focus: type checking

I am working with Mark Santolucito’s group on a team project focused on type checking in this setting. The question is what a tool can tell us about a patch before it runs. For musical programming, the difference between an audio signal and a control message matters, as do the expectations of the objects being connected. Useful checking should make a problem easier to locate and understand while leaving room to experiment.

My role and interests

My work is within the group’s existing MaxPy and MaxPyLang codebases. I am learning how the Python representation relates to Max objects and patch connections, alongside the team’s type-checking work. Coming from composition and production, I am particularly interested in how feedback from a programming tool can help someone keep working on the sound.

The research group

FoRG is the Formal Methods and Reasoning Group, led by Mark Santolucito at Barnard College, Columbia University. The group studies automated reasoning and tools that support human reasoning. MaxPyLang is one of its current projects. The lab website and project repository are linked above.

Haoran Hou · team project with Mark Santolucito’s FoRG, Barnard College, Columbia University