Question

I'm looking into playing around with procedurally generating music. I'm hoping to find a really a simple API where I can just call out instrument, note, duration and string together a song (I'll take anything of course, but that would be my preference). Is there any library that does this?

Was it helpful?

Solution

Your best bet is a music programming environment, of which there are several.

Csound is one of the best known ones. Here is their website.

Max MSP is also another widely used option, and it provides a visual programming interface too. It is, however, commercial.

Another well known option (and widely used by experimental electronic musicians) is SuperCollider. This is its webpage.

Here's a Wikipedia article describing similar languages/environments.

You can also use a general programming language with the right libraries to do audio/music work. Java, for one, provides the Java Sound API.

OTHER TIPS

JFugue was developed specifically to support procedural generation of music. It's a free, open-source (LGPL) Java API.

It's hard to give specific recommendations, since you didn't specify a language. Most languages have a decent MIDI library though, that would be the first place I would look, unless you need something heavier than the MIDI format allows.

Maybe Generative music is a good start. Googling leads a couple interesting links, too. Brian Eno created procedurally generated music for Spore.

You might want to look at Common Music.
It's a music composition system that transforms high-level algorithmic representations of musical processes and structure into a variety of control protocols for sound synthesis and display

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top