Any way to send Program Change messages?

I’d like to be able to sequence program change messages but I’m not seeing any way to do that. I’d want to be able to send them from the sequencer to a hosted AU plugin and also to be able to send them out.

just checking whether or not I’ve missed something.


  • on a related note, a general purpose MIDI module would be totally awesome. I envision something where three byte midi messages could be set up to trigger by note (giving 128 possible messages). A similar module that could send custom Sysex messages would be awesome too, but I’m guessing that’s a bit much to ask.

  • With Groove Rider GR-16 having just gone AUv3 this would appear to be the only way to program pattern changes. A combination of program change and CC. From the manual:

    GR-16 supports Midi Control Change messages (midi mapping is listed in the table below), as well as Program Change and Pitch Bend events.

    Program change message switches User Patterns from 0 to 127 (midi bank 0). To be able to select User Patterns numbered 128-255 (midi bank 1), you must first select midi bank 1 (send Bank Select LSB = 1 and Bank Select MSB = 0 messages) before sending Program change message.

    Midi CC#

    0 Bank select MSB 

    32 Bank select LSB

  • I totally agree with the general purpose MIDI module. 3 bytes sounds reasonable.

    If I remember all these message types correctly, such a module could look like this:


    • A header menu entry to choose between 2-byte and 3-byte messages (the UI will then show an additional field for 3b)
    • One or two text fields for the message type
    • Inputs: CV (will adjust the last message byte), Gate (will launch the MIDI message)
    • Outputs: MIDI


    • A header menu entry to choose between 2-byte and 3-byte messages (the UI will then show an additional field for 3b)
    • One or two text fields for the message type
    • Inputs: MIDI
    • Outputs: CV (taken from the last byte of the incoming message), Gate (triggers whenever a matching message is detected)

    I hope I did not forget anything...

  • @rs2000, I don't think there needs to be a 2-byte message. They can be sent with just zeros in the unused byte. For instance a midi clock message is simply 0xF8, 0, 0. All fields should be numeric, not text. The first byte should probably be broken down into two dropdown selectors, one for message type and one for channel (1-16 or 0-15 depending on how you look at it). The other two fields should be numeric and limited to 0-127.

    That's the simple version and wouldn't include sysex. A sysex module would have the first and last byte pre-defined, then I suppose a text field where you could enter bytes separated by spaces or commas.

    That leaves 14-bit messages. Perhaps that could be done with a rack of two message modules, with the first multiplied by 128 and added to the second. I don't know, I haven't really thought that one through.

  • Here I am hijacking my own thread! So ... back on topic ...

    No way to send PC at this time? Any plans?

  • edited December 2020

    Not yet but definitely planned.

    For now we're just using a simple Streambyter Note to PC translator to send PC out of Drambo:

    90 XX = C0 XX

    (Every note on message will be replaced by a program change msg with the program number coming from the note number).

  • Thanks @rs2000 - actually, I got confused since I tried to use AU plugins to change midi channel internally and this doesn't work. I forgot that changing message type is no problem. Problem solved!

    (or more accurately, worked around 😉).

  • Hullo,

    i think I am being stupid- I can’t seem to make GR-16 change patterns.

    my routing is slider to midi cc generator set to 32 to gr-16

    where am I going wrong?


  • edited December 2020

    MIDI CC controls seems really screwed up in GR16 (AUV3). Try another CC number, see what I mean. Program change messages are the way to go but Drambo will get that working on the next update.

Sign In or Register to comment.