('Hörspiel' is german for 'radioplay')
This thing is called HoerspielPi and you can see a video demonstrating what it does here
(video to be uploaded yet)
I have not practised playing piano for quite a while, please excuse my horrible touch in this video. But i hope you get the idea.
HoerspielPi is essentially a headless RaspberryPI 3, running Raspbian and sooperlooper. Sooperlooper is a live looping sampler application, it is open source and makes use of the JACK audio server.
HoerspielPi is not so much meant to make music (my piano skills are really rusty at the moment) but rather to make a live radioplay one day, where ambient atmosphere is built up by overdubbing loops.
I developed HoerspielPi because I did not want to by a dedicated looper hardware for about 100Euro or more, maybe even an additional midi controller. Instead everything is controlled by rarely used ranges of the piano that I have. In addition to the keyboard, this piano has only one turnknob I can use for MIDI. I use it for pan (or rec_thresh, maybe).
The whole thing is set up as a (crude, does not pass lintian cleanly, but works for me) deb package, which will install/remove all the systemd services, make a hoerspielpi the default target, give jackd the appropriate dbus rights (by drop-in file), enable SPI, make some performance settings, put a default midi binding, etc. It will install required python packages using pip in the postinst script of the package. This is not the way a package is supposed to do it, but I was not able to make it work otherwise.
Python3 is used as much as possible, except for mididings, which I was not able to install for python3.
1. Install Rasbian or one of its minimal derivates on the SD of your Pi 2. copy the deb package to it and install it. This step needs a working internet connection. 3. connect a soundcard and a midi keyboard 4. reboot.
The 8×8 led matrix displays the selected loop as a number. The top line shows a running pixel which is the current playback position in the selected loop.
The bottom line displays the record threshold, I just copied the log function from the sooperlooper standard gui. The record threshold changed in the same way for all loops, for simplicity, so this displays the same value for all loops (unless you use slgui at the same time).
Single illuminated pixels in the leftmost column, at the left of the number, indicate thestate of commands, in this order (from top to bottom):
pause, play, mute, record, overdub, substitute, multiply, sync
There is only one key dedicated to sync at the moment. This key is midi-wise bound to (many or all) of the sync-related settings of sooperlooper. That is, by toggeling 'sync', you also toggle 'playback_sync', 'relative sync', quantize='loop' and 'round'. As I am not experienced at all with live looping, this may change as I discover how it works best for me.
At the moment HoerspielPi lacks:
There are still about 4*6=24 pixels unused…