[sdiy] MIDI-CV convertor idea

Brian Willoughby brianw at audiobanshee.com
Sun Oct 25 20:45:06 CET 2020


On Oct 25, 2020, at 12:11 PM, Gordonjcp <gordonjcp at gjcp.net> wrote:
> On Sun, Oct 25, 2020 at 01:27:43PM +0000, Tom Wiltshire wrote:
>> Hi All,
>> 
>> I’d like a sanity check on something I’m working on, please.
>> 
>> I’m designing a polyphonic MIDI-CV convertor. There are various ways this could be done, but I chose to generate the Note CVs and the Pitchbend CV separately, and then add them together. This means that the Note CV only needs to be updated when a new note arrives for that voice, and the Pitchbend CV can be updated much more frequently and will affect all voices. Otherwise every time the pitchbend alters, *all* the voices need to be updated.
> 
> Doesn't that scheme kind of imply that you've got a separate DAC for each note, *and* ptichbend, and anything else?
> 
> It'd be simpler to use a single DAC and a multiplexer with a capacitor and buffer on the output, as per just about every analogue polysynth :-)

+1

Many single DAC chips, and all 24-bit DAC chips, involve hundreds of samples of delay between digital input and analog output, due to the digital filtering necessary in those designs. I assume you're not talking about these, Tom, since you mentioned writing a digital value and holding it - something that isn't possible with a 24-bit DAC (to my knowledge).

In contrast, the kinds of DAC chips that are appropriate for CV have less than one sample of delay between digital input and analog output. It's often necessary to have the S+H circuit to remove the glitches between samples. I think there might be some DAC chips with built-in S+H. Either way, there's no way to avoid the S+H so you're stuck updating the CV even if the Note doesn't change.


> Since you're updating the mux quickly the sample-and-holds formed by the mux, capacitor and buffer don't have time to droop and there's no noticeable delay in the output.
> 
> No-one's ever called the Juno 106 slow or laggy but it only updates at around 240Hz, so any note has a good 4-5ms "latency" just before the VCA starts to crank itself open.

Agreed. Instead of focusing on separating the Note CV from the Pitch Bend CV so that the Note can be "set and forget" - it's probably best to just design around frequent updates of the CV, regardless of whether the value is changing or not. Rather than 240 Hz, I have a 16-channel CV system updating all channels at 1000 Hz, so it's certainly possible to have much less than 4 to 5 ms of latency.

However, even though Note and Bend don't *need* to be separated, there are potentially some advantages. If you have limited resolution on the DAC, then scaling allows that resolution to be used to better advantage when the Note and Bend have different ranges.

As Mike pointed out, though, you can't fix the Bend scale at a constant value, so you'll need some sort of analog switching or other programmable gain to adjust the Bend range to match what the user wants in their setup.

It might be simpler to just add the Note and Bend in software and use a 16-bit DAC to maintain the necessary resolution across all Bend Ranges.

Brian





More information about the Synth-diy mailing list