Jump to content

Recommended Posts

Posted

Hi,

I have the following situation. I'm controlling the parameters of a DSI Tetra, whose patch dump uses a "packed data format" (shown here at the top of someone's JS decoding algorithm) which deals with two-byte values in a way that's not immediately comprehensible to me; and even if I took the time to understand it, it probably wouldn't be possible to syxdump_pos two separate bytes into the same event as one value. For this reason I'm picking out only one-byte values from the dump and using NRPN increment and decrement commands to change the two-byte values (mostly envelope amounts from -127 to 127).

However, the interplay between the two doesn't work as expected. When I use the setup below and turn the first encoder (sending an absolute value), the first param value changes as expected. Now I turn the second encoder (sending an increment or decrement command), and the second param value changes as expected. But when I now turn the first encoder again, it keeps changing the second param on the synth, even though on the NG it would appear that it's the first param that's being changed. On the NG it's the first param's value that's changing, but it's sent to the second param (on the synth). If I keep alternating between the first and second encoders, only the second param's value will change. The only way to break out of this is to turn a third encoder, which now changes a third parameter, and this seems to break out of the loop.

 If I turn the first encoder, then the second, the the third, then the second, then the first again, it all works as expected. But alternating between an encoder that sends an absolute value and one that sends an increment/decrement command seems to get tangled somehow.

Here's my test setup.

RESET_HW

ENC n=1   sr=1 pins=0:1   type=detented3
ENC n=2   sr=1 pins=2:3   type=detented3
ENC n=3   sr=1 pins=4:5   type=detented3

## param 4. VCF release
EVENT_ENC id=1   hw_id=1    label="@(1:1:1)Rel%B @(1:1:2) %03d "  range=0:127  type=NRPN  chn=12  nrpn="26"
## param 6. VCF env amount. RANGE 0-254
EVENT_ENC id=2   hw_id=2    label="@(1:6:1)Amt  "  enc_mode=Inc01_Dec7F  if_equal=0x01  type=SysEx stream="0xbb 99 0 98 20 96 1"
EVENT_ENC id=2   hw_id=2    label="@(1:6:1)Amt  "  enc_mode=Inc01_Dec7F  if_equal=0x7f  type=SysEx stream="0xbb 99 0 98 20 97 1"
# param 7. VCF sustain
EVENT_ENC id=3   hw_id=3    label="@(1:11:1)Sus%B @(1:11:2) %03d "  range=0:127  type=NRPN  chn=12  nrpn="25"

Posted

It's related to the NRPN optimization which only sends out 99/98 when necessary - the SysEx stream based NRPNs bypasses it, therefore the problem.

I will think about a solution which can handle this configuration properly...

Best Regards, Thorsten.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...