Sunday 23 May 2010

Algorithmic Composition with timbres: Klangfarbenmelodie

Algorithmic composition often tends to focus on pitch and rhythm. Today's algorithmic composition tutorial concentrates on timbre, creating algorithmic music by outputting MIDI from MaxMSP [Max] and PureData [PD].

Klangfarbenmelodie (German for tone color melody) and the synonymous French term mélodie de timbres distributes a melody over several instruments rather than assigning it to just one, the listener's focus becomes timbre rather than pitch.

In a similar way, the algorithmic composition patch we'll build today outputs series of overlapping randomly chosen timbres to create an interesting musical texture.

Jump to the end of the post to hear some sample algorithmic music output from this patch.

Algorithmic Composition with MIDI Timbres
Firstly we'll get a simple MIDI note to play in Max and PureData: add a toggle, a metronome object, a message and makenote and noteout objects. If you're not sure how to do this, work through some of the earlier algorithmic composition tutorials here:
Your Max or PureData patch should now look like this, you should also hear a MIDI note when you turn the toggle on. If not, check you have a MIDI output device selected.
algorithmic composition with timbre Max 1algorithmic composition with timbre PureData 1

Thursday 20 May 2010

Algorithmic Composition with OpenMusic | Markov Chains and Rhythm

Previous Algorithmic Composition tutorials have looked at using Markov Chains in OpenMusic, using some of the functions available in the OMalea library to analyse the pitches of a MIDI file and create new algorithmic compositions based on these.

Today we're looking using Markov Chains in OpenMusic to generate rhythmic patterns for algorithmic compositions.

 Algorithmic Composition Markov Chain OpenMusic
Our previous OpenMusic tutorial used these functions from OpenMusic's OMalea library:
  • ana-mark to analyse a MIDI file to create a transition table of pitches and
  • markov1 to generate a new algorithmic composition based on the transition table.
Although we were previously using our Markov chain to analyse and generate pitches, you can also use ana-mark and markov1 from the OpenMusic OMalea library to generate rhythms.

Sunday 16 May 2010

Algorithmic Composition: Markov Chains in Max MSP

We've looked at using Markov Chains for Algorithmic Composition in PureData, Markov Chains in Keykit and Markov Chains in OpenMusic in previous posts.

In today's Algorithmic Composition tutorial we'll look at using Markov Chains in Max MSP to analysis existing music and generate new algorithmic music.

We'll start off by recreating the Markov Chains in PureData example and then extend it with some new features. Creating the Markov Chain in Max is similar to composing in PureData, so if you haven't read through the Markov Chains in PureData post yet it's worth doing that now.

Saturday 8 May 2010

Algorithmic Composition: Markov Chains in PureData

We've looked at Markov Chains in a few previous Algorithmic Composer tutorials including Markov Chains in Keykit and Markov Chains in OpenMusic. Today we'll be creating some algorithmic music by composing with Markov Chains in PureData.


Markov Chains choose the next state based on the current state and a set of probabilities. Mapped to pitch this would involve choosing our next note based on our current note and a list of possible next notes and their probabilities.

In today's tutorial we'll look at examples of Markov Chains and use them to generate pitches for a simple algorithmic composition.

Thursday 6 May 2010

Algorithmic Composition | OpenMusic Rhythm Trees Tutorial Part 2

In our last algorithmic composition tutorial we introduced using Rhythm Trees in OpenMusic. Rhythm trees are powerful ways of representing complex musical rhythms, the downside is that they can be a little cumbersome to enter by hand.

Fortunately we can use some of the built in objects in OpenMusic and simple algorithmic composition techniques to generate rhythm trees and musically interesting rhythms for us.


Sunday 2 May 2010

Algorithmic Composition | OpenMusic Rhythm Trees Tutorial Part 1

In previous algorithmic composition tutorials we've looked at using OpenMusic for algorithmic composition, today's algorithmic composition tutorial introduces Rhythm Trees.

Rhythm trees are a way of representing rhythm with nested lists. The notation can get quite unwieldy and a little complicated, however these disadvantages are outweighed by the advantages. using rhythm trees it's possible to represent very complex rhythms with relatively simple notation, it's also possible to create simple and complex rhythms using algorithmic composition techniques.

The simplest way to work with rhythm trees is to enter a list of rhythms and connect this to the tree input of a voice object.

Saturday 1 May 2010

Random Walks in Max and PureData Part Two

Our last algorithmic composition tutorial introduced random walks in Max and PureData. Today's algorithmic composition tutorial follows on from this with a small extension: we'll apply random walk to dynamics and walk through a scale rather than chromatic pitches.

I'll assume that you've read through some of the previous Algorithmic Composition Tutorials for Max and PureData here.

Random Walk Through a Major Scale: PureData
This patch differs from the the last random walk in PureData in that we're walking through a scale. The scale is defined here, using the intervals of a major scale.