Sunday, 6 March 2016

Artificial Intelligence Techniques in Music Composition

In my previous post, we looked at some of the more popular computers that have been successful in composing music using artificial intelligence without any human intervention when actually composing the music. For this post, I will be talking about the different artificial intelligence techniques and behavior used by these and other programs to compose music and just in the artificial intelligence world in general.

In my first post I mentioned the problems that need to be addressed whenever we want to create a program that generates music. We need to know what type of knowledge and data we are going to provide the computer with, and how this data is going to be presented and inputted into the computer. We also need to take into consideration how the computer is going to represent the data that was provided to it, and finally what the computer is going to do with this data and how it is going to manipulate it in order to compose a new piece of music. These are some of the AI techniques that I will briefly go over that can help us address these problems:
  • Randomness
  • Markov chains
  • Cellular automata
  • Neural networks

Randomness
This one is not exactly considered artificial intelligence, but most computer generated music have varying degrees of randomness to them and some of the techniques discussed here rely on the element of randomness to be able to be implemented, so randomness still plays a big part in the creation of computer generated music.

Markov Chains
Named after Russian mathematician Andrey Markov, the Markov chains are a sequence of events in which each event is dependent on the previous event or the current state of the system. This technique is one example of an AI technique that relies heavily on the element of randomness. But unlike the randomness that you get when throwing the dice or when flipping a coin, in which cases you have no control over the result each time you do it, when using Markov chains the probability of certain results increases based on what the previous result was. In music, this can be used by a program when trying to decide the sequence of pitches of the music that is being composed. For example, if a song is being composed in the scale of A-minor, whenever the system is trying to decide the pitch of the next note in the song, it is very likely that the pitch that it chooses is going to be in the A-minor scale.

Cellular Automata
Cellular automata is similar to Markov chains in that it is dependent on the current state of the system. 'Cellular automata are normally implemented on a computer as a regular array or matrix of variables, or cells, which normally can have one, two or three dimensions.' (2) The way cellular automata works is that all the cells in the array or matrix change simultaneously with each tick of an imaginary clock depending on a set of transition rules and also depending on the values of the neighboring cells.
One good example of software that uses cellular automata to create music is WolframTones.

Neural Networks
Neural networks are inspired by an animal's nervous system, and more specifically, by an animal's brain and how all the neurons in the brain are connected with each other. Of course, in a neural network of artificial intelligence, there are far less neurons than in our human brain and they are obviously much simpler than an actual brain. Neural networks are systems of 'neurons' or nodes that are interconnected and collaborate with each other in order to produce an output. Neural networks need a set of instructions or training data so that we can "teach" the network how to behave and how to compose music, much like the Emily Howell which was discussed in my previous post.


All of these techniques can be used by computer programs to generate and compose music, but they are not limited to just music. These sames techniques can be used to generate content in other forms of art, such as images, and level generators in video games.

There exists even more artificial intelligence techniques used in music generation which I did not mention, such as swarm intelligence and melomics, which is a way of composing music without any sort of human intervention. As already mentioned in my previous post, melomics is what the Iamus computer uses to compose its music.


References

(1) Biran Hayes. 'First Links in the Markov Chain', American Scientist; 2013

(2) Eduardo R. Miranda. 'Evolving Cellular Automata Music: From Sound Synthesis to Composition', http://csl.sony.fr/downloads/papers/2001/miranda-almma2001.pdfi; 2001

No comments:

Post a Comment