VCOs (Voltage Controlled Oscillators) in analogue music synthesizers are notorious for drifting with temperature. What design solutions are there for an analogue audio VCO that keeps close (as in human hearing) to the frequency to which it's been tuned?
Use parts with lower temperature coefficients (NP0 or C0G for ceramic capacitors for examples). This is typically the most expensive option, but is simplest at a first-pass optimization.
Use a quality voltage regulator to supply the oscillator, one that is immune to temperature variability within the design's operating temperature range.
Minimize the dependency on variable components (capacitor, inductor, or resister) for tuning. Pad the variable components with fixed components to minimal the variables component values. For example replace a 100k\$\Omega\$ potentiometer with a 47k resisters on the two legs of a 10k\$\Omega\$ potentiometer as potentiometer may have a temperature coefficient of 1000ppm, while the fixed metal film 1% resistors may have tempco of 200-500ppm.
Use parts with complementary temperature coefficients of components (or additional components with a temperature variability that is well characterized like a thermistor e.g. +10 ohms per degree increase) that cancel out a change in values when the temperature changes. Eg. Oscillator drift correction circuit (mainly in reference to RF oscillator drift, but the principles are consistent)
You could consider a low frequency crystal oscillator such as the 32.768 kHz commonly referred to as a watch crystal as it is typically used in Real-Time Clock (RTC) circuits, as well as low-power microcontrollers. Using it in a VXO with a small tuneability, (aka "pull") ~10% I believe and a frequency divider you can generate a very stable audio oscillator that is tuneable over a narrow range.
The other is to make the oscillator circuit's environment thermal stable using a) insulation to minimize and slow thermal change, and if necessary b) temperature stabilized heat / cooling such as an oven-controlled crystal oscillator, OCXO.
If you look at quartz oscillator modules or "cans", pay attention to their output type, most are designed for digital timekeeping / clock generation and only output a digital signal, though sine-wave or clipped sine-wave modules or XO are available.
In response to necessary stability, that is application dependent. If you want to be able to match the oscillators frequency over time (such as in a multiple track recording studio, where tracks are layered and each track is recorded separately) then stability is important because while absolute accuracy of human hearing is moderate (no better than 1% I would guess), relative frequency mismatch is easily detectable to a much smaller degree (again I would guess approx 0.1 - 0.01%).
Analog oscillators are going to drift. For your purposes, a crystal is exact enough. You can try to tweak a analog oscillator using something derived from a crystal as a reference. But if you have the crystal there already, you might as well use it to make the desired frequencies directly.
Even a low end DSP clocked from a crystal can synthesize audio sine waves. It can even digitally produce each of the sines internally, then add them to make a composite output signal. This can be various harmonics with their own gains and phase shifts, or even arbitrary frequencies. There is a reason you don't see analog synthesizers anymore.
I go into detail about how to generate sine waves inside a processor in this answer.
Just to chime in, I repaired analog synthesizers for about 10 years and am well acquainted with the drifting issue. Many musicians like the analog oscillator precisely because of its imperfections, and in my humble opinion this is not so much "snake oil" as it is a matter of taste and preference. Let us not forget that perfect waveforms do not necessarily make music more enjoyable.
If you can download a moog MicroMoog service manual (available free on internet), in section 2-8 there is a description of their oscillator which was (to me) impressively stable. The oscillator is so stable due to the clever circuit described in section 2-3-3, which acts as a current source.
Basically the circuit is designed to maintain a constant temperature on the transistor array IC which drives the oscillator. I thought this worked really well: the instrument turned on, warmed up (in less than a minute) and then remained stable after that, unlike many other analog synths.
Best of luck with your project. If you come up with a good design, please post it. Chris Rowland
The solution in use since the 1970s has been to use a pair of matched PNP transistors, to form an exponential voltage-to-current converter. The input base-emitter voltage is exponentially related to the collector current. By having the second transistor configured, so that its current is in the opposite direction to the first, most of the temperature dependence is cancelled out.
Any remaining temperature dependence is dealt with by using a thermistor in thermal contact with the matched transistor pair, in the feedback path of an op-amp voltage summer at their input.
The apparently simple Thomas Henry VCO-1 design puts this into effect.
I used to work with a device that would generate high quality / low distortion sine waves and at the same time had TCXO stability. The trick the designers used was a VCO, which was controlled by the output of a PLL. The PLL in turn was fed with the analog oscillator signal and with a digital clock from a microcontroller. That microcontroller that was able to make about any frequency by counting (and finally dividing by 2 to make it a square wave).
Use the (now hard to find) CEM3340 IC.
By the way, for some users the instability of an analogue VCO is not an issue. It gives extra interest to the possible sound creations - with it as one component. Traditional non-electronic musical instruments also change in tone with temperature (and humidity).
A typical crystal oscillator is good to +/- 50 pm. As Olin Lathrop said, this is good enough. For example 440 Hz concert A would be 440 +/ 0.022 Hz. I don't think most people could here that.
However if you wish to calibrate one standard way is with a calibration table. Since part of the drift is due to temperature you measure the frequency at various temperatures and store that in a PROM. Then you use a temperature sensor and that table to calculate what to set the VCO input to.