1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Ignore Controller 32 Bank LSB on MIDI Export

Discussion in 'Logic Pro X' started by Arsby56, Dec 1, 2014.

  1. Arsby56

    Arsby56 New Member

    I'm a bit confused by Logic Pro X's use of MSB and LSB when using Program Changes. I have a lighting system that accepts program changes with MSB and program number, for instance, Controller 0 (MSB) value 17 and program 26. There is no LSB used as far as I know.

    So adding a program change was easy enough--add an event with (in the case above) Num 17 and Val 26. This works great when I play from Logic Pro. Using MIDI Monitor I see Controller 0 sent 17 and then the program change was sent.

    However, when I export the file as a MIDI file, the .MID file contains controller 32 LSB, which has the value originally used by the MSB, while the MSB is changed to 0. So the MIDI file output is MSB value 0, LSB value 17, program change 26.

    Is there a way, then, of exporting just the MSB and keeping its original value? My workaround is not pleasant. It includes using no "Num" for the program change and preceding it with a Controller 0 at the desired value. The main drawback to that is if no Num is chosen, I have no defined names in my program lists.

    Any help would be appreciated.

    OS X 10.10, Logic Pro X v. 10.0.7
  3. Arsby56

    Arsby56 New Member

    Well, I realize this question is based on the fact I'm using an external device and also exporting to a .mid file, which probably means a small percentage of Logic users these days ever does both.

    But here's my workaround (though if anyone has a better solution I'm still open to easier methods).

    I've added a controller 0 event set to the desired bank value before each patch change event. In order to keep my patch names available, I also enter the bank number in the "num" field of the patch change event.

    Then before exporting to a .mid file, I "MIDI Transform" all program change events to set the bank "num" value to nil. The exported .mid file then contains only the controller 0 bank event and the program change event, rather than controller 0, controller 32, and program change.

Share This Page