Sending transpose via MIDI file from Apple Mainstage - P08

Sending transpose via MIDI file from Apple Mainstage - P08
« on: March 13, 2017, 12:38:27 PM »
Hello:

I'm trying to create a MIDI file in MIDI-OX to send to the P08 via Apple Mainstage to set the transpose up or down an octave for some of my Mainstage patches and I'm failing terribly.

Anybody ever try this and have any syntax pointers? I'm only using Mainstage w/ the P08 to send program and bank changes and playing the parts directly on the P08 keyboard so the transpose feature in Mainstage won't work.

Thanks!

Re: Sending transpose via MIDI file from Apple Mainstage - P08
« Reply #1 on: March 15, 2017, 08:28:45 AM »
Moinmoin,

I'm trying to help You, but I'm failing terribly...
Honestly: You could be helped better, if You would be a little bit more specific.

From Your post I assume, that there is a successful MIDI-communication in general between Your Apple and P'08.
- If not, check cabling (including USB/Firewire to classical MIDI conversion) and the global MIDI parameters (send, receive, CC, NPRN, channel) at P'08 and Your Apple

If MIDI communication in general does work, it is always a good idea to do what You want to achieve at the P'08 itself and watch/log the MIDI datagrams sent by it via MIDI while You do so. This should be possible with nearly any MIDI software, be it for Apple, PC or dedicated sequencer hardware.
So if You use the P'08 keyboard version: What does P'08 send if You press the transpose switch?
Does sending exactly that to P'08 solve Your problem?

If this doesn't help or if You use the P'08 "rack" version that - to my knowledge - lacks the keyboard transpose switch: Transposition for up to one octave up or down is possible by sending NRPN 384 with values 0 to 24 (master transpose, P'08 manual page 44).

If this also doesn't help or You don't get it to work for other reasons: any MIDI (sequencer) software should easily allow to transpose whole sections of or even entire MIDI-files.

HTH

Martin
« Last Edit: March 15, 2017, 08:43:09 AM by MartinM »

Re: Sending transpose via MIDI file from Apple Mainstage - P08
« Reply #2 on: March 15, 2017, 11:29:55 AM »
Hello:

Thanks for taking time to reply.

The MIDI comm's are fine, I'm just trying to create a file to send from Mainstage w/ MIDI-OX as Mainstage has a feature to send a MIDI file when you select a patch (song) in Mainstage. I've been successful in using this with my Korg Kronos, but not the P08. I'm looking for the hex string I need and I'm having a brain fart.

If I push the transpose buttons on the P08, it does not send those MIDI commands to MIDI out as I've used the real-time monitor in MIDI-OX and I don't receive any data. If I twist a knob or play notes, I can see the data stream in. I used this method to help me figure out the proper hex string to send to my Kronos to switch it between Setlist, Combination and Program modes w/ Mainstage's MIDI file send feature.

Maybe I'm making this harder then it is. I have one song I need to transpose the keyboard up an octave and if I forget to push the stupid button: Fail. Everything else is controlled by Mainstage for each song (program/bank changes, etc.) with a push of a mapped button(s) on a Korg Nanokontroller. Anything to streamline switching from song to song live helps when you have 47 other things to worry about while performing (and to think we used to do this in the 80's sans computer!)

I've been out of the scene for quite a long time and starting back playing with a gigging band about 4 months ago, so I'm re-learning things I used to know.

Thanks!

Re: Sending transpose via MIDI file from Apple Mainstage - P08
« Reply #3 on: March 15, 2017, 11:35:36 AM »
Sorry, forgot to mention this is the keyboard version of the P08, not the desktop.

Re: Sending transpose via MIDI file from Apple Mainstage - P08
« Reply #4 on: March 16, 2017, 03:35:58 AM »
Moinmoin,

if transposition by transpose switch does not deliver MIDI-commands even if MIDI messages are set to NRPN in P'08 global parameters, You must use the appropriate NRPN to transpose.

P'08 manual states to use NRPN384 with parameters from 0 to 24. Parameter gives the semitone to transpose +12:
  • NRPN 384 with parameter 0 will transpose one ctave down
  • NRPN 384 with parameter 24 will transpose one octave up

MIDI is a binary protocol that leaves the most significant bit of 8 bit digits for special purposes, restricting the range of "normal" values into a range from 0 to 127 (0000 0000 - 0111 1111 binary).
As NRPNs however accept values >127 for address and data, You should convert NRPN and parameter to 16-bit binaries and divide them into two 8-bit binaries called Most and Least Significant Bytes (MSB, LSB).
As hexadecimal figures are better to handle and suffice for our purpose however, 4 digit hexadecimals will do fine:
  • 384 dec -> 0180 hex: MSB = 1 / LSB = 80 hex = 128 dec
  • 0 dec -> 0000 hex: MSB = 0 / LSB = 0
  • 24 dec -> 0018 hex: MSB = 0 / LSB = 18 hex = 24 dec

Now consult Your MIDI primer to learn how to send NRPNs:
  • CC 99 dec (63 hex), followed by MSB of NRPN address
  • CC 98 dec (62 hex), followed by LSB of NRPN address
  • CC 6, followed by MSB of NRPN parameter
  • CC 38 dec (26 hex), followed by LSB of NRPN parameter

As "CC"-command is represented by 185 (B9 hex), You have to do as follows:
  • set P'08 global parameters to send / accept NRPNs
  • make Mainstage send 185 99 1  185 98 128  185 6 0  185 39 XX [B9 63 01  B9 62 80  B9 06 00  B9 26 XX] to P'08 at the correct MIDI channel

Brackets [] contain hex figures, first part of string is decimal. You need to send only one of these two of course, though sending twice doesn't cause problems 8)
XX has to be replaced by 0 for one octave down and 24 (dec) / 18 (hex) for one octave up. You may also use any value in between for transposition in semitone steps.

Please accept my apologies it I insulted You by explaining this "for dummies", but better too much than too little...

HTH

Martin
« Last Edit: March 16, 2017, 03:48:57 AM by MartinM »