[sdiy] Smoothing MIDI data

rsdio at audiobanshee.com rsdio at audiobanshee.com
Wed Feb 28 03:38:08 CET 2018

There are lots of options, depending upon your specifics.

At one extreme, the fastest that a classic MIDI interface can update a CC value would be 640 nanoseconds. Even with 14-bit data, 99.2% of the updates can occur on 640 ns intervals thanks to the specification allowing for the LSB to be updated alone, with the MSB only updated as necessary.

Based on that, I’d say your smoothing should have a time constant of at least 640 ns.

Of course, the challenge is that MIDI data updates can also occur at much slower update rates, depending upon the implementation of the source. You might need an adaptive smoothing algorithm to minimize latency while still avoiding zipper noise.

Another option is analog smoothing. Eµ Systems released a paper via the AES that describes a Voltage-Controlled Lag Circuit. This allows each individual CV output to have independent, linear smoothing. I think this ended up in an Oberheim patent, US Patent # 3,969,682.

Authors: Rossum, Dave; Wedge, Scott
Affiliation: Eµ Systems, Santa Clara, CA
AES Convention:57 (May 1977) Paper Number:1231 
Publication Date:May 1, 1977 

On Feb 27, 2018, at 8:56 AM, Bruno Afonso <bafonso at gmail.com> wrote:
> I've been developing a few MPE modules for VCVRack and I'm wondering what do people that develop firmware for hardware synths do when it comes to smoothing midi data, typically 7bit. I guess my question is a bit along the lines of how fast or slow do you move to the new mapped CV voltage. Are there good time constants that empirically work better?

More information about the Synth-diy mailing list