Hacker News new | past | comments | ask | show | jobs | submit login
Generating Music (with an algorithm) (bozho.net)
71 points by bozho on Nov 22, 2012 | hide | past | favorite | 50 comments

There are at least two major areas of music composition which the algorythmic attempts fall vastly short of humans.

One is that real music composition is never done where the timbres are separated from the composition. Classically notated music looks kind of like this, but it's really just a shorthand. A composer knows intimately the sounds she is working with.

For pop music, the timbre itself is a mode of creative expression. Innovation in musical timbres and sounds is an expected part of pop music. (I'm using "pop" in the most general sense, covering a large amount of contemporary genres). The meaning of the music is not captured by simplistic reference to musical notation concepts.

The other major limitation of generated music, to my ears, is that of overall compositional structure. The units of composition usually are short, and only locally referenced. So the compositions lack interesting shape over the course of time.

If you think of a composition as a story, it's as if a bunch of plausible paragraph that are coherent within them selves are strung together with only loose reference to each other. So a longer "plot" doesn't emerge.

> One is that real music composition is never done where the timbres are separated from the composition.

It's true that composers almost always have a sound in mind when they write the notes, but it's very common to perform compositions using entirely different instrumentation to that originally envisaged.

In 1995 Douglas Hofstadter wrote a short essay that describes his amazement with a piece of music composed by a program. Interesting reading: http://www.cs.washington.edu/education/courses/cse403/03su/m...

Great. The composer doesn't need to have gone through emotional breakdown, drugs, or whatever, to create beautiful music. He just needs talant. And I think talant may be at some point expressed in zeroes and ones.

The best one I've ever heard was AlgoMusic[0] on the Amiga by Thomas Schürger. I used to spend hours listening to it. And it was a pleasant surprise while searching for it now, to find out that the author has a brand new project called SoundHelix[1] that has all the awesomeness of AlgoMusic, and sounds even more incredible. You should listen to the examples[2].

[0]: http://aminet.net/package/mus/misc/AlgoMusic2_4

[1]: http://www.soundhelix.com/

[2]: http://www.soundhelix.com/audio-examples

I've been wondering how long it would be until web sites like this started showing up, where you can listen to automatically generated music on demand.

Hopefully they keep improving until they make the best human composers look mediocre, despite being millions of times faster. Unbounded amounts of new high quality low cost music? Yes please.

Have you seen DarwinTunes?


Just checked it out, very interesting concept. But from what I heard the music doesn't seem to be evolving much!

Nope. Pretty interesting, though. Will read about it more.

Even better, this could be a very good way to permanently kill RIAA -- and because tech like this can't really be made illegal and requires no special permission, ingrediences or tools, there is nothing at all they can do about it.

We still haven't really solved the problem of getting a digital piano to sound anything like a Steinway Concert Grand. Even if we could replace artistic expression with algorithm in this instance, the instrument sound itself has miles to go as well, and may well never be replicated with the precision that a true piano has.

Have you heard of Pianoteq? http://www.pianoteq.com/

I've heard it a few times. I like the sound a lot, but I know a few artists who still won't use it.

My point is similar, but not exactly the same. The best human composers will still be the best. However, the other 90% may be replaced by computers. Or, computers may generate some "skeletons", which real composers can use and enrich.

I have generated quite a bit of music using evolutionary algorithms. My research is mostly about figuring out representations that are not at too low a level (eg 1 "gene" per note). I like representations that in some way represent the patterns, oscillations, and processes that seem to drive music forward over time.

A paper: http://ncra.ucd.ie/papers/gecco2011_jmcdermott.pdf

Some short mp3s: http://www.skynet.ie/~jmmcd/software/GraphMusicDemoPieces.tg...

Longer, slow-developing stuff on soundcloud (using slightly different software): http://soundcloud.com/jmmcd/tomorrow-is-a-new-day

they sound pretty nice :) will read the paper immediately

Thanks -- I think they're kind of nice at a "local" level, but they don't have the more "global" coherent movement that yours have.

Where did you get the instrument sounds?

Garageband! It's a pretty crappy sequencer, but the synth sounds are fine. I imported the midi tracks saved by the algorithm and then mostly just chose from the preset synth sounds.

One problem I noticed sometimes was a limit to Garageband's polyphony in the pianos. I think it only allows 8 or 10 notes at a time in some cases (not sure exactly how it works) and my software has a habit of playing a lot more than that.

This is probably one of the best algorithmic music generators I've heard. It has a lot more feel of composition to it than most I've heard.

The music at any given point sounds great, like classic video game bgm, but theres one thing that irks me. I don't feel a clear start and end to the music, it just seems abrupt both ways.

true that, I'll try to improve the general structure, so that it sounds complete

The program might benefit a lot from better timbres. It's hard to appreciate (or not) other features when the tones are so pallid, so impoverished.

Nice work. Is anybody aware of automatic music performing software? I think that this is similar to automatic generation of music but more structured and therefore easier to implement. I remember reading some studies about software performing classical compositions, but never found working prototype to play with.

I've read some papers about software used to help live performers, some sort of co-performer, or accompanying robot. But I can't find the paper right now..

Yap, there is a bunch of papers, but no publicly available prototype to try. Imagine having a python module:

from imaginary_music_module import piano_performer as p

p.play("chopin.ly", style="Pogorelich")

That would be nice :)

Terrific, I guess the first virtual minds will love these first algorithmic songs; from an historical point of view.

Have you ever thought of using some more complicated algorithm for randomness, e.g., genetic algorithm?


I have indeed looked at some genetic algorithms and a lot of papers on the topic (in fact, my former university has a course about that, so I read the coursebook). Most of what I have read is either included, attempted, or in TODO. And obviously, I need to read some more.

That interactive thing looks useful. It might be possible to build a music composer (website) using collective intelligence, i.e., producing music by taking people's response into consideration?

The idea of "liking" and "disliking" is to: 1. Get a collection of 'best' tracks that sort-of advertises the successful parts of the algorithm 2. To let me analyze which intermediate decisions in the generation process are good and which not, so that I can make the good ones happen more often.

I took part in a "create a game in a day" event recently. Some of the compositions sounded like they would have been perfect for the game, which leads to the strange question: what is the copyright on music composed by the algorithm?

Creative Commons is the one I picked

There is Wolfram Tones: http://tones.wolfram.com/

It makes the mistake of trying to generate in established genres. None of the genres I care for were anywhere near the mark.

Man, that is some pretty crappy music. Good effort though. Algorithm needs more theory. Good music isn't that random. You are missing phrasing, repetition, rhythm.

I'm not missing it - all three things are encoded there. They might not be that "visible", which is a point of improvement, but the theory is there. As I wrote in the blog "random" generates noise. That's why composition rules are needed.

Hmm, no mention of Prof. Cope at UCSC


My thoughts exactly. Virtual Music gives a great insight into Cope's ideas: http://mitpress.mit.edu/books/virtual-music

Sadly his code (lisp if I remember correctly) isn't on github either...

I deliberately made it generate/play tracks with 0 user input. This thing might be good, but I couldn't make it play anything meaningful

Another one, with a pretty bizarre UI: http://www.melomics.com.



Yup, I've read this just after have posted the question. Thx ;)

Does not work for me in Chrome. Works in Safari. I'm on a Macbook Pro.

strange. It works on chrome on windows.

it sounds like i expected it would :)

bad, or artificial? If "artificial" - that's the performance side, and it depends on the soundbank. If a real performer plays the same score, it would sound better. The point is to have nice compositions first :)

sounds are ok (to my untrained ear), and great effort building this!

still, a little too random

since it's algoritmic, maybe you can go for a little "coherence" throughout a piece, if it makes sense?

sure, any feedback is welcome. The thing is still in an experimental phase, and I'm trying to improve it bit by bit

You need better instruments sounds, they sound worse than S3M instruments that I messed with in the 90's.

Will look for a better soundbank, indeed

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact