/
streams-i2s-i2s.ino
41 lines (34 loc) · 978 Bytes
/
streams-i2s-i2s.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
* @file streams-i2s-i2s.ino
* @brief Copy audio from I2S to I2S - I2S uses 1 i2s port
* @author Phil Schatzmann
* @copyright GPLv3
*/
#include "AudioTools.h"
AudioInfo info(44100, 2, 16);
I2SStream i2s;
StreamCopy copier(i2s, i2s); // copies sound into i2s
// Arduino Setup
void setup(void) {
// Open Serial
Serial.begin(115200);
// change to Warning to improve the quality
AudioLogger::instance().begin(Serial, AudioLogger::Info);
// start I2S in
Serial.println("starting I2S...");
auto config = i2s.defaultConfig(RXTX_MODE);
config.copyFrom(info);
config.i2s_format = I2S_STD_FORMAT;
config.pin_ws = 14;
config.pin_bck = 15;
config.pin_data = 18;
config.pin_data_rx = 19;
//config.fixed_mclk = sample_rate * 256;
// config.pin_mck = 3; // must be 0,1 or 3 - only for ESP_IDF_VERSION_MAJOR >= 4
i2s.begin(config);
Serial.println("I2S started...");
}
// Arduino loop - copy sound to out
void loop() {
copier.copy();
}