The Freescale SGTL5000 codec is the first chip I've put de novo into a circuit design, skipping breadboarding and relying completely on reading the datasheet and using the example schematics. I will have to master two new communication protocols/wiring/programming - I2C (for controlling the chip) and I2S (for sound) as well as analog connections for headphones, audio line-in and line-out. I'm nervous because it's a lot to get right on the first try, but excited because it is faster and less expensive to go direct from schematic to design without an intermediate breadboarding/evaluation board step.
In the last generation of the Tabata Timer I added an audio pass-through circuit so that someone could plug it into their existing stereo system and have the timer signals mixed into their music, and digital volume control using a MCP4013 digital potentiometer.
I made some mistakes . My active ground mixer circuit is single ended so it clips the negative side of the input signal, resulting in horrible distortion. Because I tried to split the timer mono output into two channels without using buffers, I'm getting leakage across channels. My headphone detection circuit triggered the NMI interrupt. But the digital pot works like a charm.
These problems are fixable. But I still worry about power, cost and performance. The low power op-amps I'm using in my mixer circuit are expensive (averaging near $4.00) and I'll need more of them to solve the leakage problem. I'm also not sure how they will do driving headphones - typical practice is to use big capacitors for headphone outputs and a proper headphone amplifier, and I don't know how my circuit will perform there. The discrete components also take up a lot of board real estate and also begin to add to the cost (e.g. the digital potentiometer is ~$0.40).
I get the sense this problem has been solved before....like, in every cellphone and MP3 player out there...and so I look online and find the world of inexpensive audio codec/mixer chips.