Profile Player and midi offset

  • I need the profile player to use 1-128 midi pc instead of 0-127

    The MIDI communication protocol only allows values between 0 and 127 - 128 needs one digital bit more than is available 😉 - MIDI data needs to fit into 7 bits.

    The only difference is how devices DISPLAY these program changes - underneath the hood, everything is 0..127. Just some devices display their first patch as program 1 and accordingly display program changes in their settings as 1..128. But once the value gets sent through the wire, it's all 0..127. So it's really mostly a question

    I don't have a Profile Player, but my Profiler Stage seems to use the "1..128" display logic: when I assign Program #1 to a rig, I need to send the "raw value" 0 to switch to it. When I send "raw value" 2, it switches to the rig with the assigned program #3 - all consistent with 1..128 display logic.

    I assume the Player works similarly - the manual says that it expects program changes 1..50 to address its slots, so I assume they expect raw data 0..49 to select the 50 slots. And that's how 99.99% of all MIDI controllable devices work - PC 0 selects the first slot...

    Now it's just a question how you get your sending device to send the correct value (how are you controlling the Player?). If your device / software counts 1..128, then it should display "1" and send "0", so to select the first program on the Player, set the command to "1". If your device / software displays program changes 0..127, then you need to tell it to send Program Change 0 to select the first slot.

    It makes no sense to do this at the receiving end - if you added an offset to received program changes, you would in effect lose one value in your program change range - this doesn't really hurt for the Player, since it only has 50 slots to begin with, but with the Stage, this would mess things up dramatically, since using an offset would mean having only 127 values in the 7 bits left. That way, there would be slots you couldn't address within the current bank - this would mess up the whole bank/program logic.

    TL/DR: MIDI program change offset is a DISPLAY thing that needs to be addressed on the side that SENDS the program change. If your program or device uses a 0..127 logic (i.e. sending program change 1 from your device / software selects slot 2 on the Player), you need to either get used to that or (if there's an option for that) change the display logic of your sending device / software so that it displays its program changes in a 1..128 logic...