Dual VCO with auto tune and MIDI

Dual AS3340 VCOs with Auto tune and MIDI

Just a little spin off project from the polyphonic MIDI to CV with auto tune for all 16 VCOs. I thought this might be useful. Instead of a Teensy I’m using a Waveshare RP2040 (Pico) as the MIDI to CV converter and auto tune device. So it’s self contained and takes MIDI in for notes, pitch bend and CC messages. Auto tune is currently implemented as a CC message, but no reason why it can’t be a push button as well as spare pins are available. It will or can accept an LFO of 0-5v and again using CC messages it can control the depth to the VCOs or the filter CV out. Pitchbend depth and aftertouch depth are also controlled by CC messages.

I guess all CVs can be made available, CV1, CV2, filter CV and velocity, plus a gate and trigger, haven’t decided what to do with the 4 spare CV lines, maybe control the PW and PWM depth from an external LFO input etc.

Not finished yet but the MIDI to CV is working fine, the auto tune kicks in on request and sweeps the VCOs in turn in less than a minute.

10 Likes

Gotta admit this is next level sh;t to me :school:
I’m looking for “THE VCO” whatever that means , i just know it aint the one s i got :face_with_peeking_eye:
Are there any differences to the ear between the CEM3340 and AS3340?

Would you be so kind to share a schematic?

1 Like

Hi Jos, happy to do so but at the moment it’s still a WIP.

1 Like

Not really, they are virtually pin compatible and work the same. Although some people say you need to change some resistor values in some synths when swapping out for AS chips. I built a prophet 600 clone out of AS chips and it sounds perfect to me.

2 Likes

I’ll be the judge. Let me just PM you an address where you can send the synth for review and analysis.

3 Likes

The datasheets do recommend different values for the pulldown resistor on the pulse output, but I haven’t seen that it makes any real difference (comparing different resistors with AS3340, not comparing AS with CEM).

Sunday afternoon fun, struggling with getting a good pulse count on a Pico and an Uno R4, neither were too successful, switching between the Pico, then the R4 and back to the Pico due to SPI issues. Finally got the autotune working and reduced the scan time down from 15 minutes to 90 seconds for both oscillators. I have some sort of scaling issue on vco2 but the autotune is doing it’s best to pull it in. I can increase the range to make it pull harder of course. Will condense this down and produce schematics and code when complete, I want to add a v/Oct input so it can be used in a modular along with the FM input.

https://youtu.be/m0_pmmtLLXk?si=R_UITCk9ZPUHdOin

https://youtube.com/shorts/LkzqeAdBshw?si=O00D1BoHWXJecSbx

3 Likes

I’m wondering, is it noise? I have had issues when linking picos to op-amps where I’ve had to add additional decoupling caps. That could just be me.
Keep going!

I don’t think it’s noise, I have used waveshare zeros before with no issues, I have good decoupling and added large caps on each power rail. It was purely the amount of scan time causing me issues, I started with a library for the Pico and it needed 1s at 20hz to get a good reading, if you are taking multiple readings after each correction it adds up in time and using the same across 16 samples, 8 for each oscillator takes ages. So I introduced dynamic sample time based on frequency and that fixed things up tremendously.

I’ve got a few things to work out, it’s currently built from prophet 600 VCO designs which are based around a 15v supply and 1/2v per octave tuning, I need to fix that to +12v and 1v/octave so I need to understand how the input to the AS3340 voltage works. I’m certain just increasing the input resistor from 46k to 92k will solve the octave issue, but then there’s the reduction to a +/-12v supply to consider

1 Like

I’ve added littleFS to the build now so tunings are stored on the littleFS and recalled at reboot.

1 Like

Fixed up for +/-12v & 5v supply now

4 Likes

Now with portamento from 0-10 seconds

1 Like

I’ve decided to split this project into two branches,

First, the Pico based dual oscillator with auto tune and additional analogue controls for all functions. It will also have a volt/octave input and not generate a gate or trigger as these are not required. It will however have an FM/TM input and a PWM input.

Second, a Waveshare Zero version which responds to MIDI commands only to be used in a Polysynth design for the future, all unnecessary analogue controls will be removed.

Both repositories will still be available and the code maintained.

Whilst I’m thinking about things I just knocked up these two banks of 8x 10K pots to use in mux circuits. Plugs into a breadboard power at the top ground at the bottom and 8 pins for each pot saving me tons of time wiring up dodgy breadboard pots.

4 Likes

So the YD-rp2040 based standalone design is pretty much ready for prime time, I’ve been ironing out the bugs and adding features. I chose the YD over the Pico as it has 4 ADC inputs and Pico only had 3 available and the YD is generally cheaper.

The CV input now works over a 5 octave range which means it can be used in a modular with CV voltages, FM and PWM inputs are also available and depth etc is controlled by pots.

Octave switches +/0/- range for each VCO
Detune and interval for vco2.

Auto tune settings are stored so on power up it should be reasonably in tune as long as it was auto tuned before.

2 Likes

Its available now to view

2 Likes

Rebuild of my VCO project daughter card, this time with auto tune for each VCO, hopefully it works better than my last DCO/VCO attempt. First 4 VCO component placement to test the layout and wiring. I might have too many TL074 onboard, but I can always use them as buffers.

4 Likes

Completed 4 voices after finding a bug in the code which added the autotune correction twice to the CV voltage thus causing everything to be sharp, now I’ve found that bug and updated all my published code I managed to test and complete 4 voices.

4 Likes

8 voice board almost complete, I’m missing a SSOP adapter for the DAC in slot 7, slot 8 is occupied as I’m testing the sub oscillator circuit in slot 8, didn’t work with some CD4013BE chips I tried, it’s more successful with an old CD4013AE, but I only have one of those. Anyone got any of those nice 16 pin SSOP adaptors by SparkFun?

3 Likes