I'm still processing this information to fully (or partially) understand it, but, for those interested, here is the answer I got elsewhere:
Code: Select all
First bit is a custom curve definition. On the left is the input from 0 to 127, on the right is the output
(normalized as 0 to 1).
This curve "low" at first, then has a smoooth, gradual rise from 32 until 72, where it immediately and rapidly
shoots up to 1 (full max "high") at 73 and beyond.
sustain_cc yeets sus pedal to CC90 (to be ignored or processed elsewhere?). I assume basically we're
hijacking the sus pedal info here so we can treat it like a variable CC (0-127) rather than its frequent treatment
as bipolar (on/off).
This is probably to get around default sus pedal behavior in the player
ampeg_dynamic=1 I believe forces the envelope to change when CC64 changes, to allow changes while a
note is playing. This is normally not the case.
The next line set up the the envelope for the samples: a short 5ms attack (to remove any clicks), a 0.5s decay
(no sustain value set so this value has no effect as shown afaik), and a 0.8s release.
ampeg_release_shape is the curve of the release. This is a negative value so the curve will be concave I believe.
ampeg_releasecc64=15. ccNN on an ampeg element adds onto the base value. In this case, if CC64 is 0, our
release is 0.8 + 0 or 0.8s. If it is 127, then our release is 0.8 + 15 or 15.8s
(i.e. basically no audible release, note continues to ring for a long time).
ampeg_release_curvecc64=11. This is saying the input from cc64 should, rather than working linearly, use
the custom curve defined above.
For example, if CC64 is 42, we will get 0.1 * 15 added onto our 0.8s release. If it is 72, we will get 0.4 * 15
added to our 0.8s release.
Values in between defined points are interpreted linearly (lerp), so a value of 53 would give us 0.2 * 15
added to the release.
----
Note that some of these opcodes may only work in the ARIA Engine (Sforzando or ARIA players). This methodology
also does not simulate the sympathetic vibrations of full pedal notes, it just controls how long the release time is
depending on sus pedal position.