Elysium gets some MIDI lovin

Since January I’ve been learning piano and, now that I am able to play a little, my attitude towards generative music has shifted. Whereas I used to use entirely generative parts in my music now I am trying to think about how I can incorporate generative music into the music I play myself: interactive generative music if you like.

As I was pondering this the idea hit me that each of the cells in an Elysium layer represents a note. What would happen if the generators on a layer pulsed not in response to the beat but in response to incoming MIDI notes? So that a generator on a C4 hex pulsed when I played C4 on my keyboard.

Well I couldn’t wait to find out so I added the feature (along with an impact trigger mode too) which is included in Elysium 0.9.7, released yesterday. Here’s a demo screencast I made to show how it works:

I hope you have some fun with this feature. I plan to do more screencasts to show off some of the hidden talents of Elysium!

Continue Reading…

Posted by Matt on Jun 29, 2009

I wasn't expecting this!!

So, one of my goals for this year was to see Elysium appear in Computer Music magazine which I’ve been reading for about 5 months and which I just got a subscription to. Ideally I’d like to see a full review but my goal was just to see it in print and I’d just started thinking about how I might make that happen.

You can imagine my surprise then as I leafed through the April edition, that landed on my doormat this morning, when on page 10 I saw a picture that I recognized. Great Maker! It’s Elysium!

It’s a short piece submitted by Peter Kirn & Create Digital Music and mentioned Mark’s reacTogon and the Axis controller as well. Sadly no mention of my name (ego check) and, more importantly, no link to Elysium but hopefully Google will provide.

I’d still love to see Elysium 1.0 get a proper review in CM before my subscription runs out next January but I was thrilled to see my work appear in print like this. Made my day!

Continue Reading…

Posted by Matt on Mar 07, 2009

Dial Control

I have made available on GitHub a new Cocoa custom view I’ve built for use in Elysium and other projects. It’s a fairly simple rotary dial control modeled on the dials in Ableton Live. It also has another, in progress, style that is more akin to the pan control in Logic Pro. I may do a couple more styles in due course.

You can see a video of the control:

The source is available on GitHub.

The control includes a demo app (shown in the video) and an Interface Builder 3 plugin. As such, hopefully, it’s a good resource for anyone else looking into building their own controls. It’s actually not that hard to do but navigating the copious documentation (esp. the IB plugin docs) can be a challenge.

I’m grateful to Ciaran Walsh, Tomas Franzén, Dave Verwer, and peropaal for help.

Continue Reading…

Posted by Matt on Jan 18, 2009

Elysium now with Javascript support

One of my early goals for Elysium was that it be an environment that is friendly to scripting. There is usually a balance point between hardcoding features and making them easy to use and creating “parts” that can be assembled into new, previously unimagined, wholes. With Elysium I have tried to follow the maxim: “Make the easy things easy and the hard things possible.”

My original plan had been to include Javascript based scripting support using Leopards Javascript core. But, without bridge support, this turned out to be a problem I had neither the time, nor the inclination, to solve. That’s when Laurent Sansonetti of Apple suggested I try MacRuby. As a long-time Ruby coder the idea of using Ruby was very attractive.

For several releases we have had scripting support using an embedded version of MacRuby. It was a bit of a bumpy ride getting it to work but Laurent put in quite some effort. However MacRuby is still a very young product and I think it’s quite a way from being ready for production use.

With the release of JSCocoa it’s possible to access JavascriptCore which is the Apple supplied Javascript interpreter that comes with Leopard and powers Webkit (and, hence, Safari). It’s pretty good and holds out the promise of being able to use the uber-fast SquirrelFish VM when that becomes available. With Elysium being very much a CPU bound application that’s quite an attractive proposition.

The latest release, version 0.9.2, swaps out MacRuby for JSCocoa. In the process the size of the application has shrunk considerably because I’m no longer bundling the MacRuby distribution. And we’ve also got back support for the PPC platform which has suspended because MacRuby is not supported on that architecture.

I’m a little sad not to be using MacRuby. All things considered I’d rather be writing Ruby than Javascript. And I’m grateful to Laurent for the work he did in trying to make MacRuby work for Elysium. But, overall, I think JSCocoa is a better choice for Elysium right now. I’ll take another look at supporting MacRuby when it gets closer to 1.0.

Expect the Elysium scripting guide soon.

Continue Reading…

Posted by Matt on Jan 11, 2009

Elysium is now open source

Today I released the source code to Elysium under the open source MIT license. I started working on Elysium at the end of July 2008. It's consumed a good few evenings and weekends since then and I feel it was time well spent as I've had a lot of fun with it. I hope now that the source is available other people will be encouraged to play with it and improve it. Happy New Year! Continue Reading…

Posted by Matt on Jan 01, 2009