Page 1 of 1

Music generation for reactive or dynamic music

PostPosted: 11 Sep 2011, 23:50
by charlie
Music that doesn't get repetitive or adapts to the situation in a game is a trick few have mastered, either in the commercial domain or in Free software games.

Whereas music is traditionally composed/produced then simply looped during games, there is another possibility - generating the music on-demand to match the current scenario. These are two Java libraries for doing this.

Sound Helix algorithmic random music composer

(Source: java-gaming.org thread)

SoundHelix is a Java framework for composing algorithmic music.

The examples on the webpage are really good:
http://www.soundhelix.com/audio-examples

Simple example applet:
http://www.soundhelix.com/applet/SoundHelix-applet.jnlp

The music created is totally random within the limits provided.

Music generation can be quite 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.

Reactive Music Language

(Source: java-gaming.org thread)

The reactive music language editor and

The Music Generator is the layer below the Reactive Music Language (sort of). If you want to study the Music Generator in isolation, this is the place for you.

A video that demonstrates a module:
http://www.youtube.com/watch?v=wUxdZjHdcIw

Another video that demonstrates two modules and the editor
http://www.youtube.com/watch?v=XQ9h_uxegjQ
The second demo is at 6:08 and the editor demo is at 8:00 if you want to skip forward Smiley

The Music Generator produces one musical measure or bar at a time given a large set of possible property values. It also keeps track of a harmonic rythm.

The Reactive Music Language (RML) supports scripting, action execution (parallel, conditional etc.), external parameter mapping, states with reactions.

The examples with multiple channels are the most interesting ones to listen to, the others are more tutorial-like and demonstrate one particular functionality.

I think that the most interesting application for this API is to put RML modules inside games that produce music depending on what happens.

Re: Music generation for reactive or dynamic music

PostPosted: 12 Sep 2011, 08:50
by qubodup
I have a link to share on this topic for musicians: Techniques for Looping Game Music (since the underlying [overlying?] music still needs to loop)

Re: Music generation for reactive or dynamic music

PostPosted: 12 Dec 2011, 16:49
by pernyblom
Hello!
I can answer any questions you have about the reactive music language since I am the developer :)

Re: Music generation for reactive or dynamic music

PostPosted: 13 Dec 2011, 14:23
by Cacatoes
If this is of interest for some of you: http://www.youtube.com/watch?v=g5KIyYZkzmI
Using puredata behind.

Could have been less boring but filmed it in a way which tried to show the mechanism.
Could have as well tried to fit a song-oriented purpose, but this was only the start of some experiment so it's rather basic.

Re: Music generation for reactive or dynamic music

PostPosted: 18 Apr 2013, 10:35
by TranceTip
SoundHelix 0.6 has been released. Visit http://www.soundhelix.com

Re: Music generation for reactive or dynamic music

PostPosted: 18 Apr 2013, 20:31
by qubodup
TranceTip {l Wrote}:SoundHelix 0.6 has been released. Visit http://www.soundhelix.com

I like this one: http://www.youtube.com/watch?v=M9Xoi9PGKGA

More examples: https://www.youtube.com/user/SoundHelix/videos?view=0

Re: Music generation for reactive or dynamic music

PostPosted: 19 Apr 2013, 02:23
by qubodup
SoundHelix "just works" on my Arch box!

I just noticed
Results generated with SoundHelix (in audio or any other format, like MIDI files) must clearly be marked as generated by SoundHelix (including the SoundHelix version number used) in the product description, both for commercial and non-commercial usage. The same applies to SoundHelix results being used or sold on audio or data media or offered for download. SoundHelix may not be used commercially for realtime playback.
as part of http://www.soundhelix.com/license . I get the feeling that might be restriction that can't be imposed by free software but I'd have to understand how it actually works, to be sure. (All I know there are song xml files, but it's no clear if the author means that from-scratch xml files also have to follow this restriction.)

Re: Music generation for reactive or dynamic music

PostPosted: 09 Apr 2014, 22:07
by TranceTip
The SoundHelix license has been relaxed considerably now. Please see http://www.soundhelix.com/license

Re: Music generation for reactive or dynamic music

PostPosted: 10 Apr 2014, 02:28
by farcodev
Cool, thanks!

Re: Music generation for reactive or dynamic music

PostPosted: 10 Apr 2014, 09:55
by gouessej
TranceTip {l Wrote}:The SoundHelix license has been relaxed considerably now. Please see http://www.soundhelix.com/license

Ok but the sentence above has just been rephrased in the meantime:
You are asked to give credit to SoundHelix (including the version number) for results that you have generated with SoundHelix (in audio or any other format, like MIDI files), for example in the product description or e.g. in the metadata of the result file itself.


:gpl: v3 is nice anyway :D

Re: Music generation for reactive or dynamic music

PostPosted: 10 Apr 2014, 11:41
by c_xong
gouessej {l Wrote}:Ok but the sentence above has just been rephrased in the meantime:
You are asked to give credit to SoundHelix (including the version number) for results that you have generated with SoundHelix (in audio or any other format, like MIDI files), for example in the product description or e.g. in the metadata of the result file itself.


Ouch, good catch.

I don't see how they can enforce that though :p

https://www.gnu.org/licenses/gpl-faq.html#GPLOutput

Is there some way that I can GPL the output people get from use of my program? For example, if my program is used to develop hardware designs, can I require that these designs must be free? (#GPLOutput)
In general this is legally impossible; copyright law does not give you any say in the use of the output people make from their data using your program. If the user uses your program to enter or convert his own data, the copyright on the output belongs to him, not you.


However, if they care so much, why not just make their program embed the metadata itself?
Still, even if it doesn't look enforceable, I'd tell people to give credit unless they enjoy being sued.

Re: Music generation for reactive or dynamic music

PostPosted: 24 May 2014, 00:14
by TranceTip
SoundHelix 0.7 has been released. http://www.soundhelix.com

Re: Music generation for reactive or dynamic music

PostPosted: 26 May 2014, 20:13
by TranceTip
gouessej {l Wrote}:
TranceTip {l Wrote}:The SoundHelix license has been relaxed considerably now. Please see http://www.soundhelix.com/license

Ok but the sentence above has just been rephrased in the meantime:
You are asked to give credit to SoundHelix (including the version number) for results that you have generated with SoundHelix (in audio or any other format, like MIDI files), for example in the product description or e.g. in the metadata of the result file itself.


:gpl: v3 is nice anyway :D


It is just a polite request to mention that SoundHelix was used for generating the music, not a strict requirement. Feel free to use SoundHelix' output in any way you like.

Re: Music generation for reactive or dynamic music

PostPosted: 05 Jun 2014, 22:09
by TranceTip
SoundHelix 0.7.1 has been released. http://www.soundhelix.com