Triggered FIFO pipe

First in, First out pipe
Notes received from one midi channel are stored up, and only played when notes are received on another midi channel. In effect, this slaves the timing of melodic notes from one channel to the timing/rhythm of the notes from another.
Function:
Accepts midi notes from one channel (X) and places them in a list in the order in which they were received.
Receives midi notes from another channel (Y) and combines the note on/off information from Y with the note value information from X and sends that note out on a third channel (Z)
The list length is finite. If full, extra notes arriving on X are ignored. If the list is empty, then no notes are output if a note arrives on Y. When a note from the list is played, then the top of the list points to the next note in line and a space opens up at the bottom of the list for the next note arriving on X.
In theory, you could make the pipe a FIFO list, a LIFO (last in, first out), a random list entry, or a brownian motion walk through the list, for melodic variety

Attributes:

  • Length of list (how many notes are stored in the list before the list is full?)
  • Channel X (Midi channel for incoming melody notes, for storing into a note list)
  • Channel Y (Midi channel for incoming notes whose arrival triggers notes stored on the list)
  • Channel Z (the output midi channel for the notes created by the pipe)
  • List mode (FIFO, LIFO, Random, Brownian)

Phil.

Great idea, noting it down in our todo :slight_smile:

Wonderful :slight_smile:
Thanks a bundle
Phil

1 Like

I’ve actually made something like this but using CC messages using the RK-002, and i hope that a CC version of this latching mechanism would be done at the same time :slight_smile: In this case all CC messages are stored until a note arrives, when they are sent just before it