Firstly thanks for those who have helped with suggestions on some of the problems I’ve had getting to this point.
The below link is to the falstad circuitjs schematic for the triangle core vco I am designing. So far I have physically built just the basic core of the unit (no exp input or waveshaping yet) as I am limited on both time and workspace, however it seems to be working well so far.
I wanted to create a unit that had most of the features I need, so this is a bit of a kitchen-sink-included design for now. I’m sure there are other things I could add but this feels like a good amount to stop at.
Included features:
Triangle, Saw, Pulse, Sine, Mix outputs
Mix output clamp (distortion) switch
Exponential and Linear FM
Sync (input direction following)
A screenshot of the circuit in action (with sync input running):
Not sure if the temperature compensation will work well - there are so many variations out there that work with so many different circuit topologies, so I’m not sure if the combination I’ve gone for will function correctly or not. Hopefully someone here might be more experienced and can let me know!
For the most part I tried to keep the important parts as separate on the schematic as I could, though I can think of a few things to tidy it further. So if anyone wants to make something using any part of it you shouldn’t feel the need to copy the whole thing.
Curious how the zener diode clamp option for the mix output will sound for real. I used the audio out simulation and it seemed to behave as expected, but I’d like to hear the real thing before I decide if it is worth keeping in the circuit or not.
Note that due to some limitations in circuitjs there is no way to turn a potentiometer completely one way of the other, so there is some “bleed” from the FM and PWM test signals coming through.
Let me know if anything stands out as being problematic! As I’ve been building the physical circuit to test I’ve already found a few bugs needing tweaking so I’m sure there are others!
Looks super interesting - I’m going to have to take a deeper look when I have some more free time, that’s for sure.
One thing on the V/Oct trim. The way I did it, and have seen it done, is to put the trimming on the output of the inverting summer amp that has the thermal resistor in the feedback path which I think will buffer the CV inputs. I’m not sure but I think you may get different trimming interactions depending on what’s plugged in to your CV jacks with your current config.
Also check out http://www.openmusiclabs.com/files/expotemp.pdf - section IV. T HERMISTOR COMPENSATION
That shows a PTC in feedback. If you want to use an NTC - check out @jkb’s post with some references here;
The hardest is definitely to get an accurate tracking over several octaves. As mentioned above I have good results with NTCs but it can be done in many different ways. Also matched transistor for the current sink is a thing. I used BC847BS for that, that is two NPN transistors in a SMD package.
Yeah - I used PMP4201Y’s on my saw core osc - matched NPNs in a teeny SMD package. There are PNP versions as well. And yes, still not 100% happy with the tracking over several octaves…
High frequency trim shouldn’t be needed on triangle core oscillators as I understand it.
It’s to compensate for the non-zero discharge time of the integrator’s cap in the saw core - which makes up a higher portion of the overall period as the frequency rises. Hence extra current injected through D1/R9/R11.
I think that whole shamozzle is one reason people might want a tri-core rather than saw.
Originally I had the V/Oct trim as the feedback resistor for the first op-amp, but since one of the circuits I saw used the NTC thermistor in that place I decided to try this “simpler” way. Of course you are right though - this is more prone to issues on the input impedance so I should swap it back (or just move it to after the summing amp as you suggest.
The HF trim is to the right of the exponential converter. It is a different design from usual (I can’t find the page that had the original suggestion to try this) and I’m not sure if it will work well or at all. I can’t remember what issue I had with the more common setup for it, but since it is next to impossible to see what effect it will have on this simulator I thought that will be something to experiment with on the board as I get to it. Happy for more experienced people to give suggestions though!
As for zooming, I believe the zoom stays in place, but you can pan with a middle mouse button. I don’t think it works that well with touch input though.
Actually, I’ll paste a better exported image of the circuit here which will hopefully be better for you to look around if you don’t need the simulation:
My guess is they’d work, but from the description it sounds like they’re basically four separate and unmatched discrete transistors mounted in a DIP. Ideally (for most accurate exponential conversion and best temperature stability) what you’d want is matched transistors fabricated on the same die, so they’d have both the same characteristics and the same temperature since the die puts them in thermal contact. The PMP4201Y mentioned above is matched, but I think they’re on separate dies. The BC847BS appears to be neither matched nor on the same die. The SSM2212 which Ray Wilson specified for his VCO is matched and I think on the same die. It’s SMD and around $7 each though. [Well, you can get a NOS DIP version from SynthCube, but at a significantly more extortionate price.] For best temperature stability if you’re using a chip with separate dies, the smaller the package the better so SMD should perform better than THT. I’ve done little surface mount soldering but I built an MFOS VCO with an SSM2212 and soldering it was pretty straightforward, though a bit nerve racking. Only six pins and not as minuscule as some devices. Anyway, I succeeded — twice, actually, since I first soldered another to a breakout board for breadboarding (and as practice!)
The breakout board isn’t a bad idea actually. SMD certainly opens up many options, that’s for sure!
Would still like something more simple though. If I go down the path of a couple of SMD parts then I’d probably look into refactoring a lot more of it. I’d like a more DIY feel for a first one though.
Would be great if there were some more straightforward examples of exponential converters out there that are Good Enough™ for, say, up to five octaves. Then it could be tweaked for the specific voltage input range a particular VCO core wants. I’m probably asking a lot though! haha
Made some changes according to suggestions - moved the V/Oct trimmer to the other side of the input summing amp (changing it to a lower 100 ohm value to match what I’ve seen on others’ schematics) and changed the HF trim to more match “standard” ones. Not sure how well it will work as I will need to test it in the real world first, but hopefully these changes make sense
Okay, I ported this across to kicad to start figuring out a layout. Haven’t annotated yet (beyond a couple of manually annotated components) but hopefully this version will be clearer for anyone looking.
I wanted to use subsheets to keep things clean but last time I did that with splittable components (the TL074 in this case) I had dramas keeping the parts together properly.
Nice effort, the way you broke down the blocks on the schematic makes it easier to see what’s going on.
I’ll have to take a closer look when I’ve got a few more minutes, but first thing I can say is double check the way you have your pots wired, e.g. the mixed wave gain might not behave the way you expect, I think as you turn the knob clockwise it’s going to get quieter. Mind you, half of my pots end up back to front too, so take this advice with a grain of salt.
I just quickly transferred this across from the circuitjs version, which behaves strangely for pots, so I wouldn’t be surprised. So far I’ve only physically built the core on a breadboard and was updating the schematic as I was finding issues, but I’d rather find simple issues ahead of time where possible so I appreciate any input!
I think you are right by the way. Pin three should be the high side for most pots from memory. Didn’t even think to look at that. I’ll fix that when I get back on it tomorrow.
Found another issue: The +/-12V connections should be moved to the other side of the fets and the power connector nets should be separate (so there is only power available through the fets and not bypassing them).
Working on updating the schematic as well as doing basic PCB layout so I’ll update the schematic here when I get that sorted. In the meantime, here is a screenshot of how the power part should look:
Quick update: found an issue with the schematic in the exponential converter: there should be a 1k resistor between Q2 and U1C, and another between the output and inverting input of U1C. Had them on the circuitjs version but missed them transferring to kicad.