devices/monome/norns.vendor.fw-twins-5dc6206.jsonEdit on GitHubJSONMonome norns (script twins): OSC control from Claude, scripts and controllers
180 named commands to drive Monome norns over OSC — from Claude (MCP), live-coding environments or a MIDI controller.
- sourcemaker's documentation
- firmwaretwins-5dc6206
- 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 twins (danielrigler/twins @ 5dc6206)
- Source
- maker's documentation
- OSC prefix
/norns_twins
From the README of danielrigler/twins at 5dc6206.
Twins
A randomized dual granular sample playground for Monome Norns.
Inspired by @cfd90’s Twine and contains influence and code from a lot of other norns users. This is basically Twine on steroids. A granular playground. It contains lot of effects and extra granular parameters. You can turn off granular processing and use this as a normal sample player with effects. Live input processing and MIDI input is also possible. No problem if you do not have external controllers: I have tweaked the GUI and controls, so it is very playable even with only a norns. Let me know if you find this useful.
Some of the new features:
- Morphing
- Delay, chorus, tape effects, shimmer, glitch, EQ, filters, bit reduction, etc.
- Extra granular parameters, increased parameter ranges
- Freely assignable LFOs with randomization
- On screen navigation with parameter locking
- Symmetry mode and mirroring
- Live input processing
- MIDI input - play with a keyboard
- Clock sync, arp mode, loop recording
Requirements
norns / norns shield *some features might require a pi4 based unit. If you hear clicks and crackles try turning off a few effects or limit grain size and density.
Documentation
E1: Master Volume
K1+E2/E3: Volume
K1+E1: Crossfade/Morph
K2/K3: Navigate
E2/E3: Adjust Parameters
K1+K2/K3: Randomize
K2+K3: Lock Parameters
Hold K1: Morphing
Hold K2: Linked Mode
Hold K3: Symmetry
K2+K3+E1/E2/E3: Effect Mix
K2/K3+E1/E2/E3: Adjust LFO
Hold K2+K3: HPF/LPF
Hold K2+K3: Add Random LFOs
Hold K1+K2: Clock Sync
Hold K1+K3: Arp Mode
Hold K1+K2+K3: Randomize Arp
Download
v0.79 install from Maiden Project Manager, or from Maiden REPL:
do not forget to restart.
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_twins: ask “what can the Monome norns do?” and it reads this map with list_routes. See the MCP guide.
MIDI controls
180 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_twins/param/{id} |
| Param {set} {id} | set: string, id: string, value: float | /norns_twins/param/{set}/{id} |
| Remote key | n: int, z: int | /norns_twins/remote/key |
| Remote enc | n: int, delta: int | /norns_twins/remote/enc |
| Remote brd | code: int, z: int | /norns_twins/remote/brd |
| Param randomtapes | value: int | /norns_twins/param/randomtapes |
| Param live buffer mix | value: float | /norns_twins/param/live_buffer_mix |
| Param live buffer length | value: float | /norns_twins/param/live_buffer_length |
| Param isMono | value: int | /norns_twins/param/isMono |
| Param dry mode2 | value: int | /norns_twins/param/dry_mode2 |
| Param save preset | /norns_twins/param/save_preset |
|
| Param load preset menu | /norns_twins/param/load_preset_menu |
|
| Param randomize granular | value: int | /norns_twins/param/randomize_granular |
| Param lock granular | value: int | /norns_twins/param/lock_granular |
| Param delay mix | value: float | /norns_twins/param/delay_mix |
| Param delay time | value: float | /norns_twins/param/delay_time |
| Param tap | value: int | /norns_twins/param/tap |
| Param delay ratio | value: int | /norns_twins/param/delay_ratio |
| Param delay feedback | value: float | /norns_twins/param/delay_feedback |
| Param delay lowpass | value: float | /norns_twins/param/delay_lowpass |
| Param delay highpass | value: float | /norns_twins/param/delay_highpass |
| Param wiggle depth | value: float | /norns_twins/param/wiggle_depth |
| Param wiggle rate | value: float | /norns_twins/param/wiggle_rate |
| Param stereo | value: float | /norns_twins/param/stereo |
| Param delay duck | value: float | /norns_twins/param/delay_duck |
| Param delay series | value: float | /norns_twins/param/delay_series |
| Param randomize delay params | value: int | /norns_twins/param/randomize_delay_params |
| Param lock delay | value: int | /norns_twins/param/lock_delay |
| Param rev type | value: int | /norns_twins/param/rev_type |
| Param reverb mix | value: float | /norns_twins/param/reverb_mix |
| Param rev decay | value: float | /norns_twins/param/rev_decay |
| Param rev damp | value: float | /norns_twins/param/rev_damp |
| Param rev pre | value: float | /norns_twins/param/rev_pre |
| Param rev mdepth | value: float | /norns_twins/param/rev_mdepth |
| Param rev mrate | value: float | /norns_twins/param/rev_mrate |
| Param rev series | value: float | /norns_twins/param/rev_series |
| Param lock reverb | value: int | /norns_twins/param/lock_reverb |
| Param shimmer mix1 | value: float | /norns_twins/param/shimmer_mix1 |
| Param shimmer mod1 | value: int | /norns_twins/param/shimmer_mod1 |
| Param shimmer oct1 | value: int | /norns_twins/param/shimmer_oct1 |
| Param pitchv1 | value: float | /norns_twins/param/pitchv1 |
| Param lowpass1 | value: float | /norns_twins/param/lowpass1 |
| Param hipass1 | value: float | /norns_twins/param/hipass1 |
| Param fbDelay1 | value: float | /norns_twins/param/fbDelay1 |
| Param fb1 | value: float | /norns_twins/param/fb1 |
| Param lock shimmer | value: int | /norns_twins/param/lock_shimmer |
| Param analogdrive mix | value: float | /norns_twins/param/analogdrive_mix |
| Param analogdrive mod | value: int | /norns_twins/param/analogdrive_mod |
| Param analogdrive drive | value: float | /norns_twins/param/analogdrive_drive |
| Param analogdrive tone | value: float | /norns_twins/param/analogdrive_tone |
| Param analogdrive mode | value: float | /norns_twins/param/analogdrive_mode |
| Param fuzz mix | value: float | /norns_twins/param/fuzz_mix |
| Param fuzz gain | value: float | /norns_twins/param/fuzz_gain |
| Param fuzz octave | value: float | /norns_twins/param/fuzz_octave |
| Param fuzz tone | value: float | /norns_twins/param/fuzz_tone |
| Param tape mix | value: int | /norns_twins/param/tape_mix |
| Param reel mix | value: float | /norns_twins/param/reel_mix |
| Param sine drive wet | value: float | /norns_twins/param/sine_drive_wet |
| Param wobble mix | value: float | /norns_twins/param/wobble_mix |
| Param wobble amp | value: float | /norns_twins/param/wobble_amp |
| Param wobble rpm | value: float | /norns_twins/param/wobble_rpm |
| Param flutter amp | value: float | /norns_twins/param/flutter_amp |
| Param flutter freq | value: float | /norns_twins/param/flutter_freq |
| Param flutter var | value: float | /norns_twins/param/flutter_var |
| Param chew depth | value: float | /norns_twins/param/chew_depth |
| Param chew freq | value: float | /norns_twins/param/chew_freq |
| Param chew variance | value: float | /norns_twins/param/chew_variance |
| Param lossdegrade mix | value: float | /norns_twins/param/lossdegrade_mix |
| Param genloss mix | value: float | /norns_twins/param/genloss_mix |
| Param randomize tape | value: int | /norns_twins/param/randomize_tape |
| Param lock tape | value: int | /norns_twins/param/lock_tape |
| Param randomize eq | value: int | /norns_twins/param/randomize_eq |
| Param lock eq | value: int | /norns_twins/param/lock_eq |
| Param randomize lfos | value: int | /norns_twins/param/randomize_lfos |
| Param lfo.assign to current row | value: int | /norns_twins/param/lfo.assign_to_current_row |
| Param global lfo freq scale | value: float | /norns_twins/param/global_lfo_freq_scale |
| Param global lfo depth scale | value: float | /norns_twins/param/global_lfo_depth_scale |
| Param sine lfos | value: int | /norns_twins/param/sine_lfos |
| Param lfo pause | value: int | /norns_twins/param/lfo_pause |
| Param ClearLFOs | value: int | /norns_twins/param/ClearLFOs |
| Param Width | value: float | /norns_twins/param/Width |
| Param haas | value: int | /norns_twins/param/haas |
| Param rspeed | value: float | /norns_twins/param/rspeed |
| Param monobass mix | value: int | /norns_twins/param/monobass_mix |
| Param dimension mix | value: float | /norns_twins/param/dimension_mix |
| Param stchorus mix | value: float | /norns_twins/param/stchorus_mix |
| Param vibe mix | value: float | /norns_twins/param/vibe_mix |
| Param vibe drift | value: float | /norns_twins/param/vibe_drift |
| Param bitcrush mix | value: float | /norns_twins/param/bitcrush_mix |
| Param bitcrush mod | value: int | /norns_twins/param/bitcrush_mod |
| Param bitcrush rate | value: float | /norns_twins/param/bitcrush_rate |
| Param bitcrush bits | value: float | /norns_twins/param/bitcrush_bits |
| Param resonator mix | value: float | /norns_twins/param/resonator_mix |
| Param resonator decay | value: float | /norns_twins/param/resonator_decay |
| Param resonator root | value: int | /norns_twins/param/resonator_root |
| Param resonator tone | value: float | /norns_twins/param/resonator_tone |
| Param resonator voicing | value: int | /norns_twins/param/resonator_voicing |
| Param wavefold mix | value: float | /norns_twins/param/wavefold_mix |
| Param wavefold drive | value: float | /norns_twins/param/wavefold_drive |
| Param wavefold sym | value: float | /norns_twins/param/wavefold_sym |
| Param ringmod mix | value: float | /norns_twins/param/ringmod_mix |
| Param ringmod rate | value: float | /norns_twins/param/ringmod_rate |
| Param ringmod sweep | value: float | /norns_twins/param/ringmod_sweep |
| Param spiral mix | value: float | /norns_twins/param/spiral_mix |
| Param spiral div | value: int | /norns_twins/param/spiral_div |
| Param spiral feedback | value: float | /norns_twins/param/spiral_feedback |
| Param spiral rise | value: float | /norns_twins/param/spiral_rise |
| Param spiral glide | value: float | /norns_twins/param/spiral_glide |
| Param spiral span | value: float | /norns_twins/param/spiral_span |
| Param spiral tone | value: float | /norns_twins/param/spiral_tone |
| Param sub mix | value: float | /norns_twins/param/sub_mix |
| Param sub detune | value: float | /norns_twins/param/sub_detune |
| Param ott mix | value: float | /norns_twins/param/ott_mix |
| Param glitch ratio | value: float | /norns_twins/param/glitch_ratio |
| Param glitch mix | value: float | /norns_twins/param/glitch_mix |
| Param glitch min length | value: float | /norns_twins/param/glitch_min_length |
| Param glitch max length | value: float | /norns_twins/param/glitch_max_length |
| Param glitch maxstutters | value: float | /norns_twins/param/glitch_maxstutters |
| Param glitch reverse | value: float | /norns_twins/param/glitch_reverse |
| Param glitch pitch | value: float | /norns_twins/param/glitch_pitch |
| Param glitch gate | value: float | /norns_twins/param/glitch_gate |
| Param glitch decay | value: float | /norns_twins/param/glitch_decay |
| Param randomize glitch | value: int | /norns_twins/param/randomize_glitch |
| Param lock glitch | value: int | /norns_twins/param/lock_glitch |
| Param evolution | value: int | /norns_twins/param/evolution |
| Param evolution range | value: float | /norns_twins/param/evolution_range |
| Param evolution rate | value: int | /norns_twins/param/evolution_rate |
| Param symmetry | value: int | /norns_twins/param/symmetry |
| Param randomizefilters | value: int | /norns_twins/param/randomizefilters |
| Param resetfilters | value: int | /norns_twins/param/resetfilters |
| Param undo action | value: int | /norns_twins/param/undo_action |
| Param redo action | value: int | /norns_twins/param/redo_action |
| Param macro more | value: int | /norns_twins/param/macro_more |
| Param macro less | value: int | /norns_twins/param/macro_less |
| Param scene mode | value: int | /norns_twins/param/scene_mode |
| Param morph amount | value: float | /norns_twins/param/morph_amount |
| Param save to scene1 | /norns_twins/param/save_to_scene1 |
|
| Param save to scene2 | /norns_twins/param/save_to_scene2 |
|
| Param delete morph data | /norns_twins/param/delete_morph_data |
|
| Param pitch quantize scale | value: int | /norns_twins/param/pitch_quantize_scale |
| Param pitch lag | value: int | /norns_twins/param/pitch_lag |
| Param lock pitch | value: int | /norns_twins/param/lock_pitch |
| Param midi gate | value: int | /norns_twins/param/midi_gate |
| Param midi voice mode | value: int | /norns_twins/param/midi_voice_mode |
| Param midi attack | value: float | /norns_twins/param/midi_attack |
| Param midi decay | value: float | /norns_twins/param/midi_decay |
| Param midi velocity | value: int | /norns_twins/param/midi_velocity |
| Param midi cc1 dest | value: int | /norns_twins/param/midi_cc1_dest |
| Param midi device | value: int | /norns_twins/param/midi_device |
| Param midi channel | value: int | /norns_twins/param/midi_channel |
| Param midi bend | value: int | /norns_twins/param/midi_bend |
| Param midi transport | value: int | /norns_twins/param/midi_transport |
| Param lock sync | value: int | /norns_twins/param/lock_sync |
| Param bounce | value: int | /norns_twins/param/bounce |
| Param bounce mode | value: int | /norns_twins/param/bounce_mode |
| Param bounce source | value: int | /norns_twins/param/bounce_source |
| Param bounce volume | value: int | /norns_twins/param/bounce_volume |
| Param bounce length | value: float | /norns_twins/param/bounce_length |
| Param bounce xfade | value: float | /norns_twins/param/bounce_xfade |
| Param bounce reset | value: int | /norns_twins/param/bounce_reset |
| Param delete unused bounces | value: int | /norns_twins/param/delete_unused_bounces |
| Param dry mode | value: int | /norns_twins/param/dry_mode |
| Param unload all | value: int | /norns_twins/param/unload_all |
| Param norm load | value: int | /norns_twins/param/norm_load |
| Param limiter | value: int | /norns_twins/param/limiter |
| Param global pitch size density link | value: int | /norns_twins/param/global_pitch_size_density_link |
| Param steps | value: int | /norns_twins/param/steps |
| Param arp on | value: int | /norns_twins/param/arp_on |
| Param arp steps | value: int | /norns_twins/param/arp_steps |
| Param arp mode | value: int | /norns_twins/param/arp_mode |
| Param arp twin | value: int | /norns_twins/param/arp_twin |
| Param arp octaves | value: int | /norns_twins/param/arp_octaves |
| Param arp overlap | value: float | /norns_twins/param/arp_overlap |
| Param arp randomize | value: int | /norns_twins/param/arp_randomize |
| Param clock sync | value: int | /norns_twins/param/clock_sync |
| Param clock lfo div | value: int | /norns_twins/param/clock_lfo_div |
| Param clock lfo div2 | value: int | /norns_twins/param/clock_lfo_div2 |
| Param clock sync delay div | value: int | /norns_twins/param/clock_sync_delay_div |
| Param clock reseek | value: int | /norns_twins/param/clock_reseek |
| Param clock reseek div | value: int | /norns_twins/param/clock_reseek_div |
The same MIDI as norns.vendor.fw-2.9.4, which this firmware shares.
Limitations
Source: the Lua source of the norns script twins by dddstudio (danielrigler/twins at 5dc6206), 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 175 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. 49 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.
Other versions
The Monome norns is mapped in 356 versions. per Electra preset, per Electra preset, per Electra preset, norns system OSC, v2.9.4, script 32-harmony, script 3d, script 4-big-knobs, script 4CCFader, script abacus, script acid-test, script ack, script acrostic, script amen, script amenbreak, script animator, script arcify, script arcologies, script arp_index, script ash, script ashsynth, script asterion, script automs70, script avonlea, script awake, script awake-ashsynth, script awake-passersby, script awake-rings, script _awed, script b-b-b-b-beat, script bakeneko, script barcode, script barycenter, script beacon, script beets, script benjolis, script bistro, script bitebeet, script bitters, script bline, script blippoo, script blndr, script bloom, script blue, script boingg, script bounds, script bowering, script breakthrough, script buoys, script caliper, script carter's delay, script cc-canvas, script cccccccc, script changes, script cheat_codes_2, script choukanzu, script circles, script clarck, script clcks, script clipper, script clockabout, script colorwheel, script combiner, script combos, script compass, script concrete, script constellations, script corners, script cranes, script crow_talk, script cryptkeeper, script cybermidi, script cyrene, script d, script delar, script delayyyyyyyy, script delinquencer, script demoncore, script descartes, script dimension-expander, script downtown, script dreamsequence, script drift, script dronecaster, script drum_room, script duatone, script dunes, script Eastwind, script easygrain, script eels, script ekombi, script endless-stairs, script esper, script eterna, script euclidigons, script faeng, script fall, fates 2.9.3, script fiahod, script fibonacci, script fixed-filter-banking-crisis, script flora, script fm7, script folio, script footfoot, script forge, script foulplay, script foundry, script fugarc, script fugu, script gematria, script gemini, script get in the sea!, script giro, script glaciers, script glitchlets, script glitchlooper, script glut, script goldeneye, script grains, script graintopia, script granchild, script grd, script grendy, script greyhole, script grid-test, script gridofpoints, script gridofrings, script gridstep, script groovecats, script grurder, script hachi, script hands, script haven, script haze, script here-there, script hid_demo, script Hiswing, script hpns, script hs010, script icarus, script iiitoii, script impact, script ingenue, script initenere, script internorns, script interpret, script intervaltrainer, script islands, script isoseq, script jala, script jiffy, script just-play, script justharmonicon, script KoiBoi2, script kolor, script kreislauf, script kria_midi, script krill, script l_ll__l_, script lamellae, script lamination, script larc, script lemniscate, script leslie, script less-concepts, script lissadron, script loom, script lorenz, script lorenzos-drums, script loudnumbers_norns, script luck, script m18s, script magnetar, script magpie, script makebreakbeat, script mangl, script manifold, script marcovaldo, script massif, script MDPatch, script MDScaler, script meadowphysics, script metrix, script metronome, script midarto, script midi-monitor, script midi-review, script midididi, script midigrid, script midiplayer, script mlr, script mlre, script Mnmpatch, script molly_the_poly, script moln, script monitor, script monomaniac, script moonraker, script mosaic, script mouse, script mx.samples, script mx.synths, script n.kria, script nørgård, script n16o, script nameless-nightmare, script narf, script nb_drumcrow, script nb_mxsynths, script nb_plyprc, script nb_smpKit, script nc01-drone, script nc02-rs, script nc03-ds, script ndls, script nice-tapes, script nisp, script nmMelodyMagic, script nmQuadroDubber, script nmRain, script nmSmartyPants, script noize, script noizeop, script norman, script norns.online, script nornsfetch, script nydl, script o-o-o, script oblique, script oilcan, script onehanded, script ong, script oooooo, script orbital, script orca, script orgn, script orgnwrms, script ortf, script otis, script overtones, script overwintering, script p8, script paracosms, script paranibbles, script parrot, script passersby, script passthrough, script patchwork, script path-trace, script pedalboard, script phonotype, script phyllis, script pirate-radio, script pit-orchisstra, script pitfalls, script pitter-patter, script piwip, script pixels, script plasma, script plonky, script pools, script ppm_norns, script punchcard, script qfwfq, script quence, script r, script rachim, script raft, script raindrops, script randomizer_typhon, script rangl, script rebound, script reels, script repeater, script repl-looper, script ribbons, script rpls, script rpmate, script rudiments, script sam, script sampswap, script samsara, script samthree, script sath-lemon, script schicksalslied, script scholastic, script scryingstone, script seaflex, script seeker_ii, script sempra, script serialism, script shapes, script shfts, script shnthsalslied, script showers, script sidvagn, script silos, script sines, script skylines, script smash, script sonde, script spirals, script splicer, script splnkr, script stack, script step, script stjörnuíþrótt, script streams, script strides, script strum, script stwnsh, script SuperBrain, script supertonic, script sway, script sweet bees, script synthy, script takt, script tambla, script tapedeck, script taweeet, script tetra, script tetrabobo, script tetrabotis, script thebangs, script thirtythree, script thorns, script Tidbit, script timber, script time-rhythm, script timeparty, script tmi, script torii, script traffic, script triangles, script tulpamancer, script tuner, script tunnels, script turntable, script tviburar, script twine, script u, script ufo, script uhf, script vcr, script vinker, script warmreload, script waver, script window-crowparator, script wobblewobble, script wrms, script xD1, script Ygg, script yggdrasil, script zellen, script zxcvbn.
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.