Skip to content

Commit a6ff22f

Browse files
committed
concurrency audio-test
1 parent 5674a5e commit a6ff22f

File tree

2 files changed

+51
-1
lines changed

2 files changed

+51
-1
lines changed

examples/tests/concurrency/BufferRTOS/BufferRTOS.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#include "AudioTools.h"
1212
#include "AudioLibs/Concurrency.h"
1313

14-
BufferRTOS<int16_t> buffer(512, 10);
14+
BufferRTOS<int16_t> buffer(512 * 10);
1515

1616
Task writeTask("write", 3000, 10, 0);
1717

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
2+
#include "AudioTools.h"
3+
#include "AudioLibs/AudioBoardStream.h"
4+
#include "AudioLibs/Concurrency.h"
5+
6+
AudioInfo info(44100, 2, 16);
7+
// source and sink
8+
SineWaveGenerator<int16_t> sineWave(32000);
9+
GeneratedSoundStream<int16_t> sound(sineWave);
10+
AudioBoardStream out(AudioKitEs8388V1);
11+
// queue
12+
// SynchronizedNBuffer<uint8_t> buffer(1024, 10);
13+
BufferRTOS<uint8_t> buffer(1024 * 10);
14+
QueueStream<uint8_t> queue(buffer);
15+
// copy
16+
StreamCopy copierSource(queue, sound);
17+
StreamCopy copierSink(out, queue);
18+
// tasks
19+
Task writeTask("write", 3000, 10, 0);
20+
Task readTask("read", 3000, 10, 1);
21+
22+
void setup() {
23+
Serial.begin(115200);
24+
AudioLogger::instance().begin(Serial, AudioLogger::Warning);
25+
// start Queue
26+
queue.begin();
27+
28+
// start I2S
29+
Serial.println("starting I2S...");
30+
auto config = out.defaultConfig(TX_MODE);
31+
config.copyFrom(info);
32+
out.begin(config);
33+
34+
// Setup sine wave
35+
sineWave.begin(info, N_B4);
36+
Serial.println("started...");
37+
38+
writeTask.begin([]() {
39+
copierSource.copy();
40+
});
41+
42+
readTask.begin([]() {
43+
copierSink.copy();
44+
});
45+
46+
Serial.println("started...");
47+
48+
}
49+
50+
void loop() { delay(1000); }

0 commit comments

Comments
 (0)