Forum index > Feature request

midiCC event smoothing, to de-click volume changes

Colin Muir Dorward
Can there be an option to smooth incoming midiCCs? perhaps a simple check box next to the modmatrix assignment?

For example, I want to dynamically control the volume of a single sine OP which provides the fundamental in a bass voice. So I set up a midiCC to control it's volume. But fast changes give me that irksome "vca click". Another solution would be for the EFM to wait till a zero crossing happens before changing the volume, but this seems rather complex?

Not sure if this is a tall order, or a must have, or if I'm just going about it wrong?
KODAMO
CC smoothing could be implemented, the EssenceFM already has an option to do that for aftertouch events. We need to check if doing that for every CC is possible for the CPU.
On the other hand doing changes at zero-crossing is totally impossible.

What source are you using to generate the CCs ? Maybe your source can be configured to send more CC, which would reduce clicks (at the cost of an increased MIDI bandwidth usage)
Colin Muir Dorward
Right now my sequencer can't easily smooth midiCC events. It does makes sense from an engineering perspective that this problem should be handled "upstream" from the synth. But since midi is only 7bit, doesn't it need to be interpolated and possibly smoothed at the synthesizer, anyways? On an analog synth, to get your CV, you'd have that midi feeding a DAC with some slew limit to smooth those steps. How does this work in a digital environment? I assume EFM is processing at higher bitrate than 7. Just curious about this.

Anyhow maybe my solution is simply to map volume to AT, rather than using arbitrary CC number. I didn't know about this feature, cool!
KODAMO
7 bit can be a limitation, but in most cases clicks are due to the controller sending too few messages (which is the same as coding the value on even fewer bits if your modulation is fast enough).
To keep things simple, the EssenceFM also handles modulation destinations with a limited resolution (usually the same as the resolution displayed when you're manually editing a voice: 0 to 127 for operator's volumes, 0 to 40 for operator's multipliers...)

But since midi is only 7bit, doesn't it need to be interpolated and possibly smoothed at the synthesizer, anyways?


Not always, because in some situations a MIDI controller or player will send a CC right before a note, expecting it to take effect immediately (to initialize panning, volume or any other parameter). Automatic smoothing could create annoying side effects, so if it's implemented there should be an option to disable it.
Colin Muir Dorward
EssenceFM also handles modulation destinations with a limited resolution (usually the same as the resolution displayed when you're manually editing a voice: 0 to 127 for operator's volumes, 0 to 40 for operator's multipliers...)

Thanks for the info!

There must be an acceptable smoothing threshold which delivers "instantaneous change" while offering some de-clicking. Something like 0-127 over 5ms? That would simplify a things from a UI perspective.

I hate to request features that add functionality, but a variable slew rate could also be pretty cool!

Reply