Close

From interpreted to compiled software

A project log for The Airdrum - Make music while moving

Auditive and visual feedback with minimal effort in a modular package for everyone!

alessandro verdiesenalessandro verdiesen 08/22/2019 at 15:250 Comments

We discovered that our software is to slow when its interpreted by the Raspberry pi in Python. We have some reasons to rewrite our program in C. 

Request data from panels (arduino's)

The recent version uses python scripts to get the added or removed panels (i2c adresses) in a loop by using the i2cdetect library. This library is written in C.

Music generation

Sonic Pi is used to create the sound currently. Sonic Pi is a very cool application but it's quite a overkill for The Airdrum. That is why we've chosen to continue with Fluidsynth. Fluidsynth has great API documentation and is able to generate sound from MIDI like objects in C.

http://www.fluidsynth.org/api/index.html

Fluidsynth is great to be used by The Airdrum when we are adding the synthesizer functionality. It is also written in C. 

It will be quite some work to combine both libraries into a single project, but it seems that this will be the best choice to create The Airdrum as we have in mind. This will enable The Airdrum to reach the speed that is needed to follow the end-users movement.

https://github.com/FluidSynth/fluidsynth

https://github.com/mozilla-b2g/i2c-tools

Discussions