PC always Zero based (0-127)

Hi,

I am trying to send Program Change numbers to hardware via the midi out widget. This works fine - but no matter what the setting of ‘Use zero based program change number’ under Global Midi settings - the PC numbers are always zero based (0-127) (i.e. PC=0, MSB=93, LSB=1 is always valid even though 1,93,1 is the correct value)

Or am I misunderstanding something?

Thanks
Barry

Hi there,
Real MIDI message values can only be in the range of 0-127. They cannot have a value of 128. therefore you cannot send a PC message with a value of 128.

The zero-based option is there simply to allow you to see the same number in GP and on your device since many devices will display PC values starting with the number 1. All devices will still send the actual message starting with value of 0 and always less than or equal to 127 regardless of the display.

Hope this helps.

Hi,
Thanks for the reply - but it leaves me a little confused.
I well understand that real midi Program Change messages only ever go from 0 to 127. I also fully understand that some real devices allow you to use PC messages in the range of 0-127 and others 1-128 (but midi is always 0-127 internally in the device).

I am, therefore, at a loss to understand the purpose of the 'Use zero based program change number’ option under Global Midi settings in relation to the Midi Out widget. If no matter what the setting of this Global midi setting flag - then the only values that you can enter into the PC value in the Midi Out widget is 0-127 - then what is the purpose of the Global Midi setting flag?

Surely it would make sense that if 'Use zero based program change number’=true [i.e. set] then you can only enter 0-127 in the Midi Output widget. If 'Use zero based program change number’=false [i.e. unset] then you can only enter 1-128 in the Midi Output widget PC field. This way you could then use whatever is in the Program Change list expected by your device. Obviously the Midi Out widget itself would be expected to adjust it to the real (0-127) PC midi value in the background.
However, the one problem with all of this is maybe that such a Global Midi setting would be confusing if you had one hardware device that expects 0-127 and second that expects 1-128 - as there would be confusion in one of them. So actually maybe there needs to be an appropriate ‘Use zero based program change’ switch added into the actual Midi Out widget itself - so that you can at least enter numeric PC values that correspond to your devices patch list - rather than having to keep remembering to add (or is it remove) one. IF the Midi Output widget actually has values corresponding to what is in your devices Patch list - then it improves readability and removes confusion.

Now where’s the paracetamol…
Barry

Yeah, it may be we should just dump that “choose 0 or 1” and just be always 0-based. If a user has a device which is 1-based then subtract 1 and keep going :slight_smile:

My vote would be to dump the global “choose 0 or 1” - but to add a 0/+1 flag to all the midi output widgets. This would be trivial to program, would be logical, consistent and would ensure readability between the program change values in the midi output widget and the documented values on hardware (or other) patch lists.

Hmmm.
The purpose of the option is to give you the consistent display of the numbers. The title for that option may be a bit misleading. It implies that anything you do with PC numbers will be or not be - zero based while in reality it only changes the display on the main rackspace list.

I think that changing the name of the option to “Display zero-based program change numbers in rackspace list” would possibly be more explanatory and reflect the purpose of that option.