ESP32 Sound to a Web Browser

I was wondering what the easiest way would be to provide sound generated on a ESP32 to a Web Browser: I got distracted when I googled the topic “music streaming” and everything suddenly turned out to be very complicated. So I got back to my original idea: Just change the Server from the examples directory to return something that a Web Browser would recognize: The simplest audio file format for this purpose is WAV. It’s Read more…

Arduino Raspberry Pico – Looking Under the Hood

Today I had a look under the hood of the Standard Arduino implementation for the Raspberry Pico. I was surprised that they did not base their work on the Pico API but they based their work on ARM Mbed. Here is a blink example using the Ticker from the Mbed API: Mbed Ticker #include “mbed.h” using namespace mbed; Ticker ticker; DigitalOut led1(LED1); void blink(){ led1 = !led1; } void setup() { ticker.attach(&blink, 1); } void Read more…

You are really ugly but your face is pretty: Living in #ifdef Hell

I took the chance to look at the guts of one of my favorite projects: Mozzi. The major starting point is MozziGuts. Just tried to understand what code is relevant and my head started spinning… There is even an expression for this: #ifdef Hell. To make things more comprehensive, I thought it might make sense to split this up into different implementation files. I tried to do this manually but soon got so confused that Read more…

Using the Mozzi Sound Generator with a Bluetooth Speaker

Im my last Blog I have demonstrated how we can use some simple Sound Generator with my Arduino Audio Tools library. I spent a small effort to integrate Mozzi and the result looks quite promising. Mozzi brings your Arduino to life by allowing it to produce much more complex and interesting growls, sweeps and chorusing atmospherics. These sounds can be quickly and easily constructed from familiar synthesis units like oscillators, delays, filters and envelopes. The Read more…

Stream support for my “Arduino Audio Tools” Library – A Sound Generator

Im my last couple of Blogs, I have demonstrated how we can use the low level API of my Arduino Audio Tools library. Currently I am busy working on a high level API using Arduino Streams. I did not commit my latest changes yet but I want to take the opportunity to share some more examples: We all know the Arduino Streams. We use them to write out print messages and sometimes we use them Read more…

Back to Basics – Sampling Audio with the ESP32

In this Blog I am giving a little bit of background on how the sampling of analog signals has been implemented in my Arduino audo-tools library. My initial approach was based on the Blog from Ivan Voras using timers and interrupts. But there is a much better way by using the extended ESP32 I2S functionality: You can use this to sample an analog signal (e.g. from a microphone) at very high speeds and I finally Read more…

Stream MP3 Files to A2DP Bluetooth using the ESP8266 Audio Library

The processing of files with the help of the ESP8266Audio is a little bit more involved. However it allows to process different audio file types from different sources. Please consult the project for further details. Streaming of MP3 Files on a SD card The Sketch Here is the Arduino Sketch that you can use with an I2S audio source: #include <SPI.h> #include <SD.h> #include “AudioFileSourceSD.h” #include “AudioGeneratorMP3.h” #include “AudioOutputWithCallback.h” #include “BluetoothA2DPSource.h” #include “AudioTools.h” using namespace Read more…

Bluetooth A2DP – Streaming of Files on a SD card

In my Arduino ESP32-A2DP library I am providing some very simple examples that show how to transform the ESP32 into a A2DP source and transmit sound to a Bluetooth Sink (e.g. some Bluetooth Speakers). I had quite a few questions on how to do this with files, microphones and I2S as input. So I started a small “glue” project which provides some additional audio tools. I plan to provide plenty of additional examples and some Read more…

Bluetooth A2DP – Streaming from an Digital I2S Microphone

In my Arduino ESP32-A2DP library I am providing some very simple examples that show how to transform the ESP32 into a A2DP source and transmit sound to a Bluetooth Sink (e.g. some Bluetooth Speakers). I had quite a few questions on how to do this with files, microphones and I2S as input. So I started a small “glue” project which provides some additional audio tools. I plan to provide plenty of additional examples and some Read more…