CV Pan: mono -> stereo

Hi all!

I’ve been wanting to make a mono to stereo module with CV controlled panning. Had a look around on a few different threads and came up with this circuit. Does anyone have any thoughts? I’m very new to designing my own circuits, so any advice you have would be greatly appreciated!

3 Likes

This looks good!
Do you want us to explain it?

1 Like

Looks pretty straightforward; I haven’t checked the component values in detail, but here’s a few things that caught my eye:

  • The LM13700 outputs are connected to +12V.
  • The volume potentiometer is pretty low; consider using an A100k instead, to get a higher input impedance.
  • Is the 10× input gain intentional? What signals do you plan to feed into this thing?
    • (the ideal OTA input is 30-100 mV and here you start by multiplying by 10, only to divide by 40 in the next stage)
  • You’re using polarized symbols for the small capacitors (47p, 100n). Not sure you can even find polarized capacitors that small :grinning: but pretty sure that’s not what you meant to use here.
  • Do you need the 22u NP output capacitors? You filter out the DC on the way in (C1) and there’s nothing in the signal path that adds it back (they won’t hurt, though, and may help with CV bleedthru).
  • Don’t leave the inputs of the unused amplifiers hanging; see here for the TL074, and for the LM13700 buffers you can just connect the inputs (pins 7, 10) to ground to keep the darlingtons turned off.
  • Add decoupling capacitors for all IC supply rails (100n ceramic to GND near the supply pins).

EDIT: A few more observations:

  • Add 1k resistors between the − inputs on the LM13700 and ground (same as you already have on the + inputs). This makes things more symmetrical and avoids some input offset issues
    • (if you check the datasheet, they often use a potentiometer between the inputs, with the wiper to ground, to make the balance adjustable, but pretty sure that’s overkill here).
  • The 15k bias resistors are a bit on the high side; the datasheet recommends 1 mA bias and there’s a diode drop on the way to ground, so the ideal value would be (12−0.7)/1mA = 11.3k. Consider replacing the 15k with 12k (E12) or 11k (E24).
  • Unless you plan to primarily use this for square waves (the input and output caps kind of implies you don’t :smiley:), consider leaving out the 47p capacitors from all opamps except possibly the output ones, or at least leave them out when you build the first version. You can add them back if you notice more ringing than you’re happy with.
4 Likes

Oh I did not see that!
Consider using the Electrical Rule Check of Kicad, it will check for these kinds of errors:
image

2 Likes

I was wondering whether instead of the 2 op-amps U1B and U1C you could use a double potentiometer with the voltages reversed (so one will be positive when the other is negative and v.v. or both will be 0)?

Furthermore are U3B and U3A necessary ( are U2C and U2A not enough as a buffer )? But perhaps if you leave them out the OTA’s then need an output resistor to GND as a current sink (I’m not that familiar with OTAs) ?

1 Like

This is amazing!!! Thanks so much

Here’s v2 with all your feedback

3 Likes

hmmm I don’t think that would work, the double potentiometer would just bring the values between +12 and 0, and mirror around +6V, rather than between +12V and -12V mirrored around 0V.

The output op amps are not necessarily needed night now, but if I were to add more inputs to make a larger mixer, those op amps function as a summing mixer.

1 Like

The output buffers are needed. I cannot remember how the LM13700 output works. I think this circuit is right though.

If the LM13700 drives a current output, then the circuit is correct and the buffer will convert the current to a voltage across the 1K. The input impedance of the buffer is really low which is what you want for a current to voltage converter. It also inverts and puts the output in the same phase as the input.

3 Likes

I’ve been considering building something along those lines as well. I haven’t looked through your schematic yet but I’d advise taking a look at the Music From Outer Space auto panner module, the schematic for it probably has a wealth of valuable information.

2 Likes

The unused TL074 is labelled LM13700, which confused me for a moment :slight_smile: The designator and the pinout is correct, though.

Final feedback:

  • You didn’t comment on the expected input and output levels – it still feels like you have too much input gain, and not enough output gain.
  • I found another reference that recommended aiming for a 250 uA bias current, which would mean something like 47k instead of 11k or 15k. You may want to experiment here.
    • (but if you really want to minimize distortion, you need a fancier machinery anyway, so an other option is to skip that resistor and go with whatever extra “character” you get from the slightly higher distortion)

And yeah, trying to implement an output driver by running the OTA current output into ground via a resistor in parallel with an unknown external impedance doesn’t strike me as a great idea, for a bunch of reasons. I guess you could use the darlington buffers, but an inverting current-to-voltage stage is a good choice here.

the schematic for it probably has a wealth of valuable information

Except for the +12V glitch, I’d say @ConnorJD’s first iteration was more sophisticated than that one :grinning:

4 Likes

ahhh I don’t know why but the multi unit op amps hav been relabelling themselves…

Re the gain, I was a bit confused about that on the circuit I found on Muffwiggler I was basing this on… I wasn’t sure if it was something weird happing with the LM13700s that I didn’t understand.

Any suggested values for the gain resistors? I’d like the input vs output to be pretty equal, maybe a bit of gain overall would be good which can be brought down with the RV2 volume pot.

1 Like

A double potentiometer would be one that has 2 potentiometers the first of which is connected to +12V and - 12 Volt and its wiper would be used to set the volume of one opamp. The other part of the potentiometer would be connected between -12V and + 12 Volt and its wiper would be used to set the volume of the second opamp. The axis of the potentiometers are connected, so you always control both of them at the same time. If the voltage on one wiper goes up then voltage on the other will go down. The voltage of the wipers are always opposite to one another unless they both are at zero volt.

1 Like

Yeah, this is why I keep asking you about what signal levels you plan to use it for :slight_smile: – your input and output stages can handle a decent range, maybe even 20 Vpp, but the LM13700 in the middle is rather picky; you want to stay below 100 mVpp to keep clipping/distortion under control (less if you’re not using the biasing diodes).

So with your circuit you have 10× in the input stage followed by a 1:40 divider, so calculating backwards you can handle 100 mVpp×40/10 = 400 mVpp (−15 dBu) at max volume which is below even consumer line-in levels (typically −10 dBu or higher). Was this designed for use with electric guitars, perhaps?

On the other an A taper potentiometer has maybe 10% resistance in the middle, so you can handle 4 Vpp (+5 dBu) with the volume control in the middle position. That’s consumer line-in levels with a bit of headroom, or (quiet) synth signals, so maybe it’s fine. Depends on how you plan to use it.

1 Like

Ah okay right, yeah that’s not ideal. I’d be using this for synths, as a little utility module in my eurorack setup. Also I’ve been building on this as a mod for the Triple Splashback (check out that discussion here: 2399 triple splashback delay )

Oh that makes total sense! Sorry, I complete misunderstood where in the circuit you meant

1 Like

Yeah, if that’s the case I’d tweak the input stage a bit, and also the output stage (make the 470k smaller and the 1k output resistor larger).

Ignoring the input stage for a bit, here’s the VCA core with the OTA and the I-to-V converter:

EDIT: The CV in this drawing is relative to the Iabc input potential, which is two diode drops above the negative supply, not 0 V, so with a 12 V supply the CV in the simplified circuit above is shifted by 10.6 V. The CV input circuitry needs to compensate for this in some way, see e.g. here.

R1 and R2 divide the signal from the input stage (note that there are two R2s, both resistors should have the same value), R3 converts the shifted CV to a current Iabc that controls the gain, and R4 converts the 13700’s output current to a voltage. Putting all the equations together and simplifying somewhat, you get:

Vout = Vin × CV × 19.2 × R2 × R4 / (R1 × R3 + R2 × R3)

or for a given Iabc:

Vout = Vin × Iabc × 19.2 × R2 × R4 / (R1 + R2)

To increase the output level for a given Vin and CV, you can increase R2 or R4, or decrease R1 or R3.

(There are some additional constraints here; the input level (Vin × R2 / (R1 + R2)) needs to stay under 100 mVpp and the control current (CV / R3) needs to stay well below 2 mA, and (less likely) if you make R4 too large the output stage will clip).

Putting in the values from your current design, the VCA gain is

CV × 19.2 × 1000 × 1000/(39000 × 47000 + 1000 × 47000) = CV × 0.01

so with a 10× input stage, you need a 10 V CV to get 1:1 at max volume (assuming my math is correct, that is :slight_smile:).

You could go with a 1× input stage (two 100k resistors); that’ll handle 4 Vpp at max volume (Kosmos spec says audio is 10 Vpp, occasionally 20 Vpp, but you can use the volume control to deal with that), and then increase the output resistors to at least 10k, maybe a bit more depending on what CV levels you plan to use.

2 Likes

Where does the 19.2 come from?

The “transconductance” of a 13700 amplifier is approximately Iabc/(2×Vt) where Iabc is CV/R3 in this example, and Vt is the thermal voltage, usually given as 26 mV at room temperature. 1/(2×0.026) = 19.2.

1 Like

You probably want to connect your inputs and outputs to the tips rather than the sleeves of the jacks.

C1 should not be polarized.

1 Like

Oops! Wow rookie mistake, thanks for pointing that out!

2 Likes