Problem while playing Wav files (SDcard & TLC7226 DAC)

Hi all,
I need to play .wav files from a SD Card. I chose to use 22050Hz 8bits mono files.

I connected a TLC7226 parallel DAC to my Arduino Duemilanove. The datasheet is here :
I use the first DAC (it’s name DACA in the datasheet), that’s why I connected A0 and A1 to ground. The D0-D7 pins go to the Arduino, as /WR one. Voltage reference is 5V.

A speaker is connected between OUTA and ground, through a 100 ohm resistor and a 10µF capacitor.

The DAC works well, I can hear a square wave for instance. I also read data from my SD card. The problem is when I read a byte from the file and I write it on the DAC, I can’t recognize the music. There’s just “cracking sounds”.

Here is my code, sorry for the French :

#include <SD.h>

  Connexion SD Card :
   ** MOSI (Violet) - pin 11
   ** MISO (Violet) - pin 12
   ** CLK (Gris) - pin 13
   ** SS (Blanc) - pin 4	 

File fichier;
byte octet;
int i;

int pin_D[8] = {A0, A1, A2, A3, A4, A5, 2, 3}; // Here is connected my DAC
int pin_Enable = 7;

void Ecrire_DAC(byte val) // Write a byte to the DAC
    int i;
    for(i = 0; i < 8; i++) // I know that way to write the byte is slow. It's just for debug.
        digitalWrite(pin_D[i], bitRead(val, i));
    digitalWrite(pin_Enable, LOW);
    digitalWrite(pin_Enable, HIGH);
    //Serial.print("Ecriture de ");
    //Serial.println(val, HEX);

void setup()
    int i;
    // Configuration du port série
    // Configuration du DAC
    pinMode(pin_Enable, OUTPUT);
    digitalWrite(pin_Enable, HIGH);
    for(i = 0; i < 8; i++)
        pinMode(pin_D[i], OUTPUT);
    pinMode(10, OUTPUT);
        Serial.println("Initialisation de la carte SD reussie.");
        Serial.println("Echec de l'initialisation de la carte SD.");
    fichier ="22khz8b.wav");
        Serial.println("Ouverture du fichier reussie.");
        Serial.println("Echec de l'ouverture du fichier.");
    }; // make sure the pointer comes over the data

void loop()
    octet =;

Even if the speed of the music will be very approximative, because I don’t wait precisely 45µs between each byte, I thought I can hear something.

Can someone help ?