Lecture audio sur GIGA

Bonjour

j'utilise l'arduino GIGA R1 , je souhaite lire un fichier depuis une clé usb.
le programme fonctionne très bien avec le dac0 ou le dac1, mais lorsque je souhaite diffuser en stéréo, c'est a dire, utiliser le DAC0 et le DAC 1, en même temps, le fichier est lu avec une vitesse X2 (mesuré au chrono) .

voici mes paramètres :

AdvancedDAC dac0(A12);
AdvancedDAC dac1(A13);

dans le loop :

dac_output_sq(dac0);
dac_output_sq(dac1);

void dac_output_sq(AdvancedDAC &dac_out) {
if (dac_out.available() ) {
/* Read data from file. */
uint16_t sample_data[256] = { 0 };
fread(sample_data, sample_size, 256, file);

/* Get a free buffer for writing. */
SampleBuffer buf = dac_out.dequeue();
//dac0.dequeue() = dac1.dequeue();


/* Write data to buffer. */
for (size_t i = 0; i < buf.size(); i++) {
  /* Scale down to 12 bit. */
  uint16_t const dac_val = ((static_cast<unsigned int>(sample_data[i]) + 32768) >> 4) & 0x0fff;
  buf[i] = dac_val;
}

/* Write the buffer to DAC. */
//dac0.write(buf);

dac_out.write(buf)

je suppose qu'étant donné l'initialisation de deux dac , la conversion se fait deux fois plus vite ? mais alors comment regler la vitesse ?

merci pour vitre aide

Bonjour

As-tu consulté cette doc qui peut être répond à ta question ?
https://docs.arduino.cc/tutorials/giga-r1-wifi/giga-audio/

Pour info : pour la sortie de flux audio stereo l'I2S des ESP32 donne de bons résultats.(web radio, fichiers sur carte SD, fichiers en mémoire Flash......)
L'I2S des Giga n'est sans doute pas en reste, c'est fait pour.

bonjour

merci pour votre retour, oui j'ai consulté la doc et pour la conversion fichier vers analogique utilise qu un seul DAC .

sauf si j'ai raté quelque chose ?

mon fichier audio , en mono, sur la clé USB est encodé en

16 bits
debit binaire : 7004
taux échantillonage : 44100 Khz

je suis preneur d'explications ou d'idées.

merci

Initialisation des DAC?
Le code fourni au dessus est incomplet :worried:
(les 'bouts de code' sont en général peu appréciés sur ce forum)

je ne connais pas du tout la carte GIGA , n'ai pas consulté sa documentation.

Si j'en crois cet exemple trouvé , vite fait, sur la toile un taux d'échantillonnage peut être paramètré dans DACx.begin() https://baltic-lab.com/2023/07/arduino-giga-r1-wifi-audio-loopback-example/

merci pour le lien,

même punition, seul UN DAC est utilisé .

le programme fonctionne très bien en avec un dac

mais des que le second est utilisé , vitesse = x2

Ton code est très peu lisible, il y a une balise qui permet un affichage optimun.
Pour cela tout est indiqué dans le fil de discution "les bonnes pratiques"

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.