January 2, 2007

Let's Get It Started...

by Chris Randall
 



So, now that my "Chris Randall" record is done and about to go to the pressing plant, I've begun to think about my next Micronaut record. I have to take the Micronaut project seriously, because a not-insignificant portion of our income is realized via the placement of Micronaut songs in Xbox games and extreme sports television shows. In that vein, I've always written the Micronaut albums with a somewhat watered-down vision of what I thought made a good electronic album.


This time, in order to obviate that problem, I'm going to make a two-disk set, where the first disk is the straight-ahead traditional Micronaut stylings which have always proved to work, and the second disk will be all procedural stuff which is programmed rather than played, and will really allow me to explore some new territory. Problem solved.


So, I was spending the last couple weeks thinking about how I might approach doing an entire album of procedural music, and it seemed to me that Plogue Bidule has all the tools I need to get the job done. (Mainly it hosts VSTs, and since I can make VSTs, I don't have to sweat the details too much.) I'll freely admit that Bidule is still in its infancy, and is missing some key tools that would make the job easier, but nothing I can't live without.


So, I spent some time yesterday and today making a mixer group that will work for my general needs. You can see it above, and click for a detailed full-size view. The mixer objects already in Bidule are just this side of useless, so I had to make one that had effects sends, EQ, etc. As you can probably parse out, I have four stereo inputs, two stereo effects loops, and I've put URS A-series on the inputs, URS BLT on the effect returns, and URS 1980 comp/lim and Fulltec on the two-buss.


It occurred to me during a conversation with Adam today that one could use this layout, a 12 I/O FW audio interface, and a little computer and have a fairly capable digital mixer. But that's completely tertiary to the conversation.


Next step is procedural drum sounds. This should be entertaining. In a process like this, where you're setting up conditions so the music writes itself, much more time is spent in the planning than in the actual execution. So I figure four to six months of making layouts, then three hours of actually recording them. Funny. Anyone have any thoughts on techniques for procedural (aleatoric) music they want to share?

 
 
 

26 comments:

Page 1 of 3
 
 

 
Jan.02.2007 @ 1:48 PM
RexRhino
I did some procedural stuff with python scripts outputing CSound score files (CSound takes two files - One is the music score, the other is the synthesis code - both are text files and then it generates audio as a batch job). While it didn't turn out that good from a creative stand-point (my procedural stuff wasn't that interesting), nothing beats the control you have from doing procedural stuff in actual source code. If you don't need a lot of realtime control, and you would like to do a lot of exotic synthesis, CSound (with Python for generating the score) is where it is at!
 
 

 
Jan.02.2007 @ 2:07 PM
meeglosh
Hand a shaker or small hand drum to an infant, record the ensuing chaos, then sync all other elements to that "grid". Baby time, baby. Kinda lo-tec, but you might get some pretty far out results.
 
 

 
Jan.02.2007 @ 2:18 PM
brandon daniel
I've been working in this area in whatever spare time I had for the last couple months, and I have to say that the Nord G2 has been *very* handy for procedural pattern generation. I've got bidule, but I haven't dug in very deep as it's only installed on my iBook G4, which it easily brings to it's knees.

The general approach with the G2 is liberal use of mux/demux modules, scaled random/near-random S&H outputs, and/or gates, and filtering techniques to reduce the available output ranges (for pitches and such), all fed to midi out modules for recording and editing of the most interesting parts.

 
 

 
Jan.02.2007 @ 2:44 PM
shamann
I've done some aleatoric stuff, and while it sometimes was enjoyable in a wind-chime sort of way, I was never fully satisfied with the result.

Some approaches I've done, mostly in modular softsynth settings (primarily in Synthedit, but could be easily done in Bidule):

- create a series of note/beat patterns, and then create pseudo-random triggers to play each pattern, usually with a lot of noise generators, LFOs, quantizers and sample&hold modules.

- create a defined set of notes/hits, and then randomly play through it. Good for staying inside a scale, and pretty easy to do.

The hardest thing was to generate musical events that seemed interesting. It's easy enough to narrow random results down so that it fits perfectly in a given musical rule set, but creating interesting timing/pauses/dynamic changes that weren't cyclical or by-the-numbers was always tricky.

A master of aleatoric stuff is a Synthedit user called xoxos. He has this series of plugins he made that spit out fairly well-crafted machine music, downloadable from link [www.atomictraveer.co...]">link [www.atomictraveer.co...]">link [www.atomictraveller.com]</a> and a MIDI generator called Talent at <a href="link [www.xoxos.net]">link [www.xoxos.net]

Despite objections to SE, it's worth checking out just to see/hear his ideas at play.

 
 

 
Jan.02.2007 @ 2:54 PM
shamann
Weird, Googlebar's spellcheck seems to have added html tags to those links in my last post.
 
 

 
Jan.02.2007 @ 3:07 PM
tremorcore
i've entertained the idea of using 3ds Max (along with the Havok plugin, max's particle system, etc.) to create procedural audio stuff. the beauty of that approach being that:

A) the music video is already done
B) it'd be visually engaging enough to keep me interested.
C) (way down the list) i just might end up with a system that could be repurposed/reused/absorbed into another project... such as a game engine.

 
 

 
Jan.02.2007 @ 5:05 PM
Matt
I've messed around with different generative music software since Koan's inception (which I understand is a bit different than procedural music, which I've never heard of before). My biggest problem with generative music software/systems is that I often have an idea of what I want the system to improvise (a bit of a contradiction), and the results leave me feeling as if I had little to no hand in the creation. In essence, I'm a control freak and this style just isn't for me.

Anyways, I've always had good luck with using Ableton to a similar end that CR's attempting to arrive at. I've taken tracks that I felt were a little lame, and routed a pitched up (or down) copy playing against the original. I'd often use a series of polyrhythmic delays on the altered copies. I think that it sounds pretty nice. Maybe a bit too swampy for Micronaut though.

 
 

 
Jan.02.2007 @ 5:24 PM
giantm
I did a procedural project back in college using C++ code and Reaktor (Still called Generator at the time). I handled the programming at more of a macro level where I had drumming robots and harmony robots etc. that interacted via a MIDI like messaging system. It was pretty fun stuff. I like being able to listen to my own music as though it were someone else's. I've been thinking about something a little more controlled using Logic, Numerology, and various synths lately. I have a hard time building a full song using Numerology's facilities, but using it as a MIDI processor should work well.

Can we look forward to various discourses on algorithmic melody generation and the like? I kind of miss that since I stopped hanging out with all my Max/MSP friends.

 
 

 
Jan.02.2007 @ 6:12 PM
characterstudios
I second the Clavia G2. I've been working with it for the past 2 years, and have been able to program it to spit out a lot stuff that does make musical sense when you hear it.
I consider the G2 to be extremely good at creating micro-events (a couple of bars long), and it's macro-style high level programming makes for extremely fast putting together of ideas (a bit the same as Bidule in that sense), while remaining an extremely stable platform (it's never crashed on me yet).
I do think that it's relatively expensive on it's DSP to build structures in it to govern macro events (like arrangement decision structures) on top of the stuff that generates the micro events. However, I have now started using MAX/MSP as a front end on top of the G2, and it's opened up a world of freedom. MAX/MSP. It allows me to write control structures that are much more complex than I could ever do on the G2, it let's me make more complex morphing structures, etc. etc. (This is all done through generation of MIDI notes and/or CC values).
The sky is the limit with this, you can now route the G2's audio back into MAX/MSP, and use the timing references of the MAX/MSP control structure engine to generate FX interactions... (and you can use your beloved VST plugz)... and so on...

On the other hand, the solution offered here becomes a bit of a beast-machine or machine-beast, as both the G2 and the work in MAX/MSP become so intertwined that debugging might becoome a pain, and you have to start taking decisions from where you will control certain elements, which can be a pain if you happen to choose the wrong route and you have to start tracking back. With a single programming interface, stuff like that would be so much easier.

D.

PS. A happy New Year!

 
 

 
Jan.02.2007 @ 7:51 PM
Chris Randall
All interesting comments. I've been looking at a G2E for a while now. There's one in the AH used page I've got my eye on.

However, I think that it's worth briefly going over what we're talking about. Generative (also called aleatoric) music is generally what people are talking about in the comments. Procedural music is something that, while in the same neck of the woods, occupies a somewhat different space. A simple explanation:

Generative/Aleatoric : you set up a set of sounds, and some conditions, and the thing whacks away until the cows come home within the paradigm you've built. As Steve so eloquently noted, wind chimes, for all intents and purposes.

Procedural : this is a bit harder to explain. Say you draw a smiley face. This would be normal. Say you come up with an algorithm that tells a robot arm how to draw a smiley face. In effect, you have made a mathamatical algorithm that will describe the exact same smiley face every time, without fail. This is procedural.

So, aleatoric generally means introducing some randomness in to a process. Procedural means describing the process. This isn't to say that procedural music can't have aleatoric elements; in fact, the two are quite friendly. But, as I said, it's worth noting that we're talking about two different things. Not that different, but different enough.

-CR

 
 

 
Page 1 of 3
 
 

Comment:

 

Sorry, commenting is closed for this blog entry.