|
- // Freeverb - High quality reverb effect
- //
- //
- // The SD card may connect to different pins, depending on the
- // hardware you are using. Uncomment or configure the SD card
- // pins to match your hardware.
- //
- // Data files to put on your SD card can be downloaded here:
- // http://www.pjrc.com/teensy/td_libs_AudioDataFiles.html
- //
- // This example code is in the public domain.
-
- #include <Audio.h>
- #include <Wire.h>
- #include <SPI.h>
- #include <SD.h>
- #include <SerialFlash.h>
-
- // GUItool: begin automatically generated code
- AudioPlaySdWav playSdWav1; //xy=163,135
- AudioMixer4 mixer1; //xy=332,167
- AudioEffectFreeverb freeverb1; //xy=497,105
- AudioMixer4 mixer2; //xy=650,190
- AudioOutputI2S i2s1; //xy=815,198
- AudioConnection patchCord1(playSdWav1, 0, mixer1, 0);
- AudioConnection patchCord2(playSdWav1, 1, mixer1, 1);
- AudioConnection patchCord3(mixer1, freeverb1);
- AudioConnection patchCord4(mixer1, 0, mixer2, 1);
- AudioConnection patchCord5(freeverb1, 0, mixer2, 0);
- AudioConnection patchCord6(mixer2, 0, i2s1, 0);
- AudioConnection patchCord7(mixer2, 0, i2s1, 1);
- AudioControlSGTL5000 sgtl5000_1; //xy=236,248
- // GUItool: end automatically generated code
-
-
- // 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(10);
-
- // Comment these out if not using the audio adaptor board.
- // This may wait forever if the SDA & SCL pins lack
- // pullup resistors
- sgtl5000_1.enable();
- sgtl5000_1.volume(0.5);
-
- 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);
- }
- }
- mixer1.gain(0, 0.5);
- mixer1.gain(1, 0.5);
- mixer2.gain(0, 0.9); // hear 90% "wet"
- mixer2.gain(1, 0.1); // and 10% "dry"
- }
-
- void playFile(const char *filename)
- {
- Serial.print("Playing file: ");
- Serial.println(filename);
-
- // Start playing the file. This sketch continues to
- // run while the file plays.
- playSdWav1.play(filename);
-
- // A brief delay for the library read WAV info
- delay(5);
-
- elapsedMillis msec;
-
- // Simply wait for the file to finish playing.
- while (playSdWav1.isPlaying()) {
-
- // while the music plays, adjust parameters and print info
- if (msec > 250) {
- msec = 0;
- float knob_A1 = 0.9;
- float knob_A2 = 0.5;
- float knob_A3 = 0.5;
-
- // Uncomment these lines to adjust parameters with analog inputs
- //knob_A1 = (float)analogRead(A1) / 1023.0;
- //knob_A2 = (float)analogRead(A2) / 1023.0;
- //knob_A3 = (float)analogRead(A3) / 1023.0;
-
- mixer2.gain(0, knob_A1);
- mixer2.gain(1, 1.0 - knob_A1);
- freeverb1.roomsize(knob_A2);
- freeverb1.damping(knob_A3);
-
- Serial.print("Reverb: mix=");
- Serial.print(knob_A1 * 100.0);
- Serial.print("%, roomsize=");
- Serial.print(knob_A2 * 100.0);
- Serial.print("%, damping=");
- Serial.print(knob_A3 * 100.0);
- Serial.print("%, CPU Usage=");
- Serial.print(freeverb1.processorUsage());
- Serial.println("%");
- }
- }
- }
-
-
- 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);
- }
|