Requesting current values - M7CL/LS9

Hi Andy

First of all to give you a run down:

  • I am involved in a local church in Auckland, New Zealand which has mostly Yamaha Digital desks including 1 x PM5D, 2 x M7CL and 2 x LS9. 3rd M7CL on its way soon hopefully!

  • 6 venues, at 1 venue we have PM5D FOH with EV XLC’s, and M7CL with 4 wedge sends, 4 x Wireless (Sennheiser G2 and PSM600) and 6 x Wired PSM600. The entire band is on ears and all key band member have Ultimate Ear UE10-Pro’s

  • We are using Aviom mixer currently with the Aviom card for the M7CL. As we have a 9 piece band plus strings and possibly 8 vocalist you can imagine that 16 channels on the Aviom doesnt cut it and nothing is in stereo. The quality of the output from the Aviom mixers are not nearly as clean or accurate as plugging a PSM600-HW pack into the M7CL.

  • I have started mixing key band member straight out of the monitor desk and all have commented on how much cleaner and unclutted the mix is as everything is in full stereo complete with stereo ambient shotgun mics and FX for acoustic guitar a lead vocals :slight_smile:

I have setup 1 x BCR2000 midi controller with required channels and panning etc…All works great. I have done this by using the NRPN values in the manual, as you would imagine.

The problem is when a controller is powered on or a scene change is made on the M7CL the controller does not update mix send values or panning.

What is the best way to request the current values for particular NRPN control changes? I think this is the best way to explain what I am trying to achieve.

Once I have confirmed that 1 value updates with a specific SySex command I can make a file with all the NRPN values I need to update.

As you have made the impressive send of faders mix program, I would appricate any sugguestions you may have which will help me achieve this.



Hi Nick and Welcome!

Basically, to get an NRPN value sent from the Yamaha console, a control has to be physically moved, as you have discovered. Values are not sent on scene recalls.

To “ask” the console to send you the current value of a control, the only way is to use SYSEX messages.
You can request the information from the console in a couple of different ways.

One would be to request the value of a particular control.

Another way would be to request a “bulk dump” of all the settings. The bulk dump would then have to be parsed to retrieve the information that you’re looking for, and of course the bulk dump would have much more information than you are looking for and it would take time to transmit. Incidentally, when you “sync” studio manager with a console, it does a bulk dump (or something like it) to transmit all the data from the console to the SM program.

Probably the simplest and easiest way would be requesting just the information you are looking for.

Since you need multiple values, and I doubt the BCF2000 can send multiple messages, you may have to look at a programming solution.

The sysex messages you are looking for are listed in the console manuals under “Parameter Change” messages. The exact detailed messages are available at the Yamaha web site as a download.

So, there’s your start. Where do you want to go from here?


Hi Andy

Thanks for the info. I have just been reading the ParamChangeList_V200_M7CL.xls file which I found on the yamaha site as you mentioned. Very interesting. I have found the section I am after

The Parameter request for Mix 1 Level isL


What im confused about is which part of this command selects the channel I want to request the mix 1 send level?

I feel I might be missing some basic understanding possible of sysex commands?


The other thing I noticed is that the value listed for Min/Max ranger is 0-1023 which as you know is 8bit. I need this in a 7bit format for the BCR2000 as this is what it has been setup with and can only be switched 7bit/14bit

Any ideas?



I mean 10bit!

The 2 bytes cc cc are the channel. Within that spreadsheet is a page called “Ch Table” which will give you the conversion between the cc cc number and the actual channels. Like 0 = channel 1, 1 = channel 2 and so on.

I assume 14-bit (2 7-bit bytes) is the correct setting, but I haven’t programmed the BCR before.
You need to learn about 8 to 7bit conversions (and 16 to 14-bit). That’s a fundamental part of MIDI programming. You’d do well to read up a bit on MIDI, if you want to really get a handle on what it’s all about.

This might be a good start:

Hi Andrew

Had a look a the CH TABLE worksheet in the ParamChangeList spreadsheet. I see what you mean

F0 43 3n 3E 11 01 00 42 00 05 cc cc F7

The above is the request format for Mix1Level. Input 48 value would be 47 as per the table but I’m not sure how this substituted into the cc cc section of the request. If you could give me an example for requested the current level for Mix1 that would be awesome, then I can do some testing.

From what I can see a 10bit value will be returned. As the controller is sending/receiving 7bit values currently, how would this respond or is it different being a SysEx message? Just trying to get my head around this.

Thanks in advance, looking forward to getting this all up and running



Hey Nick;

cc cc would be 00 47 (00 2F in HEX)

So the Request message would be:

F0 43 30 3E 11 01 00 42 00 05 00 2F F7

The reply message would be:

F0 43 10 3E 11 01 00 42 00 05 00 2F 00 00 00 dd dd F7 where dd is a 14-bit representation of the value from 0 – 1023.

Again, you need to learn how to convert 16-bit numbers to 14-bit and vice-versa if you want to read the value, but if your controller can handle 14-bit values already then maybe you can make it work.

Let me know how it goes.

Hi Andy

Just had a go and nothing changed on the BCR2000 controller. Im guessing that it doesn’t understand that SySex command that is returned. Those commands probably only work with Yamaha desks. What do you think?

Hey Nick;

Have you tried the “learn” mode on the BCR? How about the Behringer Editor software for that controller.

Which part are you trying? The sending of the request to the Yamaha or the Parameter Change data being sent to the BCR? You should start with the data being sent to the BCR. Use the learn function or the editor to see if you can get it to work with the SYSEX data. I don’t know what the capabilities are of the BCR in terms of Sysex decoding.

Hi Andrew

I have tried the Parameter Change command being sent to the BCR, I haven’t tried with the desk, but have tried sending the reply message you send through.

Think i need to find out about the decoding on the BCR if that is possible at all, what do you think? I know there haven’t been any updates for it in years

Dunno, Nick. I haven’t worked with the BCR.

My first thought though would be to do what I Suggested. Use the learn function and install the editor software so I can see what the BCR is doing and possibly program it better.

Hey Nick;

Had any luck with this yet?

I have been experimenting with controlling an LS9 with a BCF2000 and have found that the BCF does not seem to be able to decode returned sysex and set the faders/encoders to the LS9’s values. It can and does respond to CC and NRPN replies. I have recently read a comment confirming this this in one of the BCx2000 forums and will try and find the exact ref. if you are interested. I have also found that the smoothest NRPN control of the BCF faders uses a range of 0-16383 and needs the 14 bit data Absolute values setting using either the inbuilt BCF editor or the PC based BC Manager. The two 7 bit byte to 8 bit byte conversions have confused me several times when trying to read the data stream and work out the correct NRPN numbering :-{

BTW I am completely new here and hope that this is helpful.


Another person has been working with Parameter Change (sysex) messages and has had some success. They are planning to try NRPN next. That thread is here:

Hi.I work on a remote control software for M7CL on MaxMSP.I use Studio Manager with M7CL plugin as a simulator.I can change the parameters through sysex messages.But SM doesn’t respond to my current value requests.Message that I sent is :

F0 43 30 3E 11 01 00 42 00 05 00 2F F7

Do you have any suggestion?


I don’t think SM responds to Parameter change requests, only the console will respond.

I’m trying to do the same thing I think and am not sure that I understand the ultimate answer.

I’m using a TouchOSC/OSCulator system to control the DCA faders and some other controls from an iTouch. I can get communication going both ways fine, if I move the fader on the iTouch the console reacts, if I move the console fader the iTouch follows it. The problem is that when I start the app it has no clue where the faders are so they would jump if I grab them. So I am trying to grab the current value of the fader so I can calibrate my app.

With SysEx, what would be the command to request a specific paramter, for this instance maybe fader ch 1 position? I imagine you can request anything that Studio Manager can control because it obviously has to be able to follow somehow.

I’ve tried to figure it out based on the manual and MIDI implementation sheets but so far no luck.

As a reference right now I’m using NRPN for the control itself but I can transcribe back and forth as needed.

See Post #8 (
The request is the same as the reply message except byte 3 is 30 instead of 10. (Yamaha says 3n and 1n, but n is always 0 with Yamaha)

Have a look at the Yamaha MIDI guide which just came out: