Continuous midi parameters "smoothed"

  • According to the MIDI documentation, continuous midi parameters "[w]ill be smoothed upon reception of multiple continuous values". This ensures smooth volume swells, for instance, without the need to send every intermediate value from 0 to 127 for CC#7. And indeed, I do notice this when programming automated effects changes via MIDI.


    However, sometimes I get a smooth transition where I actually want a more abrupt change. For instance, if I simply send a CC#7=0 message at a moment when the volume pedal is at maximum, I sometimes hear a noticeable fadeout instead of (relatively) sudden silence.


    I'm just wondering if there is a way to control this, and on what basis the Kemper decides whether or not to smooth out a parameter change (because as far as I can tell, it doesn't always happen). One guess is that the places where I noticed an unwanted smooth transition were very short moments of silence, where a CC#7=0 was followed shortly after (about 2s) by a CC#7=127. Perhaps the relative proximity of a second value of the same parameter triggers the Kemper's "multiple values smoothing" mechanism? Although -- come to think of it -- the Kemper of course doesn't know beforehand that the second value will follow... Can anyone shed a light on this?


    [By the way -- I am experimenting with programming these stops because in some circumstances (high gain, small stages) it's hard to keep feedback under control... :rolleyes: ]

  • You could test this pretty easily with CC7:
    -send a continuous signal into the KPA
    -Record the audio result of sending CC Values 0 to 127, 127 to 0, 0 to 64, 64 to 0, 64 to 127, 127, to 64.
    -Look at the waveforms in a DAW
    The ramp times will be easy to see if you zoom in far enough.


    (As an aside: It likely doesn't happen at all with the CC changes that are used as ON/OFF switches)

  • There is actually methods in the smoothing algorithm to determine wether it is a smooth movement or a step.
    After a second, when no message was received, the algorithm will create a step.
    However, the step will not be absolutely steep, to prevent a click.


    Have you measured how short the ramp is? Should be a few milliseconds only.

  • Thank you, @ckemper, for confirming that the decision between a smooth movement and a step is based on the duration between CC#7 messages; this is what I suspected. I also assumed that a "step" is in reality more like a very short fade to prevent a click.


    My question was prompted by the fact that sometimes the Kemper seems to decide to create an audible smooth movement (where I can actually hear a fade) rather than a "step" (which, at a few milliseconds, should still sound quite abrupt), even though there are no other CC#7 messages nearby. But I will experiment further as @paults suggested to try and understand the algorithm better and compare the ramp times for "smooth fades" and "steps" -- maybe what I'm hearing is a step after all! :)


    I have an additional question -- when you say that the algorithm makes a decision "after a second, when no message was received", does this mean that the stepwise volume change will occur with a one second delay? Or does the midi stream arrive in a large enough buffer so that the Kemper kan "look ahead"? (Sorry if this is common midi knowledge...)

  • Strange. I've done a couple of tests and I still don't really understand the smoothing algorithm.


    When I program this for CC#7:
    [Blocked Image: http://i.imgur.com/GolZ15q.png]


    ...the fadeout goes well, but the fadein after that is much too slow. I can hear it reaching maximum value around bar 36 instead of just before bar 35.4 (=beat 4). I've tried a lot of things -- in the screenshots, the curve has a lot of nodes, but I've also tried a steep step, with just one CC#7=127 message at the appropriate spot, and the result is always a slow fade that takes until the beginning of bar 36 to reach its maximum.


    I think the proximity of the fadeout just before the fadein is confusing the algorithm (they're about a second apart). If I move the fadein further to the right (making the silence in-between longer), the Kemper follows it exactly.


    Edit: Ok, I'm starting to understand Mr. @ckemper's remark better now ("after a second, when no message was received, the algorithm will create a step"): if I leave less than a second between the fadeout and the fadein, the fadein will be (severely) smoothed. If I leave more than a second, I get the more precise curve that I need.