Today's algorithmic composition tutorial looks at manipulating a tone row in Max and PureData to generate musical material. We'll also have a look at one technique that's useful in generating more fully formed compositions in Pd and Max than some of the musical sketches we've generated so far.
Jump to the end of the post to hear some sample algorithmic music output from this patch.
As with yesterday's OpenMusic tutorial we're using the tone row from Berg's Violin Concerto:
G, Bb, D, F#, A, C, E, G#, B, C#, Eb, F
You can use any tone row of your choosing. To start with we'll define our tone row in a table in PureData
and in Max
We'll start simply by playing through the tone row. As Max and PureData read and write to tables in slightly different ways the patches are setup a little differently in each. In Max the table object is used to read the table data:
Showing posts with label tone rows. Show all posts
Showing posts with label tone rows. Show all posts
Saturday, 3 September 2011
Friday, 2 September 2011
Open Music - Tone Rows and the Maquette
Today's algorithmic composition tutorial looks at using OpenMusic to manipulate and generate musical material from tone rows.
If you haven't already got OpenMusic 6.5 installed you can download OpenMusic free for Mac and PC here. IRCAM supply a number of tutorials but you can also look through the OpenMusic tutorials available here.
Jump to the end of the post to hear some sample algorithmic music output from this patch.
Serialism developed as a framework for composing and organising atonally and moves away from the sense of a key by giving each pitch equal worth. This patch starts with a tone row from the Berg Violin Concerto:
G, Bb, D, F#, A, C, E, G#, B, C#, Eb, F
All pitches must be played through in order, in order to provide more melodic material the tone row can be transposed to any pitch, inverted and played backwards.
First we'll create our tone row (to create a new object CMD click and type in to the box created).
If you haven't already got OpenMusic 6.5 installed you can download OpenMusic free for Mac and PC here. IRCAM supply a number of tutorials but you can also look through the OpenMusic tutorials available here.
Jump to the end of the post to hear some sample algorithmic music output from this patch.
Serialism developed as a framework for composing and organising atonally and moves away from the sense of a key by giving each pitch equal worth. This patch starts with a tone row from the Berg Violin Concerto:
G, Bb, D, F#, A, C, E, G#, B, C#, Eb, F
All pitches must be played through in order, in order to provide more melodic material the tone row can be transposed to any pitch, inverted and played backwards.
First we'll create our tone row (to create a new object CMD click and type in to the box created).
Labels:
algorithmic composition,
omalea,
open music,
openmusic,
rhythm trees,
tone rows
Thursday, 25 March 2010
Tone Rows And Rhythm
In today's post we're looking at another relatively simple example that introduces two more ideas:
1. Specify a tone row, this will always be played through in order. The tone row is specified by using pitch classes in a message that is then stored in a table, the tone row in the example patch is
11 10 7 1 3 0 2 9 6 4 8 5 though feel free to change this.
2. Specify a series of rhythms. For this we've assumed a tempo of 60BPM. So:
3. Assuming a consistent tempo of 60BPM makes working with rhythmic values easy, we don't have to stick to 60 BPM however. If we multiplied each value by 2 the tempo would be twice as quick. We've included a simple tempo multiplier slider that is connected to a multiply object:
4. We'll follow serialist principles, each note of the row is of equal importance and the tone row is played through in order. A counter counts from 0 to 11, this is connected to a tabread object that read through our tone row:
5. We can transpose the tone row to any starting pitch, play it backwards and invert it. Here, once the counter has completed we trigger a random transposition for the next play through the row, we also invert the row every other time:
6. The notes of the tone row can appear in any octave. We've included a random transposition of octaves for each note:
7. For each note we're choosing a random rhythm from our rhythm list. You can see some of the rhythms are set to 0, so if this rhythm is chosen we'll have two notes played at once:
8. Here is the final patch (click on the image to see a larger image):
I recommend creating the patch yourself by copying the layout of the screenshot, however you can also download the patch here.
- working tone rows (serialism)
- working with rhythm
1. Specify a tone row, this will always be played through in order. The tone row is specified by using pitch classes in a message that is then stored in a table, the tone row in the example patch is
11 10 7 1 3 0 2 9 6 4 8 5 though feel free to change this.
2. Specify a series of rhythms. For this we've assumed a tempo of 60BPM. So:
- Whole note (semibreve) = 4000ms
- 1/2 note (minim) = 2000ms
- 1/4 note (crotchet) = 1000ms
- 1/8 note (quaver) = 500ms
- 1/16 note (semiquaver) = 125ms
- 1/32 note (demisemiquaver) = 62.5ms
3. Assuming a consistent tempo of 60BPM makes working with rhythmic values easy, we don't have to stick to 60 BPM however. If we multiplied each value by 2 the tempo would be twice as quick. We've included a simple tempo multiplier slider that is connected to a multiply object:
4. We'll follow serialist principles, each note of the row is of equal importance and the tone row is played through in order. A counter counts from 0 to 11, this is connected to a tabread object that read through our tone row:
5. We can transpose the tone row to any starting pitch, play it backwards and invert it. Here, once the counter has completed we trigger a random transposition for the next play through the row, we also invert the row every other time:
6. The notes of the tone row can appear in any octave. We've included a random transposition of octaves for each note:
7. For each note we're choosing a random rhythm from our rhythm list. You can see some of the rhythms are set to 0, so if this rhythm is chosen we'll have two notes played at once:
8. Here is the final patch (click on the image to see a larger image):
I recommend creating the patch yourself by copying the layout of the screenshot, however you can also download the patch here.
Subscribe to:
Comments (Atom)










