Send [nrpn: abandoned] sysex messages

Discuss John Bowen Synths - Solaris
chapolin
Posts: 94
Joined: Thu Feb 26, 2015 4:35 pm
Location: France
Contact:

Send [nrpn: abandoned] sysex messages

Post by chapolin »

Hello,

I would like to control some parameters of the Solaris from my Roland A-500 master keyboard. To begin and understand how it works I looked in the NRPN Table of values of the Solaris manual and I would like to assign a keyboard knob to the parameter Env6Att0 - 101
So the attack on envelope 6.

It seemed to me to understand that the parameters indicated Tx-NRPN and Rx-NRPN in the old French manual of Solaris have become TxSysEx and RxSysEx and that therefore we must communicate now in the form of System Exclusive?

I do not know much about nrpn messages and wanting to document myself I found this tutorial;
NRPN's are 14-bit values (0 to 16,384)

CC98 and 99 select the parameter to change.
CC6 sets the value for the parameter previously selected by CC99/98.
Normally your MIDI host should handle the NRPN encoding.
Doing them manual is cumbersome.

a midi message has a maximum of 7 bit (0-127)
so to send a higher value than 127, 2 midi messages are combined (C99 high, C98 low)

say you want to select NRPN nr 200.
200 is 00000011001000 in binary 14 bit. (the windows calculator helps )
now we split it to 7 bit each
0000001 = 1 = CC99
1001000 = 72 = CC98

then you can send the new value via CC6
I'm not 100% sure, but I think CC6 = '0' and CC6 = 'something else then 0' should set/reset the mutes.

delay is allowed. You can even select the parameter once wit 98/99 and send various CC6 after that to change the value.

Do I have to follow a similar procedure for Solaris?
So convert in my case 101 to binary 14 bit which I cut in the middle into 2 numbers of 7 bit which will inform lsb and msb ?


Thanks
Last edited by chapolin on Thu Apr 02, 2020 10:28 am, edited 1 time in total.
John Bowen
Site Admin
Posts: 2002
Joined: Sat Apr 07, 2007 3:00 am
Contact:

Re: Receive nrpn message

Post by John Bowen »

Since v1.4.0 OS, we are no longer using NRPNs. Everything has been converted to SysEx control. Please make sure you have the lastest OS installed.
chapolin
Posts: 94
Joined: Thu Feb 26, 2015 4:35 pm
Location: France
Contact:

Re: Receive nrpn message

Post by chapolin »

Thank you for the answer.
I have the latest OS installed : v1.4.4
I founded the link for Sysex documentation here: https://forums.johnbowen.com/viewtopic.php?f=10&t=16430
I never used sysex in detail, I will try to understand this week and i come back ...
John Bowen
Site Admin
Posts: 2002
Joined: Sat Apr 07, 2007 3:00 am
Contact:

Re: Receive nrpn message

Post by John Bowen »

You can watch this video which you may find helpful:
https://www.youtube.com/watch?time_cont ... e=emb_logo
John Bowen
Site Admin
Posts: 2002
Joined: Sat Apr 07, 2007 3:00 am
Contact:

Re: Receive nrpn message

Post by John Bowen »

Thank you for the video.
I fallow also the Solaris Sysex documentation and the table "Parameter Changed" page 7

I wanted to control the Env6 Attack, so I founded address low mid and high are 13 50 03,
00 12 34 for Manufacturer ID,
00 for Device ID,
10 for Solaris ID,
13 for Function: Parameter Changed.

So after different tests I wrote F0 00 12 34 00 10 13 13 50 03 DT F7 in the A-Pro Editor, with Data type adjustment on DT1: 4bit/4bit, min value=0, max value=12 and it pretty much works. When I move the selected cursor of the A-500pro, the env6 attack move from 0.0ms to 19.85s in the Solaris.
I have to move the cursor very finely because its stroke is short between 0.0ms and 19.85s ! But I can refine and make the handling more pleasant by reducing the max value to 2 for example. By cons in this case I can only adjust from 0.0ms to 3.47s ...

For the Data type adjustment in the A-Pro I have the choice between:
DT0: 7-bit 1 octet min=0 max=127
DT1: 4-bit/4-bit 2 octets min=0 max=15
DT2: 7-bit/7-bit (MSB/LSB) 2 octets min=0 max=127
DT3: 7-bit/7-bit (LSB/MSB) 2 octets min=0 max=127
DT4: 4-bit/ 4-bit/4-bit/4-bit 4 octets min=0 max=255

Did I done the good choice with DT1 ?

I was also able to control the sysex message sent from the Solarium editor by placing Gmidimonitor between the Solarium and the Solaris. But in this case I find messages more in line with the table in the Solaris Sysex documentation, with 3 bit for the DT like this for the Attack at 0.0ms : F0 00 12 34 00 10 13 13 50 03 00 00 00 F7
It is more conform with the 3 parameters, dd Parameter value bits 14 - 20, ee Parameter value bits 7 - 13 and ff Parameter value bits 0 - 6 that I founded in Solaris Sysex documentation with "Parameter Changed" page 7 ...
John Bowen
Site Admin
Posts: 2002
Joined: Sat Apr 07, 2007 3:00 am
Contact:

Re: Receive nrpn message

Post by John Bowen »

I will ask Jim to respond....
minorguy
Posts: 120
Joined: Fri Dec 05, 2014 12:09 pm
Location: San Jose, CA, USA
Contact:

Re: Receive nrpn message

Post by minorguy »

It seems you got pretty far to send the correct SysEx message. The Time parameters (and Frequency parameters) are kind of tough because they have a range of 0 - 200000 with a resolution of 0.1ms across the whole range. That resolution is useful at the low end but not at the higher end.

The SysEx message for changing the parameter always requires the value to be three bytes. I could not find a user guide for the A-500 editor software so I'm not quite sure how the DT data types work. Do DT2 and DT3 actually send two bytes for the value? Do you just put "DT" in the message once and it sends two bytes? If so, it still only allows the range 0 to 127 so how does that work? It looks like there's no option to send three bytes.

If DT2 can send two bytes, you might try to add the third byte yourself as a zero. For example:

F0 00 12 34 00 10 13 13 50 03 00 DT F7

where DT is the two low bytes.
You can also try just using data type DT0 and then just use the middle byte of the value, putting the other two as zero:

F0 00 12 34 00 10 13 13 50 03 00 DT 00 F7

I think that should give you a range of 0 to 1.6 seconds but only a resolution of 12.8ms

Another thing you may want to try is using Continuous Controller values. But these are used as modulators and not the absolute value. For example, you can set up the Env6 attack time to be modulated by CC1 and the go to the MIDI page 2/2 and set CC1 to a continuous controller number like say 12 decimal. Then use the A-500 to send CC 12.
I just tried this and it didn't seem to be working with Env6 attack time, if that's what you're really trying to control. But it worked fine to modulate filter cutoff and Env6 release time. So I'll have to check and see why the attack time didn't work for me.

Jim
Solaris #249
chapolin
Posts: 94
Joined: Thu Feb 26, 2015 4:35 pm
Location: France
Contact:

Re: Receive nrpn message

Post by chapolin »

Thank you very much John and Jim for your help.

In any case, in the state I will be able to get by with these different solutions :D

I tried F0 00 12 34 00 10 13 13 50 03 00 DT F7 and F0 00 12 34 00 10 13 13 50 03 00 DT 00 F7 and both work fine between 0.0ms to 1.63s

In every case it is possible to use DT 00 00, 00 DT 00 or 00 00 DT and DT 00 or 00 DT with different results depending on DT adjustment. Sometimes there are surprising results with negative values, a whole bunch of combinations.
For exemple with DT 00 00 and DT0 the attack go from 0.0ms to -1638.4 (no s or ms indicated for -1638.4)

If you want you can download the notice of the A-500 here: https://static.roland.com/assets/media/ ... pGuide.pdf

I did not tried your solution with the cc but il will try it also ...
minorguy
Posts: 120
Joined: Fri Dec 05, 2014 12:09 pm
Location: San Jose, CA, USA
Contact:

Re: Receive nrpn message

Post by minorguy »

chapolin wrote: Thu Apr 02, 2020 6:53 am For exemple with DT 00 00 and DT0 the attack go from 0.0ms to -1638.4 (no s or ms indicated for -1638.4)
The parameter values are actually all signed values. That first byte is the high byte of the number. So if you have the high bit of the value set to 1 it gets interpreted as a negative value. Of course this should not be allowed because time-related parameters can only be positive. But current versions of the Solaris don't do a good job of preventing out-of-range values when they come from MIDI. (The new version will.)

I did find the manual for the A-500 but not the editor software. Maybe it doesn't have a manual, I don't know.
Solaris #249
chapolin
Posts: 94
Joined: Thu Feb 26, 2015 4:35 pm
Location: France
Contact:

Re: Receive nrpn message

Post by chapolin »

Sorry but I gave you a bad link above. You can find the manual here:
https://static.roland.com/assets/media/ ... ng10_W.pdf
The instructions for the A-pro editor are from page 22.
chapolin
Posts: 94
Joined: Thu Feb 26, 2015 4:35 pm
Location: France
Contact:

Re: Receive nrpn message

Post by chapolin »

minorguy wrote: Wed Apr 01, 2020 8:24 pm Another thing you may want to try is using Continuous Controller values. But these are used as modulators and not the absolute value. For example, you can set up the Env6 attack time to be modulated by CC1 and the go to the MIDI page 2/2 and set CC1 to a continuous controller number like say 12 decimal. Then use the A-500 to send CC 12.
I just tried this and it didn't seem to be working with Env6 attack time, if that's what you're really trying to control. But it worked fine to modulate filter cutoff and Env6 release time. So I'll have to check and see why the attack time didn't work for me.

Jim
Hello I tried this manipulation for the attack and it did not work optimally. So I assigned cc1 to A-Src modulation with a value of +63, then I assigned cc1 to cc12 of the A-500.

If I set the attack to zero, the manipulation of cc12-> cc1 does not change anything. By cons if I set an attack around 100ms, the manipulation of cc12 begins to have an effect but the effect is not very strong. I would say that settled thoroughly it adds about maximum 4 or 5s to the attack but my evaluation is very approximate ...

Conversely, if the A-Src modulation is adjusted with a value of -63, handling cc1-> cc12 cancels the increase in attack. Ditto with the zero attack here does not work.

Ultimately, a cc solution added to sysex F0 00 12 34 00 10 13 13 50 03 DT F7 in the A-Pro editor can produce a very interesting fine solution.
Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 25 guests