Embedded Audio Experiments
A collection of very basic examples in embedded audio processing. The code in this repository is a result of my learnings as I explore the field of embedded audio. Therefore, code in this repository is not at all refined and only exists to illustrate the basic concept of its respective topic of interest. It should never be used for production software. I supplied the code here in hopes that it will interest you in embedded audio and help you get started. Some of the concepts covered may also have a corresponding blog post which goes into a bit more detail. Feel free to copy and/or modify the code for your own purposes.
The code in this repository is targeted for the Silabs Pearl Gecko PG12 Starter Kit. To run this code, the easiest way is to download Simplicity Studio, create a new project and copy and paste the code into your project. Some tips for creating a new project can be found here.
Note that you will need an appropriate hardware setup to connect audio input and outputs.
This repository contains example code for the following topics:
Silly Audio Processing 3
An example that configures the ADC, Timer and DAC to read in an audio sample and directly feed it to output. No processing is done on the sample.
Audio Passthrough with Buffers
Silly Audio Processing 4
The same as the Audio Passthrough example above but using a system of buffers to create additional processing time.
FIR Low Pass Filter
SIlly Audio Processing 5
Implementing a simple time-domain low pass Finite Impulse Response Filter
Delay Lines and Comb Filters
Silly Audio Processing 8 Implementing a schroeder reverberator
Additional Links and Reading Material
Throughout my embedded audio explorations, I found the following resources helpful. I hope you find them useful as well:
- R.G. Lyons, Understanding Digital Signal Processing, Prentice Hall, 2010
- Introduction to Digital Filters, J.O. Smith
- Physical Audio Signal Processing, J.O. Smith
- Spectral Audio Signal Processing, J.O. Smith
- Designing Audio Effect Plugins in C++, Will C. Pirkle
- The Scientist and Engineer's Guide to Digital Signal Processing, Steven W. Smith
- The Audio Programmer