Playfully smart sound
What is this all about than?
As a second year student of Creative projects at Goldsmiths we have this module called creative projects!
In this module we can do almost anything we want (within reasons of course) for our projects so it can be kind of hard to pinpoint on ideas to execute. This blog post is kind of like a brain dump of ideas swirling in our heads to help us narrow on our ideas, as well as being a good way to archive things that we saw and thought was cool and might be helpful later on... and maybe even share some stuff with others.
We've been playing with the idea of sound and music and their relationship to computers. It can be really hard to get into music creation with out having learned it in a formal environment. The theme we've got in mind going forward is music and computers. Mainly how can we create music using a computer.
We are really interested in producing music with an algorithm. We're fascinated by the concept of a computer generating original music by itself using algorithms and systems. But, at the same time we don't want to do something just because it's cool! We want our project, what ever it may end up being, to have a purpose. We are really fond of allowing the user to feel involved in the creation process, allow them to feel involved regardless of their knowledge of music and sound.
What is an algorithm
Okay! before we go any further lets define what an algorithm is. Don't worry an algorithm isn't a scary thing that hackers and hardcore computer scientist use. And, although it can, it doesn’t have to involve scary maths either.
This guy called Gareth Loy said, back in 1989, that an algorithm is a measurable amount of steps that leads to an outcome (a result).
He also said that this result produced by these steps must be based on an input (an unspecified value that allows the results to vary) and that the time taken to do all of this has to be measurable (basically the algorithm can't take an infinite amount of time).
A great everyday example of an algorithm is a recipe. And I'll walk through why.
A recipe has:
- steps that need to be taken
- varying ingredients (the input)
- estimated time it will take to complete the recipe
- result in a dish
The above are all properties of both recipes and algorithms.
But let us not get too technical though! Moving on to the next bit.
Brief history of algorithmic composition
Algorithmic composition is not a new thing. The idea of creating music through algorithms has been around for centuries! Music notation can be considered a form of algorithm, it certainly has the properties of one, and a fella by the name of Guido d'Arezzo came about with a framework for music notation. And another fella by the name of Franco of Cologne created rules for timing of notes. This allowed for composer to be able to write instructions for their musical outcome, instead of the previous improvisational system.
The piece of music that is most famously reference as music that was generated (composed) through algorithms is Musikalisches Wurfelspiel by Mozart.
Mozart created many short musical pieces and he 'stitched' these pieces together, however the order of these where decided by throwing two six sided dice.
As a last note on the history of this I'll mention Ada Lovelace and what she had to say about composing music autonomously:
"Supposing, for instance, that the fundamental relations of pitched sound in the signs of harmony and of musical composition were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent"
On a quick side note, if you don't know about Ada yet definitely research her, she was a badass!
Computer generated music
In my research I found many ways to produce music and sound through code and in this section I'll explore them a bit.
SuperCollider a platform where musicians are able to compose through algorithms as well as synthesizing sounds.
There's also SonicPi which aims to be a user friendly, easy to learn music coding environment. Sonic Pi is great for both beginners and professionals, in fact it's so beginner friendly that it is used in primary schools to teach kids programming and music. Sonic Pi uses Ruby as a coding environment.
Heres a guy reproducing Aerodynamic by Daft Punk
To finish off this section here's a really cool talk by Ge Wang, the creator of ChucK, on computer music.
Modern examples of algorithmic music
Jukedeck is a platform designed for users that lack the technical skills to create music from scratch by simplifying its creation process to how the user would perceive musical elements. This provides a user-friendly environment but doesn’t always output a desired result as the range of possibilities for a set piece of music defined by these 3 parameters is virtually infinite and not ideal for users looking to translate their musical ideas into a fleshed out piece.
By passing simple arguments such as “aggressive” the user doesn’t have to worry about using technical terms to describe what they want for their piece of music which provides an easy way for beginners to compose. Jukedeck uses user interaction to make music quickly and easily although comes with many limitations in the creation process causing a potential disconnect with the user and their created piece.
MCLD is a programmer/musician that used the basis of Darwin’s natural selection to generate his music. He describes his music as a “delicately balanced eco-system” to create an evolutionary sound environment representing the relation between music and nature. He emphasizes this by creating his music from scratch without the use of premade samples or any predefined settings besides the algorithms used.
Modern examples of music analysis
Boil the Frog takes two chosen artists/bands of different genres and produces a short Spotify playlist of 10-20 tracks that transitions from the sound of the first artist to the second. This is done algorithmically through creating a path of similar artists from beginning to end prioritizing popularity in similar artists rather than finding the shortest possible path so that the resulting playlist plays safer to the user’s musical preference.
This is an example of analysis through databases rather than looking in-depth at musical data through FFT which is widely used in visual representations of musical waveforms and their frequency spaces. Evan Raskob used waveform analysis to create 3D models of natural sounds of different animals to create spiral shaped models.
For our project we’re looking to create an easy platform for users of all musical levels and provide an interactive experience for music composition. This is where we combine the use of musical analysis in a database setting to then send that data through an algorithm that will procedurally create music similar to the user’s preference much like how Boil The Frog prioritises popular artists over similarly sounding ones to create a consistent quality in the playlist. The user will then be able to interact with the music much like how a DJ manipulates songs by adding filters and effects to make certain aspects more exciting.
There are many forms of generating music through algorithms where certain parameters may or may not be predefined to allow varying levels of computer interaction such as the actual sound samples themselves being generated alongside a set piece of music and vice versa. For instance, if one user’s data says that they prefer heavy synthesis to natural sounds than our algorithm will provide more distortion to the samples to match the user’s initial specifications while allowing them to play around with ideas as the music progresses.
Most of the software I reference have a link embeded in their name linking to their sources, however theirs a few things that wasn't linked, references to their sources will go below