Share your knowledge on these two classic MPCs
By dtirer Wed Nov 14, 2012 6:59 pm
I'm just experimenting with sequencing external hardware from my MPC 3000. I have a DSI Mopho module. Basically, the Mopho allows for control of 60% of its functionality through CC messages, however to get the most out of it, you need to us NRPN messages.

So Im wondering, can the MPC 3000 send NRPN messages? I haven't been able to find anything about it in the manual.

Are there a combination of messages I can send to accomplish similar things?

I'm in the step editor and I see I can send SysEx messages, which deal with byte data. I also see named CC messages with MSB and LSB suffixes.

Has anyone dealt with this sort of thing?
User avatar
By SimonInAustralia Wed Nov 14, 2012 7:37 pm
dtirer wrote:I'm just experimenting with sequencing external hardware from my MPC 3000. I have a DSI Mopho module. Basically, the Mopho allows for control of 60% of its functionality through CC messages, however to get the most out of it, you need to us NRPN messages.

So Im wondering, can the MPC 3000 send NRPN messages? I haven't been able to find anything about it in the manual.

Are there a combination of messages I can send to accomplish similar things?

I'm in the step editor and I see I can send SysEx messages, which deal with byte data. I also see named CC messages with MSB and LSB suffixes.

Has anyone dealt with this sort of thing?

NRPN messages are sent as multiple CC messages one after the other.

The NRPN parameter MSB and LSB are cc's 99 and 98, to identify which parameter is changed, then cc 6 for the amount, and optionally 38 for fine amount.

These are chosen/shown in the MPC3000 step edit/event to insert field.

Google NPRN MIDI for more info.

Some decent info here...
http://www.philrees.co.uk/nrpnq.htm
By dtirer Wed Nov 14, 2012 8:02 pm
ah thanks. trying it quick, im not getting it to work, but I think I need to read a little more. thanks!

SimonInAustralia wrote:
dtirer wrote:I'm just experimenting with sequencing external hardware from my MPC 3000. I have a DSI Mopho module. Basically, the Mopho allows for control of 60% of its functionality through CC messages, however to get the most out of it, you need to us NRPN messages.

So Im wondering, can the MPC 3000 send NRPN messages? I haven't been able to find anything about it in the manual.

Are there a combination of messages I can send to accomplish similar things?

I'm in the step editor and I see I can send SysEx messages, which deal with byte data. I also see named CC messages with MSB and LSB suffixes.

Has anyone dealt with this sort of thing?

NRPN messages are sent as multiple CC messages one after the other.

The NRPN parameter MSB and LSB are cc's 99 and 98, to identify which parameter is changed, then cc 6 for the amount, and optionally 38 for fine amount.

These are chosen/shown in the MPC3000 step edit/event to insert field.

Google NPRN MIDI for more info.

Some decent info here...
http://www.philrees.co.uk/nrpnq.htm
User avatar
By SimonInAustralia Wed Nov 14, 2012 8:42 pm
Are you getting the MPC to insert the multiple cc's that are required, cc99, cc98, cc6, etc., into a single step of the step edit screen?

If so, then you need to look at the manual for the device you are trying to control with the NRPN's, to see what cc99/MSB and cc98/LSB should be set to for the particular parameter you want to control, then check what values of cc6, and any additional cc's, are used to set the value of that parameter.

...or something like that?
By dtirer Wed Nov 14, 2012 8:48 pm
Yeah, I have the Mopho manual. It provides a Param, NRPN, and a range for each controllable parameter. I'm not sure if Im supposed to use the param number, or the NRPN for cc99 and cc98. So i've been trying both.

I guess my question with this is, how does this solve the problem of being able to send value higher or lower than the 0-127 range? For instance, the lowpass frequency has a range of 0-164. Or filter envelope amount has a range of 0-254.

SimonInAustralia wrote:Are you getting the MPC to insert the multiple cc's that are required, cc99, cc98, cc6, etc., into a single step of the step edit screen?

If so, then you need to look at the manual for the device you are trying to control with the NRPN's, to see what cc99/MSB and cc98/LSB should be set to for the particular parameter you want to control, then check what values of cc6, and any additional cc's, are used to set the value of that parameter.

...or something like that?
User avatar
By SimonInAustralia Wed Nov 14, 2012 8:54 pm
It probably splits the range across multiple cc's.

So, instead of cc6 for setting a paramter, then cc38 for fine setting it, it might put the first have of the range on cc6, and the second half on cc38, or something like that.

There are multiple fine settings available in the NRPN scheme.
By dtirer Wed Nov 14, 2012 9:01 pm
Oh i see. interesting. OK, ill have to sit down and experiment with it. see what works.

The orinder in which they're sent, does this matter? for instance, on a given step, i might have the following:

The Pad to be played
cc98: value
cc99: value
cc6: value

do they have to be in a certain order?

SimonInAustralia wrote:It probably splits the range across multiple cc's.

So, instead of cc6 for setting a paramter, then cc38 for fine setting it, it might put the first have of the range on cc6, and the second half on cc38, or something like that.

There are multiple fine settings available in the NRPN scheme.
User avatar
By SimonInAustralia Wed Nov 14, 2012 9:19 pm
The Mopho manual shows the order it needs to be in, but whether you can duplicate that in the MPC step edit mode will probably require some experimentation.

The Mopho manual says...
The parameter number can be found in the two tables below, one for Global parameters, and the other for Program parameters. The parameter numbers and the parameter values are broken into two 7-bit bytes for MIDI transmission; the LSB has the seven least-significant bits, and the MSB has the seven most-significant bits, though in most cases the MSB will be zero or one, and never more than two.

When receiving an NRPN, all messages do not necessarily need to be transmitted, since the synth will track the most recent NRPN number, though it is usually good practice to send the entire message above.

Once an NRPN is selected, the synth will also respond to NRPN Data Increment and Decrement commands, which some controllers utilize. Finally, it responds to one RPN (Registered Parameter Number) command, the RPN/NRPN Reset command, which can be handy for resetting the currently selected parameter to a known state.

So, the MSB and LSB are 7 bit binary numbers, which can each represent the range 0-127.

It says above that the MSB is usually 0 or 1, and never more than 2. This would be because all possible values can be represented by a MSB/LSB pair with an MSB of 0, 1, or 2, there are no values that need to be set higher than that.

An MSB of 0 with an LSB of 0 = 0
An MSB of 0 with an LSB of 127 = 127
An MSB of 1 with an LSB of 0 = 128
An MSB of 1 with an LSB of 1 = 129
An MSB of 1 with an LSB of 2 = 130
etc.


For the parameter number, you would probably use cc99 as the MSB and cc98 as the LSB, for the parameter value you would probably use cc6 as the MSB and cc38 as the LSB.


The Mopho manual says that you can send out NRPN data from the Mopho itself, maybe try recording that into the MPC and see how it looks in step edit, if you can't get it to work with a combination of cc99/cc98/cc6/cc38?
User avatar
By SimonInAustralia Wed Nov 14, 2012 9:32 pm
dtirer wrote:The orinder in which they're sent, does this matter? for instance, on a given step, i might have the following:

The Pad to be played
cc98: value
cc99: value
cc6: value

do they have to be in a certain order?

I would assume that it has to be in the order that it lists it in the manual, I think it would be cc99, cc98, cc6, cc38, which would change the paticular parameter to the setting you want, then you would play the note to make that particular sound that you have just set.

You might need to insert the NRPN data in a step before where you want the note to play, so it is not trying to send the parameter change data, together with the note data, on the step it is supposed to play, as it might throw the timing off, or the Mopho might not respond to the parameter change before the note is played?

It will need some experimentation, I think.
By dtirer Wed Nov 14, 2012 9:37 pm
OK great, thanks for all this info. I'll try it out when I get a chance and let you know what happens

SimonInAustralia wrote:
dtirer wrote:The orinder in which they're sent, does this matter? for instance, on a given step, i might have the following:

The Pad to be played
cc98: value
cc99: value
cc6: value

do they have to be in a certain order?

I would assume that it has to be in the order that it lists it in the manual, I think it would be cc99, cc98, cc6, cc38, which would change the paticular parameter to the setting you want, then you would play the note to make that particular sound that you have just set.

You might need to insert the NRPN data in a step before where you want the note to play, so it is not trying to send the parameter change data, together with the note data, on the step it is supposed to play, as it might throw the timing off, or the Mopho might not respond to the parameter change before the note is played?

It will need some experimentation, I think.
User avatar
By SimonInAustralia Fri Nov 16, 2012 5:52 pm
SimonInAustralia wrote:You might need to insert the NRPN data in a step before where you want the note to play, so it is not trying to send the parameter change data, together with the note data, on the step it is supposed to play, as it might throw the timing off, or the Mopho might not respond to the parameter change before the note is played?

Although there is no reason you can't send the NPRN data while the note is playing, to change the sound during or after the note on message, if you want to change the sound while it is playing back, rather than (or as well as) setting it before the note is played. You would have to experiment to see how the Mopho responds to parameter value changes while the sound is being played back, in terms of timing and audio artifacts.

And the NRPN info suggests that you don't need to specify the parameter number along with each parameter value change, after the first/inital parameter number is sent. This means you need 4 cc messages for the first/inital parameter value setting, then you can change the parameter values for that same parameter number by just sending 2 cc messages for the MSB/LSB of the required parameter value change.
Last edited by SimonInAustralia on Fri Nov 16, 2012 7:10 pm, edited 1 time in total.
By dtirer Fri Nov 16, 2012 6:31 pm
Oh alright great.
Yeah i tried your idea with recording the NRPN data into the MPC from the mopho. I only tried a few examples, I found the orde rneeded to be 99, 98 , 38, and then 6. The funny thing is, the value for a particular parameter seemed solely deteremind by cc38. cc6 was always zero in the cases I tried

SimonInAustralia wrote:
SimonInAustralia wrote:You might need to insert the NRPN data in a step before where you want the note to play, so it is not trying to send the parameter change data, together with the note data, on the step it is supposed to play, as it might throw the timing off, or the Mopho might not respond to the parameter change before the note is played?

Although there is no reason you can't send the NPRN data while the note is playing, to change the sound during or after the note on message, if you want to change the sound while it is playing back, rather than (or as well as) setting it before the note is played.

And the NRPN info suggests that you don't need to specify the parameter number along with each parameter value change, after the first/inital parameter number is sent. This means you need 4 cc messages for the first/inital parameter value setting, then you can change the parameter values for that same parameter number by just sending 2 cc messages for the MSB/LSB of the required parameter value change.
User avatar
By SimonInAustralia Fri Nov 16, 2012 7:02 pm
Good to know you are making progress with it.

dtirer wrote:Yeah i tried your idea with recording the NRPN data into the MPC from the mopho. I only tried a few examples, I found the orde rneeded to be 99, 98 , 38, and then 6. The funny thing is, the value for a particular parameter seemed solely deteremind by cc38. cc6 was always zero in the cases I tried

Since cc38 is the least significant byte, and cc6 is the most significant byte, the values from 0-127 are represented by cc38, with cc6 at 0. cc6 will only change to 1 for values over 127, and to 2 for values over 255.

Most parameter value ranges are probably within 0-127, so you might not have seen higher values than 127, that require a cc6 of 1 or 2, with the particular parameters and/or settings that you have tested so far.

The NRPN tables in the Mopho manual list the parameter ranges for each available NRPN parameter. If you want to test for a cc6 change to 1 or 2, check the NRPN tables in the manual, and test it with some parameters that have a range that extends beyond a value of 127.
By dtirer Fri Nov 16, 2012 7:21 pm
Oh i see. For some reason I thought it was the other way around. I would be using C6 through 127. But yeah I'll have to try that!

SimonInAustralia wrote:Good to know you are making progress with it.

dtirer wrote:Yeah i tried your idea with recording the NRPN data into the MPC from the mopho. I only tried a few examples, I found the orde rneeded to be 99, 98 , 38, and then 6. The funny thing is, the value for a particular parameter seemed solely deteremind by cc38. cc6 was always zero in the cases I tried

Since cc38 is the least significant byte, and cc6 is the most significant byte, the values from 0-127 are represented by cc38, with cc6 at 0. cc6 will only change to 1 for values over 127, and to 2 for values over 255.

Most parameter value ranges are probably within 0-127, so you might not have seen higher values than 127, that require a cc6 of 1 or 2, with the particular parameters and/or settings that you have tested so far.

The NRPN tables in the Mopho manual list the parameter ranges for each available NRPN parameter. If you want to test for a cc6 change to 1 or 2, check the NRPN tables in the manual, and test it with some parameters that have a range that extends beyond a value of 127.
User avatar
By SimonInAustralia Fri Nov 16, 2012 7:30 pm
dtirer wrote:Oh i see. For some reason I thought it was the other way around. I would be using C6 through 127. But yeah I'll have to try that!

I have not tried any of this myself, I am just trying to work it out from info on the net and in the manual, so I could well be incorrect with some/all of it

It might be the way you thought it is, I am not sure without being able to test it myself.