Scriptlet to Route Notes to Ch1/Ch2 Based on Previous Note

Hi folks,

I’m looking for a Scriptlet that outputs MIDI notes on a specific MIDI channel (no matter what channel the notes come in on).

Logic:

  • First note → output on MIDI Ch1

  • Every next note:

    • If the previous note went out on Ch1 and this note is not a fourth below the previous one → output on Ch1

    • If the previous note went out on Ch1 and this note is a fourth below the previous one → output on Ch2

    • If the previous note went out on Ch2 and this note is not the same note → output on Ch1

    • If the previous note went out on Ch2 and this note is the same note → output on Ch2

I have zero scripting experience and I’m currently working my way through the documentation, so if this is something that’s quick and easy for someone here, I’d love to learn from your approach.

Thanks!

An alternating channels scriptlet example: Help with alternating notes - #8 by dhj

1 Like

I’ve tried to create a Scriptlet that simulates classic reggae keyboard rhythm by generating triads automatically as you play — sending them to two MIDI channels:
• Channel 1 (“Bubble”) – main rhythmic chords
• Channel 2 (“Chop”) – response chords triggered by a specific pattern

How it works
• The first note always triggers a chord on Channel 1.
• If you play a note a perfect fourth below the last Ch1 note, a “Chop” is sent to Ch2.
• All other notes alternate based on whether the previous note was on Ch1 or Ch2.

Chord output
• Each note triggers a triad (Root–3rd–5th), using either major or minor voicings.
• Major or minor is selected using the “Chord type” latching button

Velocity response
• Channel 1 (Bubble):
• Velocity < 60 → Root + 5th only (2-note chord)
• Velocity ≥ 60 → Full triad
• Channel 2 (Chop):
• Velocity < 50 → 2nd inversion
• 50–114 → Root position
• ≥ 115 → 1st inversion

:double_exclamation_mark: I DARE NOT SAY WHO HELPED ME WITH THIS :robot:

there’s probably a lot of clean up work to do, but it seems to work pretty good so far

AlternatingChannelsWithChords.gig.zip (14.7 KB)