Tutorial : Generative music in Live

Share your Ableton Live secrets here
mok
Posts: 64
Joined: Sun Aug 06, 2006 1:32 am
Location: Zurich, CH
Contact:

Post by mok » Mon Oct 22, 2007 5:42 pm

great post! a very inspiring new option... thanx man!

Angstrom
Posts: 14679
Joined: Mon Oct 04, 2004 2:22 pm
Contact:

Post by Angstrom » Mon Oct 22, 2007 6:49 pm

just a wee bit of L7 generative info.

Live 7 comes with an update to the Midi Random device, 'alt' mode , which is a round-robin increment mode. This is quite useful for making progressions in generative music.

The 'alt' mode is essentially a counter, it increments by a chosen value until the maximum value is met and then it resets. The chance of it incrementing is set in the normal way (by the chance dial)
I may post some more examples of it, sometime in the future ... but it's better to experiment on your own I think :)

Liam
Posts: 708
Joined: Sun Jul 18, 2004 3:18 pm
Location: Northern CA, USA

Post by Liam » Mon Oct 22, 2007 7:06 pm

This sounds very promising. Can you 'chain' this function - use one to alter the next?

I'm looking forward to Live 7.

Also if anyone is interested here's a link to a tutorial for the Korg M3 using Random Seeds. From what I have read on their forums there is quite some development happening with user edits for the random seed function.

http://www.karma-lab.com/forum/showthre ... eadid=9902

Angstrom
Posts: 14679
Joined: Mon Oct 04, 2004 2:22 pm
Contact:

Post by Angstrom » Mon Oct 22, 2007 7:47 pm

in a sense you can chain them - although it's not an intrinsic function.
The basic method is to set if-then clauses using the method I outlined earlier.

mercyplease
Posts: 1003
Joined: Sun Feb 05, 2006 2:22 am
Location: Sent back to hell

Re: Tutorial : Generative music in Live

Post by mercyplease » Mon Oct 22, 2007 11:08 pm

Angstrom wrote:
Generative music in Live


Here is a brief tutorial on making generative music with Live.
Generative music is music where you provide 'seeds' and the computer grows you some music, Brian Eno being the most famous practitioner.

Feeling lazy?
there is a LivePack to download with four examples of varying complexity.
Image Download the Live Pack



Why make generative music, or get Live to make music for you?

Generative music is a different beast from making a track of your own, it is more like planting a garden.
In fact a generative piece is like a glorified wind chime, why do people have wind chimes rather than stand in the garden hitting aluminium themselves? Because the sounds are quite beautiful and can be suprisingly interesting, with a wide range of expression a generative peice will sustain interest for hours!

Live is quite a good environment for creating generative music and I have two methods to do so, an audio based method and a midi method.

I will focus on the more midi-oriented method here.
There are limitations to how far you can go with Live and generative music, but what you can achieve is entertaining.


How it is achieved in Live


To make generative music we need to make Live play or do something whenever a condition is met, we get flexibility by giving the program some freedom. Instead of saying "EVERY time a bar starts play a C minor chord", we want variation. An example might be "Sometimes play a chord (from a selection of chords) on either the first or third beat, and if you do then perhaps play one of these ralated chords after it, or perhaps think about playing this tune instead"

So now we have a random event which is constrained by a limited set of outcomes, it sounds passably like music.


Tools of the trade


Midi Devices
Random - togenerate random pitches
Scale - to make those pitches be less random
Velocity - to make random note start triggers
Pitch - to transpose phrases chords and notes
Note Length - to give variation to the note length
Chord - a variety of uses

Audio
AutoPanner - can be used for 'cross-fading' between one component and another
AutoFilter - similar but different
BeatRepeat - repeating random stuff makes it sound like you meant it!

obviously the other Live devices such as Reverb get used, but the above are the ones that are strictly 'generative'




Getting started - 'plinky plonk world'


Lets make a bad start!
Drop a Midi instrument on a track so you can hear what is happening during the exploration process, use a simple patch like an electric piano (or a Simpler with a triangle wave in) and give it a long release. At the start the output will sound pretty dull, trust me it gets better.

we need a timing pulse to begin with, I use a single midi C3 note in a session clip, I loop this on a quarter bar.

Image
This gives me a nice regular trigger at a 120bpm for the random events to take their cue from. Thats all the midi programming we will need done!


next we need to make that 'trigger' random
, to do this we use the Velocity device. Actually two velocity devices, like this

Image

The first takes the incoming repetitive note and randomizes the velocity.
The second one only lets notes through which fall in the selected velocity range.

This is the core concept of how we will select and filter random values in Live. How we can decide "do I do something, or not?"

In the image that range is from 0 to 59. You will see that I assign the range to a macro called 'chance'. Try this, it will soon become apparent what 'chance' does.
Remember to set the Velocity device to 'gate' mode.

You might notice I also set the 'random' high on the second Velocity - this is so that further down the chain I have a ready made scattering of random values to make use of for further filtering (you'll see!)

Now we need to make the pitches change, the most brutal way is to use the Random Device, simply dropping it in the rack after the Velocity section will give you an annoying random 'tune'.

Give it some pattern with the use of the Scale plugin, choose a nice preset or set your own if you know how ... and there you have your first very basic generative thing. A bit shit though isn't it. It plays random notes, they have random pitches which conform in a brutal way to a scale. It's a start. It's hardly music though.

Image




Make it sound more interesting

There are a few things about our example above which make it a bit dull, unpleasant and it just .. well, un-interesting.
It sounds very machine like in its random nature rather than musical, there is no tonal variance such as there might be in a human musical peice, there is no sense of drama, no sense of space or *cough* ambience. If we can simulate any of that, it would help.



Conditions of Interest

We used the velocity devices to set a 'condition', if the value is within a certain range the note sounds. We can expand this to become what programmers know as an 'if - else' conditional.

Image
Here we set two ranges, one produces one outcome, the other will produce another outcome.
This can help us get some drama and tonal variance in there, for example: by allowing any (random) value between 60 and 70 to trigger one chord, while anything between 70 and 80 might trigger a different chord.

Those are 'conditions' , when a condition is met an action is taken. To a programmer this might read as if (var>60 && var<70) { do this } else if(var>70 && var<80) {do that}

We can make our piece more interesting by cascading the variations, or to put it in English " if the value is between 60 and seventy then do either this chord or that chord, if you do that chord then consider these further three variations"

A second choice of conditions follows the first, cunning use of these cascades provides potentially musical output.


Cascading The Variations . You saw how I set a 'condition' with two Velocity plugins, and how we can set two different outcomes using 'if - else'. Now imagine dividing the random values up into many zones, this way you can create little themic areas.
You can start to go further down the fractal tree, each conditional zone can have a new random value generated to make new notes for itself. Each 'conditional zone' can be a different part of your song. The 'riff' , the 'bassline' , the 'chords' .
Each of them can watch a zone and do some more complicated 'riff' or 'chord' related actions anytime that rack is triggered by the main condition.

here we have the zones of a random seed divided into themes

Image

and in this example the watched zones are further divided to play notes of a riff, each riff note is also conditional. The cascade effect first decides if a note should play on a particular beat and then it decides which note from its small pallet of notes. Out of view here, a further conditional decides whether to transpose the eventual riff.

Image


This is making my brain hurt!

Although this sounds very technical, in fact (if you are anything like me) you will simply set up a few conditions and then add stuff where it seems right, until it makes a nice noise. Once you have an idea of the basic principles you can simply sculpt or garden yourself a tune in an ad-hoc manner. You will notice that my example files aren't exactly exemplary of order and fore-thought.
But it certainly helps to have some kind of plan!

I think that's enough to absorb for now.
So, here are some example files



Examples

Zawinul - a complex peice which should sustain a lengthy listen
Harpist - an example of riffs riffing away
Experimentaloid - a more simple example
Infinity Plus one - more of the same.

Image Download the Live Pack
I know you put a lot of work in to this but its nothing to do with maikng music. As you said your self let live make music for you
Seriously where is the inspiration for that.
I dont mean to diss you its just that I see more of this stuff aimed at people who cant make music so what we get is a world full of crap music from people who pressed a button and their getting them on the download sites making it hard to find the good stuff.
This will stop though because the download sites are about to start a massive cull of bedroom one man outfits who think they are a label and its about time to. There is so much crap out there and im sorry to say this type of angle doesnt help.

why not make something really useful for a musician who can make inspirational music. I know you can do it.
go on :wink:
HA HA HA :twisted:

garyboozy
Posts: 2606
Joined: Mon Jul 16, 2007 12:27 pm
Location: UK
Contact:

Post by garyboozy » Tue Oct 23, 2007 9:40 am

mercy, please!!!!
angstrom knocked these up partly to showcase what can be done with racks in Live and has kindly posted it for all to study as a learning aid, i've learned a lot from his 4 examples and am grateful that he wants to share his ideas and techniques. i know where you are coming from but seriously, wtf...

"why not make something really useful for a musician who can make inspirational music. I know you can do it.
go on."

why don't YOU?
:roll:

pepezabala
Posts: 3499
Joined: Mon Jun 07, 2004 4:29 pm
Location: In Berlin, finally

Post by pepezabala » Tue Oct 23, 2007 9:56 am

I know you put a lot of work in to this but its nothing to do with maikng music.
8O

impete
Posts: 24
Joined: Thu Jan 31, 2008 11:39 am

Post by impete » Thu Jan 31, 2008 4:23 pm

If anybody is interested, the noatikl generative music engine / hyperinstrument runs under Ableton in VSTi form. Picked up in this other forum thread.. http://www.ableton.com/forum/viewtopic.php?t=83710

Pete

michaellpenman
Posts: 396
Joined: Wed Dec 12, 2007 1:12 pm
Location: edinburgh
Contact:

Post by michaellpenman » Fri Feb 01, 2008 1:21 pm

his your live pack isn't downloading
otherwise that was a good read

Angstrom
Posts: 14679
Joined: Mon Oct 04, 2004 2:22 pm
Contact:

Post by Angstrom » Fri Feb 01, 2008 2:59 pm

michaellpenman wrote:his your live pack isn't downloading
otherwise that was a good read
hmm, that's odd - does it fail halfway , or do you get no 'save' dialogue box at all ?

It works fine for me and I can see from the server stats that others have managed to download it recently.

littlepig
Posts: 567
Joined: Wed Jun 22, 2005 7:48 am
Location: UK, London

Post by littlepig » Fri Feb 01, 2008 8:43 pm

I just downloaded no problem.

Thanks for these - I tried this sort of thing before but never got this far.

friend_kami
Posts: 2255
Joined: Mon May 29, 2006 10:10 pm

Re: Tutorial : Generative music in Live

Post by friend_kami » Sat Feb 02, 2008 1:19 pm

mercyplease wrote:
I know you put a lot of work in to this but its nothing to do with maikng music. As you said your self let live make music for you
Seriously where is the inspiration for that.
I dont mean to diss you its just that I see more of this stuff aimed at people who cant make music so what we get is a world full of crap music from people who pressed a button and their getting them on the download sites making it hard to find the good stuff.
This will stop though because the download sites are about to start a massive cull of bedroom one man outfits who think they are a label and its about time to. There is so much crap out there and im sorry to say this type of angle doesnt help.

why not make something really useful for a musician who can make inspirational music. I know you can do it.
go on :wink:
wow, how ignorant you are.
i really should kick your ass when/if i ever meet you.

michaellpenman
Posts: 396
Joined: Wed Dec 12, 2007 1:12 pm
Location: edinburgh
Contact:

Post by michaellpenman » Sat Feb 02, 2008 11:57 pm

i agree how stupid and single minded can you be. this has huge huge capabulities.
Use it to create wierd pads progressions.
this is what real "musicians" miss out on they think u i'll play like this and do this.... when the world of endless sound design is at your feet making truely groundbreaking sounds and music is far more talentfull than sittting with a guitar and going doo dooo dooooo etc....
what Angstrom has gave us is his own little narnia. and he has been kind enough to share it with the world


ps mercyplease you quite obviouly have no idea where music can take you

djd_oz
Posts: 21
Joined: Sun Aug 19, 2007 6:19 am
Contact:

Post by djd_oz » Sun Feb 03, 2008 12:24 am

I'm using a MBP and harpists_6c kills my CPU :(

mooncaine
Posts: 325
Joined: Mon Apr 17, 2006 9:22 pm

Post by mooncaine » Sun Feb 03, 2008 5:35 am

Many thanks, again, Angstrom, for this fascinating and helpful tutorial.

Just ignore mercyplease, who is obviously a useless asshat.

Post Reply