error read SD

sorry if the question seems stupid, I'm a new defector of mbed and I discover arduino.

I work on a samd51 project (feather M4 express) and this one must to make some music.

I would like use a MAX98357 but the lib " Audio - Adafruit forks" don't want play any sound with I2s interface.

(tone generator is ok but wav....)

So I try to read "all" PCM data from wav file and send it to i2s device... I work on my own library wav...

(if some have any code for samd51... I have find some code for STM32 but this one is too lazy and have not enough memory for my project)

When I read data from the SDcard, they are good for the first 512 byte block and after, they are corrupt...

My code :

#include <Arduino.h>
#include <SdFat.h>                // SD card & FAT filesystem library
#include <Adafruit_ZeroI2S.h>

#define SD_CS    4 // SD card chip select
#define TFT_CS   9 // TFT select pin
#define TFT_DC   6 // TFT data/command pin
#define TFT_RST  5 // Or set to -1 and connect TFT RST to Arduino reset pin


SdFat                SD;         // SD card filesystem
File myFile;

Adafruit_ZeroI2S i2s;

uint16_t nbrsTrack, bitBySample;
uint32_t freq, dataSize;

void setup()
{
  

  Serial.begin(115200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

 
  if (!SD.begin(SD_CS)) {
    Serial.println("initialization failed!");
    while (1);
  }
  Serial.println("initialization done.");

  myFile = SD.open("test1644.wav");
  
  if (myFile) {
    Serial.println("test1644.wav : ");

    myFile.seek(0x16);
    nbrsTrack = myFile.read();
    nbrsTrack += myFile.read()<<8;

    //myFile.seek(0x18);
    freq = myFile.read();
    freq += myFile.read()<<8;
    freq += myFile.read()<<16;
    freq += myFile.read()<<24;

    myFile.seek(0x22);
    bitBySample = myFile.read();
    bitBySample += myFile.read()<<8;

    myFile.seek(0x28);
    dataSize = myFile.read();
    dataSize += myFile.read()<<8;
    dataSize += myFile.read()<<16;
    dataSize += myFile.read()<<24;
    
    Serial.print("nombre de canaux : ");
    Serial.println(nbrsTrack);
    
    Serial.print("frequence d'échantillonnage : ");
    Serial.println(freq);

    Serial.print("encodage en : ");
    Serial.print(bitBySample);
    Serial.println("bits");

    Serial.print("taille des data : ");
    Serial.println(dataSize);

  } else {
    Serial.println("error opening file");
  }



  i2s.begin(I2S_16_BIT, 44100);
  i2s.enableTx();



  uint16_t dataSD;
  char tmp[8];
  uint32_t index = 32;

  sprintf(tmp, "%.10X : ", index);
  Serial.print(tmp);

  for(uint8_t i=0; i < 4 ; i++) {
    sprintf(tmp, "%.2X ", myFile.read());
    Serial.print(tmp);
  }

  Serial.println("");
  
  while(myFile && myFile.available()){

    index += 16;
    
    sprintf(tmp, "%.10X : ", index);
    Serial.print(tmp);

    for(uint8_t i=0; i < 16 ; i++) {
      sprintf(tmp, "%.2X ", myFile.read());
      Serial.print(tmp);
    }
    
    Serial.println("");

  }
}

void loop()
{

}

and my serial output :

initialization done.
golu1644.wav : 
nombre de canaux : 1
frequence d'échantillonnage : 44100
encodage en : 16bits
taille des data : 37287936
0000000020 : 00 00 01 00 
0000000030 : FE FF 02 00 FE FF 02 00 FE FF 02 00 FF FF FF FF 
0000000040 : 02 00 FD FF 03 00 FF FF 00 00 00 00 00 00 00 00 
0000000050 : 01 00 FF FF 01 00 FE FF 02 00 00 00 FF FF 02 00 
0000000060 : FD FF 02 00 00 00 FE FF 04 00 FB FF 05 00 FC FF 
0000000070 : 02 00 FF FF 01 00 FF FF 01 00 FF FF 01 00 00 00 
0000000080 : FF FF 01 00 FF FF 00 00 02 00 FF FF 00 00 00 00 
0000000090 : FE FF 04 00 FC FF 04 00 FC FF 03 00 FE FF 01 00 
00000000A0 : FF FF 01 00 00 00 FF FF 01 00 FF FF 01 00 00 00 
00000000B0 : FF FF 01 00 FF FF 02 00 FE FF 01 00 FF FF 00 00 
00000000C0 : 02 00 FF FF FF FF 02 00 FD FF 03 00 FF FF FE FF 
00000000D0 : 04 00 FC FF 03 00 FF FF FF FF 01 00 00 00 FF FF 
00000000E0 : 03 00 FD FF 01 00 FF FF 02 00 FE FF 03 00 FC FF 
00000000F0 : 02 00 00 00 00 00 00 00 00 00 FF FF 01 00 00 00 
0000000100 : 01 00 FD FF 03 00 FF FF FF FF 03 00 FB FF 06 00 
0000000110 : FB FF 04 00 FD FF 01 00 01 00 FF FF 01 00 FF FF 
0000000120 : 01 00 FE FF 04 00 FB FF 05 00 FB FF 04 00 FE FF 
0000000130 : 00 00 01 00 FE FF 02 00 FF FF 00 00 00 00 00 00 
0000000140 : 00 00 01 00 FE FF 02 00 FE FF 02 00 FF FF 01 00 
0000000150 : FF FF 00 00 01 00 FF FF 00 00 01 00 FE FF 03 00 
0000000160 : FD FF 02 00 FD FF 04 00 FC FF 04 00 FC FF 04 00 
0000000170 : FC FF 04 00 FD FF 01 00 01 00 FF FF 01 00 FF FF 
0000000180 : 01 00 FF FF 02 00 FF FF FF FF 02 00 FE FF 02 00 
0000000190 : FF FF 02 00 FD FF 03 00 FE FF 00 00 03 00 FC FF 
00000001A0 : 04 00 FC FF 03 00 FE FF 02 00 FE FF 02 00 FE FF 
00000001B0 : 02 00 FE FF 03 00 FC FF 05 00 FA FF 05 00 FC FF 
00000001C0 : 03 00 FE FF 00 00 00 00 FF FF 03 00 FD FF 02 00 
00000001D0 : FD FF 02 00 FF FF 01 00 FF FF 00 00 FF FF 01 00 
00000001E0 : FF FF 01 00 00 00 FF FF 02 00 FE FF 02 00 FF FF 
00000001F0 : 01 00 FE FF 04 00 FC FF 03 00 FE FF 01 00 01 00 
0000000200 : FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ...
0000000210 : FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ...
0000000220 : FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ...
0000000230 : FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ...
0000000240 : FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ...
...

and the wav file :
...
00000001C0 : 03 00 FE FF 00 00 00 00 FF FF 03 00 FD FF 02 00
00000001D0 : FD FF 02 00 FF FF 01 00 FF FF 00 00 FF FF 01 00
00000001E0 : FF FF 01 00 00 00 FF FF 02 00 FE FF 02 00 FF FF
00000001F0 : 01 00 FE FF 04 00 FC FF 03 00 FE FF 01 00 01 00
0000000200 : 00 00 01 00 FE FF 03 00 FE FF 02 00 FE FF 02 00
0000000210 : FE FF 03 00 FD FF 03 00 FF FF 02 00 FF FF 02 00
0000000220 : FF FF 01 00 FF FF FF FF 02 00 FF FF 01 00 FF FF
...

does anyone have any explanation for this serial return?