Olá cristian.
Quando estive tentando algo parecido com o que você precisa, me deparei com o seguinte problema.
A medida que a quantidade de arquivos ia crescendo dentro do cartão SD, este utilizando tanto o sitema fat32 como o fat16 começava a dar problema de sincronismo, pois fazia com que fosse necessario mais tempo para atualizar a lista de arquivos.
Não sei qual biblioteca você está usando, quando eu tentei usei a do CCS e foi com ele que tive este problema. Acho que implementando um buffer circular daria para resolver, mais não testei.
Solução. Gravei o que queria em setores específicos do cartão, e quando preciso leio direto sem usar as funções fat.
O camarada deste site tem uma ideia interessante para reprodução de uma wave a 16bits usando 2 pinos PWM, não testei por falta de tempo, mais acho que funciona. Se puder testa e dá um retorno.
http://www.k9spud.com/traxmod/pwmdac.php
Espero que ajude.
Ivan Braga
"Mesmo o objeto mais inanimado tem movimento suficiente para ficar na sua frente e provocar um acidente."
"Even the most inanimate object has enough movement to stand in your way and cause an accident."