You can dream of something, you can complain about it on forums, or you can do it.
Sneak-Thief, aka Michel Morin, is a doer. And what’s great about him is that he doesn’t just produce geeky, obsessive hardware – he has the musical chops to match. He can wrangle his own hardware, coding in C, but he can also make people dance. Designing hardware isn’t just an exercise in doing something because he can – it’s part of his musical expression, the line between his ideas and reality. Talking to Michel about what he’s done, he really focuses on his musical needs.
I’m thrilled to host Michel’s performance this Saturday at Open Source Music in Berlin, as part of Retune Conference. For all of you out in CDM-land, though, we get to groove to his musical mix and get some insight into his MIDIbox-based hardware. Let’s start out with some music – a live mix in Rio, and an original track Michel says is a “joke” (but I like jokes):
Here’s how Michel sums up the aptly-named Sneaquencer:
For years I’ve been dreaming of a live-performance sequencer that would give me the power and flexibility to perform music with a perfect balance between the ability to control, improvise & automate. Drawing heavily on sequencing paradigms developed at Yamaha (16 sections with multiple tracks per section), I built and programmed my own.
Developed using MIDIbox boards
and programmed in C.
2 independent sequencers, one of which can be slaved to the other.
Each sequencer will be able to load one “song” at a time. A song is chosen by the push-button rotary encoder.
16 sections per song
6 tracks per section that can be muted or unmuted with the track-mute buttons
256 measures per track – this is where this really differs from the Midibox Seq
So, that’s the technical side. But what’s this about musically? As Michel tells it, it was designing around his own conception of how musical performance could work. Since it’s not immediately obvious from all those buttons and knobs, Michel tells CDM how he goes about preparing a set:
It’s a pretty straightforward system: I break down my finished songs into up to 6 stems, eg. drums, bass, melodies, vox, fx.
Then each song is divided into up to 16 sections. All samples are loaded into any sampler, hardware or software. I use NI Kontakt because of its great scripting language and direct-from-disk streaming.
This lets me pick any part of any song and be able to play it immediately with no load time or latency. So I could choose, for example, the drums from the chorus of one song (on Song A of the Sneaquencer) and play melodies from another track on Song B. All mixed and matched on the fly, and tempo-synced using a simple but effective Kontakt script that changes the pitch of the song to keep in time…. because I hate what almost all realtime time-stretching algorithms do to drum transients.
The Sneaquencer does for his live sets what software like Ableton Live does, but with his own twist. Michel elaborates:
When it comes to being able to randomly playback material from a large sample set, Ableton Live has suffers from a linear sequencing paradigm. In other words, if you have a lot of material grouped into “songs” and you want to be able to instantly select and play clips, you’re screwed. I see my friends regularly banging their heads against these limitations: you either have to line up all your clips groups beforehand or stop everything to load new material.
The Sneaquencer solution is extremely elegant. It consists of two independent midi pattern sequencers, each with up to 16 sections and 6 tracks – including track mutes, tempo controls and knobs for controlling effects.
When I prepare a song for live performance, I divide it into up to 6 stems for kick, percussion, bass, melodies, vocals and effects. These 6 stems are all split in up to 16 sections, e.g. intro/verse1/chorus1/verse2/chorus2/break/chorus3/outro and so forth.
I chose Native Instruments Kontakt as my main sampler because it has direct-from-disk streaming and a nice scripting language. Each song is made up of samples that are grouped as an “instrument” which can be instantly loaded with a midi program-change command. I currently have about 60 songs loaded in Kontakt with a whopping 10gb of samples. All have midi-controlled effects mapped to the various stems, e.g. low and hi-pass filters, chorus, delay, phaser, flanger, bitcrusher.
On the Sneaquencer, I can choose any song and it will instantly begin playing. Since it has two independent sequencers, I can mix and match everything on the fly: “Oh how about the drums from this song mixed with the melodies from this one? Or the vocals from this other track mixed in with this track’s bassline?”
It’s a live performer’s paradise – I can change directions any time and mix and match material to create unique and reactive live sets. The best part is that the laptop running Kontakt stays closed the whole time since Kontakt is loaded automatically on boot.
Everything is tempo-sync’d thanks to some nifty Kontakt scripting which matches everything using simple pitch-bend commands… like when you beat-match a vinyl record. These is great because you don’t have any nasty realtime time-stretching artifacts that turn percussive transients into a stuttering mush.
The “open source” part of this is that the code is all available for your perusal. If you’re learning C programming for hardware, you can gain some lessons from Michel’s creation – or, even if your knowledge is limited, you can have a quick glance. The code is available below. You can also read up on the process that led to Sneaquencer’s creation:
Stay tuned; after the event Saturday, I will follow up with the artists.
If you’re in Berlin… our Open Source Music party/performance is:
Retune Conference runs from 26th to 28th October.
Open to all (not just Retune attendees); 5 EUR suggested donation.