After a lot of searching I managed to play a 22kHz 16-bit audio track stored to an SPI SDcard, from the MPC4725 DAC (I2C connected) connected to an Arduino MEGA 2560 R3, but it is too noisy and too loud...! I mean I can understand the volume variations, but not the song. I used a 10K pot to lower the current and then the sound wasn't to loud but I had a lot of noise and I couldn't understand a word from the song. Is there any solution to this? The code I use is this: https://github.com/deltabeard/MCP4725-WAV/blob/master/wavdac/wavdac.ino
i'm not really a software guy, but do you have that address for the DAC set correctly (0x60)? Also, it's not clear to me: what controls the speed at which the data is written to the DAC? It looks to me like there's a WHILE loop that's just going to write data to the DAC as fast as it can.
Digitized audio has become tricky because so many things need to be right. If one of several options is set incorrectly, then music sounds like noise.
A free program called Audacity is useful to play and record digitized sounds. It can help you check your data. It displays waveforms, imports many popular formats, and understands the various options:
* 22kHz or 44 kHz
* 8 bit or 16 bit
* mono or stereo
* big endian or little endian
Etc.