For those of you longing to mutate beats like so many promiscuous Petri Disk bacteria, programmer Bret Truchan is a kindred spirit. Bret has created a series of instant experimental classics for the Nintendo DS: glitchDS, a cellular automaton music sequencer, repeaterDS, a visual sample mangler, and cellDS, a grid-based sequencer you can script in Lua.
The Nintendo DS is portable and cute, but it’s not normally open to running software without the Nintendo Seal of Quality. (Insert snickers here.) To run Bret’s software, you need specialized hardware that fools the DS into running software. The DS isn’t entirely stable when it comes to things like timing, either, and it doesn’t have the flexibility of computers.
Enter the netbook. The netbook is nearly as portable, completely open to running whatever you like on Windows or Linux, and boasts easy USB connectivity, a big screen, and … well, you know, all the things you like about laptops. When it comes to musical productivity, much as I love the DS, the netbook has a whole lot going for it, and still has that added ultra-portability that makes you feel you can make music anywhere.
Bret recently made the jump to desktop software with Quotile, a step sequencer you can live-code for mighty morphing beats. Quotile is cool, but for many, glitchDS was the star. Now you can run glitchDS anywhere – just the job for a laptop you were going to retire, or that new netbook.
Not Sequencing, Glitch Sequencing
Glitch-sequencer is a sequencer, so it needs to either talk to a software synth or external hardware. Bret likes to hook it up to his machinedrum and monomachine. Our own Handmade Music event was the (unofficial) first public outing of the software, and included an HP netbook and the machinedrum, which makes for a sweet, mobile combination.
Despite the appearance of a grid and sequences of levels, this isn’t an app that works like a conventional sequencer. Here’s the basic breakdown:
- Cellular Automata via a seed + playback grid
- Trigger and value sequencers to determine which MIDI events the organically-generated mutations produce
- Pattern length, clock division settings for setting metric values
- Sync settings
There are two grids, a “seed” sequencer that initializes a starting pattern, and a “playback” sequencer that provides feedback and control of the pattern that plays as the software runs. These two grids operate via principles of Cellular Automata, specifically the John Horton Conway Game of Life model, a evolutionary grid “game” that has been popular in computer music for its simplicity and the way it becomes animated in time. (The Game of Life is a “zero-player game,” which I suspect is probably the only truly fun way to play Monopoly.)
The playback sequencer is just a set of cells. To determine when each cell actually trigger events, you use a neat, color-coded trigger sequencer, which, as it sounds, is what calls MIDI events. Using the value sequencers for each color-coded swatch, you determine what that message is. In fact, if you wanted, you could use glitch-sequencer to control only effects parameters or envelopes instead of notes – or visuals, or anything that can be triggered by MIDI.
As you’ve got seeded grids doing their organic, unpredictable thing, you’ll likely want a little bit of control, too, and you have mechanisms for that. There’s a pattern length grid which determines pattern length in a more conventional way, plus a clock division setting for setting the master rhythmic division. There’s also a snapshot setting, which itself is presented as a grid so you can make little glitchy song arrangements by triggering different settings.
Where all of this gets fancy is the additional trigger settings. In addition to the MIDI event values, you get:
- Gate percentage for randomized probabilities
- Clock division
- Loop length
- Quantization for pitch (none, Ionian, Phrygian)
You can also manage the color-coded swatches as layers and mix their volume independently.
My one-line version of the manual: with that many parameters, screw around a bit and you’ll get something pretty unpredictable and glitchy.
This concept is related to other attempts to do similar, Game of Life-based sequencers, particularly Lazyfish’s Newschool for Reaktor, and (applied to an effect) Audio Damage’s Automaton. Because tiny implementation details can have a big impact on the resulting sound, though, it’s always nice having a new take on this, and I think Bret’s creation is unique in its ability to tightly control the sequence or completely screw things up with a lot of parameters.
It is all built in Processing, the free, open-source Java-based coding environment. I’m hoping to get a scoop on some of the experience Bret had with timing and Java, so stay tuned. Processing coders, the MIDI library Bret used is themidibus. There’s a trick to getting MIDI working on the Mac thanks to the fact that Apple decided to stop supporting a standard Java API in their implementation (doh!), but once you hurdle that, you’ve got Mac + Windows + Linux support – and this could be ported to Android, too, with a little work.