Code Your Own Sequencer? Archaeopteryx Generates MIDI with Ruby


Archaeopteryx: Ruby Self-Generating Pattern Sequencer from giles goat boy on Vimeo.

Who needs NAMM? Well, sure, you could wait 48 hours for the mind-bogglingly awesome announcements I’m sure we’ll be scooping on this site know absolutely nothing about. But that’s 48 hours you could be spending right now, coding your own sequencer. And unless Ableton and Steinberg and Apple and Digidesign and all are reading your thoughts, it may just do something they haven’t imagined yet.

Ah, you say, but wouldn’t that mean learning something ancient and arcane like C?

No, I’d say. You can do it Ruby, and impress that cute Web developer at the local indie coffee shop with the hip, new programming languages you’re using. (The Ruby developers in this crowd, I’m sure, have already skipped to the juicy bits, so let’s continue with this absurd role play.)

Ah, you say, but I need to learn to play an instrument and I’ve never coded before.

Fine, I say. But you can still rest easy at night knowing Giles Bowkett is doing it for you.

read more

Alternative Sequencers: Elysium Generative Mac App and the Joy of Hex

Switching tools isn’t a panacea, but it can inspire new ideas, by changing the way you structure your music. Elysium is a powerful new sequencer in development for the Mac the creates generative patterns on a beehive-shaped hexagonal grid. For the hardcore, you can even extend the tool with Ruby and JavaScript.

Elysium is a MIDI sequencer only: it has no sound generation facility of its own. But that makes it an ideal complement to your existing tools and favorite synths; the creator shows it off with Apple Logic Studio (Sculpture physical modeling, anyone?) and Native Instruments Kore.

Elysium [Mac-only public beta, PPC/Intel; 10.5 required]

Most sequencers work like a variation on a score: you compose events in time and it renders those events in precisely the same order each time. Elysium is generative: instead of creating a score, you create a system, and events are determined by the rules of the system. That means the exact deployment of events in time is variable, and things may not sound the same way – or over the same span of time – twice.

To do this, Elysium employs layers, cells, tokens, and callbacks. Huh?

  • Layers are roughly equivalent to a track in a traditional sequencer; it’s a single grid of cells, each containing a note, transmitted on one MIDI channel. That means, most likely, you’ll use a different layer for each sound you want to generate in your synth or host.
  • Cells are arrayed in a 17×12 honeycomb (a hexagonal grid), each transmitting one MIDI note. They’re organized in a harmonic table – the three adjacent hexagons around a single vertex, for instance, form a triad.
  • Tokens are the things that actually do stuff – they’re what make Elysium generative and interactive. Functions currently include Start/Stop, Note (plays an actual note), Rebound (changes direction), Absorb, Split, and Spin (impact movement). Arrange these on the grid, and instead of playing left-to-right as a traditional sequencer would, playback will navigate the spaces on the grid – potentially in unusual and interesting ways. To edit tokens, Elysium uses floating inspector palettes for setting parameters.
  • Callbacks give you the power to define your own musical behaviors by scripting them, making your musical world more variable. Elysium uses the same JavaScript interpreter as the Safari/WebKit browser, so you can code in JavaScript. Ruby lovers can even work in MacRuby. These code snippets don’t have to be complex: on the contrary, they’re quite simple and friendly to non-programmers, tantamount to saying “Hey, sequencer, I command you to do THIS!”

read more