FS1R Envelopes w/ Inverted rates

Hi Guys, Is there any way to change the envelope graph? The FS1R uses times instead of rates like the DX7. I know how to invert the number displays, but the graph doesn’t use the display values to create the plot. All my envelopes appear backwards on the graph, steep when they should be flat, flat when they should be steep. Is there any way to fix this? I’m almost done with the Preset, but I won’t release it if all the envelopes are backwards.

You should be able to use the formatFunction for this, except that it appears not to be working for ADSRs as I reported earlier @martin

I was using a formatFunction called ‘invertValue’, it changes the numbers but not the envelope graph. I also tried reversing the limits, I made the low 99 and the max 0, but turning the knob doesn’t increment/decrement the value properly. It jumps from 0 to 99 to 0. Allowing the min and max to reverse did alter the graph though.

Is there a way to do math in a JSON format? In the code below I want to insert 99-value in place of the {"type: “value”} part of the message so it sends my variable value subtracted from 99. How do I do that? This is a sysex message.
[“F0”,
“43”,
“10”,
“5E”,
“60”,
“00”,
“10”,
“00”,
{“type”: “value”},
“F7”]

OK, I figured it out.

function dispInvert(valueObject, value)
– my control range is 0-99, I want to invert what is sent
return math.floor(99 - value)
end

[
“F0”,
“43”,
“10”,
“5E”,
“60”,
“00”,
“10”,
“00”,
{
“type”: “function”,
“name”: “dispInvert”
},
“F7”
]

I’m going to leave the envelopes in the E1 as DX7, then invert when it sends the sysex message to the FS1R. I’m documenting this here so the next guy can find it.

Now all I have to do is figure out how to invert the values when I read a patch in off the FS1R… convert the incoming FS1R times to DX7 rates for the E1 to use.

1 Like