SoundHelix is a Java framework for composing algorithmic music.
The examples on the webpage are really good:
http://www.soundhelix.com/audio-examples
SoundHelix is a Java framework for composing algorithmic music.
The examples on the webpage are really good:
http://www.soundhelix.com/audio-examples
You can even use SoundHelix in your own Java projects (as a realtime in-game music generator, for example) as long as they are Open Source. It’s pretty easy to integrate!
Read the documentation here: http://www.soundhelix.com/doc/integration-into-other-software
This is really, really cool. How intensive is it for it to generate music? Could it run parallel to, say, Minecraft, generating music as you play?
Also: why no commercial or even closed source games? I’m all for free software, but this could definitely be useful to a commercial game studio. Their using it wouldn’t detract from its FS status.
Music generation can be query fast (millisecond range) or really slow (seconds range), depending on how complex the constraints are for the generated songs. Virtually all time for song generation is spent in finding a random song activity matrix that fulfills the given constraints. Once a valid matrix has been found, rendering the song is very fast.
As you can see from the simple example provided in the applet (http://www.soundhelix.com/applet/SoundHelix-applet.jnlp), song rendering times can vary (timing information is logged in the debug output), but it’s fast, because the constraints are not very restrictive.
After generating the song, the player (which is a MIDI-based player) takes almost zero CPU time; your MIDI playback device (whatever you use, for example the Windows MIDI device) might take some CPU time, but the player doesn’t.
It’s absolutely no problem to let it run in the background while playing a game (3D shooters, etc.), even if you use a software synthesizer. I’m sure about that, because I do it all the time.
I’m not saying that there is no way to use SoundHelix in commercial and/or closed source games, all I’m saying is that this is not allowed with the GPLv3. I’m open for negotiating non-free (paid) licenses for commercial and/or closed source games.
Ah, I gotcha.
I noticed that all of the example tracks were trance. Can it generate more “soundtrack” style music?
Of course it can. It mostly depends on the instruments you use and on how you use them.
“All songs are totally random.”
Then why do they sound so much alike?
Pardon me. I’m a composer also interested in music generation, and am both quite impressed with the program, and feeling a little defensive!
For comparison I offer (shamelessly plug) the following 5 minutes of music, two songs which took me about 75 hours to compose.
[EDIT: http://www.java-gaming.org/index.php/topic,24646.msg209810.html#msg209810]
I like “laugh at locksmiths”. That was pretty good.
Um, “totally random” is of course not really true. “Totally random within the limits I provided” would be more appropriate. What I meant was that none of the patterns used were fixed to a specific pattern. In the example songs 10 and 11, most instruments (except for the rhythmic ones) use random patterns. They use the RandomPatternEngine, as described here: http://www.soundhelix.com/doc/randompatternengine
Why do they sound pretty similar? It’s because all use the same set of instruments and the (more or less) the same configuration. I would therefore not expect them to sound very different.
The good thing is that you can easily extend SoundHelix using your own implementation of a SoundHelix component. There’s a lot of room for improvement, for sure!
SoundHelix is currently not really suited for classical music, but that could change once an ArrangementEngine is available that fulfills the needs for classical music. Right now, you can use SoundHelix for Pop, Dance, Electro, whatever. And this already is a lot to configure. Make things more generic and flexible and it will become a mess configuration-wise.
Isn’t it nice that you can get a remix of a song just by running SoundHelix again with a different random seed or song title? 8)
It is cool! And I can see potential in classical as well, for better or worse, for computer generated music.
@TranceTip: seen this thread?
http://www.java-gaming.org/index.php/topic,23674.msg197220.html#msg197220
I’m thinking you might have, since krasse introduced you here.
I hadn’t seen the other thread before, no. I’ve just read through it. Sounds interesting!
SoundHelix cannot be used for incremental song generation currently, but that could change in the future.
Nice tool. Too bad it is GPL only. Maybe you should make a commercial license.