Showing posts with label tone rows. Show all posts
Showing posts with label tone rows. Show all posts

Saturday, 3 September 2011

Tone Rows - PureData and Max

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

algorithmic composition puredata tone rows1
and in Max
algorithmic composition maxmsp tone rows1
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:
algorithmic composition maxmsp tone rows2

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).

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:
  • working tone rows (serialism)
  • working with rhythm
As it's the firs time we've used this ideas in patches we'll use fairly straight forward implementations. Here's a summary of what our algorithmic composition patch will do:

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.