http://www.renoise.com/board/index.php?showtopic=13269 is the former thread I’ve used to discuss this MIDI CC envelope stuff.
I did some testing with my example file and noticed the following:
The CC envelope polling “only on new values” Taktik promised to 1.9 appears to function as advertised in first beta. Now my XV-5080’s MIDI message indicator actually blinks instead of being lit all the time depending on the envelope which means less strain. Now the synth is GENERALLY able to handle considerably higher amount of CC envelopes at time without choking. However, if the envelopes are steep, for example for fast filter sweeps, things are not as rosy: New CC values must be sent more frequently to synth versus less steep envelope. This eventually leads to choking and it does so suprisingly quickly.
At this point the adjustable polling frequency I suggested in the thread linked above would be beneficial. For instance, if I make CC 07 (Volume) value to change from 0 to 64 in four lines (speed 6), there are quite a many CCs per row sent and I’d like to get rid of some of them since I couldn’t hear the difference between 16 or 64 values in this fast volume transition anyway. I could imagine several ways to implement this:
-
The first way would be to intentionally skip every second/third/fourth/etc. CC send. However, this kind of approach in its simplest form would lead to choppy transitions if it’d be applied to less steep parts in the same envelope. The transition would be like 00-03-06-09-0C-0F-12-15-…
-
The second way would be to introduce an adjustment, which allows CCs only to be sent twice per tick, every tick, every second tick etc. or based to clock. However, this kind of approach would lead to quick transitions being choppy if user is unaware of the nature of the adjustment. The transition would be dependent on the steepness of the envelope.
-
The third way would be to introduce a more “intelligent” hybrid of these two previously mentioned ways: If the envelope has fast transition, the program should deliberately, depending on the steepness of the envelope, drop off some CCs, either tick- or clock-based just as described in first example. If the transitions becomes slower, the amount of dropped-off CCs would decrease and generally behave as in second example. If the transition is very slow, nothing needs to be dropped off.
Implementing something like this for CCs (whether and when) is up to you. I’d DEFINITELY love to see at least some kind of adjustment ASAP so I could use steep envelopes. At current, the CC behavior is without any doubt better than in 1.8.0 but now I’m completely unable to predict the amount of sustained envelopes by XV without factoring in the steepness of the envelopes.