What a wonderful script! Loving the sounds and the icarus port. Would be possible to add the extended polyphony and sustain to Icarus “standalone”??

1 Like

its possible but I’d have to think about how to do it. the original icarus engine has the synths “always on” so that the feedback never goes away…its much different than the model in mx.synths where the synths are freed once they are turned off.


I love this script, thank you!! should midi map settings be saved in presets? doesn’t seem to be working for me.

Thanks so much!! this and mx samples are two of my very favs…

1 Like

Hey! Been trying to integrate mx.synths into my sequencer and I’m getting some pretty noisy results, regardless of the synth model I’m using, how many notes are playing, or velocity settings on those notes.

If you have the opportunity to test this out, here’s the repo:

Load the script via colorwheel.lua (not _colorwheel.lua). Assumes you have mx.synths installed already, the line triggering notes from mx.synths is in algebra.lua, at 250. Press K2 to generate a random sequence (no grid required). Might be useful to hook up midi to something else to confirm notes are occurring (if you can’t hear anything).

Also, since integrating mx.synths, my startup values for colorwheel specific parameters aren’t respected. Is there something I can change to fix that?

1 Like

midi mapping should be saved on its own: control + clock | monome/docs

can you check to see if data/mx.synths/mx.synths.pmap was created? it could be that the . in mx.synths is messing things up…

oh yeah! I just fixed this - in mx.synths everything saves on change (and loads the recent change) but I made that off by default just now.

its because the mx_note_on wants amplitude and not velocity. so you should scale your vel by 127 instead of 2: colorwheel/algebra.lua at main · yams7457/colorwheel · GitHub

that changed worked for me. if you still run noise, try turning the volume down some more to give more headroom to the synths. and if you run into crackling try turning the release all the way down so that there are fewer synths running in parallell.

1 Like

batting a million. New update resolved the params stuff, velocity change helped a ton with noise. Still having some noise issues, though (cuz this script makes a million notes). Is there a modification I could make to the engine to force a hard-limit to the polyphony and start voice-stealing? The density of notes called for by the script is likely to change dramatically over the course of a performance (it’s not something I’ll be ‘dialing in’).


it is possible to make this modification in the engine. I can add this if you need - but just want ask first if this is something you’d rather control at your script level? for the engine implementation I would take the easiest route which would give priority to newer notes and turn off older ones when some polyphony limit is reached (parameter set). I could imagine though that doesn’t fit every musical scenario (maybe you want the bass note to always be there for example)…so I’m wondering if you have a specific musical thought it might be better to do your in your script. if not I’m totally game to add this to mx.synths.


That’s exactly the implementation I was hoping for, actually!

The element of control on my end will be the option to turn off either audio or midi notes per track, bringing in flexibility by pairing Norns with an external voice (or two).


v0.3.0 - more synths

  • new synth: kalimba!
  • new synth: another piano!
  • ux: added option to set the maximum polyphony (if max polyphony is reached, the oldest note will be turned off) (@yams lmk if you run into :bug:)

mdapiano: simply based off the SuperCollider MdaPiano. mods:

  1. stereoness
  2. vibrato rate
  3. vibrato depth
  4. detuning

kalimba:based off the p.dupuiskalimba, which is a fork from @nathan’s kalimba… mods:

  1. stereoness
  2. vibrato rate
  3. vibrato depth
  4. click mix

v0.4.0 - internal chord sequencer and arpeggiator

  • bug fix: check for nil notes (thank you @alanza )
  • new feature: pitch bend! (thank you @sixolet )
  • new feature: arpeggiator (PARAMS > ARP) (thank you @Riot )
  • new feature: chord sequencer (PARAMS > CHORDS)

the chord sequencer and the arpeggiator can be used simultaneously - so that you can send chords to the arpeggiator. no keys required :slight_smile: for example:


Sweet! Gotta check it out asap

1 Like

Super excited for this levelling up of my ability to pretend I can make actual music :smiley:


I’m getting some pitch weirdness when I hit start/stop on the chords. Anyone else having this behavior?

A sample:

1 Like

lol what is that! I’m not totally sure what is happening there…it sounds like portamento. are you in “monophonic” mode perhaps?

1 Like

huehue thanks that helped :slight_smile: somehow I had it set to monophonic by default

1 Like

It’s failing to load for me since updating it - any idea why?

script load: /home/we/dust/code/mx.synths/mx.synths.lua


script clear

including /home/we/dust/code/mx.synths/lib/arp.lua

SCRIPT ERROR: load fail

/home/we/dust/code/mx.synths/lib/arp.lua:4: module ‘sequins’ not found:

no field package.preload[‘sequins’]

no file ‘/home/we/norns/lua/sequins.lua’

no file ‘/home/we/norns/lua/core/sequins.lua’

no file ‘/home/we/norns/lua/core/params/sequins.lua’

no file ‘/home/we/norns/lua/lib/sequins.lua’

no file ‘/home/we/norns/lua/softcut/sequins.lua’

no file ‘/home/we/dust/code/sequins.lua’

no file ‘/usr/local/share/lua/5.3/sequins.lua’

no file ‘/usr/local/share/lua/5.3/sequins/init.lua’

no file ‘/usr/local/lib/lua/5.3/sequins.lua’

no file ‘/usr/local/lib/lua/5.3/sequins/init.lua’

no file ‘/usr/share/lua/5.3/sequins.lua’

no file ‘/usr/share/lua/5.3/sequins/init.lua’

no file ‘./sequins.lua’

no file ‘./sequins/init.lua’

no file ‘/usr/local/lib/lua/5.3/’

no file ‘/usr/lib/arm-linux-gnueabihf/lua/5.3/’

no file ‘/usr/lib/lua/5.3/’

no file ‘/usr/local/lib/lua/5.3/’

no file ‘./’

stack traceback:

/home/we/norns/lua/core/norns.lua:143: in function </home/we/norns/lua/core/norns.lua:143>

[C]: in function ‘require’

/home/we/dust/code/mx.synths/lib/arp.lua:4: in main chunk

[C]: in function ‘dofile’

/home/we/norns/lua/core/startup.lua:43: in function ‘include’

/home/we/dust/code/mx.synths/mx.synths.lua:16: in main chunk

[C]: in function ‘dofile’

/home/we/norns/lua/core/script.lua:186: in function </home/we/norns/lua/core/script.lua:186>

[C]: in function ‘xpcall’

/home/we/norns/lua/core/norns.lua:144: in field ‘try’

/home/we/norns/lua/core/script.lua:186: in function ‘core/script.load’

/home/we/norns/lua/core/menu/preview.lua:23: in function ‘core/menu/preview.key’

/home/we/norns/lua/core/menu.lua:140: in function </home/we/norns/lua/core/menu.lua:117>

script clear

clock: ignoring resumption of canceled clock (no coroutine)

clock: ignoring resumption of canceled clock (no coroutine)

clock: ignoring resumption of canceled clock (no coroutine)

1 Like

is your norns running norns: update 210927? the sequins library was introduced during this update.


Is there a Fates Update for that yet? Encountered the same problem, but using a Fates instead of Norns.


Haven’t troubleshot yet but I’m managing to get it to crash the audio completely (no sound on any script till a restart) on the last 2 new piano instruments

Yes, you can run update from the menu and it will work.

Or at least it did for me.