Skip to content

Commit cb6fa35

Browse files
authored
Merge pull request #465 from pschatzmann/nov-2022
Nov 2022
2 parents c6bac7b + bec41e7 commit cb6fa35

File tree

34 files changed

+476
-176
lines changed

34 files changed

+476
-176
lines changed

README.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,14 +153,14 @@ Dependent on the example you might need to install some of the following librari
153153
Get some inspiration [from projects that were using this library](https://github.com/pschatzmann/arduino-audio-tools/discussions/categories/show-and-tell) or share your projects with the community.
154154

155155

156-
### Documentation
156+
## Documentation
157157

158158
- Here is the generated [Class Documentation](https://pschatzmann.github.io/arduino-audio-tools/html/namespaceaudio__tools.html).
159159
- Please also check out the [Information in the Wiki](https://github.com/pschatzmann/arduino-audio-tools/wiki)
160160
- You also might find further information in [one of my Blogs](https://www.pschatzmann.ch/home/category/machine-sound/)
161161

162162

163-
### Installation in Arduino
163+
## Installation in Arduino
164164

165165
You can download the library as zip and call include Library -> zip library. Or you can git clone this project into the Arduino libraries folder e.g. with
166166

@@ -170,5 +170,12 @@ git clone pschatzmann/arduino-audio-tools.git
170170
```
171171

172172
I recommend to use git because you can easily update to the latest version just by executing the ```git pull``` command in the project folder.
173-
174173
If you want to use the library in PlatformIO, you can find a [detailed description in the Wiki](https://github.com/pschatzmann/arduino-audio-tools/wiki/Working-with-PlatformIO).
174+
175+
176+
## Sponsor Me
177+
178+
This software is totally free, but you can make me happy by rewarding me with a treat
179+
180+
- [Buy me a caffee](https://www.buymeacoffee.com/philschatzh)
181+
- [Paypal me](https://paypal.me/pschatzmann?country.x=CH&locale.x=en_US)

examples/build-examples-log.txt

Lines changed: 18 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
../examples/examples-basic-api/base-adc-a2dp -> rc=0
22
../examples/examples-basic-api/base-adc-serial -> rc=0
3-
../examples/examples-basic-api/base-file_raw-serial -> rc=1/0
3+
../examples/examples-basic-api/base-file_raw-serial -> rc=1
44
../examples/examples-basic-api/base-i2s-a2dp -> rc=0
5-
../examples/examples-player/player-callback-i2s -> rc=1/0
6-
../examples/examples-player/player-sdfat-a2dp -> rc=0
5+
../examples/examples-player/player-callback-i2s -> rc=1
6+
../examples/examples-player/player-littlefs-i2s -> rc=1
7+
../examples/examples-player/player-sd-i2s -> rc=1
8+
../examples/examples-player/player-sdfat-a2dp -> rc=1
79
../examples/examples-player/player-sdfat-analog -> rc=0
810
../examples/examples-player/player-sdfat-i2s -> rc=0
911
../examples/examples-player/player-url-i2s -> rc=0
@@ -12,42 +14,42 @@
1214
../examples/examples-webserver/streams-effect-webserver_wav -> rc=0
1315
../examples/examples-webserver/streams-flite-webserver_wav -> rc=0
1416
../examples/examples-webserver/streams-generator-webserver_wav -> rc=0
15-
../examples/examples-webserver/streams-generator-webserverex_wav -> rc=1/1
16-
../examples/examples-webserver/streams-generator-webserverex_wav1 -> rc=1/1
17+
../examples/examples-webserver/streams-generator-webserverex_wav -> rc=1
18+
../examples/examples-webserver/streams-generator-webserverex_wav1 -> rc=1
1719
../examples/examples-webserver/streams-i2s-webserver_wav -> rc=0
1820
../examples/examples-webserver/streams-sam-webserver_wav -> rc=0
1921
../examples/examples-webserver/streams-tts-webserver_wav -> rc=0
20-
../examples/examples-stream/streams-a2dp-serial -> rc=0
22+
../examples/examples-stream/streams-a2dp-serial -> rc=1
2123
../examples/examples-stream/streams-adc-i2s -> rc=0
2224
../examples/examples-stream/streams-adc-serial -> rc=0
2325
../examples/examples-stream/streams-adsr-i2s -> rc=0
24-
../examples/examples-stream/streams-generator-a2dp -> rc=0
26+
../examples/examples-stream/streams-generator-a2dp -> rc=1
2527
../examples/examples-stream/streams-generator-analog -> rc=0
2628
../examples/examples-stream/streams-generator-i2s -> rc=0
27-
../examples/examples-stream/streams-generator-pwm -> rc=0
29+
../examples/examples-stream/streams-generator-pwm -> rc=1
2830
../examples/examples-stream/streams-generator-serial -> rc=0
2931
../examples/examples-stream/streams-generator-spdif -> rc=0
3032
../examples/examples-stream/streams-generator_fromarray-analog -> rc=0
31-
../examples/examples-stream/streams-i2s-a2dp -> rc=0
33+
../examples/examples-stream/streams-i2s-a2dp -> rc=1
3234
../examples/examples-stream/streams-i2s-filter-i2s -> rc=0
3335
../examples/examples-stream/streams-i2s-i2s -> rc=0
3436
../examples/examples-stream/streams-i2s-i2s-2 -> rc=0
35-
../examples/examples-stream/streams-i2s-serial -> rc=1/1
37+
../examples/examples-stream/streams-i2s-serial -> rc=1
3638
../examples/examples-stream/streams-i2s-serial_16bit -> rc=0
3739
../examples/examples-stream/streams-i2s-tf -> rc=0
3840
../examples/examples-stream/streams-memory_mp3-analog -> rc=0
3941
../examples/examples-stream/streams-memory_mp3-metadata -> rc=0
40-
../examples/examples-stream/streams-memory_mp3-pwm -> rc=0
42+
../examples/examples-stream/streams-memory_mp3-pwm -> rc=1
4143
../examples/examples-stream/streams-memory_mp3_short-i2s -> rc=0
4244
../examples/examples-stream/streams-memory_mp3_short-i2s-2 -> rc=0
4345
../examples/examples-stream/streams-memory_raw-i2s -> rc=0
44-
../examples/examples-stream/streams-memory_wav-pwm -> rc=0
46+
../examples/examples-stream/streams-memory_wav-pwm -> rc=1
4547
../examples/examples-stream/streams-memory_wav-serial -> rc=0
4648
../examples/examples-stream/streams-mp34dt05-serial -> rc=1
4749
../examples/examples-stream/streams-sd_mp3-i2s -> rc=1
4850
../examples/examples-stream/streams-sdfat_mp3-metadata -> rc=0
4951
../examples/examples-stream/streams-tf-i2s -> rc=0
50-
../examples/examples-stream/streams-url-file -> rc=1/0
52+
../examples/examples-stream/streams-url-file -> rc=1
5153
../examples/examples-stream/streams-url_aac-i2s -> rc=0
5254
../examples/examples-stream/streams-url_flac-i2s -> rc=0
5355
../examples/examples-stream/streams-url_mp3-analog -> rc=0
@@ -59,72 +61,20 @@
5961
../examples/examples-stream/streams-url_raw-serial -> rc=0
6062
../examples/examples-stream/streams-url_vorbis_i2s -> rc=0
6163
../examples/examples-stream/streams-url_wav-i2s -> rc=0
64+
../examples/examples-audiokit/audiokit-effects-audiokit -> rc=0
6265
../examples/examples-audiokit/basic-a2dp-audiokit -> rc=0
6366
../examples/examples-audiokit/basic-a2dp-eq-audiokit -> rc=0
6467
../examples/examples-audiokit/basic-audiokit-a2dp -> rc=0
65-
../examples/examples-audiokit/player-sd-audiokit -> rc=1/0
68+
../examples/examples-audiokit/player-sd-audiokit -> rc=1
6669
../examples/examples-audiokit/player-sd_a2dp-audiokit -> rc=0
6770
../examples/examples-audiokit/player-sdfat-audiokit -> rc=0
6871
../examples/examples-audiokit/player-sdmmc-audiokit -> rc=0
6972
../examples/examples-audiokit/player-url_icy-audiokit -> rc=0
7073
../examples/examples-audiokit/streams-audiokit-audiokit -> rc=0
7174
../examples/examples-audiokit/streams-audiokit-fft -> rc=0
72-
../examples/examples-audiokit/streams-audiokit-fft-frequp -> rc=0
7375
../examples/examples-audiokit/streams-audiokit-filter-audiokit -> rc=0
7476
../examples/examples-audiokit/streams-audiokit-multioutput -> rc=0
7577
../examples/examples-audiokit/streams-audiokit-multioutput-server -> rc=0
7678
../examples/examples-audiokit/streams-audiokit-ram-audiokit -> rc=0
77-
../examples/examples-audiokit/streams-audiokit-sd-audiokit -> rc=1/0
79+
../examples/examples-audiokit/streams-audiokit-sd-audiokit -> rc=1
7880
../examples/examples-audiokit/streams-audiokit-serial -> rc=0
79-
../examples/examples-audiokit/streams-audiokit-tf -> rc=0
80-
../examples/examples-audiokit/streams-audiokit-webserver_aac -> rc=0
81-
../examples/examples-audiokit/streams-audiokit-webserver_mp3 -> rc=0
82-
../examples/examples-audiokit/streams-audiokit-webserver_wav -> rc=0
83-
../examples/examples-audiokit/streams-generator-audiokit -> rc=0
84-
../examples/examples-audiokit/streams-generator_fromarray-audiokit -> rc=0
85-
../examples/examples-audiokit/streams-generator_inputmixer-audiokit -> rc=0
86-
../examples/examples-audiokit/streams-generator_outputmixer-audiokit -> rc=0
87-
../examples/examples-audiokit/streams-generator_sinfromtable-audiokit -> rc=0
88-
../examples/examples-audiokit/streams-memory_mp3-audiokit -> rc=0
89-
../examples/examples-audiokit/streams-pins-audiokit -> rc=0
90-
../examples/examples-audiokit/streams-synth-a2dp -> rc=0
91-
../examples/examples-audiokit/streams-synth-audiokit -> rc=0
92-
../examples/examples-audiokit/streams-synthbasic1-audiokit -> rc=0
93-
../examples/examples-audiokit/streams-synthbasic2-audiokit -> rc=0
94-
../examples/examples-audiokit/streams-synthbasic3-audiokit -> rc=0
95-
../examples/examples-audiokit/streams-synthstk-audiokit -> rc=0
96-
../examples/examples-audiokit/streams-tf-audiokit -> rc=0
97-
../examples/examples-audiokit/streams-url_aac-audiokit -> rc=0
98-
../examples/examples-audiokit/streams-url_mp3-audiokit -> rc=0
99-
../examples/examples-maximilian/01-TestTone -> rc=0
100-
../examples/examples-maximilian/02-TwoTones -> rc=0
101-
../examples/examples-maximilian/03-AM1 -> rc=0
102-
../examples/examples-maximilian/04-AM2 -> rc=0
103-
../examples/examples-maximilian/05-FM1 -> rc=0
104-
../examples/examples-maximilian/06-FM2 -> rc=0
105-
../examples/examples-maximilian/07-Counting1 -> rc=0
106-
../examples/examples-maximilian/08-Counting2 -> rc=0
107-
../examples/examples-maximilian/08-Counting3 -> rc=0
108-
../examples/examples-maximilian/08-Counting4 -> rc=0
109-
../examples/examples-maximilian/09-Envelopes -> rc=0
110-
../examples/examples-maximilian/10-Filters -> rc=0
111-
../examples/examples-maximilian/11-Mixing -> rc=0
112-
../examples/examples-maximilian/12-SamplePlayer -> rc=0
113-
../examples/examples-maximilian/13-AdvancedFilters -> rc=0
114-
../examples/examples-maximilian/14-MonoSynth -> rc=0
115-
../examples/examples-maximilian/15-PolySynth -> rc=0
116-
../examples/examples-maximilian/16-Replicant -> rc=0
117-
../examples/examples-maximilian/17-Compressor -> rc=0
118-
../examples/examples-maximilian/18-DrumMachine -> rc=0
119-
../examples/examples-maximilian/19-Enveloping2 -> rc=0
120-
../examples/examples-maximilian/20-FFT -> rc=0
121-
../examples/examples-tts/streams-flite-audiokit -> rc=0
122-
../examples/examples-tts/streams-flite-i2s -> rc=0
123-
../examples/examples-tts/streams-sam-audiokit -> rc=0
124-
../examples/examples-tts/streams-sam-i2s -> rc=0
125-
../examples/examples-tts/streams-simple_tts-i2s -> rc=0
126-
../examples/examples-tts/streams-tts-i2s -> rc=0
127-
../examples/examples-faust/streams-faust_flute-i2s -> rc=0
128-
../examples/examples-faust/streams-faust_noise-i2s -> rc=0
129-
../examples/examples-faust/streams-generator-faust-i2s -> rc=0
130-
../examples/examples-faust/streams-i2s-faust_guitarix-i2s -> rc=0
Binary file not shown.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/**
2+
* @file player-littlefs-i2s.ino
3+
* @brief example using the LittleFS library
4+
*
5+
* @author Phil Schatzmann
6+
* @copyright GPLv3
7+
*/
8+
9+
#include "AudioTools.h"
10+
#include "AudioLibs/AudioSourceLittleFS.h"
11+
#include "AudioCodecs/CodecMP3Helix.h"
12+
13+
const char *startFilePath="/";
14+
const char* ext="mp3";
15+
AudioSourceLittleFS source(startFilePath, ext);
16+
I2SStream i2s;
17+
MP3DecoderHelix decoder;
18+
AudioPlayer player(source, i2s, decoder);
19+
20+
void printMetaData(MetaDataType type, const char* str, int len){
21+
Serial.print("==> ");
22+
Serial.print(toStr(type));
23+
Serial.print(": ");
24+
Serial.println(str);
25+
}
26+
27+
void setup() {
28+
Serial.begin(115200);
29+
AudioLogger::instance().begin(Serial, AudioLogger::Info);
30+
31+
// setup output
32+
auto cfg = i2s.defaultConfig(TX_MODE);
33+
i2s.begin(cfg);
34+
35+
// setup player
36+
//source.setFileFilter("*Bob Dylan*");
37+
player.setMetadataCallback(printMetaData);
38+
player.begin();
39+
}
40+
41+
void loop() {
42+
player.copy();
43+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/**
2+
* @file player-littlefs-i2s.ino
3+
* @brief example using the SD library
4+
*
5+
* @author Phil Schatzmann
6+
* @copyright GPLv3
7+
*/
8+
9+
#include "AudioTools.h"
10+
#include "AudioLibs/AudioSourceSD.h"
11+
#include "AudioCodecs/CodecMP3Helix.h"
12+
13+
const char *startFilePath="/";
14+
const char* ext="mp3";
15+
AudioSourceSD source(startFilePath, ext);
16+
I2SStream i2s;
17+
MP3DecoderHelix decoder;
18+
AudioPlayer player(source, i2s, decoder);
19+
20+
void printMetaData(MetaDataType type, const char* str, int len){
21+
Serial.print("==> ");
22+
Serial.print(toStr(type));
23+
Serial.print(": ");
24+
Serial.println(str);
25+
}
26+
27+
void setup() {
28+
Serial.begin(115200);
29+
AudioLogger::instance().begin(Serial, AudioLogger::Info);
30+
31+
// setup output
32+
auto cfg = i2s.defaultConfig(TX_MODE);
33+
i2s.begin(cfg);
34+
35+
// setup player
36+
//source.setFileFilter("*Bob Dylan*");
37+
player.setMetadataCallback(printMetaData);
38+
player.begin();
39+
}
40+
41+
void loop() {
42+
player.copy();
43+
}

examples/examples-player/player-sdfat-a2dp/player-sdfat-a2dp.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
const char *startFilePath="/";
1616
const char* ext="mp3";
1717
AudioSourceSDFAT source(startFilePath, ext);
18-
A2DPStream out = A2DPStream::instance(); // A2DP input - A2DPStream is a singleton!
18+
A2DPStream out;
1919
MP3DecoderHelix decoder;
2020
AudioPlayer player(source, out, decoder);
2121

examples/examples-stream/streams-a2dp-serial/streams-a2dp-serial.ino

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

1414

15-
A2DPStream in = A2DPStream::instance() ; // A2DP input - A2DPStream is a singleton!
15+
A2DPStream in;
1616
CsvStream<int16_t> out(Serial, 2); // ASCII stream as csv
1717
StreamCopy copier(out, in); // copy in to out
1818

examples/examples-stream/streams-generator-a2dp/streams-generator-a2dp.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ uint16_t sample_rate=44100;
1616
uint8_t channels = 2; // The stream will have 2 channels
1717
SineWaveGenerator<sound_t> sineWave(32000); // subclass of SoundGenerator with max amplitude of 32000
1818
GeneratedSoundStream<sound_t> in(sineWave); // Stream generated from sine wave
19-
A2DPStream out = A2DPStream::instance() ; // A2DP input - A2DPStream is a singleton!
19+
A2DPStream out; // A2DP output
2020
StreamCopy copier(out, in); // copy in to out
2121

2222
// Arduino Setup

examples/examples-stream/streams-i2s-a2dp/streams-i2s-a2dp.ino

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

1313
I2SStream i2sStream; // Access I2S as stream
14-
A2DPStream a2dpStream = A2DPStream::instance(); // access A2DP as stream
14+
A2DPStream a2dpStream; // access A2DP as stream
1515
VolumeStream volume(a2dpStream);
1616
StreamCopy copier(volume, i2sStream); // copy i2sStream to a2dpStream
1717
ConverterFillLeftAndRight<int16_t> filler(LeftIsEmpty); // fill both channels

examples/sandbox/player-audiokit_sdfat-a2dp/player-audiokit_sdfat-a2dp.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const char *startFilePath="/";
1717
const char* ext="mp3";
1818
SdSpiConfig sdcfg(PIN_AUDIO_KIT_SD_CARD_CS, DEDICATED_SPI, SD_SCK_MHZ(10) , &AUDIOKIT_SD_SPI);
1919
AudioSourceSDFAT source(startFilePath, ext, sdcfg);
20-
A2DPStream out = A2DPStream::instance(); // A2DP input - A2DPStream is a singleton!
20+
A2DPStream out; // A2DP input - A2DPStream is a singleton!
2121
MP3DecoderHelix decoder;
2222
AudioPlayer player(source, out, decoder);
2323

0 commit comments

Comments
 (0)