Monome norns (script nmMelodyMagic): OSC control from Claude, scripts and controllers
136 named commands to drive Monome norns over OSC — from Claude (MCP), live-coding environments or a MIDI controller.
- sourcemaker's documentation
- firmwarenmmelodymagic-00c8583
- real unitnot yet checked
Not checked on a real Monome norns yet. Own one? Load a sound or send a control, and tell us whether it worked.
- Maker
- Monome
- Version
- script nmMelodyMagic (TuesdayNightMachines/nmMelodyMagic @ 00c8583)
- Source
- maker's documentation
- OSC prefix
/norns_nmmelodymagic
From the README of TuesdayNightMachines/nmMelodyMagic at 00c8583.
A Monome Norns port of Ken Stone’s Infinite Melody, Diatonic Converter and Modulo Magic 4U CGS Serge modules.
https://llllllll.co/t/nmmelodymagic/
Use it
Start the bridge with this driver; it forwards named OSC commands to the software:
Then send OSC to 127.0.0.1:7777, for example:
From Claude or any MCP client, the osc-bridge mcp server exposes this driver as norns_nmmelodymagic: ask “what can the Monome norns do?” and it reads this map with list_routes. See the MCP guide.
MIDI controls
136 controls, each with its number, its range and the name to send
OSC commands
| Command | Arguments | Name to send |
|---|---|---|
| Param | id: string, value: float | /norns_nmmelodymagic/param/{id} |
| Param {set} {id} | set: string, id: string, value: float | /norns_nmmelodymagic/param/{set}/{id} |
| Remote key | n: int, z: int | /norns_nmmelodymagic/remote/key |
| Remote enc | n: int, delta: int | /norns_nmmelodymagic/remote/enc |
| Remote brd | code: int, z: int | /norns_nmmelodymagic/remote/brd |
| Param loadDefault | /norns_nmmelodymagic/param/loadDefault |
|
| Param loadLaststate | /norns_nmmelodymagic/param/loadLaststate |
|
| Param audioOut | value: int | /norns_nmmelodymagic/param/audioOut |
| Param midi input | value: int | /norns_nmmelodymagic/param/midi_input |
| Param midi output | value: int | /norns_nmmelodymagic/param/midi_output |
| Param midiClockOut | value: int | /norns_nmmelodymagic/param/midiClockOut |
| Param imDAC1Midi | value: int | /norns_nmmelodymagic/param/imDAC1Midi |
| Param imDAC1Ch | value: int | /norns_nmmelodymagic/param/imDAC1Ch |
| Param imDAC1pMidi | value: int | /norns_nmmelodymagic/param/imDAC1pMidi |
| Param imDAC1pCh | value: int | /norns_nmmelodymagic/param/imDAC1pCh |
| Param imDAC2Midi | value: int | /norns_nmmelodymagic/param/imDAC2Midi |
| Param imDAC2Ch | value: int | /norns_nmmelodymagic/param/imDAC2Ch |
| Param imDAC2pMidi | value: int | /norns_nmmelodymagic/param/imDAC2pMidi |
| Param imDAC2pCh | value: int | /norns_nmmelodymagic/param/imDAC2pCh |
| Param imDAC3Midi | value: int | /norns_nmmelodymagic/param/imDAC3Midi |
| Param imDAC3Ch | value: int | /norns_nmmelodymagic/param/imDAC3Ch |
| Param imDAC3pMidi | value: int | /norns_nmmelodymagic/param/imDAC3pMidi |
| Param imDAC3pCh | value: int | /norns_nmmelodymagic/param/imDAC3pCh |
| Param imMixMidi | value: int | /norns_nmmelodymagic/param/imMixMidi |
| Param imMixCh | value: int | /norns_nmmelodymagic/param/imMixCh |
| Param imMixpMidi | value: int | /norns_nmmelodymagic/param/imMixpMidi |
| Param imMixpCh | value: int | /norns_nmmelodymagic/param/imMixpCh |
| Param dcOutMidi | value: int | /norns_nmmelodymagic/param/dcOutMidi |
| Param dcOutCh | value: int | /norns_nmmelodymagic/param/dcOutCh |
| Param dcOutpMidi | value: int | /norns_nmmelodymagic/param/dcOutpMidi |
| Param dcOutpCh | value: int | /norns_nmmelodymagic/param/dcOutpCh |
| Param mmOutMidi | value: int | /norns_nmmelodymagic/param/mmOutMidi |
| Param mmOutCh | value: int | /norns_nmmelodymagic/param/mmOutCh |
| Param mmOutpMidi | value: int | /norns_nmmelodymagic/param/mmOutpMidi |
| Param mmOutpCh | value: int | /norns_nmmelodymagic/param/mmOutpCh |
| Param gridUpdateOutsImm | value: int | /norns_nmmelodymagic/param/gridUpdateOutsImm |
| Param crowOut1 | value: int | /norns_nmmelodymagic/param/crowOut1 |
| Param crowOut1Type | value: int | /norns_nmmelodymagic/param/crowOut1Type |
| Param crowOut1Slew | value: float | /norns_nmmelodymagic/param/crowOut1Slew |
| Param crowOut1Off | value: float | /norns_nmmelodymagic/param/crowOut1Off |
| Param crowOut1Scaling | value: float | /norns_nmmelodymagic/param/crowOut1Scaling |
| Param crowOut2 | value: int | /norns_nmmelodymagic/param/crowOut2 |
| Param crowOut2Type | value: int | /norns_nmmelodymagic/param/crowOut2Type |
| Param crowOut2Slew | value: float | /norns_nmmelodymagic/param/crowOut2Slew |
| Param crowOut2Off | value: float | /norns_nmmelodymagic/param/crowOut2Off |
| Param crowOut2Scaling | value: float | /norns_nmmelodymagic/param/crowOut2Scaling |
| Param crowOut3 | value: int | /norns_nmmelodymagic/param/crowOut3 |
| Param crowOut3Type | value: int | /norns_nmmelodymagic/param/crowOut3Type |
| Param crowOut3Slew | value: float | /norns_nmmelodymagic/param/crowOut3Slew |
| Param crowOut3Off | value: float | /norns_nmmelodymagic/param/crowOut3Off |
| Param crowOut3Scaling | value: float | /norns_nmmelodymagic/param/crowOut3Scaling |
| Param crowOut4 | value: int | /norns_nmmelodymagic/param/crowOut4 |
| Param crowOut4Type | value: int | /norns_nmmelodymagic/param/crowOut4Type |
| Param crowOut4Slew | value: float | /norns_nmmelodymagic/param/crowOut4Slew |
| Param crowOut4Off | value: float | /norns_nmmelodymagic/param/crowOut4Off |
| Param crowOut4Scaling | value: float | /norns_nmmelodymagic/param/crowOut4Scaling |
| Param crowIn1Type | value: int | /norns_nmmelodymagic/param/crowIn1Type |
| Param crowIn1Range | value: int | /norns_nmmelodymagic/param/crowIn1Range |
| Param crowIn2Type | value: int | /norns_nmmelodymagic/param/crowIn2Type |
| Param crowIn2Range | value: int | /norns_nmmelodymagic/param/crowIn2Range |
| Param imClockRate | value: float | /norns_nmmelodymagic/param/imClockRate |
| Param imAdvanceRate | value: float | /norns_nmmelodymagic/param/imAdvanceRate |
| Param imRndMode | value: int | /norns_nmmelodymagic/param/imRndMode |
| Param imNoiseGen | value: int | /norns_nmmelodymagic/param/imNoiseGen |
| Param imIntNoiseRate | value: float | /norns_nmmelodymagic/param/imIntNoiseRate |
| Param imExtNoiseVal | value: int | /norns_nmmelodymagic/param/imExtNoiseVal |
| Param imSense | value: int | /norns_nmmelodymagic/param/imSense |
| Param imDsrOutsProcAtt1 | value: float | /norns_nmmelodymagic/param/imDsrOutsProcAtt1 |
| Param imDsrOutsProcOff1 | value: int | /norns_nmmelodymagic/param/imDsrOutsProcOff1 |
| Param imDsrOutsProcAtt2 | value: float | /norns_nmmelodymagic/param/imDsrOutsProcAtt2 |
| Param imDsrOutsProcOff2 | value: int | /norns_nmmelodymagic/param/imDsrOutsProcOff2 |
| Param imDsrOutsProcAtt3 | value: float | /norns_nmmelodymagic/param/imDsrOutsProcAtt3 |
| Param imDsrOutsProcOff3 | value: int | /norns_nmmelodymagic/param/imDsrOutsProcOff3 |
| Param imMixOutProcAtt | value: float | /norns_nmmelodymagic/param/imMixOutProcAtt |
| Param imMixOutProcOff | value: int | /norns_nmmelodymagic/param/imMixOutProcOff |
| Param dcIns | value: int | /norns_nmmelodymagic/param/dcIns |
| Param dcManVal | value: int | /norns_nmmelodymagic/param/dcManVal |
| Param dcRoot | value: int | /norns_nmmelodymagic/param/dcRoot |
| Param dcMajMin | value: int | /norns_nmmelodymagic/param/dcMajMin |
| Param dcScaling | value: int | /norns_nmmelodymagic/param/dcScaling |
| Param dcBit5 | value: int | /norns_nmmelodymagic/param/dcBit5 |
| Param dcBit6 | value: int | /norns_nmmelodymagic/param/dcBit6 |
| Param dcOutProcAtt | value: float | /norns_nmmelodymagic/param/dcOutProcAtt |
| Param dcOutProcOff | value: int | /norns_nmmelodymagic/param/dcOutProcOff |
| Param mmIns | value: int | /norns_nmmelodymagic/param/mmIns |
| Param mmManVal | value: int | /norns_nmmelodymagic/param/mmManVal |
| Param mmInit | value: int | /norns_nmmelodymagic/param/mmInit |
| Param mmOff | value: int | /norns_nmmelodymagic/param/mmOff |
| Param mmStepSize | value: float | /norns_nmmelodymagic/param/mmStepSize |
| Param mmAdd | value: int | /norns_nmmelodymagic/param/mmAdd |
| Param mmSub | value: int | /norns_nmmelodymagic/param/mmSub |
| Param mmSteps | value: int | /norns_nmmelodymagic/param/mmSteps |
| Param mmOutProcAtt | value: float | /norns_nmmelodymagic/param/mmOutProcAtt |
| Param mmOutProcOff | value: int | /norns_nmmelodymagic/param/mmOutProcOff |
| Param mod1Src | value: int | /norns_nmmelodymagic/param/mod1Src |
| Param mod1Amt | value: float | /norns_nmmelodymagic/param/mod1Amt |
| Param mod1Tgt | value: int | /norns_nmmelodymagic/param/mod1Tgt |
| Param mod2Src | value: int | /norns_nmmelodymagic/param/mod2Src |
| Param mod2Amt | value: float | /norns_nmmelodymagic/param/mod2Amt |
| Param mod2Tgt | value: int | /norns_nmmelodymagic/param/mod2Tgt |
| Param mod3Src | value: int | /norns_nmmelodymagic/param/mod3Src |
| Param mod3Amt | value: float | /norns_nmmelodymagic/param/mod3Amt |
| Param mod3Tgt | value: int | /norns_nmmelodymagic/param/mod3Tgt |
| Param mod4Src | value: int | /norns_nmmelodymagic/param/mod4Src |
| Param mod4Amt | value: float | /norns_nmmelodymagic/param/mod4Amt |
| Param mod4Tgt | value: int | /norns_nmmelodymagic/param/mod4Tgt |
| Param modManVal1 | value: int | /norns_nmmelodymagic/param/modManVal1 |
| Param modManVal2 | value: int | /norns_nmmelodymagic/param/modManVal2 |
| Param modManVal3 | value: int | /norns_nmmelodymagic/param/modManVal3 |
| Param imDAC1Start | value: int | /norns_nmmelodymagic/param/imDAC1Start |
| Param imDAC1End | value: int | /norns_nmmelodymagic/param/imDAC1End |
| Param imDAC1pStart | value: int | /norns_nmmelodymagic/param/imDAC1pStart |
| Param imDAC1pEnd | value: int | /norns_nmmelodymagic/param/imDAC1pEnd |
| Param imDAC2Start | value: int | /norns_nmmelodymagic/param/imDAC2Start |
| Param imDAC2End | value: int | /norns_nmmelodymagic/param/imDAC2End |
| Param imDAC2pStart | value: int | /norns_nmmelodymagic/param/imDAC2pStart |
| Param imDAC2pEnd | value: int | /norns_nmmelodymagic/param/imDAC2pEnd |
| Param imDAC3Start | value: int | /norns_nmmelodymagic/param/imDAC3Start |
| Param imDAC3End | value: int | /norns_nmmelodymagic/param/imDAC3End |
| Param imDAC3pStart | value: int | /norns_nmmelodymagic/param/imDAC3pStart |
| Param imDAC3pEnd | value: int | /norns_nmmelodymagic/param/imDAC3pEnd |
| Param imMixStart | value: int | /norns_nmmelodymagic/param/imMixStart |
| Param imMixEnd | value: int | /norns_nmmelodymagic/param/imMixEnd |
| Param imMixpStart | value: int | /norns_nmmelodymagic/param/imMixpStart |
| Param imMixpEnd | value: int | /norns_nmmelodymagic/param/imMixpEnd |
| Param dcOutStart | value: int | /norns_nmmelodymagic/param/dcOutStart |
| Param dcOutEnd | value: int | /norns_nmmelodymagic/param/dcOutEnd |
| Param dcOutpStart | value: int | /norns_nmmelodymagic/param/dcOutpStart |
| Param dcOutpEnd | value: int | /norns_nmmelodymagic/param/dcOutpEnd |
| Param mmOutStart | value: int | /norns_nmmelodymagic/param/mmOutStart |
| Param mmOutEnd | value: int | /norns_nmmelodymagic/param/mmOutEnd |
| Param mmOutpStart | value: int | /norns_nmmelodymagic/param/mmOutpStart |
| Param mmOutpEnd | value: int | /norns_nmmelodymagic/param/mmOutpEnd |
| Param burnArt | /norns_nmmelodymagic/param/burnArt |
|
| Param encSens | value: int | /norns_nmmelodymagic/param/encSens |
| Param encAccel | value: int | /norns_nmmelodymagic/param/encAccel |
The same MIDI as norns.vendor.fw-2.9.4, which this firmware shares.
Limitations
Source: the Lua source of the norns script nmMelodyMagic by NightMachines (TuesdayNightMachines/nmMelodyMagic at 00c8583), listed in norns.community. Shares the norns system OSC of monome/norns.vendor.fw-2.9.4 (port 10111, /param, /remote): give the norns' IP address as host override. Its own routes are the 131 parameter(s) whose id is written out in its source, read without running it, with range, options and default when written out too; set them while the script runs on the norns. 1 parameter call(s) could not be read without running the script (ids built at run time, values from variables) and are not mapped: reach them with the base driver's /param/{id}. Parameters added by libraries or engines outside the repository are not mapped either. A value goes in the parameter's units (an option's index from 1). MIDI is not mapped: the script's MIDI handling is its own and parameter MIDI mappings are learned by each user (PMAP). Untested on hardware.
Firmwares
The Monome norns runs 353 firmwares SynthHub maps, each with its own MIDI or another's it shares. All the devices with several: firmwares.
353 firmwares
Other sources
The Monome norns is mapped in 356 versions. per Electra preset, per Electra preset, per Electra preset.
Frequently asked questions
Can an AI agent like Claude control the Monome norns?
Yes: SynthHub's hosted MCP server knows the Monome norns's MIDI map, and its browser relay lets the agent send it parameter changes or load a sound, each sound change confirmed by you.