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.

Bret’s mobile rig in action at Handmade Music. Photo: Jason Schorr.

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.

A Handmade Music attendee gets her hands on the glitchy goodness. Photo: Jason Schorr.

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.

  • http://xfader.com regend

    Shout out to everyone using an MSI Wind running OSX for netbook mobile music fun!

  • http://www.quotile-sequencer.com Bret

    Mac users need to make sure that they have Java 1.6 installed. I don't think that it is installed by default. Also, check out Dserial Edge: http://www.electrobee.com/dserial-edge-p-45.html Wow!

  • http://www.createdigitalmusic.com Peter Kirn

    Actually, that's a good question… I think Java 6 is now offered as an update by Automatic Update, but no, even on Leopard I think you have 5 by default. (Are you using Java 6 features, really, Bret?)

    DSerial Edge — hawt. AND it runs homebrew?

    Peter

  • http://www.glitch-sequencer.com Bret

    Peter, I started using Java 6 features by accident while fine tuning some of the array functions. For example, I started using copyOf(), which is discussed here: [http://www.developer.com/java/data/article.php/3680241] I think that I also use the array fill() function. If lots of people have problems with Java 1.6 on the Mac, I'll roll out a version for older versions of Java. Thanks!

  • http://www.createdigitalmusic.com Peter Kirn

    Java 1.6 for the Mac is a substantially more modern implementation of the Mac JDK, so I say go for it … also, I can't recall if Java 5 works, but I believe Mac users will need to upgrade to Java 6 for JavaFX.

    And it also sounds like that may have a significant performance impact, so carry on. :)

  • http://twitter.com/dmlandrum Darren Landrum

    2009: the year I finally learn Processing?

    I'm beginning to wonder if Processing might be a good way to write quirky softsynths, if we could somehow pair it with a rocking DSP engine. Any ideas? Csound comes most immediately to mind.

  • ArmandoC

    Hey Peter,

    I'm at work so I'm not able to really dig in and do some research. But this is off the top of my head. I was thinking about an Asus EEE 901, installing a HD into it since it supports one, then install a touch panel for less than 100 bucks… you think it would be powerful enough to glitch out touch style? A bigger touch DS if you will :P … thoughts?

  • https://twitter.com/lucent2cents bliss

    Isn't Java 1.6 only compatible with OS X 10.5?

  • lekvar

    Brett, I haven't had a chance to play with Quotile or Glitch-Sequencer yet,so I may be way off-base, but is there a way to sync either app to a DAW? Or export a MIDI file? I've read the documentation but it seems to indicate that the apps are stand-alone.

    Not a critique, mind you; they look awesome, but I'm wondering how well they'll fit into my current setup.

  • http://www.glitch-sequencer.com Bret

    @lekvar: Glitch Sequencer will both sync to MIDI and generate MIDI timecode (or both), so you may be able to use some sort of MIDI loopback device to control it from your DAW. I've never tried it myself though. I made it for my own personal use, so it's super flexible. Maybe someday I'll learn how to create VST plug-ins!

  • http://www.glitch-sequencer.com Bret

    Mac users: If you are having problems running the software, I created a mailing list that you can sign up to on the download page. I'll send out an announcement once I've updated and tested the sequencer for Macs. Thanks!

  • lekvar

    Brett-

    Thanks for the info. I can't wait to play with these.

  • http://www.createdigitalmusic.com Peter Kirn

    @bliss: Yes, I believe that's correct. Java 6 is available from Sun on every platform *except* the Mac. I … won't start on that. ;) It's a remnant of Apple wanting control of the Java runtime. They're *mostly* good stewards of it, with some annoyances.

    Now, whether having an open source OpenJDK changes that remains to be seen. More of a long-term payoff than short-term, but I keep my fingers crossed.

  • http://twitter.com/dmlandrum Darren Landrum

    Yes, this year I learn Processing, I think. I've had these ideas for a sampler in the back of my head for a long time now, and I think I finally have a coherent idea of what to aim for. I'll build the front end in Processing, and then see how to do the back end. It won't be a streaming sampler, but I think it'll be plenty quirky and powerful, while also being small and targeted.

  • http://www.keyofgrey.com KeyOfGrey

    This is seriously cool. I just got GlitchDS but it's nice to have it available for other platforms for the times I don't want to squint over the DS screen.

  • Ezmyrelda

    Yay! I've been waiting for him to release it for weeks! I can hardly wait to get home to play with it!

  • Pingback: Glitch Sequencer: free software from GlitchDS creator « Defy Gravity: Sound / Technology / Evolution / Dance / Ritual / Design

  • http://www.myspace.com/djchinkial al

    bret

    been looking forward to trying this

    as id been trying to implemnt some sort of cellular automaton functionalty to my kaoss64 vst plugin beatbox for the kp3

    but still as i aint read to much into it

    i aint progressed much with the idea

    so id apprecciate some links to info on the procces if u have them

    thanks

    al.

  • John S

    @Bret: I was also wondering about a VST version. The biggest thing I look for is ease-of-integration with my existing software, and a VST version would be perfect. I haven't used a loopback device since about 2001, since most useful instruments are VSTi or DXi.

    I know you made this for your own personal use, and made it available out of the kindness of your heart (thank you!). But if you're looking for a new feature, that would easily be the top feature I'd want.

  • Ezmyrelda

    Wow! Did it really take me a week to find the time to download it?

    No matter, was very simple to start using once opened. It is simply designed and thusly quickly started. It works wonderfully and has only features that would get used a lot.

    I can think of so many uses for this software.. Its just.. Just amazing!

  • http://www.glitch-sequencer.com Bret Truchan

    @al: Email using the link at glitch-sequencer.com and I'd be happy to share the code involved in the calculations. It's actually very simple!

    @John S: I'll keep looking into it. I just have no idea how to create a VST plug-in! Ha ha ha. If I can create one in Java, I'm can probably integrate it with glitchDS. I should have time in the remaining days of my vacation to take a peek. Yes.. I definitely created this for myself primarily. I use a modular synth and map the triggers to CV controls. Super fun!