MIDI Program Change --> MIDI Notes --> MIDI Program Change ?

    Jan 07 2013 | 9:43 pm
    I am a user of Ableton Live. MIDI Program Change works fine "through" Ableton Live during recording, but is not retained during recording for playback. This is a well-known fact, but I have found what I believe to be an elegant little solution in the form of a Max Standalone with two virtual MIDI I/O port pairs.
    MIDI Program Change comes in with the rest of the MIDI controller's data, but is separated out and transformed into MIDI note data. Notes 0 - 15 represent the 16 MIDI Channels, and the velocity value represents the Program Change number.
    Passed through Live, the MIDI notes can then be recorded, then upon playback (and record, for that matter) passed back through the standalone for de-coding back into MIDI Program Change commands to be forwarded on to the tone generators. Elegant ? Who uses notes in that range anyway, right ? :-)
    Before I begin this project, I would like to know if this is already something out there, or not. If not, would anyone be interested in having the same tool for themselves, and care to work with me on it ? Collaboration is good.
    Looking forward to some responses on this.

    • Jan 08 2013 | 1:51 pm
      I've once made a similar patch and here is an adapted version which may be useful.
    • Jan 09 2013 | 12:00 am
      Wow ! That's great, and a timesaver, of course. I thank you very much. I'll give it a shot and build on it from there.
      Thanks for the seed.
    • Apr 02 2014 | 11:21 pm
      The problem I am running into with something similar is obtaining a program change value over 127... Any help? I'm using a CC to program change insert from max for live.
    • Apr 03 2014 | 5:06 pm
      You can't. The program change message only has 1 Data-Byte = 7bit(1st bit is always 0 for data-bytes) = 128 different programs you can adress. Not only in live, but in any midi-application.
      Usually synths/sound-modules organize their programs in "banks" that can be switched via a control-change-message (bank select).