74 lines
2.2 KiB
C++
74 lines
2.2 KiB
C++
#include <Audio.h>
|
|
#include <Wire.h>
|
|
#include <SPI.h>
|
|
#include <SD.h>
|
|
#include <SerialFlash.h>
|
|
|
|
AudioPlaySdWav playWav1;
|
|
AudioOutputUSB audioOutput; // must set Tools > USB Type to Audio
|
|
AudioOutputAnalog dac;
|
|
AudioConnection patchCord1(playWav1, 0, audioOutput, 0);
|
|
AudioConnection patchCord2(playWav1, 1, audioOutput, 1);
|
|
AudioConnection patchCord3(playWav1, 0, dac, 0);
|
|
|
|
// Use these with the Teensy Audio Shield
|
|
#define SDCARD_CS_PIN 10
|
|
#define SDCARD_MOSI_PIN 7
|
|
#define SDCARD_SCK_PIN 14
|
|
|
|
// Use these with the Teensy 3.5 & 3.6 SD card
|
|
//#define SDCARD_CS_PIN BUILTIN_SDCARD
|
|
//#define SDCARD_MOSI_PIN 11 // not actually used
|
|
//#define SDCARD_SCK_PIN 13 // not actually used
|
|
|
|
// Use these for the SD+Wiz820 or other adaptors
|
|
//#define SDCARD_CS_PIN 4
|
|
//#define SDCARD_MOSI_PIN 11
|
|
//#define SDCARD_SCK_PIN 13
|
|
|
|
void setup() {
|
|
Serial.begin(9600);
|
|
|
|
// Audio connections require memory to work. For more
|
|
// detailed information, see the MemoryAndCpuUsage example
|
|
AudioMemory(20);
|
|
|
|
SPI.setMOSI(SDCARD_MOSI_PIN);
|
|
SPI.setSCK(SDCARD_SCK_PIN);
|
|
if (!(SD.begin(SDCARD_CS_PIN))) {
|
|
// stop here, but print a message repetitively
|
|
while (1) {
|
|
Serial.println("Unable to access the SD card");
|
|
delay(500);
|
|
}
|
|
}
|
|
}
|
|
|
|
void playFile(const char *filename)
|
|
{
|
|
playWav1.play(filename);
|
|
// A brief delay for the library read WAV info
|
|
delay(5);
|
|
// Simply wait for the file to finish playing.
|
|
while (playWav1.isPlaying()) {
|
|
}
|
|
}
|
|
|
|
void loop() {
|
|
playFile("SDTEST1.WAV"); // filenames are always uppercase 8.3 format
|
|
delay(500);
|
|
playFile("SDTEST2.WAV");
|
|
delay(500);
|
|
playFile("SDTEST3.WAV");
|
|
delay(500);
|
|
playFile("SDTEST4.WAV");
|
|
delay(1500);
|
|
}
|
|
|
|
// A known problem occurs on Macintosh computers, where the Mac's driver
|
|
// does not seem to be able to adapt and transmit horribly distorted
|
|
// audio to Teensy after a matter of minutes. An imperfect workaround
|
|
// can be enabled by editing usb_audio.cpp. Find and uncomment
|
|
// "#define MACOSX_ADAPTIVE_LIMIT". More detailed info is available here:
|
|
// https://forum.pjrc.com/threads/34855-Distorted-audio-when-using-USB-input-on-Teensy-3-1?p=110392&viewfull=1#post110392
|