audiokit example migration

This commit is contained in:
pschatzmann 2024-02-09 14:37:16 +01:00
parent 56bfb3e0ae
commit 07f0755609
145 changed files with 364 additions and 358 deletions

View File

@ -1,4 +1,6 @@
../examples/examples-basic-api/base-adc-a2dp -> rc=0
../examples/examples-basic-api/base-adc-average-mono-serial -> rc=0
../examples/examples-basic-api/base-adc-measure -> rc=0
../examples/examples-basic-api/base-adc-serial -> rc=0
../examples/examples-basic-api/base-file_raw-serial -> rc=0
../examples/examples-basic-api/base-generator-a2dp -> rc=0
@ -21,7 +23,7 @@
../examples/examples-webserver/streams-generator-webserver_aac -> rc=0
../examples/examples-webserver/streams-generator-webserverex_wav -> rc=0
../examples/examples-webserver/streams-generator-webserverex_wav1 -> rc=0
../examples/examples-webserver/streams-generator-webserver_mp3 -> rc=1/0
../examples/examples-webserver/streams-generator-webserver_mp3 -> rc=1
../examples/examples-webserver/streams-generator-webserver_ogg -> rc=0
../examples/examples-webserver/streams-generator-webserver_wav -> rc=0
../examples/examples-webserver/streams-i2s-webserver_wav -> rc=0
@ -36,6 +38,7 @@
../examples/examples-stream/streams-generator-formatconverter-i2s -> rc=0
../examples/examples-stream/streams-generator_fromarray-analog -> rc=0
../examples/examples-stream/streams-generator-i2s -> rc=0
../examples/examples-stream/streams-generator-merge-pwm -> rc=0
../examples/examples-stream/streams-generator-pwm -> rc=0
../examples/examples-stream/streams-generator-serial -> rc=0
../examples/examples-stream/streams-generator-spdif -> rc=0
@ -70,19 +73,20 @@
../examples/examples-stream/streams-url_mp3_mad-i2s -> rc=0
../examples/examples-stream/streams-url_mp3-metadata -> rc=0
../examples/examples-stream/streams-url_mp3-metadata2 -> rc=0
../examples/examples-stream/streams-url_mts-hex -> rc=0
../examples/examples-stream/streams-url_raw-i2s -> rc=0
../examples/examples-stream/streams-url_raw-serial -> rc=0
../examples/examples-stream/streams-url_vorbis_i2s -> rc=0
../examples/examples-stream/streams-url_wav-i2s -> rc=1
../examples/examples-stream/streams-url_vorbis_i2s -> rc=1
../examples/examples-audiokit/basic-a2dp-audiokit -> rc=0
../examples/examples-audiokit/basic-a2dp-eq-audiokit -> rc=0
../examples/examples-audiokit/basic-audiokit-a2dp -> rc=0
../examples/examples-audiokit/player-sd_a2dp-audiokit -> rc=0
../examples/examples-audiokit/player-sd-audiokit -> rc=0
../examples/examples-audiokit/player-sdfat-audiokit -> rc=0
../examples/examples-audiokit/player-sdfat-audiokit -> rc=1
../examples/examples-audiokit/player-sdmmc-audiokit -> rc=0
../examples/examples-audiokit/player-url_icy-audiokit -> rc=0
../examples/examples-audiokit/README.md -> rc=1
../examples/examples-audiokit/stream-hls-audiokit -> rc=0
../examples/examples-audiokit/streams-a2dp-audiokit -> rc=0
../examples/examples-audiokit/streams-audiokit-audiokit -> rc=0
../examples/examples-audiokit/streams-audiokit-effects-audiokit -> rc=0
@ -109,6 +113,7 @@
../examples/examples-audiokit/streams-memory_pcm-mixer-audiokit -> rc=0
../examples/examples-audiokit/streams-pins-audiokit -> rc=0
../examples/examples-audiokit/streams-sd-audiokit -> rc=0
../examples/examples-audiokit/streams-sdmmc_wav-audiokit -> rc=0
../examples/examples-audiokit/streams-synth-a2dp -> rc=0
../examples/examples-audiokit/streams-synth-audiokit -> rc=0
../examples/examples-audiokit/streams-synthbasic1-audiokit -> rc=0
@ -141,19 +146,24 @@
../examples/examples-maximilian/19-Enveloping2 -> rc=0
../examples/examples-maximilian/20-FFT -> rc=0
../examples/examples-maximilian/README.md -> rc=1
../examples/examples-tts/streams-azure_tts-i2s -> rc=1
../examples/examples-tts/streams-azure_tts-i2s -> rc=0
../examples/examples-tts/streams-espeak-audiokit -> rc=0
../examples/examples-tts/streams-espeak-i2s -> rc=0
../examples/examples-tts/streams-flite-audiokit -> rc=0
../examples/examples-tts/streams-flite-i2s -> rc=0
../examples/examples-tts/streams-google-audiokit -> rc=0
../examples/examples-tts/streams-sam-audiokit -> rc=0
../examples/examples-tts/streams-sam-i2s -> rc=0
../examples/examples-tts/streams-simple_tts-a2dp -> rc=0
../examples/examples-tts/streams-simple_tts-i2s -> rc=0
../examples/examples-tts/streams-tts-i2s -> rc=0
../examples/examples-tts/streams-url_wav-i2s -> rc=0
../examples/examples-faust/streams-faust_flute-i2s -> rc=0
../examples/examples-faust/streams-faust_noise-i2s -> rc=0
../examples/examples-faust/streams-generator-faust-i2s -> rc=0
../examples/examples-faust/streams-i2s-faust_copy-i2s -> rc=1
../examples/examples-faust/streams-i2s-faust_guitarix-i2s -> rc=0
../examples/examples-faust/streams-i2s-faust_pitchshift-i2s -> rc=0
../examples/examples-communication/esp-now/codec/communication-codec-espnow-receive -> rc=0
../examples/examples-communication/esp-now/codec/communication-codec-espnow-receive_measure -> rc=0
../examples/examples-communication/esp-now/codec/communication-codec-espnow-send -> rc=0
@ -169,9 +179,10 @@
../examples/examples-communication/rtsp/communication-audiokit-rtsp -> rc=0
../examples/examples-communication/rtsp/communication-codec-rtsp -> rc=0
../examples/examples-communication/rtsp/communication-generator-rtsp -> rc=0
../examples/examples-communication/rtsp/communication-rtsp-audiokit -> rc=1
../examples/examples-communication/rtsp/communication-rtsp-i2s -> rc=0
../examples/tests/test-ads1015 -> rc=0
../examples/tests/test-bitvector -> rc=0
../examples/tests/test-filter -> rc=0
../examples/tests/test-list -> rc=0
../examples/tests/test-memory-helix -> rc=0
../examples/tests/test-mulit-compilation-units -> rc=0
@ -179,6 +190,7 @@
../examples/tests/test-player -> rc=0
../examples/tests/test-resample-in -> rc=0
../examples/tests/test-resample-out -> rc=0
../examples/tests/test-vector -> rc=0
../examples/tests/24bits/24bits-write -> rc=0
../examples/tests/codecs/test-codec-adpcm -> rc=0
../examples/tests/codecs/test-codec-adpcm-xq -> rc=0
@ -227,6 +239,7 @@
../examples/tests/performance/mp3-SynchronizedNBuffer -> rc=0
../examples/tests/performance/mp3-SynchronizedRingBuffer -> rc=0
../examples/tests/performance/sine -> rc=0
../examples/tests/performance/throttle -> rc=0
../examples/tests/performance/wifi -> rc=0
../examples/tests/pitch-shift/pitch-shift -> rc=0
../examples/tests/pitch-shift/pitch-shift-180 -> rc=0

View File

@ -4,7 +4,7 @@ I found some cheap [AI Thinker ESP32 Audio Kit V2.2](https://docs.ai-thinker.com
<img src="https://pschatzmann.github.io/Resources/img/audio-toolkit.png" alt="Audio Kit" />
I am using the data callback of the A2DP library to feed the AudioKitStream
I am using the data callback of the A2DP library to feed the AudioBoardStream
You dont need to bother about any wires because everything is on one nice board. Just just need to install the dependencies:
@ -14,4 +14,4 @@ You need to install the following libraries:
- https://github.com/pschatzmann/arduino-audio-tools
- https://github.com/pschatzmann/ESP32-A2DP
- https://github.com/pschatzmann/arduino-audiokit
- https://github.com/pschatzmann/arduino-audio-driver

View File

@ -7,14 +7,12 @@
*/
#include "AudioTools.h"
//#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioA2DP.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioA2DP.h" // install https://github.com/pschatzmann/ESP32-A2DP
#include "AudioLibs/AudioBoardStream.h" // install https://github.com/pschatzmann/arduino-audio-driver
BluetoothA2DPSink a2dp_sink;
//AudioKitStream kit;
I2SCodecStream kit(AudioKitEs8388V1);
AudioBoardStream kit(AudioKitEs8388V1);
// Write data to AudioKit in callback
void read_data_stream(const uint8_t *data, uint32_t length) {

View File

@ -4,7 +4,7 @@ I found some cheap [AI Thinker ESP32 Audio Kit V2.2](https://docs.ai-thinker.com
<img src="https://pschatzmann.github.io/Resources/img/audio-toolkit.png" alt="Audio Kit" />
I am using the data callback of the A2DP library to feed the AudioKitStream that will be controlled by an Equilizer
I am using the data callback of the A2DP library to feed the AudioBoardStream that will be controlled by an Equilizer
You dont need to bother about any wires because everything is on one nice board. Just just need to install the dependencies:
@ -14,4 +14,4 @@ You need to install the following libraries:
- https://github.com/pschatzmann/arduino-audio-tools
- https://github.com/pschatzmann/ESP32-A2DP
- https://github.com/pschatzmann/arduino-audiokit
- https://github.com/pschatzmann/arduino-audio-driver

View File

@ -7,12 +7,12 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioA2DP.h"
#include "AudioLibs/AudioA2DP.h" // install https://github.com/pschatzmann/ESP32-A2DP
#include "AudioLibs/AudioBoardStream.h" // install https://github.com/pschatzmann/arduino-audio-driver
BluetoothA2DPSink a2dp_sink;
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
Equilizer3Bands eq(kit);
ConfigEquilizer3Bands cfg_eq;
@ -31,6 +31,9 @@ void setup() {
cfg.sd_active = false;
kit.begin(cfg);
// max volume
kit.setVolume(1.0);
// setup equilizer
cfg_eq = eq.defaultConfig();
cfg_eq.setAudioInfo(cfg); // use channels, bits_per_sample and sample_rate from kit

View File

@ -6,12 +6,12 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioA2DP.h"
AudioInfo info(44100, 2, 16);
BluetoothA2DPSource a2dp_source;
AudioKitStream i2s;
AudioBoardStream i2s(AudioKitEs8388V1);
const int16_t BYTES_PER_FRAME = 4;
// callback used by A2DP to provide the sound data - usually len is 128 2 channel int16 frames
@ -29,7 +29,7 @@ void setup(void) {
auto cfg = i2s.defaultConfig(RX_MODE);
cfg.i2s_format = I2S_STD_FORMAT; // or try with I2S_LSB_FORMAT
cfg.copyFrom(info);
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2; // microphone
cfg.input_device = ADC_INPUT_LINE2; // microphone
i2s.begin(cfg);
// start the bluetooth

View File

@ -18,4 +18,4 @@ You need to install the following libraries:
- https://github.com/pschatzmann/arduino-audio-tools
- https://github.com/pschatzmann/arduino-libhelix
- https://github.com/pschatzmann/arduino-audiokit
- https://github.com/pschatzmann/arduino-audio-driver

View File

@ -8,14 +8,14 @@
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioSourceSD.h" // or AudioSourceIdxSD.h
#include "AudioCodecs/CodecMP3Helix.h"
const char *startFilePath="/";
const char* ext="mp3";
AudioSourceSD source(startFilePath, ext, PIN_AUDIO_KIT_SD_CARD_CS);
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
MP3DecoderHelix decoder; // or change to MP3DecoderMAD
AudioPlayer player(source, kit, decoder);
@ -43,9 +43,9 @@ void setup() {
kit.begin(cfg);
// setup additional buttons
kit.addAction(PIN_KEY1, startStop);
kit.addAction(PIN_KEY4, next);
kit.addAction(PIN_KEY3, previous);
kit.addAction(kit.getKey(1), startStop);
kit.addAction(kit.getKey(4), next);
kit.addAction(kit.getKey(3), previous);
// setup player

View File

@ -13,14 +13,14 @@
#include "AudioTools.h"
#include "AudioLibs/AudioA2DP.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioSourceSDFAT.h"
#include "AudioCodecs/CodecMP3Helix.h"
const char *startFilePath="/";
const char* ext="mp3";
AudioKitStream kit;
SdSpiConfig sdcfg(PIN_AUDIO_KIT_SD_CARD_CS, DEDICATED_SPI, SD_SCK_MHZ(10) , &AUDIOKIT_SD_SPI);
AudioBoardStream kit(AudioKitEs8388V1);
SdSpiConfig sdcfg(PIN_AUDIO_KIT_SD_CARD_CS, DEDICATED_SPI, SD_SCK_MHZ(10) , &SPI);
AudioSourceSDFAT source(startFilePath, ext, sdcfg);
MP3DecoderHelix decoder;
AudioPlayer player(source, kit, decoder);
@ -68,7 +68,7 @@ void setup() {
kit.begin(cfg);
// setup additional buttons
kit.addAction(PIN_KEY4, mode);
kit.addAction(kit.getKey(4), mode);
// setup player
player.setVolume(0.7);

View File

@ -18,5 +18,5 @@ You need to install the following libraries:
- https://github.com/pschatzmann/arduino-audio-tools
- https://github.com/pschatzmann/arduino-libhelix
- https://github.com/pschatzmann/arduino-audiokit
- https://github.com/pschatzmann/arduino-audio-driver
- https://github.com/greiman/SdFat

View File

@ -8,15 +8,15 @@
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioSourceSDFAT.h" // or AudioSourceIdxSDFAT.h
#include "AudioCodecs/CodecMP3Helix.h"
const char *startFilePath="/";
const char* ext="mp3";
SdSpiConfig sdcfg(PIN_AUDIO_KIT_SD_CARD_CS, DEDICATED_SPI, SD_SCK_MHZ(10) , &AUDIOKIT_SD_SPI);
SdSpiConfig sdcfg(PIN_AUDIO_KIT_SD_CARD_CS, DEDICATED_SPI, SD_SCK_MHZ(10) , &SPI);
AudioSourceSDFAT source(startFilePath, ext, sdcfg);
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
MP3DecoderHelix decoder; // or change to MP3DecoderMAD
AudioPlayer player(source, kit, decoder);
@ -41,9 +41,9 @@ void setup() {
kit.begin(cfg);
// setup additional buttons
kit.addAction(PIN_KEY1, startStop);
kit.addAction(PIN_KEY4, next);
kit.addAction(PIN_KEY3, previous);
kit.addAction(kit.getKey(1), startStop);
kit.addAction(kit.getKey(4), next);
kit.addAction(kit.getKey(3), previous);
// setup player

View File

@ -19,4 +19,4 @@ You need to install the following libraries:
- https://github.com/pschatzmann/arduino-audio-tools
- https://github.com/pschatzmann/arduino-libhelix
- https://github.com/pschatzmann/arduino-audiokit
- https://github.com/pschatzmann/arduino-audio-driver

View File

@ -7,14 +7,14 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioSourceSDMMC.h" // or AudioSourceIdxSDMMC.h
#include "AudioCodecs/CodecMP3Helix.h"
const char *startFilePath="/";
const char* ext="mp3";
AudioSourceSDMMC source(startFilePath, ext);
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
MP3DecoderHelix decoder; // or change to MP3DecoderMAD
AudioPlayer player(source, kit, decoder);

View File

@ -18,4 +18,4 @@ I also demonstrate how to assign your own actions to the buttons of the audio ki
- https://github.com/pschatzmann/arduino-audio-tools
- https://github.com/pschatzmann/arduino-libhelix
- https://github.com/pschatzmann/arduino-audiokit
- https://github.com/pschatzmann/arduino-audio-driver

View File

@ -8,7 +8,7 @@
#include "AudioTools.h"
#include "AudioCodecs/CodecMP3Helix.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
const char *urls[] = {
"http://stream.srg-ssr.ch/m/rsj/mp3_128",
@ -22,7 +22,7 @@ const char *password = "password";
ICYStream urlStream(wifi, password);
AudioSourceURL source(urlStream, urls, "audio/mp3");
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
MP3DecoderHelix decoder;
AudioPlayer player(source, kit, decoder);
@ -53,8 +53,8 @@ void setup() {
kit.begin(cfg);
// setup navigation
kit.addAction(PIN_KEY4, next);
kit.addAction(PIN_KEY3, previous);
kit.addAction(kit.getKey(4), next);
kit.addAction(kit.getKey(3), previous);
// setup player
player.setVolume(0.7);

View File

@ -14,10 +14,10 @@
#include "AudioCodecs/CodecMTS.h"
#include "AudioCodecs/CodecADTS.h"
#include "AudioCodecs/CodecAACHelix.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioKitStream out; // final output of decoded stream
AudioBoardStream out(AudioKitEs8388V1);// final output of decoded stream
HLSStream hls_stream("SSID", "password");
MTSDecoder mts;
ADTSDecoder adts;

View File

@ -10,11 +10,11 @@
#include "AudioTools.h"
#include "AudioLibs/AudioA2DP.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
A2DPStream in;
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
StreamCopy copier(kit, in); // copy in to out
// Arduino Setup

View File

@ -12,4 +12,4 @@ We implement a AudioKit source and sink: We stream the sound input which we read
You need to install the following libraries:
- https://github.com/pschatzmann/arduino-audio-tools
- https://github.com/pschatzmann/arduino-audiokit
- https://github.com/pschatzmann/arduino-audio-driver

View File

@ -9,9 +9,9 @@
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioKitStream kit; // Access I2S as stream
AudioBoardStream kit(AudioKitEs8388V1); // Access I2S as stream
StreamCopy copier(kit, kit); // copy kit to kit
// Arduino Setup
@ -21,7 +21,7 @@ void setup(void) {
auto cfg = kit.defaultConfig(RXTX_MODE);
cfg.sd_active = false;
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2;
cfg.input_device = ADC_INPUT_LINE2;
kit.begin(cfg);
}

View File

@ -11,7 +11,7 @@
#include <ArduinoJson.h> // https://arduinojson.org/
#include "HttpServer.h" // https://github.com/pschatzmann/TinyHttp
#include "AudioTools.h" // https://github.com/pschatzmann/arduino-audio-tools.git
#include "AudioLibs/AudioKit.h" // https://github.com/pschatzmann/arduino-audiokit.git
#include "AudioLibs/AudioBoardStream.h" // https://github.com/pschatzmann/arduino-audio-driver.git
// Server
WiFiServer wifi;
@ -39,7 +39,7 @@ Fuzz fuzz(fuzzEffectValue);
Tremolo tremolo(tremoloDuration, tremoloDepth, sample_rate);
// Audio
AudioKitStream kit; // Access I2S as stream
AudioBoardStream kit(AudioKitEs8388V1); // Access I2S as stream
AudioEffectStream effects(kit); // input from kit
StreamCopy copier(kit, effects); // copy effects to kit
@ -131,7 +131,7 @@ void setup(void) {
// Setup Kit
auto cfg = kit.defaultConfig(RXTX_MODE);
cfg.sd_active = false;
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2;
cfg.input_device = ADC_INPUT_LINE2;
cfg.sample_rate = sample_rate;
cfg.channels = channels;
// minimize lag

View File

@ -10,7 +10,7 @@
*
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioRealFFT.h" // or AudioKissFFT
#include "AudioLibs/LEDOutput.h"
@ -18,7 +18,7 @@
#define LED_X 32
#define LED_Y 8
AudioKitStream kit; // Audio source
AudioBoardStream kit(AudioKitEs8388V1); // Audio source
AudioRealFFT fft; // or AudioKissFFT
FFTDisplay fft_dis(fft);
LEDOutput led(fft_dis); // output to LED matrix
@ -30,7 +30,7 @@ void setup() {
// setup Audiokit as input device
auto cfg = kit.defaultConfig(RX_MODE);
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2;
cfg.input_device = ADC_INPUT_LINE2;
kit.begin(cfg);
// Setup FFT output

View File

@ -18,4 +18,4 @@ The log level has been set to Info to help you to identify any problems. Please
You need to install the following libraries:
- https://github.com/pschatzmann/arduino-audio-tools
- https://github.com/pschatzmann/arduino-audiokit
- https://github.com/pschatzmann/arduino-audio-driver

View File

@ -1,9 +1,9 @@
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioRealFFT.h" // or AudioKissFFT
AudioKitStream kit; // Audio source
AudioBoardStream kit(AudioKitEs8388V1); // Audio source
AudioRealFFT fft; // or AudioKissFFT
StreamCopy copier(fft, kit); // copy mic to tfl
int channels = 2;
@ -32,7 +32,7 @@ void setup() {
// setup Audiokit
auto cfg = kit.defaultConfig(RX_MODE);
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2;
cfg.input_device = ADC_INPUT_LINE2;
cfg.channels = channels;
cfg.sample_rate = samples_per_second;
cfg.bits_per_sample = bits_per_sample;

View File

@ -6,10 +6,10 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioInfo info(44100, 2, 16);
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
// copy filtered values
FilteredStream<int16_t, float> filtered(kit, info.channels); // Defiles the filter as BaseConverter
@ -34,7 +34,7 @@ void setup(void) {
auto config = kit.defaultConfig(RXTX_MODE);
config.copyFrom(info);
config.sd_active = false;
config.input_device = AUDIO_HAL_ADC_INPUT_LINE2;
config.input_device = ADC_INPUT_LINE2;
kit.begin(config);
Serial.println("KIT started...");

View File

@ -10,11 +10,11 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
const int buffer_count = 10;
const int buffer_size = 1024;
AudioKitStream kit; // input & output
AudioBoardStream kit(AudioKitEs8388V1); // input & output
QueueStream<uint8_t> queue(buffer_size, buffer_count, true);
AudioEncoderServer server(new WAVEncoder(),"WIFI","password");
MultiOutput out(queue, kit);
@ -28,7 +28,7 @@ void setup(void) {
// setup audiokit
auto cfg = kit.defaultConfig(RXTX_MODE);
cfg.sd_active = false;
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2; // input from microphone
cfg.input_device = ADC_INPUT_LINE2; // input from microphone
cfg.sample_rate = 16000;
kit.setVolume(0.5);
kit.begin(cfg);

View File

@ -10,10 +10,10 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioInfo info(8000, 2, 16);
AudioKitStream kit; // Access I2S as stream
AudioBoardStream kit(AudioKitEs8388V1); // Access I2S as stream
CsvOutput<int16_t> csv(Serial);
MultiOutput out;
StreamCopy copier(out, kit); // copy kit to kit
@ -29,7 +29,7 @@ void setup(void) {
auto cfg = kit.defaultConfig(RXTX_MODE);
cfg.copyFrom(info);
cfg.sd_active = false;
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2; // input from microphone
cfg.input_device = ADC_INPUT_LINE2; // input from microphone
kit.setVolume(0.5);
kit.begin(cfg);

View File

@ -10,11 +10,11 @@
*
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/MemoryManager.h"
AudioInfo info(16000, 1, 16);
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
MemoryManager memory(500); // Activate SPI RAM for objects > 500 bytes
DynamicMemoryStream recording(true); // Audio stored on heap
StreamCopy copier; // copies data
@ -46,12 +46,12 @@ void setup(){
auto cfg = kit.defaultConfig(RXTX_MODE);
cfg.sd_active = true;
cfg.copyFrom(info);
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2;
cfg.input_device = ADC_INPUT_LINE2;
kit.begin(cfg);
kit.setVolume(1.0);
// record when key 1 is pressed
kit.audioActions().add(PIN_KEY1, record_start, record_end);
kit.audioActions().add(kit.getKey(1), record_start, record_end);
Serial.println("Press Key 1 to record");
}

View File

@ -11,12 +11,12 @@
*
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/MemoryManager.h"
AudioInfo info(16000, 1, 16);
MemoryManager memory(500); // Activate SPI RAM for objects > 500 bytes
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
//use one of VariableSpeedRingBufferSimple, VariableSpeedRingBuffer, VariableSpeedRingBuffer180
PitchShiftOutput<int16_t, VariableSpeedRingBuffer<int16_t>> pitch_shift(kit);
DynamicMemoryStream recording(false); // Audio stored on heap, non repeating
@ -50,7 +50,7 @@ void setup(){
auto cfg = kit.defaultConfig(RXTX_MODE);
cfg.sd_active = true;
cfg.copyFrom(info);
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2;
cfg.input_device = ADC_INPUT_LINE2;
kit.begin(cfg);
kit.setVolume(1.0);
@ -62,7 +62,7 @@ void setup(){
pitch_shift.begin(cfg_pc);
// record when key 1 is pressed
kit.audioActions().add(PIN_KEY1, record_start, record_end);
kit.audioActions().add(kit.getKey(1), record_start, record_end);
Serial.println("Press Key 1 to record");
}

View File

@ -10,13 +10,13 @@
*
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include <SPI.h>
#include <SD.h>
const char *file_name = "/rec.raw";
AudioInfo info(16000, 1, 16);
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
File file; // final output stream
StreamCopy copier; // copies data
bool recording = false; // flag to make sure that close is only executed one
@ -50,7 +50,7 @@ void setup(){
auto cfg = kit.defaultConfig(RXTX_MODE);
cfg.sd_active = true;
cfg.copyFrom(info);
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2;
cfg.input_device = ADC_INPUT_LINE2;
kit.begin(cfg);
kit.setVolume(1.0);
@ -63,7 +63,7 @@ void setup(){
// record when key 1 is pressed
kit.audioActions().add(PIN_KEY1, record_start, record_end);
kit.audioActions().add(kit.getKey(1), record_start, record_end);
Serial.println("Press Key 1 to record");
}

View File

@ -13,11 +13,11 @@
#include <SPI.h>
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
const char* file_name = "/rec.wav";
AudioInfo info(16000, 1, 16);
AudioKitStream in;
AudioBoardStream in(AudioKitEs8388V1);
File file; // final output stream
EncodedAudioStream out(&file, new WAVEncoder());
StreamCopy copier(out, in); // copies data
@ -32,7 +32,7 @@ void setup() {
auto cfg = in.defaultConfig(RX_MODE);
cfg.sd_active = true;
cfg.copyFrom(info);
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2; // microphone
cfg.input_device = ADC_INPUT_LINE2; // microphone
in.begin(cfg);
// Open SD drive

View File

@ -12,4 +12,4 @@ We implement a AudioKit source: We stream the sound input which we read in from
You need to install the following libraries:
- https://github.com/pschatzmann/arduino-audio-tools
- https://github.com/pschatzmann/arduino-audiokit
- https://github.com/pschatzmann/arduino-audio-driver

View File

@ -9,10 +9,10 @@
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioInfo info(44100, 2, 16);
AudioKitStream kit; // Access I2S as stream
AudioBoardStream kit(AudioKitEs8388V1); // Access I2S as stream
CsvOutput<int16_t> csvStream(Serial);
StreamCopy copier(csvStream, kit); // copy kit to csvStream
@ -23,7 +23,7 @@ void setup(void) {
auto cfg = kit.defaultConfig(RX_MODE);
cfg.copyFrom(info);
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2;
cfg.input_device = ADC_INPUT_LINE2;
kit.begin(cfg);
// make sure that we have the correct channels set up

View File

@ -22,5 +22,5 @@ The log level has been set to Info to help you to identify any problems. Please
You need to install the following libraries:
- https://github.com/pschatzmann/arduino-audio-tools
- https://github.com/pschatzmann/arduino-audiokit
- https://github.com/pschatzmann/arduino-audio-driver
- https://github.com/pschatzmann/tflite-micro-arduino-examples

View File

@ -1,10 +1,10 @@
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/TfLiteAudioStream.h"
#include "model.h" // tensorflow model
AudioKitStream kit; // Audio source
AudioBoardStream kit(AudioKitEs8388V1); // Audio source
TfLiteAudioStream tfl; // Audio sink
const char* kCategoryLabels[4] = {
"silence",
@ -32,7 +32,7 @@ void setup() {
// setup Audiokit
auto cfg = kit.defaultConfig(RX_MODE);
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2;
cfg.input_device = ADC_INPUT_LINE2;
cfg.channels = channels;
cfg.sample_rate = samples_per_second;
cfg.use_apll = false;

View File

@ -8,10 +8,10 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioCodecs/CodecAACFDK.h"
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
AACEncoderFDK *fdk=nullptr;
AudioEncoderServer *server=nullptr;
@ -33,12 +33,11 @@ void setup(){
// start i2s input with default configuration
Serial.println("starting AudioKit...");
auto config = kit.defaultConfig(RX_MODE);
config.input_device = AUDIO_HAL_ADC_INPUT_LINE2;
config.input_device = ADC_INPUT_LINE2;
config.sample_rate = 44100;
config.default_actions_active = false;
config.channels = 2;
config.sd_active = false;
kit.begin(config);
kit.begin(config, false);
Serial.println("AudioKit started");
// start data sink

View File

@ -8,10 +8,10 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioEncoderServer server(new WAVEncoder(),"ssid","password");
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
// Arduino setup
void setup(){
@ -21,7 +21,7 @@ void setup(){
// start i2s input with default configuration
Serial.println("starting AudioKit...");
auto config = kit.defaultConfig(RX_MODE);
config.input_device = AUDIO_HAL_ADC_INPUT_LINE1;
config.input_device = ADC_INPUT_LINE1;
config.sample_rate = 44100;
config.sd_active = false;
kit.begin(config);

View File

@ -11,13 +11,13 @@
#include <SPI.h>
#include <SD.h>
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/FileLoop.h"
#include "AudioCodecs/CodecMP3Helix.h"
const int chipSelect=PIN_AUDIO_KIT_SD_CARD_CS;
AudioKitStream i2s; // final output of decoded stream
AudioBoardStream i2s(AudioKitEs8388V1); // final output of decoded stream
EncodedAudioStream decoder(&i2s, new MP3DecoderHelix()); // Decoding stream
FileLoop loopingFile;
StreamCopy copier(decoder, loopingFile);

View File

@ -6,12 +6,12 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioInfo info(32000, 2, 16);
SineWaveGenerator<int16_t> sineWave(32000); // subclass of SoundGenerator with max amplitude of 32000
GeneratedSoundStream<int16_t> sound(sineWave); // Stream generated from sine wave
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
StreamCopy copier(out, sound); // copies sound into i2s
// Arduino Setup

View File

@ -6,13 +6,13 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioInfo info(44100, 2, 16);
int16_t sine_array[] = {0, 2285, 4560, 6812, 9031, 11206, 13327, 15383, 17363, 19259, 21062, 22761, 24350, 25820, 27165, 28377, 29450, 30381, 31163, 31793, 32269, 32587, 32747, 32747, 32587, 32269, 31793, 31163, 30381, 29450, 28377, 27165, 25820, 24350, 22761, 21062, 19259, 17363, 15383, 13327, 11206, 9031, 6812, 4560, 2285, 0, -2285, -4560, -6812, -9031, -11206, -13327, -15383, -17363, -19259, -21062, -22761, -24350, -25820, -27165, -28377, -29450, -30381, -31163, -31793, -32269, -32587, -32747, -32747, -32587, -32269, -31793, -31163, -30381, -29450, -28377, -27165, -25820, -24350, -22761, -21062, -19259, -17363, -15383, -13327, -11206, -9031, -6812, -4560, -2285 };
GeneratorFromArray<int16_t> sineWave(sine_array,0,false);
GeneratedSoundStream<int16_t> sound(sineWave); // Stream generated from sine wave
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
StreamCopy copier(out, sound); // copies sound into i2s

View File

@ -6,7 +6,7 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioInfo info(32000, 2, 16);
SineWaveGenerator<int16_t> sineWave1(32000); // subclass of SoundGenerator with max amplitude of 32000
@ -14,7 +14,7 @@ SineWaveGenerator<int16_t> sineWave2(32000); // subclass of Sound
GeneratedSoundStream<int16_t> sound1(sineWave1); // Stream generated from sine wave
GeneratedSoundStream<int16_t> sound2(sineWave2); // Stream generated from sine wave
InputMixer<int16_t> mixer;
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
StreamCopy copier(out, mixer); // copies sound into i2s
// Arduino Setup

View File

@ -6,15 +6,15 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioInfo info(32000, 2, 16);
SineWaveGenerator<int16_t> sineWave1(32000); // subclass of SoundGenerator with max amplitude of 32000
SineWaveGenerator<int16_t> sineWave2(32000); // subclass of SoundGenerator with max amplitude of 32000
GeneratedSoundStream<int16_t> sound1(sineWave1); // Stream generated from sine wave
GeneratedSoundStream<int16_t> sound2(sineWave2); // Stream generated from sine wave
AudioKitStream out;
OutputMixer<int16_t> mixer(out, 2); // output mixer with 2 outputs mixing to AudioKitStream
AudioBoardStream out(AudioKitEs8388V1);
OutputMixer<int16_t> mixer(out, 2); // output mixer with 2 outputs mixing to AudioBoardStream
StreamCopy copier1(mixer, sound1); // copies sound into mixer
StreamCopy copier2(mixer, sound2); // copies sound into mixer

View File

@ -6,12 +6,12 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioInfo info(32000, 2, 16);
SineFromTable<int16_t> sineWave(32000); // subclass of SoundGenerator with max amplitude of 32000
GeneratedSoundStream<int16_t> sound(sineWave); // Stream generated from sine wave
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
//CsvOutput<int16_t> out(Serial);
int sound_len=1024;
StreamCopy copier(out, sound, sound_len); // copies sound into i2s

View File

@ -11,11 +11,11 @@
#include "AudioTools.h"
#include "AudioCodecs/CodecMP3Helix.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "zero.h"
MemoryStream mp3(zero_mp3, zero_mp3_len);
AudioKitStream i2s;
AudioBoardStream i2s(AudioKitEs8388V1);
MP3DecoderHelix helix;
EncodedAudioStream out(&i2s, &helix); // output to decoder
StreamCopy copier(out, mp3); // copy in to i2s

View File

@ -9,12 +9,12 @@
*
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "drums.h"
#include "guitar.h"
InputMixer<int16_t> mixer;
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
MemoryStream drums(drums_raw, drums_raw_len);
MemoryStream guitar(guitar_raw, guitar_raw_len);
StreamCopy copier(kit, mixer);

View File

@ -13,6 +13,6 @@ You just need to define you __handler methods__ (button1, button2...) and assign
You need to install the following libraries:
- [Arduino Audio Tools](https://github.com/pschatzmann/arduino-audio-tools)
- [AudioKit](https://github.com/pschatzmann/arduino-audiokit)
- [Audio Driver](https://github.com/pschatzmann/arduino-audio-driver)
- [FLITE](https://github.com/pschatzmann/arduino-flite)

View File

@ -7,10 +7,10 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "flite_arduino.h"
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
Flite flite(kit);
void button1(bool, int, void*) { flite.say("Button One"); }
@ -32,16 +32,16 @@ void setup() {
kit.begin(cfg);
// Assign pins to methods
kit.addAction(PIN_KEY1, button1);
kit.addAction(PIN_KEY2, button2);
kit.addAction(PIN_KEY3, button3);
kit.addAction(PIN_KEY4, button4);
kit.addAction(kit.getKey(1), button1);
kit.addAction(kit.getKey(2), button2);
kit.addAction(kit.getKey(3), button3);
kit.addAction(kit.getKey(4), button4);
// example with actions using lambda expression
auto down = [](bool,int,void*) { AudioKitStream::actionVolumeDown(true, -1, nullptr); flite.say("Volume down"); };
kit.addAction(PIN_KEY5, down);
auto up = [](bool,int,void*) { AudioKitStream::actionVolumeUp(true, -1, nullptr ); flite.say("Volume up"); };
kit.addAction(PIN_KEY6, up);
auto down = [](bool,int,void*) { AudioBoardStream::actionVolumeDown(true, -1, nullptr); flite.say("Volume down"); };
kit.addAction(kit.getKey(5), down);
auto up = [](bool,int,void*) { AudioBoardStream::actionVolumeUp(true, -1, nullptr ); flite.say("Volume up"); };
kit.addAction(kit.getKey(6), up);
flite.say("Please push a button");
}

View File

@ -11,12 +11,12 @@
#include <SPI.h>
#include <SD.h>
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioCodecs/CodecMP3Helix.h"
const int chipSelect=PIN_AUDIO_KIT_SD_CARD_CS;
AudioKitStream i2s; // final output of decoded stream
AudioBoardStream i2s(AudioKitEs8388V1); // final output of decoded stream
EncodedAudioStream decoder(&i2s, new MP3DecoderHelix()); // Decoding stream
StreamCopy copier;
File audioFile;

View File

@ -11,9 +11,9 @@
#include "FS.h"
#include "SD_MMC.h"
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioKitStream i2s;
AudioBoardStream i2s(AudioKitEs8388V1);
WAVDecoder wav;
EncodedAudioStream encoded(&i2s, &wav); // Decoding stream
File audioFile;

View File

@ -8,15 +8,15 @@
#define USE_MIDI
#include "BluetoothA2DPSource.h"
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
BluetoothA2DPSource a2dp_source;
int channels = 2;
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
Synthesizer synthesizer;
GeneratedSoundStream<int16_t> in(synthesizer);
SynthesizerKey keys[] = {{PIN_KEY1, N_C3},{PIN_KEY2, N_D3},{PIN_KEY3, N_E3},{PIN_KEY4, N_F3},{PIN_KEY5, N_G3},{PIN_KEY6, N_A3},{0,0}};
SynthesizerKey keys[] = {{kit.getKey(1), N_C3},{kit.getKey(2), N_D3},{kit.getKey(3), N_E3},{kit.getKey(4), N_F3},{kit.getKey(5), N_G3},{kit.getKey(6), N_A3},{0,0}};
int32_t get_sound_data(Frame *data, int32_t frameCount) {
int frame_size = sizeof(int16_t)*channels;
@ -39,8 +39,6 @@ void setup() {
auto cfg = in.defaultConfig();
cfg.channels = channels;
cfg.sample_rate = 44100;
cfg.buffer_size = 512;
cfg.buffer_count = 10;
in.begin(cfg);
a2dp_source.start("LEXON MINO L", get_sound_data);

View File

@ -6,13 +6,13 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
Synthesizer synthesizer;
GeneratedSoundStream<int16_t> in(synthesizer);
StreamCopy copier(kit, in);
SynthesizerKey keys[] = {{PIN_KEY1, N_C3},{PIN_KEY2, N_D3},{PIN_KEY3, N_E3},{PIN_KEY4, N_F3},{PIN_KEY5, N_G3},{PIN_KEY6, N_A3},{0,0}};
SynthesizerKey keys[] = {{kit.getKey(1), N_C3},{kit.getKey(2), N_D3},{kit.getKey(3), N_E3},{kit.getKey(4), N_F3},{kit.getKey(5), N_G3},{kit.getKey(6), N_A3},{0,0}};
void setup() {
Serial.begin(115200);

View File

@ -6,9 +6,9 @@
*
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
SineWaveGenerator<int16_t> sine;
GeneratedSoundStream<int16_t> in(sine);
StreamCopy copier(kit, in);
@ -28,12 +28,12 @@ void setupActions(){
// assign buttons to notes
auto act_low = AudioActions::ActiveLow;
static float note[] = {N_C3, N_D3, N_E3, N_F3, N_G3, N_A3}; // frequencies
kit.audioActions().add(PIN_KEY1, actionKeyOn, actionKeyOff, act_low, &(note[0])); // C3
kit.audioActions().add(PIN_KEY2, actionKeyOn, actionKeyOff, act_low, &(note[1])); // D3
kit.audioActions().add(PIN_KEY3, actionKeyOn, actionKeyOff, act_low, &(note[2])); // E3
kit.audioActions().add(PIN_KEY4, actionKeyOn, actionKeyOff, act_low, &(note[3])); // F3
kit.audioActions().add(PIN_KEY5, actionKeyOn, actionKeyOff, act_low, &(note[4])); // G3
kit.audioActions().add(PIN_KEY6, actionKeyOn, actionKeyOff, act_low, &(note[5])); // A3
kit.audioActions().add(kit.getKey(1), actionKeyOn, actionKeyOff, act_low, &(note[0])); // C3
kit.audioActions().add(kit.getKey(2), actionKeyOn, actionKeyOff, act_low, &(note[1])); // D3
kit.audioActions().add(kit.getKey(3), actionKeyOn, actionKeyOff, act_low, &(note[2])); // E3
kit.audioActions().add(kit.getKey(4), actionKeyOn, actionKeyOff, act_low, &(note[3])); // F3
kit.audioActions().add(kit.getKey(5), actionKeyOn, actionKeyOff, act_low, &(note[4])); // G3
kit.audioActions().add(kit.getKey(6), actionKeyOn, actionKeyOff, act_low, &(note[5])); // A3
}
void setup() {

View File

@ -7,9 +7,9 @@
*
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
SineWaveGenerator<int16_t> sine;
GeneratedSoundStream<int16_t> sine_stream(sine);
AudioEffectStream effects(sine_stream);
@ -33,12 +33,12 @@ void setupActions(){
// assign buttons to notes
auto act_low = AudioActions::ActiveLow;
static float note[] = {N_C3, N_D3, N_E3, N_F3, N_G3, N_A3}; // frequencies
kit.audioActions().add(PIN_KEY1, actionKeyOn, actionKeyOff, act_low, &(note[0])); // C3
kit.audioActions().add(PIN_KEY2, actionKeyOn, actionKeyOff, act_low, &(note[1])); // D3
kit.audioActions().add(PIN_KEY3, actionKeyOn, actionKeyOff, act_low, &(note[2])); // E3
kit.audioActions().add(PIN_KEY4, actionKeyOn, actionKeyOff, act_low, &(note[3])); // F3
kit.audioActions().add(PIN_KEY5, actionKeyOn, actionKeyOff, act_low, &(note[4])); // G3
kit.audioActions().add(PIN_KEY6, actionKeyOn, actionKeyOff, act_low, &(note[5])); // A3
kit.audioActions().add(kit.getKey(1), actionKeyOn, actionKeyOff, act_low, &(note[0])); // C3
kit.audioActions().add(kit.getKey(2), actionKeyOn, actionKeyOff, act_low, &(note[1])); // D3
kit.audioActions().add(kit.getKey(3), actionKeyOn, actionKeyOff, act_low, &(note[2])); // E3
kit.audioActions().add(kit.getKey(4), actionKeyOn, actionKeyOff, act_low, &(note[3])); // F3
kit.audioActions().add(kit.getKey(5), actionKeyOn, actionKeyOff, act_low, &(note[4])); // G3
kit.audioActions().add(kit.getKey(6), actionKeyOn, actionKeyOff, act_low, &(note[5])); // A3
}
void setup() {

View File

@ -8,14 +8,14 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include <Midi.h>
SineWaveGenerator<int16_t> sine;
GeneratedSoundStream<int16_t> sine_stream(sine);
ADSRGain adsr(0.0001,0.0001, 0.9 , 0.0002);
AudioEffectStream effects(sine_stream);
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
StreamCopy copier(kit, effects);
class SynthAction : public MidiAction {
@ -52,12 +52,12 @@ void setupActions(){
// assign buttons to notes
auto act_low = AudioActions::ActiveLow;
static float note[] = {N_C3, N_D3, N_E3, N_F3, N_G3, N_A3}; // frequencies
kit.audioActions().add(PIN_KEY1, actionKeyOn, actionKeyOff, act_low, &(note[0])); // C3
kit.audioActions().add(PIN_KEY2, actionKeyOn, actionKeyOff, act_low, &(note[1])); // D3
kit.audioActions().add(PIN_KEY3, actionKeyOn, actionKeyOff, act_low, &(note[2])); // E3
kit.audioActions().add(PIN_KEY4, actionKeyOn, actionKeyOff, act_low, &(note[3])); // F3
kit.audioActions().add(PIN_KEY5, actionKeyOn, actionKeyOff, act_low, &(note[4])); // G3
kit.audioActions().add(PIN_KEY6, actionKeyOn, actionKeyOff, act_low, &(note[5])); // A3
kit.audioActions().add(kit.getKey(1), actionKeyOn, actionKeyOff, act_low, &(note[0])); // C3
kit.audioActions().add(kit.getKey(2), actionKeyOn, actionKeyOff, act_low, &(note[1])); // D3
kit.audioActions().add(kit.getKey(3), actionKeyOn, actionKeyOff, act_low, &(note[2])); // E3
kit.audioActions().add(kit.getKey(4), actionKeyOn, actionKeyOff, act_low, &(note[3])); // F3
kit.audioActions().add(kit.getKey(5), actionKeyOn, actionKeyOff, act_low, &(note[4])); // G3
kit.audioActions().add(kit.getKey(6), actionKeyOn, actionKeyOff, act_low, &(note[5])); // A3
}
void setup() {

View File

@ -8,6 +8,6 @@ For [further info see my blog](https://www.pschatzmann.ch/home/2021/12/21/ai-thi
### Dependencies
- https://github.com/pschatzmann/arduino-audio-tools
- https://github.com/pschatzmann/arduino-audiokit
- https://github.com/pschatzmann/arduino-audio-driver
- https://github.com/pschatzmann/arduino-midi
- https://github.com/pschatzmann/Arduino-STK

View File

@ -5,10 +5,10 @@
* @copyright Copyright (c) 2021
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "StkAll.h"
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
Clarinet clarinet(440);
Voicer voicer;
ArdStreamOut output(&kit);
@ -30,12 +30,12 @@ void setupActions(){
// assign buttons to notes
auto act_low = AudioActions::ActiveLow;
static int note[] = {48,50,52,53,55,57}; // midi keys
kit.audioActions().add(PIN_KEY1, actionKeyOn, actionKeyOff, act_low, &(note[0])); // C3
kit.audioActions().add(PIN_KEY2, actionKeyOn, actionKeyOff, act_low, &(note[1])); // D3
kit.audioActions().add(PIN_KEY3, actionKeyOn, actionKeyOff, act_low, &(note[2])); // E3
kit.audioActions().add(PIN_KEY4, actionKeyOn, actionKeyOff, act_low, &(note[3])); // F3
kit.audioActions().add(PIN_KEY5, actionKeyOn, actionKeyOff, act_low, &(note[4])); // G3
kit.audioActions().add(PIN_KEY6, actionKeyOn, actionKeyOff, act_low, &(note[5])); // A3
kit.audioActions().add(kit.getKey(1), actionKeyOn, actionKeyOff, act_low, &(note[0])); // C3
kit.audioActions().add(kit.getKey(2), actionKeyOn, actionKeyOff, act_low, &(note[1])); // D3
kit.audioActions().add(kit.getKey(3), actionKeyOn, actionKeyOff, act_low, &(note[2])); // E3
kit.audioActions().add(kit.getKey(4), actionKeyOn, actionKeyOff, act_low, &(note[3])); // F3
kit.audioActions().add(kit.getKey(5), actionKeyOn, actionKeyOff, act_low, &(note[4])); // G3
kit.audioActions().add(kit.getKey(6), actionKeyOn, actionKeyOff, act_low, &(note[5])); // A3
}
void setup() {

View File

@ -18,5 +18,5 @@ The log level has been set to Info to help you to identify any problems. Please
You need to install the following libraries:
- https://github.com/pschatzmann/arduino-audio-tools
- https://github.com/pschatzmann/arduino-audiokit
- https://github.com/pschatzmann/arduino-audio-driver
- https://github.com/pschatzmann/tflite-micro-arduino-examples

View File

@ -10,12 +10,12 @@
*/
#include "AudioTools.h"
#include "AudioLibs/TfLiteAudioStream.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "model.h"
TfLiteSineReader tf_reader(20000,0.3); // Audio generation logic
TfLiteAudioStream tf_stream; // Audio source -> no classification so N is 0
AudioKitStream i2s; // Audio destination
AudioBoardStream i2s(AudioKitEs8388V1); // Audio destination
StreamCopy copier(i2s, tf_stream); // copy tf_stream to i2s
int channels = 1;
int samples_per_second = 16000;

View File

@ -12,11 +12,11 @@
#include "AudioTools.h"
#include "AudioCodecs/CodecAACHelix.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
URLStream url("ssid","password"); // or replace with ICYStream to get metadata
AudioKitStream i2s; // final output of decoded stream
AudioBoardStream i2s(AudioKitEs8388V1); // final output of decoded stream
EncodedAudioStream dec(&i2s, new AACDecoderHelix()); // Decoding stream
StreamCopy copier(dec, url); // copy url to decoder

View File

@ -12,11 +12,11 @@
#include "AudioTools.h"
#include "AudioCodecs/CodecMP3Helix.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
URLStream url("ssid","password"); // or replace with ICYStream to get metadata
AudioKitStream i2s; // final output of decoded stream
AudioBoardStream i2s(AudioKitEs8388V1); // final output of decoded stream
EncodedAudioStream dec(&i2s, new MP3DecoderHelix()); // Decoding stream
StreamCopy copier(dec, url); // copy url to decoder

View File

@ -14,7 +14,7 @@
#include "AudioLibs/AudioA2DP.h"
#include "AudioLibs/AudioSourceSDFAT.h"
#include "AudioCodecs/CodecMP3Helix.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h" // for SD Pins
int buffer_count = 30;
int buffer_size = 512;

View File

@ -11,11 +11,11 @@
#include "AudioTools.h"
#include "Communication/ESPNowStream.h"
#include "AudioCodecs/CodecSBC.h"
// #include "AudioLibs/AudioKit.h"
// #include "AudioLibs/AudioBoardStream.h"
ESPNowStream now;
I2SStream out; // or AudioKitStream
I2SStream out; // or AudioBoardStream
EncodedAudioStream decoder(&out, new SBCDecoder(256)); // decode and write to I2S - ESP Now is limited to 256 bytes
StreamCopy copier(decoder, now);
const char *peers[] = {"A8:48:FA:0B:93:02"};

View File

@ -14,13 +14,13 @@
#include "ArduinoFTPClient.h" // install https://github.com/pschatzmann/TinyFTPClient
#include "AudioTools.h" // https://github.com/pschatzmann/arduino-audio-tools
#include "AudioCodecs/CodecMP3Helix.h" // https://github.com/pschatzmann/arduino-libhelix
#include "AudioLibs/AudioKit.h" // https://github.com/pschatzmann/arduino-audiokit
#include "AudioLibs/AudioBoardStream.h" // https://github.com/pschatzmann/arduino-audio-driver
WiFiClient cmd;
WiFiClient data;
FTPClient client(cmd, data);
FTPFile file;
AudioKitStream kit; // or replace with e.g. I2SStream
AudioBoardStream kit(AudioKitEs8388V1); // or replace with e.g. I2SStream
MP3DecoderHelix mp3;
EncodedAudioStream decoder(&kit, &mp3);
StreamCopy copier(decoder, file);

View File

@ -10,13 +10,13 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/RTSP.h"
#include "AudioStreamer.h"
#include "RTSPServer.h"
int port = 554;
AudioKitStream kit; // Audio source
AudioBoardStream kit(AudioKitEs8388V1); // Audio source
RTSPSourceFromAudioStream source(kit); // IAudioSource for RTSP
AudioStreamer streamer = AudioStreamer(&source); // Stream audio via RTSP
RTSPServer rtsp = RTSPServer(&streamer, port);
@ -30,7 +30,7 @@ void setup() {
// setup Audiokit as source
auto cfg = kit.defaultConfig(RX_MODE);
cfg.input_device = AUDIO_HAL_ADC_INPUT_LINE2;
cfg.input_device = ADC_INPUT_LINE2;
cfg.channels = 1;
cfg.sample_rate = 8000;
cfg.bits_per_sample = 16;

View File

@ -11,10 +11,10 @@
*/
#include "AudioTools.h" // https://github.com/pschatzmann/arduino-audio-tools
#include "AudioCodecs/CodecMP3Helix.h" // https://github.com/pschatzmann/arduino-libhelix
#include "AudioLibs/AudioKit.h" // https://github.com/pschatzmann/arduino-audiokit
#include "AudioLibs/AudioBoardStream.h" // https://github.com/pschatzmann/arduino-audio-driver
#include "AudioLibs/AudioClientRTSP.h" // install https://github.com/pschatzmann/arduino-live555
AudioKitStream i2s; // final output of decoded stream
AudioBoardStream i2s(AudioKitEs8388V1); // final output of decoded stream
EncodedAudioStream out_mp3(&i2s, new MP3DecoderHelix()); // Decoding stream
AudioClientRTSP rtsp(1024);

View File

@ -13,10 +13,10 @@
*/
#include "AudioTools.h"
// #include "AudioLibs/AudioKit.h"
// #include "AudioLibs/AudioBoardStream.h"
AudioInfo info(44100, 2, 16);
I2SStream out; // or AnalogAudioStream, AudioKitStream etc
I2SStream out; // or AnalogAudioStream, AudioBoardStream etc
SineWaveGenerator<int16_t> sineWave(32000);
GeneratedSoundStream<int16_t> sound(sineWave);
auto &serial = Serial2;

View File

@ -15,10 +15,10 @@
#include "AudioTools.h"
#include "AudioCodecs/CodecADPCM.h" // https://github.com/pschatzmann/adpcm
//#include "AudioLibs/AudioKit.h"
//#include "AudioLibs/AudioBoardStream.h"
AudioInfo info(22000, 1, 16);
I2SStream out; // or AnalogAudioStream, AudioKitStream etc
I2SStream out; // or AnalogAudioStream, AudioBoardStream etc
SineWaveGenerator<int16_t> sineWave(32000);
GeneratedSoundStream<int16_t> sound(sineWave);

View File

@ -16,10 +16,10 @@
#include "AudioTools.h"
#include "AudioCodecs/CodecADPCM.h" // https://github.com/pschatzmann/adpcm
#include "AudioCodecs/ContainerBinary.h"
// #include "AudioLibs/AudioKit.h"
// #include "AudioLibs/AudioBoardStream.h"
AudioInfo info(44100, 2, 16);
I2SStream out; // or AnalogAudioStream, AudioKitStream etc
I2SStream out; // or AnalogAudioStream, AudioBoardStream etc
SineWaveGenerator<int16_t> sineWave(32000);
GeneratedSoundStream<int16_t> sound(sineWave);

View File

@ -14,12 +14,12 @@
*/
#include "AudioTools.h"
// #include "AudioLibs/AudioKit.h"
// #include "AudioLibs/AudioBoardStream.h"
AudioInfo info(22000, 1, 16);
SineWaveGenerator<int16_t> sineWave(32000);
GeneratedSoundStream<int16_t> sound(sineWave);
I2SStream out; // or AnalogAudioStream, AudioKitStream etc
I2SStream out; // or AnalogAudioStream, AudioBoardStream etc
auto &serial = Serial2;
Throttle throttle(serial);
StreamCopy copierOut(throttle, sound, 256); // copies sound into Serial

View File

@ -12,14 +12,14 @@
#include "AudioTools.h"
#include "Communication/UDPStream.h"
// #include "AudioLibs/AudioKit.h"
// #include "AudioLibs/AudioBoardStream.h"
const char* ssid="SSID";
const char* password="password";
AudioInfo info(22000, 1, 16);
UDPStream udp(ssid, password);
const int udpPort = 7000;
I2SStream out; // or ony other e.g. AudioKitStream
I2SStream out; // or ony other e.g. AudioBoardStream
StreamCopy copier(out, udp);
void setup() {

View File

@ -6,10 +6,10 @@
#include "AudioTools.h"
#include "AudioLibs/VBANStream.h"
#include "AudioLibs/AudioKit.h" // comment out when not using AudioKit
#include "AudioLibs/AudioBoardStream.h" // comment out when not using AudioKit
AudioInfo info(44100, 2, 16);
AudioKitStream in; // Audio source e.g. replace with I2SStream
AudioBoardStream in; // Audio source e.g. replace with I2SStream
VBANStream out;
StreamCopy copier(out, in, 2048); // copies sound into i2s
@ -37,7 +37,7 @@ void setup(void) {
cfg_in.buffer_size = 256;
cfg_in.buffer_count = 4;
cfg_in.copyFrom(info);
cfg_in.input_device = AUDIO_HAL_ADC_INPUT_LINE2; // microphone
cfg_in.input_device = ADC_INPUT_LINE2; // microphone
in.begin(cfg_in);
}

View File

@ -8,13 +8,13 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "SD.h"
AudioInfo info(32000, 2, 16);
SineWaveGenerator<int16_t> sineWave(32000); // subclass of SoundGenerator with max amplitude of 32000
GeneratedSoundStream<int16_t> sound(sineWave); // Stream generated from sine wave
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
StreamCopy copier(out, sound); // copies sound into i2s
// Arduino Setup
@ -30,7 +30,6 @@ void setup(void) {
auto config = out.defaultConfig(TX_MODE);
config.copyFrom(info);
config.sd_active = false;
config.default_actions_active = false;
// i2c
config.pins.i2c_sda = 36;
config.pins.i2c_scl = 35;
@ -46,7 +45,7 @@ void setup(void) {
config.pins.sd_miso = 42;
config.pins.sd_mosi = 43;
config.pins.sd_clk = 44;
out.begin(config);
out.begin(config, false);
// check SD drive
if(!SD.begin(config.pins.sd_cs)){

View File

@ -13,12 +13,12 @@
#define USE_MEMORY_MANAGER
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioFaust.h"
#include "fluteMIDI.h"
FaustStream<mydsp> faust;
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
StreamCopy copier(out, faust); // copy mic to tfl
// Arduino Setup

View File

@ -10,12 +10,12 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioFaust.h"
#include "Noise.h"
FaustStream<mydsp> faust;
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
StreamCopy copier(out, faust); // copy mic to tfl
// Arduino Setup

View File

@ -10,14 +10,14 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioFaust.h"
#include "volume.h"
SineWaveGenerator<int16_t> sineWave(32000); // subclass of SoundGenerator with max amplitude of 32000
GeneratedSoundStream<int16_t> sound(sineWave); // Stream generated from sine wave
mydsp dsp;
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
FaustStream<mydsp> faust(out);
StreamCopy copier(faust, sound); // copy mic to tfl

View File

@ -11,11 +11,11 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioFaust.h"
#include "Copy.h"
AudioKitStream io;
AudioBoardStream io(AudioKitEs8388V1);
FaustStream<mydsp> faust(io); // final output to io
StreamCopy copier(faust, io); // copy mic to faust

View File

@ -10,11 +10,11 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioFaust.h"
#include "guitarix.h"
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
FaustStream<mydsp> faust(kit); // final output of Faust is kit
StreamCopy copier(faust, kit); // copy data from kit to faust
@ -48,7 +48,7 @@ void setup(void) {
cfg_i2s.sample_rate = cfg.sample_rate;
cfg_i2s.channels = cfg.channels;
cfg_i2s.bits_per_sample = cfg.bits_per_sample;
cfg_i2s.input_device = AUDIO_HAL_ADC_INPUT_LINE1;
cfg_i2s.input_device = ADC_INPUT_LINE1;
kit.begin(cfg_i2s);
}

View File

@ -10,11 +10,11 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioFaust.h"
#include "pitchShifter.h"
AudioKitStream io;
AudioBoardStream io(AudioKitEs8388V1);
FaustStream<mydsp> faust(io); // final output to io
StreamCopy copier(faust, io); // copy mic to faust

View File

@ -1,13 +1,13 @@
#include "AudioTools.h"
#include "AudioLibs/MaximilianDSP.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "maximilian.h"
#include <FS.h>
#include <SD_MMC.h>
// Define Arduino output
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
Maximilian maximilian(out);
// MAXIMILIAN

View File

@ -13,7 +13,6 @@
#include "AudioLibs/AudioA2DP.h"
#include "AudioLibs/AudioSourceSDFAT.h"
#include "AudioCodecs/CodecMP3Helix.h"
//#include "AudioLibs/AudioKit.h"
const char *startFilePath="/";
const char* ext="mp3";

View File

@ -2,17 +2,17 @@
* @file streams-stk-audioout.ino
* @brief Plays random notes on instrument. For available instruments
* see https://pschatzmann.github.io/Arduino-STK/html/classstk_1_1Instrmnt.html
* I used an AudioKitStream to test the output, but you can replace it with any other output class (e.g. I2SStream)
* I used an AudioBoardStream to test the output, but you can replace it with any other output class (e.g. I2SStream)
* @author Phil Schatzmann
* @copyright Copyright (c) 2021
*/
#include "AudioTools.h"
#include "AudioLibs/AudioSTK.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
Sitar instrument(440);
STKStream<Instrmnt> in(instrument);
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
StreamCopy copier(out, in);
MusicalNotes notes;

View File

@ -11,8 +11,8 @@
#include "AudioLibs/PortAudioStream.h"
typedef PortAudioStream MyStdOut;
#else
#include "AudioLibs/AudioKit.h"
typedef AudioKitStream MyStdOut;
#include "AudioLibs/AudioBoardStream.h"
typedef AudioBoardStream MyStdOut;
#endif
Instrmnt *p_Instrmnt=nullptr; // will be allocated dynamically

View File

@ -11,11 +11,11 @@
#include "SD_MMC.h"
#include "AudioTools.h"
#include "AudioLibs/AudioSTK.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
STKStream<Instrmnt> in;
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
StreamCopy copier(out, in);
MusicalNotes notes;
Instrmnt* p_instrument=nullptr; // instrument depends on file system

View File

@ -7,13 +7,13 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioSTK.h"
Clarinet clarinet(440); // the stk clarinet instrument
STKGenerator<Instrmnt, int16_t> generator(clarinet); // subclass of SoundGenerator
GeneratedSoundStream<int16_t> in(generator); // Stream generated from sine wave
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
StreamCopy copier(out, in); // copy stkStream to a2dpStream
MusicalNotes notes; // notes with frequencies

View File

@ -9,12 +9,12 @@
*
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "AudioLibs/AudioSTK.h"
MemoryLoop mloop("crashcym.raw", crashcym_raw, crashcym_raw_len);
STKStream<MemoryLoop> in(mloop);
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
StreamCopy copier(out, in);
void setup() {

View File

@ -6,12 +6,12 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioSTK.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "MyFirstInstrument.h"
MyFirstInstrument instrument;
STKStream<Instrmnt> in(instrument);
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
StreamCopy copier(out, in);
MusicalNotes notes;

View File

@ -8,11 +8,11 @@
#include "SD_MMC.h"
#include "AudioTools.h"
#include "AudioLibs/AudioSTK.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
SineWave sine;
STKStream<SineWave> in(sine);
AudioKitStream out;
AudioBoardStream out(AudioKitEs8388V1);
StreamCopy copier(out, in);
MusicalNotes notes;

View File

@ -10,6 +10,6 @@ For [further info see my blog](https://www.pschatzmann.ch/home/2021/12/21/ai-thi
### Dependencies
- https://github.com/pschatzmann/arduino-audio-tools
- https://github.com/pschatzmann/arduino-audiokit
- https://github.com/pschatzmann/arduino-audio-driver
- https://github.com/pschatzmann/arduino-midi
- https://github.com/pschatzmann/Arduino-STK

View File

@ -5,10 +5,10 @@
* @copyright Copyright (c) 2021
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "StkAll.h"
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
Clarinet clarinet(440);
Voicer voicer;
ArdStreamOut output(&kit);
@ -30,12 +30,12 @@ void setupActions(){
// assign buttons to notes
auto act_low = AudioActions::ActiveLow;
static int note[] = {48,50,52,53,55,57}; // midi keys
kit.audioActions().add(PIN_KEY1, actionKeyOn, actionKeyOff, act_low, &(note[0])); // C3
kit.audioActions().add(PIN_KEY2, actionKeyOn, actionKeyOff, act_low, &(note[1])); // D3
kit.audioActions().add(PIN_KEY3, actionKeyOn, actionKeyOff, act_low, &(note[2])); // E3
kit.audioActions().add(PIN_KEY4, actionKeyOn, actionKeyOff, act_low, &(note[3])); // F3
kit.audioActions().add(PIN_KEY5, actionKeyOn, actionKeyOff, act_low, &(note[4])); // G3
kit.audioActions().add(PIN_KEY6, actionKeyOn, actionKeyOff, act_low, &(note[5])); // A3
kit.audioActions().add(kit.getKey(1), actionKeyOn, actionKeyOff, act_low, &(note[0])); // C3
kit.audioActions().add(kit.getKey(2), actionKeyOn, actionKeyOff, act_low, &(note[1])); // D3
kit.audioActions().add(kit.getKey(3), actionKeyOn, actionKeyOff, act_low, &(note[2])); // E3
kit.audioActions().add(kit.getKey(4), actionKeyOn, actionKeyOff, act_low, &(note[3])); // F3
kit.audioActions().add(kit.getKey(5), actionKeyOn, actionKeyOff, act_low, &(note[4])); // G3
kit.audioActions().add(kit.getKey(6), actionKeyOn, actionKeyOff, act_low, &(note[5])); // A3
}
void setup() {

View File

@ -6,9 +6,9 @@
*
*/
#include "AudioTools.h"
//#include "AudioLibs/AudioKit.h"
//#include "AudioLibs/AudioBoardStream.h"
I2SStream i2s; //AudioKitStream
I2SStream i2s; //AudioBoardStream
SineWaveGenerator<int16_t> sine;
GeneratedSoundStream<int16_t> stream(sine);
AudioEffectStream effects(stream);

View File

@ -8,13 +8,13 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioInfo from(32000,2,32);
AudioInfo to(16000,1,16);
SineWaveGenerator<int32_t> sineWave;
GeneratedSoundStream<int32_t> sound(sineWave); // Stream generated from sine wave
I2SStream out; // or any other e.g. AudioKitStream, CsvOutput<int16_t> out(Serial);
I2SStream out; // or any other e.g. AudioBoardStream, CsvOutput<int16_t> out(Serial);
FormatConverterStream converter(sound); // or use converter(out)
StreamCopy copier(out, converter); // copier(converter, sound);

View File

@ -9,7 +9,7 @@
*
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioInfo info(44100, 1, 16);
int16_t sine_array[] = {0, 4560, 9031, 13327, 17363, 21062, 24350, 27165, 29450, 31163, 32269, 32747, 32587, 31793, 30381, 28377, 25820, 22761, 19259, 15383, 11206, 6812, 2285, -2285, -6812, -11206, -15383, -19259, -22761, -25820, -28377, -30381, -31793, -32587, -32747, -32269, -31163, -29450, -27165, -24350, -21062, -17363, -13327, -9031, -4560 };

View File

@ -11,11 +11,11 @@
*/
#include "AudioTools.h" // https://github.com/pschatzmann/arduino-audio-tools
#include "AudioLibs/AudioKit.h" // https://github.com/pschatzmann/arduino-audiokit
#include "AudioLibs/AudioBoardStream.h" // https://github.com/pschatzmann/arduino-audio-driver
#include "FileSystems.h" // https://github.com/pschatzmann/arduino-posix-fs
#include "espeak.h"
AudioKitStream i2s;
AudioBoardStream i2s(AudioKitEs8388V1);
ESpeak espeak(i2s);
void setup() {

View File

@ -12,7 +12,7 @@ The output goes to a AI Thinker Audio Kit.
You need to install the following libraries:
- [Arduino Audio Tools](https://github.com/pschatzmann/arduino-audio-tools)
- [AudioKit](https://github.com/pschatzmann/arduino-audiokit)
- [Audio Driver](https://github.com/pschatzmann/arduino-audio-driver)
- [FLITE](https://github.com/pschatzmann/arduino-flite)
FLITE is quite big: you need to set the Partition Schema to Huge APP

View File

@ -8,9 +8,9 @@
#include "flite_arduino.h"
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
Flite flite(kit);
const char* alice = "Hallo my name is FLITE";

View File

@ -8,9 +8,9 @@
#include "flite_arduino.h"
#include "AudioTools.h"
//#include "AudioLibs/AudioKit.h"
//#include "AudioLibs/AudioBoardStream.h"
I2SStream out; // Replace with desired class e.g. AudioKitStream, AnalogAudioStream etc.
I2SStream out; // Replace with desired class e.g. AudioBoardStream, AnalogAudioStream etc.
Flite flite(out);

View File

@ -13,11 +13,11 @@
#include "AudioTools.h"
#include "AudioCodecs/CodecMP3Helix.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
URLStream url("ssid","password");
AudioKitStream i2s; // final output of decoded stream
AudioBoardStream i2s(AudioKitEs8388V1); // final output of decoded stream
EncodedAudioStream dec(&i2s, new MP3DecoderHelix()); // Decoding stream
StreamCopy copier(dec, url); // copy url to decoder
StrExt query("http://translate.google.com/translate_tts?ie=UTF-8&tl=%1&client=tw-ob&ttsspeed=%2&q=%3");

View File

@ -12,7 +12,7 @@ The output goes to a AI Thinker Audio Kit.
You need to install the following libraries:
- [Arduino Audio Tools](https://github.com/pschatzmann/arduino-audio-tools)
- [AudioKit](https://github.com/pschatzmann/arduino-audiokit)
- [Audio Driver](https://github.com/pschatzmann/arduino-audio-driver)
- [SAM](https://github.com/pschatzmann/arduino-SAM)

View File

@ -7,10 +7,10 @@
*/
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
#include "AudioLibs/AudioBoardStream.h"
#include "sam_arduino.h"
AudioKitStream kit;
AudioBoardStream kit(AudioKitEs8388V1);
SAM sam(kit);
const char* text = "Hallo my name is SAM";

View File

@ -7,10 +7,10 @@
*/
#include "AudioTools.h"
#include "sam_arduino.h"
//#include "AudioLibs/AudioKit.h"
//#include "AudioLibs/AudioBoardStream.h"
I2SStream out; // Replace with desired class e.g. AudioKitStream, AnalogAudioStream etc.
I2SStream out; // Replace with desired class e.g. AudioBoardStream, AnalogAudioStream etc.
SAM sam(out, false);
// Callback which provides the audio data

View File

@ -8,11 +8,11 @@
#include "SimpleTTS.h"
#include "AudioCodecs/CodecMP3Helix.h"
//#include "AudioLibs/AudioKit.h"
//#include "AudioLibs/AudioBoardStream.h"
NumberToText ntt;
I2SStream out; // Replace with desired class e.g. AudioKitStream, AnalogAudioStream etc.
I2SStream out; // Replace with desired class e.g. AudioBoardStream, AnalogAudioStream etc.
MP3DecoderHelix mp3;
AudioDictionary dictionary(ExampleAudioDictionaryValues);
TextToSpeech tts(ntt, out, mp3, dictionary);

Some files were not shown because too many files have changed in this diff Show More