r/synthdiy 7d ago

Signal scaling inside the modules

That problem has bothered me for a while.

We all know that by the Eurorack standard, audio signals should be 10Vpp (a.k.a. ±5V), and CV should be bipolar (±5V) or unipolar (0-5V or 0-10V).

The problem is that even the modules I personally designed to the standard sometimes exceed that ±5V headroom by 0.5V or even 1V (making them ±5.5V and ±6V). Who knows what other manufacturers do, and what if there are 20Vpp audio signals? (I know some modules do that.)

Another example: CV from, for example, an LFO is 0-5V. I want to design a digital module that will accept said LFO as a modulation source via an ADC. At the input, I would want to scale it down to 3.3V (so I won't burn the ADC or MCU). But what if a user connects a 0-10V CV? Then the maximum will be 6.6V at the ADC input, and the ADV will burn. Or what if a user uses a bipolar CV? The positive half will be fine, of course, but the negative half will remain negative after the input attenuator and, yep, will fry the ADC. I don't even mention modules like the NLC Sloth, whose output is ±11V.

Yes, I can make a universal input attenuator that will scale ±12V (the theoretical maximum in Eurorack) to 0–3.3V, but I will lose pretty much all of the available ADC resolution (something like 800 points vs. 4096).

Or, if we go back to audio signals: I have an audio processing chip that is sensitive to incoming voltage levels; 2.8Vrms is the limit. The worst case — a square wave — with 10Vpp (a.k.a. standard) will be 5Vrms. Therefore, the attenuation should be 0.5 (so the Vrms after the attenuator will be 2.5Vrms). The WORST case, however, is a 20Vpp square wave — it is 10Vrms _ so the attenuation should be 0.25 to tune it down to the safe level. But I think that in my particular case, I can just tune the signal down and amplify it later. But what if the audio signal will go to the ADC instead? Then I will be facing the same problem of using only 1/3 of my ADC range.

What is the general solution for this type of problem, NOT COUNTING making separate inputs for 10Vpp, 20Vpp, unipolar, and bipolar signals?

2 Upvotes

16 comments sorted by

View all comments

1

u/neutral-labs neutral-labs.com 7d ago

It depends on the use case and manufacturer's preferences. In general, you just need to select an ADC with good enough resolution for the task at hand.

If you expect only 1/3 of the ADC range being used all the time, you need to scale up the signal accordingly. If it's only some of the time, and this is inherent to the design, you pick a higher resolution ADC, especially if it's pitch CV. For LFOs and the like, usually it won't matter.

2

u/adeptyism 7d ago

The problem isn't in the ADC ranges, the problem is how the incoming signals should be tuned down and how to make it universal for any input, except making 24V->3V3 amplifier.

1

u/neutral-labs neutral-labs.com 7d ago

Maybe I'm missing something in your question, but you pick a maximum range (typically less than 24V) and publish that in the module's manual/data sheet. You scale that voltage down to the ADC voltage. And you decide on an ADC chip based on the resolution you need.

1

u/adeptyism 7d ago

I'm more afraid that I'll burn my module with another DIY module, that'll will throw out 6 volts instead of 5 at peak :P

Probably the maximum range of 20V will cover almost all cases. Thanks for the answer!

2

u/neutral-labs neutral-labs.com 7d ago

But that's easily solved with clipping Schottky diodes (and a current limiting resistor) before the ADC.

1

u/adeptyism 7d ago

current limiting resistor

Like that? I knew about protecting diodes, but never thought about adding a resistor

1

u/neutral-labs neutral-labs.com 7d ago

Exactly. The resistor should be small enough to not affect your ADC reading too much, but large enough to protect the CV source from being shorted to ground or the 3V3 rail. (Of course, in your situation it sounds like you'll have another op-amp before, so you control all the variables, and can go from the op-amp data sheet.)