Audio.begin()

Descripción

Inicializa la biblioteca de Audio especificando la frecuencia de muestreo de destino y el tamaño de la memoria intermedia de audio.

Sintaxis

Audio.begin(rate, size);

Parámetros

rate (int) : la frecuencia de muestreo del archivo de sonido. Si es estéreo, el doble de la tasa (por ejemplo, 44100Khz estereo = 88200).
size (int) : el tamaño de la memoria intermedia de audio en milisegundos.

Retornos

Ninguno

Ejemplo

/*

 Demuestra el usao de la biblioteca de Audio para el Arduino Due

 Hardware necesitado :
 *Arduino shield con una tarjeta SD en CS 4 (el escudo Ethernet funcionará)
 *circuito amplificador de audio con el altavoz conectado a DAC0

 Original por Massimo Banzi September 20, 2012
 Modificado por Scott Fitzgerald Octubre 19, 2012

*/


#include <SD.h>
#include <SPI.h>
#include <Audio.h>

void setup()
{
  // configura la comunicación serie a 9600 baud
  Serial.begin(9600);

  // Configura la tarjeta SD
  Serial.print("Inicializando la tarjeta SD...");
  if (!SD.begin(4)) {
    Serial.println(" fallo!");
    return;
  }
  Serial.println(" terminado.");
  // tranferencia SPI de alta velocidad
  SPI.setClockDivider(4);

  // Rango de muestreo 44100Khz estereo => 88200
  // 100 mSec de pre buffer
  Audio.begin(88200, 100);
}

void loop()
{
  int count=0;

  // abra un archivo de sonido de la tarjeta SD
  File myFile = SD.open("test.wav");
  if (!myFile) {
    // Si el archivo no se abre, imprimir un error y detener
    Serial.println("error abriendo el archivo .wav");
    while (true);
  }

  const int S=1024; // Número de muestras a leer en un bloque
  short buffer[S];

  Serial.print("Reproduciendo");
  // mientras el archivo no este completado
  while (myFile.available()) {
    // leer el archivo en el buffer
    myFile.read(buffer, sizeof(buffer));

    // Prepara las muestras
    int volume = 1024;
    Audio.prepare(buffer, S, volume);
    // guarda las muestras
    Audio.write(buffer, S);

    // Cada 100 bloques imprimir '.'
    count++;
    if (count == 100) {
      Serial.print(".");
      count = 0;
    }
  }
  myFile.close();

  Serial.println("Fin de archivo. Gracias por escuchar!");
  while (true) ;
}
 


  

No hay comentarios:

Publicar un comentario