Groovebox library for Arduino Due

Hello all,

I wrote a library to use Arduino Due as synthesizer and sampler, with audio 12-bits / 44kHz. No shield needed. The synthesizer is based on DDS synthesis. You can choose to use several oscillator per voice. Sampler reads one-shot samples on SD card. There is also a filter.

I post it because maybe someone can find it useful.

Here is the link to guithub page : https://github.com/Gaetino/Groovuino

Usage

My first goal was to build a groove box, that's why I did this library. You can see a video of a simple version here : http://groovuino.blogspot.com/2013/05/groovuino-groove-box-demo.html

But it must be possible to complete a lot of projects with this library, for exemple :

Drum expander for electronic drums Polyphonic synth Wavetable synth Arduinotron ?? (yes, why not) loop recorder multi-effect pedal etc...

Documentation

I put some comments in the library code, some explainations in the groovuino blog, but don't hesitate to ask questions if you are interested in the library, and tell me where there is a lack of explainations. I spend a lot of time on this project since weeks, so I no more realize what is comprehensible or not.

Future devs

I have a long list of future devs : . simple effects (disto, bitcrushing, waveshaping, compression) . delay effect (using the writing on SD card. I hope it will be quick enough) . loading all adventurekid waveforms on SD card to select them with arduino => 3000 waveforms synth ! . playing loop and not only one-shot samples . Using 12-bits ADC of Due to have audio input (and recording samples with a microphone for exemple) . Pitch the samples (not so easy !) etc...

Limitations

For the moment, I can play up to 10 oscillators at a time, and 4 voices of samples. EDIT : It can play now more than six samples at a time, after optimizing SD card access.

I'm not a very good C++ developper, so the library can be really optimized I think.

For project ideas and future improvements, any ideas are welcome For code and exemples, any help is welcome XD.

Thanks for your attention,

Gaétan

Impressive! wished I could come close to that one day ....

I can ensure you that it’s not very hard to do (once the library is made). The hardest part was to build the case with plexy. (You can see it’s not very nice)
Maybe one day we’ll all have a 3d printer at home and it will be so easy…

Greetings Gaith! I have a question- I was trying to load up and play with your “monosynth” example that you posted on your github along with the Groovuino code. I can’t get it to compile correctly- do you have a more up-to-date version of that code?

Or, can you share your code that you used to make that demo video with?

I’m very interested to play with this code and I think your examples sound awesome, but I’m a little inexperienced with this and could really use a working example to get started.

Thanks!

Hi, Thanks for your interest. Sorry, the library changed a lot since I had written this example, so it didn't work anymore. I just made some changes, and now it will work. You'll have to load again the library from guithub, and copy the new code I updated in my post. But be aware, this example requires the groovuino hardware. (buttons, LEDs, pots...) The samplers examples are more easy to make it work, it only needs an SD card reader.

If all this examples seem too much complex to you, you can give me an idea of a simple example synth to build (1 pot for pitch, 1 pot for filter, for example), and I will post that. It will surely help other people.

Hello again Michaeluna. I just published a new post on my blog here : http://groovuino.blogspot.fr/2013/08/simple-mono-synth-with-groovuino-library.html

It's a very simple example making a monosynth with 4 potentiometers. I hope it will be a good example to start with the groovuino lib.