Hi there. I am thinking about building a MIDI controller for my beatbuddy and my next gadgets. The initial idea is to control the tempo with an expresion pedal… (after some hours reading I think that it is the best way to change tempo between parts songs) but i am sure that at the end i will use it for future needs.
I have seen that there are some arduino proposals in the forum and no one Rapsberry pi midi controller alternative… I am software developer and Linux Sysadmin, so I think it will be easer for me to use a Raspberry with a Linux O.S. and high level libraries.
there is some technical reason why it is better to use arduino?
I think the main reason is that Arduinos can be cheap and small. Seems like you can buy an Arduino Nano for less than £4 now. Easy to build into a small format Midi controller, that can be powered by your pedal board PSU.
I suppose you could do the same with a Pi Zero, but I think you would be paying for extra circuitry you don’t need e.g. SD card
There’s no technical reason why Arduino is ‘better’, so go ahead and use whatever you prefer - however, in my opinion, the Raspberry PI is overkill; MIDI is simply streaming serial data.
For me, I just wanted to prototype something fast, throw it in a box and put some switches on it. There’s plenty of sample MIDI projects out there for Arduino, so it took no time at all to put together.
My limitation is that I have no experience with low level programming development neither circuitry.
In any case, yesterday, after connect and control beatbuddy from my linux, I thought that use Raspberry would be a great advantage. With Raspbery I could develop extra beatbuddy software related…
For example We could develop a multilayer/channel looper perfectly synched with beatbuddy for less than 40€… (i have seen some python-software looper examples in inet, so I could rewrited it for the rapsberry).
I think that it will be possible too to develop a song manager interface in the rapsberry in orther to has major control… for example control diferents tempos for diferent song parts, sync diferent BB Song parts with diferent channels in the looper, sync the start and the end…
Loopers are significantly more complicated than you may think. Latency sure is one problem, but one of the more challenging problems is dealing with drift and syncing with the MIDI clock.
A MIDI clock is stream of pulses that subdivide a beat (24 to be exact) and BPM is calculated by the distance between these pulses. I don’t want to get too technical (and honestly, it’s probably beyond my skillset as well), but ultimately you have to timestrech the audio in realtime, preserving pitch without clipping or causing artifacts. What you pay for in a good looper is the software.
I have not experience with audio development… and probably a looper software is more complex than I thought.
But… I think that there was software in orther to execute a Midi Clock over Jack daemon… And I suppouse that there are Jack libraries for python… so this part will be transparent for de cheap/easy/simple python looper.
The other problem is the audio quality in real time, latency, pitch… I have no experience with this parts.
I have never work with puredata, but I think that it is installable in a raspberry. It seems that it can be synchronized with a midi clock, and I think puredata can be used to make loopers and to integrate video and audio realtime sources.