Hi !
Featured games (84)
games approved by the League of Dukes
Games in Showcase (555)
Games in Android Showcase (148)
games submitted by our members
Games in WIP (601)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  SoundHelix music generator  (Read 9367 times)
0 Members and 1 Guest are viewing this topic.
Offline krasse
« Posted 2011-09-01 20:37:25 »

SoundHelix is a Java framework for composing algorithmic music.

The examples on the webpage are really good:

Offline TranceTip

Senior Newbie

« Reply #1 - Posted 2011-09-08 19:49:01 »

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:
Offline CodeBunny

Senior Devvie

Medals: 4
Projects: 3

« Reply #2 - Posted 2011-09-08 21:33:09 »

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.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline TranceTip

Senior Newbie

« Reply #3 - Posted 2011-09-09 15:24:58 »

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 (, 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.
Offline CodeBunny

Senior Devvie

Medals: 4
Projects: 3

« Reply #4 - Posted 2011-09-09 20:22:57 »

Ah, I gotcha.

I noticed that all of the example tracks were trance. Can it generate more "soundtrack" style music?
Offline TranceTip

Senior Newbie

« Reply #5 - Posted 2011-09-10 18:04:01 »

Of course it can. It mostly depends on the instruments you use and on how you use them.
Offline philfrei
« Reply #6 - Posted 2011-09-11 06:03:23 »

"All songs are totally random."
Then why do they sound so much alike?  Wink

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.

"It's after the end of the world! Don't you know that yet?"
Offline aazimon
« Reply #7 - Posted 2011-09-11 14:13:46 »

I like "laugh at locksmiths". That was pretty good.
Offline TranceTip

Senior Newbie

« Reply #8 - Posted 2011-09-11 17:02:12 »

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:

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?  Cool
Offline philfrei
« Reply #9 - Posted 2011-09-11 20:07:29 »

It is cool! And I can see potential in classical as well, for better or worse, for computer generated music.

@TranceTip: seen this thread?

I'm thinking you might have, since krasse introduced you here.

"It's after the end of the world! Don't you know that yet?"
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline TranceTip

Senior Newbie

« Reply #10 - Posted 2011-09-12 11:14:42 »

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.
Offline TranceTip

Senior Newbie

« Reply #11 - Posted 2011-10-01 15:44:18 »

SoundHelix 0.3 has been released:
Offline TranceTip

Senior Newbie

« Reply #12 - Posted 2012-03-13 23:17:58 »

SoundHelix 0.4 has been released:
Offline TranceTip

Senior Newbie

« Reply #13 - Posted 2012-10-07 18:50:26 »

SoundHelix 0.5 has been released:
Offline TranceTip

Senior Newbie

« Reply #14 - Posted 2013-04-17 17:11:28 »

SoundHelix 0.6 has been released:
Offline tberthel
« Reply #15 - Posted 2013-04-17 17:37:18 »

Nice tool.  Too bad it is GPL only.  Maybe you should make a commercial license.

Pages: [1]
  ignore  |  Print  
You cannot reply to this message, because it is very, very old.

BurntPizza (18 views)
2015-02-27 06:09:35

BurntPizza (17 views)
2015-02-27 05:56:17

Riven (9 views)
2015-02-27 02:34:15

Riven (15 views)
2015-02-27 01:47:26

Riven (15 views)
2015-02-27 01:46:04

BurntPizza (11 views)
2015-02-27 00:52:04

BurntPizza (14 views)
2015-02-27 00:50:29

Riven (33 views)
2015-02-26 23:38:45

Riven (10 views)
2015-02-26 23:37:24

BurntPizza (26 views)
2015-02-26 21:13:04
How to: JGO Wiki
by Mac70
2015-02-17 20:56:16

2D Dynamic Lighting
by ThePixelPony
2015-01-01 20:25:42

How do I start Java Game Development?
by gouessej
2014-12-27 19:41:21

Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!