Here is another choice, with very low parts count because it uses a PIC;
http://romanblack.com/onesec/SineDDS.htm
It is crystal locked, so the frequencies are very stable, and the frequencies are in exact decimal Hz steps, like 10Hz, 20Hz, 1000Hz etc. (Total range 5Hz to 20kHz).
The new firmware (see page bottom) now lets you select sine/square/triangle/sawtooth.
http://romanblack.com/onesec/SineDDS.htm
It is crystal locked, so the frequencies are very stable, and the frequencies are in exact decimal Hz steps, like 10Hz, 20Hz, 1000Hz etc. (Total range 5Hz to 20kHz).
The new firmware (see page bottom) now lets you select sine/square/triangle/sawtooth.