dooper - a SooperLooper client in Python

Discuss using the OSC interface to control SL

Moderator: jesse

Post Reply
scott
Posts: 2
Joined: Sun Apr 16, 2023 2:23 pm

dooper - a SooperLooper client in Python

Post by scott »

Hi all,

First off I just want to say thanks to @jesse for creating and sharing SooperLooper. It is truly one of the most usable and enduring open source audio applications to ever exist. I say that as someone who has tried most of the major free audio projects that run on Linux as well as many of the more obscure ones. The number that I'd trust on stage with me can probably be counted on one hand, and SuperLooper is one of them.

So the short story here is that I created a client for SL in Python. It's called dooper and you can find it on GitHub. It uses OSC for bidirectional communication, so you can control the looper and also get automatic updates about the looper state within your code. I hope someone else can find it useful. If you do, please let me know :)

History and motivation

The longer story is that I've been using SooperLooper for at least a decade. Back in the beginning, I needed a way to control it with my feet. I found a guide somewhere on using a computer keyboard with most of the keys pried off as a MIDI foot controller. Rather than use MIDI, I wrote a Python script that intercepted the key presses and sent OSC to SL.

That was good and well for long time and I created some new versions that also took some MIDI input for things like controlling levels. Eventually I wanted to take my laptop out of the equation and move to a screen free setup. I got an Akai APC mini to be my new "GUI"—by sending MIDI back to it, I can change the button colors and make them blink to reflect state in the looper. This required implementing more of the features of the OSC API in my code, and at some point I decided to just make a (more or less) complete client.

I swapped my laptop for a Raspberry Pi and also swapped the old keyboard foot controller for a transcription foot pedal I picked up at a local thrift store. This setup works really well. It's managed by a script that uses dooper, along with another small Python library I wrote for handling button input logic called pressed.

Being able to stitch together different input devices, whether or not they were ever designed for music, along with different software (to provide a click track or effects, for example), into a coherent looping instrument based on SooperLooper still seems magical in a way.

Future plans

I finally came to write this message as I'm returning to my live looping setup and thinking about how to improve it. As I'm sure most people who would find themselves reading this post can relate to, it probably won't ever really be "done".

In the years of using SooperLooper and also playing with friends' setups based on commercial software or dedicated hardware along the way, I've naturally found myself thinking about what the next steps in the evolution of the musical looper might be. Realizing those ideas in one way or another is what I'm working on now. Maybe one day I'll have something more to share will all my loopy friends out there ;)
jesse
Posts: 554
Joined: Sat Sep 06, 2008 9:46 am
Contact:

Re: dooper - a SooperLooper client in Python

Post by jesse »

That's very cool! I'm happy to hear at least a few people still use SL :)
scott
Posts: 2
Joined: Sun Apr 16, 2023 2:23 pm

Re: dooper - a SooperLooper client in Python

Post by scott »

Yeah! It seems that there is a dedicated, if small, group still using SL :)
Post Reply