ZL2PD Audio Signal Generator
I use signal generators of one sort or another all the time as I design and build circuits. They include a pair of simple oscillators; a transistor oscillator for testing crystals, and a CMOS square wave clock source, built on a scrap of PCB. I also have a homebrewed RF signal generator which covers up to about 50 MHz in a dozen ranges, and an audio signal generator.

This webpage describes the audio oscillator. For many years, I used a kit-built audio oscillator, a design from the now defunct Electronics Australia (EA) magazine. It used a couple of op-amps, and was stabilized with a thermistor. It worked, but it limitations. The output level would vary with frequency, and it was annoyingly microphonic. Knock it by accident, and it would make a "boinnngggg" sound over top of the wanted tone. The oscillator's frequency had a habit of drifting a little over time. The most critical limitation however was its power consumption.
This compact audio oscillator covers 300 Hz to 12 kHz with unbalanced and balanced sinewave outputs (Square wave outputs can also be produced) and draws just 3 mA from a 9V battery.
It seemed to gobble batteries at such a rate that, whenever I went to use it again, the bothersome thing would require a new battery before I could begin to use it. Along with the one or two seconds it took to start up, a product of its thermistor stabilization scheme, I became sufficiently annoyed with it one day to design and build a new CMOS-based version.

The oscillator described here is now more than a dozen years old. As far as I can recall, I think it's still using the original 9V battery I put in when I built it. It draws a miserly 3mA at 9V, but it is possible to power it with any voltage from 3V to as much as 15V, the limit of the CMOS chips. I use it perhaps once or twice a month, usually just for a few minutes, and then it goes back on the shelf. If nothing else, it's proved to be more battery efficient than the EA design, and as a result, it's always ready for use. Operating from a single 9V battery, this audio oscillator covers from 300 Hz to 12 kHz in a single range. If you want a higher or lower range, it's very easy to modify to add either an extra range or two, or change the range of the oscillator described here.
This unit only provides a sinusoidal output. I've not needed a square wave generator to the same extent, and the little CMOS oscillator I have built onto a scrap of PCB seems to be sufficient for my requirements (although it's as ugly as anything!) However, a square wave output is available on the PCB, at pins 10 and 15 of IC2, for those that want square waves too.

There are actually two sinewave outputs on this audio signal generator. The first is a standard unbalanced DC-isolated output with an impedance of about 100 ohms and an adjustable level up to at least 5 Vpp. This output is available on an RCA female connector and a BNC female connector on the front panel. These are the two most commonly used connectors around my bench, but you can obviously use any connectors you want if you want to build your own version of this unit.
The second output is a balanced 600 ohm output which is fed to a pair of banana plug terminal posts, again mounted on the front panel. The output level is similarly adjustable, and the open circuit isolated output reaches at least 9Vpp by virtue of a compact 150 ohm to 600 ohm transformer. I measured +10dBm into a 600 ohm load with a fresh battery. This output is used for feeding 600 ohm professional audio interfaces such as VHF and UHF transmitters which I encounter from time to time in my work.

The circuit is simplicity itself. A CMOS square wave oscillator  using three CMOS gates each wired as an inverter. VR1 allows the frequency to be adjusted over a 40:1 range. Selecting one of two timing capacitors allows two ranges to be selected. (The details for adding the second range with C2 is shown below) The square wave frequency is 16 times greater than the final sine wave.

This square wave is used to clock the 4015 CMOS 8 stage shift register. When power is first applied, the 4015 shift register's outputs all go low. This forces the fourth gate of IC1 to apply an initial high logic level to the input pin of the shift register stage. Once the power-up reset pulse generated by C5 and R10 ends, the 4015 is clocked by the output of the oscillator stage (IC1).

As the rising edge of each pulse of the square wave oscillator clocks the shift register, the level present on the data input pin (pin 7) is shifted sequentially to the next output pin. Eight pulses of the input clock will change all the outputs high.

However, when the last output goes high, this causes the input to the shift register to go low because of the inverter onto the input of the 4015. The next 8 pulses of the square wave oscillator will result in the 8 shift register stages going low with each new pulse.
By selecting the values of the output weighting resistors (R2 - R9), a variety of output waveforms can be produced. In this case, the resistors produce the desired sine wave output waveform. However, other outputs such as a triangle wave could be produced by changing the values of the resistors.

Because the 4015 is made up of two 4-stage shift registers, a synchronised square wave of the same frequency as the sine wave output is also available from the counter. This waveform appears at the output of the first 4-stage section. This may be used to synchronise other test equipment circuitry precisely with the main sine wave output.

The output sine wave is then buffered through two op-amp stages. The first stage has variable gain to allow the required output level to be set. It  is used for the unbalanced output. The second op-amp is set for unity-gain, and buffers the output for the balanced 600 ohm output port.

This latter stage is wired normally via the link on JP1 to feed the centre (150 ohm) tap of the output transformer. This provides a further 6 dB lift of output voltage swing, making it possible to achieve the desired +10 dBm output level. Without this arrangement, the maximum output would be insufficient for some high level balanced audio tests required on some communications systems. If a lower output level is required, link the output to the top of T1 using the other connection on JP1.

Resistor R15 is used to eliminate the crossover distortion in the op-amp.

The output waveform is not a perfect sine wave. A close inspection of the waveform with an oscilloscope will show the sinewave made up of a series of small steps, 16 per wave. This can be seen in the picture above which shows a typical output tone. However, it is adequate for the majority of audio applications. In theory, the third and fifth harmonics are about 50 dB below the output level, but I've never measured the output myself to prove or disprove this claim. My guess is it's more likely to be of the order of 20 to 30 dB. Still good enough for most work.

Since this output waveform is quite distinctive, when I'm using it as a signal source and I'm tracing my way through a circuit with an oscilloscope, I can readily see whether the signal I'm looking at is from my test generator or from some other source. So, it's a feature!

The output is level over the entire range of the oscillator, within 0.2 dB. The greatest variation comes from the transformer isolated balanced output, and the smaller the physical size of the output transformer, the greater will be the insertion loss at the lower frequencies. However, this is usually less than 2 dB even with the smallest types of 600 ohm transformers, and quite acceptable for most uses.

T1 is a miniature 600 ohm 1:1 audio transformer, similar in size to the little transformers you used to find in old transistor radios in the 1960s and 70s. Both primary and secondary on the transformers I used are centre tapped. If you cannot find a centre tapped transformer, use the 600 ohm primary and increase R16 to 600 ohms (You can use two 1200 ohm resistors in parallel)

The front panel was made using a laser printer, the paper covered with self-adhesive clear plastic. This is surprisingly hard-wearing and looks good for years.

I designed a PCB for this circuit, and you can download it by clicking on the appropriate button below, along with the circuit and the layout information. The 9V battery can be mounted on the PCB. I used a cable tie to hold the battery to the PCB. I mounted my oscillator board into a compact plastic box I found somewhere, which you can see in the pictures, and the result is a small lightweight audio oscillator that's simply a joy to use.

I hope you enjoy making and using it too.
This diagram shows the modifications required to add a second range to the audio generator. C2 can be mounted on the PCB, and the switch (SW2), a toggle switch, parallels C2 with C1. The value shown adds an further range of 50 Hz to 1 kHz.
Click here to see the circuit diagram
Click here to see the PCB
Click here to see the PCB Layout