SonicPi Commander is a software bridge that executes SonicPi code snippets using a MIDI controller. Designed for a Novation Launchpad, SonicPi Commander blurs the lines between livecoding, controller scripting, and sampling.
The SonicPi Commander interface is largely unassuming, consisting of a grid of 8 x 8 freely editable text fields that mirror the Launchpad's layout. Pressing a pad on the Launchpad executes the code in the corresponding text field. With minimal code, one can easily program a pad to trigger notes, samples, chords, or even loops à la Ableton Live. However, why stop there? With the ability to edit code, practically any behavior can be created, not just those found in traditional music software. How about, say, playing a random chord when a pad is pressed? A sample that gets faster every time it is played? An effect switcher that cycles through effects? Why not program all of the above, in real time? SonicPi Commander is simultaneously an instrument and a blank canvas; it is up to the user to code, customize, and ultimately, perform.
SonicPi Commander's interface is written in HTML5. However, most of the work lies under the hood. Connecting the Launchpad to SonicPi Commander using WebMIDI was fairly straightforward. However, connecting SonicPi Commander to SonicPi through Open Sound Control involved digging my hands deep into both SonicPi and OSC. After getting things in shape, I ended up contributing my fixes back into the SonicPi codebase.
Learning Focus: Livecoding, SonicPi, Open Sound Control
Media: Interactive Music System, Controller Interface
Software: Browser, SonicPi, HTML5, JavaScript, Ruby
Hardware: Novation Launchpad
Date: October 2016