Intelligent chord hold script with BomeBox


2016-10-11 14:25:54


I've a question about a special usecase of the BomeBox that might be very interesting for every live keyboardist!

Some months ago I created a script for Mainstage that holds a chord (of course without sustain pedal) until the next chord is played. So I can press a chord, release the keys but the chord is sustained until I start playing a new chord. That's great for playing pads or strings while playing different melodies / solo on a different keyboard.

With my script I can stop the chord either with a certain keyswitch (this key won't be played then of course) or - what I prefer because I don't have to remember the keyswitch) - to release the chord by touching the pitchbend wheel.

With the modwheel I can switch on/off the chord hold mode (modwheel < 20 = chord hold, modwheel >= 20 = bypass/no chord hold).
chord hold advanced.png
chord hold advanced.png (78.19 KiB) Viewed 2383 times
Now I'm very insterested to know if the bomebox scripting can handle this more or less complex task. Would be great if there's a possibility!! My mainstage patch works well but I'd like to go without macbook to the stage and just having a robust little hardware like the BomeBox! :)

Best from Germany


2016-10-12 15:23:23

Great fun implementing this project!

Attached is the solution in MIDI Translator Pro. It will work just the same in the BomeBox.

A few notes:
  • when loaded the first time, you'll be prompted to assign the MIDI port aliases "Keyboard" and "To Synth". Assign them to the MIDI Keyboard you're playing on, and to the MIDI port of your synthesizer or DAW, respectively.
  • This preset allows for arbitrary chords up to 10 notes polyphony. If you play more than 10 notes, they are ignored and do not play.
  • playing a note which is already part of the sounding chord will retrigger this note. Useful for changing the velocity of a single note.
  • moving the mod wheel above value 20 will kill the current chord and disable chord mode. Moving it back to 0 (or below 20) will re-enable chord mode again.
  • while a chord is sounding, press the foot pedal to retrigger all notes in the chord with uniform velocity 120.
  • even after retriggering, you can add notes to the chord.
  • while a chord is sounding, touch the pitch wheel to turn off the chord.
Of course, many features are arbitrary choices. You can easily allow for more polyphony. You can disable retriggering existing notes. You can change behavior what happens when playing more than the maximum polyphony: for example implement a kind of "note stealing", where the oldest note will be turned off in favor of the new note. And of course, you can use different keys/buttons/encoders for retriggering, stopping, and enabling/disabling chord mode -- also in addition to the currently implemented ways.

Ideas for additional features which could be easily implemented using MT Pro:
  • for each chord note, remember the velocity so that retriggering will replay each note at its original velocity
  • allow removing single notes from the current chord: for example by using a specific modifier key (e.g. a button or a very low or high note key), or remove a note from the chord when playing it again (instead of retriggering), or make the behavior configurable with a modifier key.
  • implement dynamic polyphony: i.e. a specific key to finalize the chord. playing further notes now could either play them normally, or replace notes from the sounding chord.
  • finalize the chord after a specific amount of time (e.g. 2 seconds). When playing a note after that time-out, a new chord is started.
Thrilled to hear of your experience with it and ideas.
(9.37 KiB) Downloaded 217 times


2016-10-12 15:43:51


Seems to be a great solution. I'll be in holidays for the next 2-3 weeks, hope to be able to test it and see how it's running :)

Thanks Florian for this implementation!!