Generative Music Part III – Elysium

ElysiumScreenContinuing my look at generative music tools, here is Elysium, another freeware program, that like Tiction and Nodal, generates MIDI data via whatever MIDI device you have to an external synth, or via Apple’s IAC to a software synthesizer or to your DAW (Logic Studio 9 in my case).

This is relatively new software (all three of these programs are still toddlers, really), and thus has both compelling possibilities capable of rich reward and (like my own toddler) bouts of misbehavior and instances where it doesn’t do what you think it will do. Elysium (screenshot above) was visually inspired (according to Matt Mower, the software’s principal author) by Mark Burton’s multi-touch instrument (made in 2007) called the ReacTogon, which in turn has much in common conceptually with the ReacTable (first presented in 2005). Videos of both are embedded below.

While Tiction and Nodal both offer the option of sending individual nodes or groups of them to a particular MIDI channel, Elysium does this via Layers. In the screenshot above, you can see three layers. Here is an MP3 of an excerpt I created sending Elysium through Logic.

Before I get to the specific pros and cons of Elysium, I want to talk in general terms about a couple of frustrations that have arisen, now that I’ve been playing around with this kind of software for the better part of a month. I offer these observations as grateful feedback to the software developers, and recognize that these are generous folks, really, and smarter than I.

My first gripe is maybe a little specific, actually. And maybe it has as much to do with Apple’s Logic as with anything else. From everything that I can tell by scouring the user boards, Logic 7 used to play a lot better with programs of this nature, in terms of syncing. The software program Noatikl, which I’ll talk about in a later post, has addressed it’s own problems with Logic using a complicated workaround, but Tiction and Elysium both (oops, see comments) use Java (with which Apple has a complicated relationship), and no matter what I try, I can’t get the programs to sync together. If my musical needs, as it were, could be met exclusively within the standalone program and its sounding channel (i.e. that every musical element would be provided by wiring Elysium into Logic, recording the MIDI there and we’re done), there would be no problem. But if I want to add elements from outside the generative program that requires precise timing, like an Apple Loop (or a Dr. Rex loop in Reason 4, which I also tried), for example, then I’m in trouble. For the short MP3 excerpt above, I recorded the MIDI into Logic and then lined up the music’s beat 1 to an actual Logic bar’s beat 1. The music was set for 300 ticks per minute in Elysium, which would be 150 BPM, but because of latency and clock drift, wound up at 148.5 BPM once it was recorded and realigned in Logic. I added some drum loops as a fourth layer, and the alignment was okay. But with a longer stretch of music, that clock drift starts to become unworkable, an experience I had recently when trying to record approximately 7 minutes of material with Tiction and Logic. I haven’t tried it with Pro Tools (and can’t now, until Digidesign gets their Snow Leopard act together – I understand they’ve got a Beta version together now that’s 10.6.1 compatible, but I’ll wait), and it’s my feeling from the user forums I’ve seen that Ableton Live has fewer MIDI sync problems, but I don’t have Live.

The other general thing about Tiction, Nodal and Elysium is the sort of Perpetuum Mobile of it, which can get tiring but can be worked around with various degrees of success in each program, but also points to the utility of good syncing to enable post-recording editing. With Tiction you can simply stop or start any group of nodes at any time without effecting the playback of the other groups. With Nodal and Elysium the workarounds need to be more elaborate. With Nodal and with Elysium, you can set up elaborate timing schemes that effect the timing and probability of a nodal trigger. Setting up probability in Elysium is quite simple, actually. It’s simply one of the dials on offer in the edit menu of an appropriate nodal type.

Elysium could benefit from adapting a little of Tiction’s simplicity in one case here, though, as once you’ve established a pitch network that you like, save it and reopen it (or even stop it once), when you restart the piece, all the layers get triggered at once, offering no possibility of recreating the fun of the experience of building the piece’s density over time. In fact, I edited 2 of the 3 layers that Elysium created after the fact. In the case of Layer 3, which was sparse to begin with, I changed it so much it was hardly like the original at all. And 3 layers was all I dared create. At 300 ticks per minute, the CPU load on Logic was in the red for much of the time, and the timing between the layers regularly became unstable.

The pitch scheme of Elysium is set up following a pattern called a Harmonic Table, where every three adjacent pitches form a triad. There’s nothing particularly restricting about this, though it does mean that 3rds, 6ths and P4ths & 5ths are the only adjacent available intervals and in this program proximity has rhythmic implications that can not be gotten around in the same way that they can be with Nodal. One possibility that I didn’t much explore yet, is the option to play a triad instead of a single pitch. You can choose which combination of proximate neighbors will sound the triad.

There are several interesting features unique to Elysium. One is the Ghost Tone, in this case meaning an adjustable number of (rhythmic) repeats of the triggered pitch, with repeats from 1 to 16 times available. A truly intriguing feature to this program is the possibility of applying LFOs to many parameters: ghost tones, tempo, transposition, velocity, and more. Alas, I could not get the LFOs to work, and the documentation does not include anything about them. The probability feature works very well, though.

I’m guilty of misapplying a term. What is a node in Tiction and Nodal is a PLAYER in Elysium. And while the Perpetuum Mobile aspect is a strong character feature in Elysium, the variety of players makes it possible, to an ear that is willing to tune in to these kinds of changing landscapes and undulations, to inject a fair amount of surprise and change, regardless of how much one needs to swim upstream in order to make that happen.

Once the program is more stable, if I could put on a wish-list a small vanity item, it would be to make the program visually more compelling. How? By, for example, allowing the colors of the table to be customizable; allowing a certain amount of transparency/translucency to exist so that layers can be stacked and all the activity viewable from the top layer (like looking into a pool of dark water from above or something). I’m imagining a dark, translucent field, with 3D lights flashing in patterns in depth layers. But far more important than the cover of the book is its contents. I’ll be looking forward to seeing how this app develops over time.

Generative Music – Part II – Nodal

NodalScreenSnapz001Continuing my look at generative music software, here’s Nodal, also free (but not for much longer — it’s currently on a time-limit that expires on October 30, at which point an upgrade will be released, for a reasonable $25) that, like Tiction, generates MIDI pitches derived from user-placed (and defined) nodes. Where Tiction uses the distance between connected nodes (indicated by a 1, 2, 3, and so on, on the connector’s midpoint) to determine how many tics (of the MIDI clock) will pass between soundings of adjacent nodes, Nodal uses a graph to accomplish this.

Tiction allows you to determine the “physical” behavior (jiggle, attract, repel, plus another feature called “weight”) and pitch behavior of each node. The node can draw its pitch from a set of 16 pre-defined, user-selectable pitches, where it makes its selection according to where it’s drifting on the X/Y axis, OR you can assign that node a single, fixed pitch from inside or outside the set of 16.

With Nodal, on the other hand, the nodes are immobile. That doesn’t mean you are forced to live with the graph — I took the screenshot I took so you can see one of the examples that comes with the program (along with several other provocative examples), a beautiful miniature that is definitely free of the grid, called Nebula. Nested beside Nebula in the screenshot is the result of my following the tutorial. With Nodal, there’s more flexibility and possibility with pitch choices: each node can be assigned its own pitch list or something relational to another node using +/- n. Just for the record, here’s a short MP3 example of the result of the tutorial, not bad for 6 little nodes:


Despite their similarities, and while Tiction has the attractive feature of being hypnotically beautiful and is something that you can fire up and make music in minutes with ((my own technical synchronization/MIDI note-off problems with Tiction aside — I also couldn’t get Tiction to sync with Reason 4.0), I had no such problems with Nodal, as Nodal comes with a dedicated port built in, making (I think) IAC unnecessary). Nodal ultimately presents itself as something else, another way of composing. One of the downloadable PDFs at the Nodal website reads a little like a manifesto at times (but hey, then call me товарищ (comrade)):

“The goal of any Arti cial Life (AL) or generative composition system should be to off er possibilities and results unattainable with other methods. A number of authors have suggested that the emergence of novel and appropriate macro behaviours and phenomena — arising through the interaction of micro components speci fied in the system — is the key to achieving this goal. While simple emergence has been demonstrated in a number of AL systems, in the case of musical composition, many systems restrict the ability to control and direct the structure of the composition, conceding instead to the establishment of emergence as the primary goal.

This focus on emergence exclusively, while interesting in terms of the emergent phenomena themselves, has been at the expense of more useful software systems for composition itself. The aim of the work described in this paper is to design and build a generative composition tool that exhibits complex emergent behaviour, but at the same time offers the composer the ability to structure and control processes in a compositional sense. The idea being that the composer works intuitively in a synergetic relationship with the software, achieved through a unique visual mapping between process construction and compositional representation.