SooperLooper Display on IPhone

Blog Post: 

I've been working on a new live setup which uses SooperLooper - the bad ass looping software for OS X and Linux.

I can operate the thing with my footboard, but I still get confused about loop position and which loop is selected. After a night of research and a night of programming I came up with a solution which would let me leave my laptop off to the side - safe - and still see the relevant information during performance. Here's a video of me recording some loops into sooperlooper with the monome and pages app - and then the pudding.

SooperLooper Displaying on IPhone with processing and TouchOSC from sam_square on Vimeo. I've used Processing and the oscP5 library to 'intercept' OSC messages, do some computations and send them off to the IPhone (running TouchOSC) over a network. It shows loop position of the four loops and which loop is currently selected for modifications. I do have a few years of programming knowledge, and learned java in school, so I cut and pasted examples form the P5 docs. Most errors were due to data type errors and capitalization(float is not Float, even though it lights up?). Here are the basic steps: Register processing with SL to get updates on loop length, loop position and the selected loop Listen for incoming messages and store the loop length in a variable. It only comes in once in a while. The loop position is constantly coming in. These measurements are coming in a floating point number which equates to seconds. Take these two values and calculate the loop position between 0 and 1. If a 4 second loop is at second 1 in the loop - I need to send .25 to the fader in TouchOSC on my IPhone. Update the toggle buttons in TouchOSC if I get a new value. I probably do this inefficiently by shutting them all off and then turning the active button on. I've attached my script file - it will get you started. You'll need to substitute your SooperLooper Port number and your IPhone IP or network name. You can set the network name by naming it in iTunes and then adding .local to it - ie my phone is flyawayphone.local. It is lacking a few features - it doesn't grab loops until they are actually recorded. That means preexisting loops don't animate. Also you need to have your max # of loops setup on start of the processing script. This could be fixed registering an add loop event. I'll add these features in soon.