A lot of projects could use high-quality musical sounds generated without the use of a full-blown computer. Currently, there are two main options:
1) Generate sound by toggling the digital outputs on the Arduino
2) Use an external sound generator, say a hacked MP3 player
Each of these methods has a drawback: for the first, the Arduino is too slow to generate multiple simultaneous audio tones AND do anything else, eg. significant amounts of I/O or communication; for the second, you are limited to whatever sounds are already stored in the MP3 player, and it is costly.
I have developed a method, using simple voltage-controlled oscillators and the AD5206 digital pot, that allows generation of very nice-sounding musical tones from an Arduino, using a very small number of digital outputs, and requiring very little CPU overhead.
Here is a sample: Random scales and tempo, with envelope shaping
Here is a photo showing the Arduino Mini connected to the AD5206 and the 47C14. Another photo showing the USB adapter and the stereo output jack more clearly is here. (Disregard the other, smaller breadboard layout, it has nothing to do with the Arduino audio project.)

Only two oscillators are connected, but they are working for both frequency and amplitude modulation. There is a 4093 NAND on the board, but I am currently not using it. At first I thought I could use the the additional gate for modulation, but it turns out that amplitude modulation with the AD5206 is fast enough that this is not necessary. I will replace the 4093 with another AD5206 to allow for 6 fully controllable voices.
In a nutshell, I am using a 74C14 Schmitt Trigger hex inverter to build a number of standard resistor/capacitor oscillators. For each of these, the variable resistance value (ie variable voltage) is provided by one of the digital pots on the AD5206. In addition, the output from each oscillator is fed back to another pot on the AD5206, which is used to modulate amplitude. This allows applying modulation envelopes to the generated tones.
The resulting sounds are high quality, and can be calibrated to match musical note tunings.
This method has tremendous advantages:
1) Low cost: total cost of the AD5206 + 74C14 + various capacitors is less than $5, which allows for 3 voices. Adding another AD5206 for $4 allows for 3 more voices.
2) Low processing requirement and timing independence: the AD5206 will maintain the state of its digital pots without needing refresh - this allows the logic on the Arduino to run at music rates (eg. beats, on the order 10s of the times per second) instead of at audio frequencey rates (on the order of 1000s of times per second). Furthermore, unlike software generated sound on the Arduino, sound pitch will be completely unaffected by the speed of the main loop on the Arduino.
3) Efficient use of Arduino I/O: you can implement 3 voices with only 3 digital output pins on the Arduino. By adding 1 more digital output (total of 4) you can control 6 voices. All the other digital and analog ports on the Arduino are free for other uses.
Next steps, in order:
Implement flexible envelope shaping, either by direct download of a lookup table, or by calculating on the Arduino based on ADSR parameters.
Implement possibility for frequency modulation envelopes.
Implement greater compatibility with MIDI standards, allowing MIDI note numbers to be played directly.
Implement microcontroller + digital pot + oscillator circuit on an etched circuit board, this would allow an extremely compact and self-contained audio solution.