ARM-based Audio Processing

Participants: Francis Paris
Joseph Thibodeau (collaborator)
Avrum Hollinger (collaborator)
Marcelo M. Wanderley (supervisor)

Funding: N/A

Project Type: Undergraduate project.

Time Period: January - April 2010 Status: Completed

Audio processing over an ARM platform

In the original proposal, the project goal was to develop a programmable multi-effects for guitar, using the power of ARM to process real time effects. These could be built using a plug-in structure, similar to VST or Audio Unit, then uploaded via USB from the computer. However, this first stage of development presents another reality. For the moment, a great deal of energy has been spent learning platforms such as: CrossWork (IDE), STmicroelectronics API, and ARM. At the same time, these preliminary steps present a good idea of what could be done. ARM microcontrollers are powerful, much more so than any version of the Arduino, plus they are affordable and fairly easy to understand, once the API is mastered.

Right now, it has been possible to compute a small reverberation algorithm with good results. However, this does not demonstrate the full power of ARM. Time will tell us what may or may not be done using this architecture.

Audio Examples

Note: The following examples are recorded in mono.

Report Introduction:

Developing for microcontrollers is not an easy task. Even if these kinds of tools simplify the hardware design and implementation of algorithms, one does have to get familiar with the desired platform and the API, if available. Moreover, the approach to programming software as opposed to low level or hardware is similar but not exactly the same. For instance, shifting a register instead of using multiplication is not to be underestimated when memory space and speed are an issue. Then, although hardware design is minimized, there will almost always be some external electronic devices interfacing with the microcontroller. This implies at least a basic knowledge of electronics.

The following project report describes the development of simple audio processing for an ARM platform, using a Cortex™-M3 core. The report has two main goals: firstly to describe the project, the results and further progress that can be made, and secondly to help people get started with ARM based µcontroller in audio applications. This paper does not intend or claim to be a full and complete reference, but it will hopefully provide a starting point for those interested in the subject. […]

Download the complete report and access all files:

Contact Information