/** * ESP32 Soundboard * * Hendriks Projekt * * https://dev.xd0.de/hendrik/soundboard */ #include "Arduino.h" #include "keyboard.h" #include "sdcard.h" #include "sound.h" #define VERSION "0.0" #define LED_PIN 21 Keyboard keyboard; SDCard sdcard; Sound sound; uint16_t buffer[2048]; void setup() { // initialize LED digital pin as an output. pinMode(LED_PIN, OUTPUT); Serial.begin(115200); Serial.println("-------------------------------------"); Serial.print("Soundboard v."); Serial.println(VERSION); Serial.println("https://dev.xd0.de/hendrik/soundboard"); Serial.println("-------------------------------------"); keyboard.init(); sdcard.mount(); sound.init(); sdcard.open("/sabaton.wav"); int num_bytes_i = 0; int num_bytes_o = 0; while (sdcard.available()) { num_bytes_i += sdcard.read(buffer, 2048); num_bytes_o += sound.render_sample_block(buffer, buffer, 2048); Serial.print("."); } sdcard.close(); Serial.println(""); Serial.print(num_bytes_i,DEC); Serial.println(" bytes read from file"); Serial.print(num_bytes_o,DEC); Serial.println(" bytes written to i2s"); delay(1000); } void loop() { bool touched = false; for(int i=0; i<=9; i++) { if (keyboard.getTouchDetected(i) == true) { touched = true; } } if (touched == true) { // turn the LED on (HIGH is the voltage level) digitalWrite(LED_PIN, HIGH); sound.play(); } else { // turn the LED off by making the voltage LOW digitalWrite(LED_PIN, LOW); sound.stop(); } // wait for a second delay(50); }