I did a complete rewrite of my Live Looper Script for Midi devices.
The former version had at least two severe disadvantages (besides the Spaghetti code):
- it was device specific. I now did my best to provide a device independant logic and implementation; so in principle you should be able to use any Midi device (for full functionality you will need two toggles/pads and 3 rotary controllers (volume, lpf and hpf)). I did tests with the Beatstep and the Minilab (both Arturia). Strangely the rotary controllers of the later one show some anoying latencies. The Beatstep rotary controllers work as expected, in real time. I will also have to solve the problem of feedback going back to the controllers (such as a blinking pad while recording, which the Beatstep already does).
- The second, really annoying flaw was, that I had a latency while using the live looper (playing live I found that the replay is slightly delayed). I found out that this had to do with my initial implementation, which involved running some of the code via the
run_filecommand. As soon as I put all the code in one file/buffer (which has some other advantages) I got rid of any latency concerning the recording and playback. That is also the reason why all the configuration resides in one and the same file; I would have liked to have a separate configuration file for the device specific variables (to be able to switch devices with just one line of code) but I again got the latency issue; of course I can not exclude that it is my poor coding rather than due to the fact that Sonic Pi has to read a file from the harddrive.
I hope the script is well documented so that you can try it out - if you are interested at all.