devices/monome/norns.vendor.fw-splnkr-b75e4cb.jsonEdit on GitHubJSONMonome norns (script splnkr): OSC control from Claude, scripts and controllers
119 named commands to drive Monome norns over OSC — from Claude (MCP), live-coding environments or a MIDI controller.
- sourcemaker's documentation
- firmwaresplnkr-b75e4cb
- 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 splnkr (jaseknighter/splnkr @ b75e4cb)
- Source
- maker's documentation
- OSC prefix
/norns_splnkr
From the README of jaseknighter/splnkr at b75e4cb, licence GPL-3.0.
splnkr
an amplitude and frequency tracking effects processor/sampler/sequencer for monome norns with a set of 16 grid-controlled bandpass filters.
IMPORTANT WARNING: animating the bandpass filters with the grid interface can result in loud percussive sounds. use caution!
requirements
- norns
- 16-column grid (required for sequencing)
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_splnkr: ask “what can the Monome norns do?” and it reads this map with list_routes. See the MCP guide.
MIDI controls
119 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_splnkr/param/{id} |
| Param {set} {id} | set: string, id: string, value: float | /norns_splnkr/param/{set}/{id} |
| Remote key | n: int, z: int | /norns_splnkr/remote/key |
| Remote enc | n: int, delta: int | /norns_splnkr/remote/enc |
| Remote brd | code: int, z: int | /norns_splnkr/remote/brd |
| Param set | /norns_splnkr/param/set_ |
|
| Param scale length | value: float | /norns_splnkr/param/scale_length |
| Param scale mode | value: int | /norns_splnkr/param/scale_mode |
| Param root note | value: int | /norns_splnkr/param/root_note |
| Param note offset | value: int | /norns_splnkr/param/note_offset |
| Param meter | value: int | /norns_splnkr/param/meter |
| Param division | value: int | /norns_splnkr/param/division |
| Param audio routing | value: int | /norns_splnkr/param/audio_routing |
| Param quantize freq | value: int | /norns_splnkr/param/quantize_freq |
| Param detected freq to midi | value: int | /norns_splnkr/param/detected_freq_to_midi |
| Param amp detect level midi min | value: float | /norns_splnkr/param/amp_detect_level_midi_min |
| Param amp detect level midi max | value: float | /norns_splnkr/param/amp_detect_level_midi_max |
| Param detected freq to midi out channel | value: int | /norns_splnkr/param/detected_freq_to_midi_out_channel |
| Param min midi note num | value: int | /norns_splnkr/param/min_midi_note_num |
| Param max midi note num | value: int | /norns_splnkr/param/max_midi_note_num |
| Param detected freq to crow1 | value: int | /norns_splnkr/param/detected_freq_to_crow1 |
| Param detected freq to crow3 | value: int | /norns_splnkr/param/detected_freq_to_crow3 |
| Param amp detect level min crow2 | value: float | /norns_splnkr/param/amp_detect_level_min_crow2 |
| Param amp detect level max crow2 | value: float | /norns_splnkr/param/amp_detect_level_max_crow2 |
| Param min crow1 note num | value: int | /norns_splnkr/param/min_crow1_note_num |
| Param max crow1 note num | value: int | /norns_splnkr/param/max_crow1_note_num |
| Param amp detect level min crow4 | value: float | /norns_splnkr/param/amp_detect_level_min_crow4 |
| Param amp detect level max crow4 | value: float | /norns_splnkr/param/amp_detect_level_max_crow4 |
| Param min crow3 note num | value: int | /norns_splnkr/param/min_crow3_note_num |
| Param max crow3 note num | value: int | /norns_splnkr/param/max_crow3_note_num |
| Param step size | value: int | /norns_splnkr/param/step_size |
| Param num steps | value: int | /norns_splnkr/param/num_steps |
| Param sub step size | value: int | /norns_splnkr/param/sub_step_size |
| Param midi in device | value: int | /norns_splnkr/param/midi_in_device |
| Param midi in channel1 | value: int | /norns_splnkr/param/midi_in_channel1 |
| Param envelope1 cc channel | value: int | /norns_splnkr/param/envelope1_cc_channel |
| Param envelope2 cc channel | value: int | /norns_splnkr/param/envelope2_cc_channel |
| Param output midi | value: int | /norns_splnkr/param/output_midi |
| Param midi out device | value: int | /norns_splnkr/param/midi_out_device |
| Param midi note1 mode | value: int | /norns_splnkr/param/midi_note1_mode |
| Param midi note2 mode | value: int | /norns_splnkr/param/midi_note2_mode |
| Param midi note3 mode | value: int | /norns_splnkr/param/midi_note3_mode |
| Param output crow1 | value: int | /norns_splnkr/param/output_crow1 |
| Param output crow2 | value: int | /norns_splnkr/param/output_crow2 |
| Param output crow3 | value: int | /norns_splnkr/param/output_crow3 |
| Param output crow4 | value: int | /norns_splnkr/param/output_crow4 |
| Param output jf | value: int | /norns_splnkr/param/output_jf |
| Param jf mode | value: int | /norns_splnkr/param/jf_mode |
| Param num envelope1 controls | value: float | /norns_splnkr/param/num_envelope1_controls |
| Param num envelope2 controls | value: float | /norns_splnkr/param/num_envelope2_controls |
| Param show env mod params | value: int | /norns_splnkr/param/show_env_mod_params |
| Param randomize env probability1 | value: float | /norns_splnkr/param/randomize_env_probability1 |
| Param time probability1 | value: float | /norns_splnkr/param/time_probability1 |
| Param level probability1 | value: float | /norns_splnkr/param/level_probability1 |
| Param curve probability1 | value: float | /norns_splnkr/param/curve_probability1 |
| Param time modulation1 | value: float | /norns_splnkr/param/time_modulation1 |
| Param level modulation1 | value: float | /norns_splnkr/param/level_modulation1 |
| Param curve modulation1 | value: float | /norns_splnkr/param/curve_modulation1 |
| Param env nav active control1 | value: float | /norns_splnkr/param/env_nav_active_control1 |
| Param randomize env probability2 | value: float | /norns_splnkr/param/randomize_env_probability2 |
| Param time probability2 | value: float | /norns_splnkr/param/time_probability2 |
| Param level probability2 | value: float | /norns_splnkr/param/level_probability2 |
| Param curve probability2 | value: float | /norns_splnkr/param/curve_probability2 |
| Param time modulation2 | value: float | /norns_splnkr/param/time_modulation2 |
| Param level modulation2 | value: float | /norns_splnkr/param/level_modulation2 |
| Param curve modulation2 | value: float | /norns_splnkr/param/curve_modulation2 |
| Param env nav active control2 | value: float | /norns_splnkr/param/env_nav_active_control2 |
| Param save splnkr data | /norns_splnkr/param/save_splnkr_data |
|
| Param overwrite splnkr data | /norns_splnkr/param/overwrite_splnkr_data |
|
| Param remove splnkr data | /norns_splnkr/param/remove_splnkr_data |
|
| Param load splnkr data | /norns_splnkr/param/load_splnkr_data |
|
| Param output wdel ks | value: int | /norns_splnkr/param/output_wdel_ks |
| Param wdel mix | value: float | /norns_splnkr/param/wdel_mix |
| Param wdel time short | value: float | /norns_splnkr/param/wdel_time_short |
| Param wdel time long | value: float | /norns_splnkr/param/wdel_time_long |
| Param wdel feedback | value: float | /norns_splnkr/param/wdel_feedback |
| Param wdel filter | value: float | /norns_splnkr/param/wdel_filter |
| Param wdel clock | value: float | /norns_splnkr/param/wdel_clock |
| Param wdel clock ratio mul | value: float | /norns_splnkr/param/wdel_clock_ratio_mul |
| Param wdel clock ratio div | value: float | /norns_splnkr/param/wdel_clock_ratio_div |
| Param wdel rate | value: float | /norns_splnkr/param/wdel_rate |
| Param wdel frequency | value: float | /norns_splnkr/param/wdel_frequency |
| Param wdel mod rate | value: float | /norns_splnkr/param/wdel_mod_rate |
| Param wdel mod amount | value: float | /norns_splnkr/param/wdel_mod_amount |
| Param wdel pluck | /norns_splnkr/param/wdel_pluck |
|
| Param wdel freeze | value: int | /norns_splnkr/param/wdel_freeze |
| Param wdel init | /norns_splnkr/param/wdel_init |
|
| Param output wsyn | value: int | /norns_splnkr/param/output_wsyn |
| Param wsyn voc | value: int | /norns_splnkr/param/wsyn_voc |
| Param wsyn ar mode | value: int | /norns_splnkr/param/wsyn_ar_mode |
| Param wsyn vel | value: float | /norns_splnkr/param/wsyn_vel |
| Param wsyn curve | value: float | /norns_splnkr/param/wsyn_curve |
| Param wsyn ramp | value: float | /norns_splnkr/param/wsyn_ramp |
| Param wsyn fm index | value: float | /norns_splnkr/param/wsyn_fm_index |
| Param wsyn fm env | value: float | /norns_splnkr/param/wsyn_fm_env |
| Param wsyn fm ratio | value: int | /norns_splnkr/param/wsyn_fm_ratio |
| Param wsyn lpg time | value: float | /norns_splnkr/param/wsyn_lpg_time |
| Param wsyn lpg symmetry | value: float | /norns_splnkr/param/wsyn_lpg_symmetry |
| Param wsyn pluckylog | /norns_splnkr/param/wsyn_pluckylog |
|
| Param wsyn randomize | /norns_splnkr/param/wsyn_randomize |
|
| Param wsyn init | /norns_splnkr/param/wsyn_init |
|
| Param wtape timestamp | value: float | /norns_splnkr/param/wtape_timestamp |
| Param wtape seek | value: float | /norns_splnkr/param/wtape_seek |
| Param wtape record | value: int | /norns_splnkr/param/wtape_record |
| Param wtape play | value: int | /norns_splnkr/param/wtape_play |
| Param wtape reverse | /norns_splnkr/param/wtape_reverse |
|
| Param wtape loop active | value: int | /norns_splnkr/param/wtape_loop_active |
| Param wtape echo mode | value: int | /norns_splnkr/param/wtape_echo_mode |
| Param wtape loop start | /norns_splnkr/param/wtape_loop_start |
|
| Param wtape loop end | /norns_splnkr/param/wtape_loop_end |
|
| Param wtape loop next | value: int | /norns_splnkr/param/wtape_loop_next |
| Param wtape loop next trigger | /norns_splnkr/param/wtape_loop_next_trigger |
|
| Param wtape loop scale mult | value: int | /norns_splnkr/param/wtape_loop_scale_mult |
| Param wtape speed | value: float | /norns_splnkr/param/wtape_speed |
| Param wtape freq | value: float | /norns_splnkr/param/wtape_freq |
| Param wtape erase strength | value: float | /norns_splnkr/param/wtape_erase_strength |
| Param wtape monitor level | value: float | /norns_splnkr/param/wtape_monitor_level |
| Param wtape rec level | value: float | /norns_splnkr/param/wtape_rec_level |
| Param wtape init | /norns_splnkr/param/wtape_init |
The same MIDI as norns.vendor.fw-2.9.4, which this firmware shares.
Limitations
Source: the Lua source of the norns script splnkr by jaseknighter (jaseknighter/splnkr at b75e4cb), 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 114 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. 18 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.