ESpeak-NG for Arduino: Setting the Voice

It was quite a challenge to convert eSpeak NG to an Arduino Library. In the meantime I managed to publish a first round of error corrections. The eSpeak NG is a compact open source software text-to-speech synthesizer for Linux, Windows, Android and other operating systems. It supports more than 100 languages and accents. It is based on the eSpeak engine created by Jonathan Duddington. For each language (=voice) you can also set a voice variant Read more…

Text to Speech for more then 100 Languages on an Arduino

It was quite a challenge to convert eSpeak NG to an Arduino Library. The eSpeak NG is a compact open source software text-to-speech synthesizer for Linux, Windows, Android and other operating systems. It supports more than 100 languages and accents. It is based on the eSpeak engine created by Jonathan Duddington. Language Specific Configuration Files Using a foreign language is quite easy: You just need to load the language dependent files and set the corresponding Read more…

ESpeak-NG: The difficult journey to an Arduino Library

I converted eSpeak NG to an Arduino Library. The eSpeak NG is a compact open source software text-to-speech synthesizer for Linux, Windows, Android and other operating systems. It supports more than 100 languages and accents. It is based on the eSpeak engine created by Jonathan Duddington. eSpeak NG uses a “formant synthesis” method. This allows many languages to be provided in a small size. The speech is clear, and can be used at high speeds, Read more…

FreeRTOS-addons a C++ API on Arduino

Standard FreeRTOS uses C based API. However I prefer to have some lean C++ abstractions. That’s when I discovered the freertos-addons project from Michael Becker. I have converted it to an Arduino Library, so that it can be used e.g. on an ESP32. I also added a new Task class (which is a subclass of Thread) that allows to pass a function pointer in the constructor. For the ESP32 we support the xTaskCreatePinnedToCore() method by Read more…

Guitar Effects Controlled By A Web GUI

Quite some time ago, I have demonstrated how to build some Guitar Effects with my Arduino Audio Tools. In the last couple of blogs, I showed how to build an interactive web dialog with my TinyHttp library. Finally it is time to put the two approaches together into one single sketch to build some Audio Effects that can be controlled via a html screen. I am using an AudioKit to simplify the hardware setup. The Read more…

TinyHttp – Storing Html on an External Server

In my last Blog, I was showing how we can process html forms with the Arduino TinyHttp library. In the examples we were embedding the html into the source code. Sometimes however it is more convenient to store the html as files on a dedicated server: In the following examples we use Github for this. Forwarding In this example we just forward to an external URL. static Url forward_url(“https://pschatzmann.github.io/TinyHttp/app/webservice-example.html”); server.on(“/”,GET, forward_url); This external html page Read more…

TinyHttp – A simple Html Form & Using Ajax

Today I was playing around with my TinyHttp project: I was investigating how I can drive multiple parameters of a guitar effects sketch by using a web dialog. To provide some information via html is simple. It gets a little bit more complicated if we want to support Html Forms, so I decided to extend the project a bit and provide some examples. A Simple Form Example Here is the link to the source code Read more…

Arduino STM32 – Fast PWM Audio Output

I was measuring the speed of the analogWrite() on an STM32 Black Pill on some PWM pins and I was getting a result of around 48697 samples per second. This is enough for one line of hifi data: but I wanted to provide at least 4 channels! This is not good enough: so I generated some new code with 4 PWM output pins using the STMCubeIDE and measured how many duty cycle updates we can Read more…

FFT Speed on Microcontrollers

In my Arduino AudioTools I am providing an easy API with different implementations for Fast Fourier Transform (FFT). This is a clever algorithm that can extracts the frequencies from an input signal. So far I never looked at the speed, so I thought it might be interesting to get to know the numbers. Setup I was using an ESP32 and an STM32F411 Black Pill for my tests. The FFT was executed for a length of Read more…

STM32: Creating an I2S Arduino Library using the Cube IDE

The STM32 Cube IDE supports all features of the STM32 microcontrollers, but it is quite difficult to use. The STM32duino is the official Arduino implementation from STM, which is easy to use – but provides only the basic functionality! I was missing I2S in Arduino, so I was wondering, what it takes to convert the code generated from Cube to an Arduino Library for my STM32F411 Black Pill. Unfortunately I did not find any guidance Read more…