NoteMessage 'type'

I have a specific use case I’m trying to solve, and I’m struggling here (shocker in this channel, right?). I would like to be able to either modify and/or create NoteEvents in Gig Performer for this specific use case, however I find the documentation around a NoteMessage to be a little sparse.

When I receive a Midi Note Off from a Midi in block, I want to pass that through, but also create a short midi on/off note event based on the same note and channel on the previous Note Off. This is to create a “release” type of trigger for a given plugin/sound. This is VERY easy to do via parameters on my Roland Fantom X7. So far, I’m not finding this easy in GP. Hey @pianopaul , prove me wrong here.

I would expect I could create a NoteMessage On, followed by a delay (in milliseconds) for a NoteOff event on that different channel to trigger on note off, and still elicit a sound.

X

I don’t quite understand the problem — for example, the following will respond to a NoteOff event and send a new note on and (later) note off message

var
   Keyboard : MidiInBlock

On NoteOffEvent(m : NoteMessage) from Keyboard    
   var
      newNote : NoteMessage = MakeNoteMessageEx(50, 64, 2) // Create a note message with velocity 64 on Channel 2, say

   SendNow(Keyboard, m) // Send the original note
   SendNow(Keyboard, newNote)
   SendLater(Keyboard, newNote.WithVelocity(0), 1000)  //  Send a NoteOff message 1000 milliseconds later
End

Thank you, @dhj! I think what I missed was that a noteoff is essentially sending a notemessage with a velocity of 0. This does almost exactly what I’ll need to do. I’ll need to send the second note (when the original note was released) through a different midi in block. I think I would just reference both Midi in blocks, handle the noteoff event for the first one, and send the second sendnow and the sendlater to the second midi in block.

By the way, this is actually more flexible implementation than how I used release triggers on the Fantom X7. This is SWEET.

X