Reading MP3 Metadata with my Audio Tools Library

I have extended my arduino-audio-tools project to provide access to MP3 Meta Data. ID3 is the metadata container which is most often used in conjunction with the MP3 audio file format. It allows information such as the title, artist, album, track number, and other information about the file to be stored in the file itself. Both versions of ID3 (ID3v1 and ID3v2) are supported. I currently however only provide the information that is available in Read more…

Setting up WordPress on a Raspberry Pi with Docker Compose

Installation I haven’t set up a new WordPress instance for quite some time. But lately I wanted to run WordPress on a Rasperry Pi. I used a docker compose file to run all services is one shot with WordPress Mariadb and phpmyadmin. Unfortunately the official mariadb image does not support ARM which is needed by the Raspberry Pi, so Im using jsurf/rpi-mariadb instead. Here is the docker-compose.yml file: version: ‘3.6’ services: wordpress: image: wordpress:latest ports: Read more…

My ESP32-A2DP Library is now also supporting the Espressif IDF

The ESP32 Microcontroller from Espressif provides a Bluetooth A2DP functionality that can receive sound data e.g. from your Mobile Phone or send it e.g. to Bluetooth Speakers. I am providing a simple API for this in my ESP-A2DP project. Most users are using this as library in the Arduino IDE or sometimes in PlatformIO. Quite some time ago I made the project independent of the Arduino API, and now I took up the task to Read more…

Audio Encoders and Decoders for Microcontrollers

Unfortunately the available memory on Microcontrollers is quite restricted and we do not get very far by storing a (uncompressed) WAV file e.g. in program/flesh memory, so I started to look into compressed audio formats. On the desktop we can use the FFmpeg project which comes with a rich set of functionality. Unfortunately the situation is much more fragmented for Microcontrollers. I started to collect the relevant libraries and in order to make things simple Read more…

An MP3 Encoder for Arduino ?

Introduction I was looking for a MP3 Encoder Library for Arduino, but unfortunately did not find anything. So I decided to take this up and make LAME available as Arduino Library. LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL. It is considered as one of the best MP3 encoder at mid-high bitrates and at VBR. I used the latest current release version 3.100 which can be downloaded from Read more…

Debugging Segmentation Faults with Clang

I wanted to provide an easy to use Arduino Audio Decoding Library based on libhelix. Unfortunately the ESP32 was crashing w/o any stacktrace and on the desktop it was the first time I was running into Segmentation Faults. I tried to resolve the issue with the help of Google where I found the recommendation to use valgrind to debug the code So I used my Arduino Emulator to debug the code on my McBook and Read more…

Running an Arduino Sketch on your Desktop in Linux, Windows or OS/X

I was struggling with an ugly problem and wished it would be possible to compile and run or debug my Audio Arduino Sketch on my Desktop Computer. So I decided to release my arduino-emulator and extend my arduino-audio-tools project and provide an example how to compile and run it in Windows, Linux or OS/X. You just need to provide an Arduino Sketch as cpp file together with this CMakeLists.txt example file. Just replace the example Read more…

PWM Audio Output support for the “arduino-audio-tools” Arduino Library

In one of my last Posts I have described an approach how we can implement a simple audio output using PWM using the Raspberry Pico. The advantage of this approach is, that we can output audio to almost any GPIO pin, and that it can be used on any other processor which supports PWM. I have extended my arduino-audio-tools project to provide this functionality with a Stream based and a callback based API. The following Read more…

Text To Speach in Arduino – Final Conclusions

In my last couple of Blogs I was comparing the following Text To Speach (TTS) libraries which are available on Arduino: SAM Software Automatic Mouth TTS Text-to-Speech Library for Arduino Flite Festival lite I was hoping to find some TinyML based implementations, but so far without success: I put this on my to-do list for some long cold winter days. As a conclusion we see that the sound quality is directly related with the memory Read more…

Text To Speach in Arduino using Flite

In my last Blogs I looked at SAM and Arduino/TTS. I was putting high hopes in CMU Flite: CMU Flite (festival-lite) is a small, fast run-time open source text to speech synthesis engine developed at CMU and primarily designed for small embedded machines and/or large servers. Flite is designed as an alternative text to speech synthesis engine to Festival for voices built using the FestVox suite of voice building tools. I was extending the project Read more…