Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411283 Posts in 69325 Topics- by 58380 Members - Latest Member: bob1029

March 29, 2024, 12:55:33 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsAbundant Music: Online Procedural Music Editor
Pages: [1] 2 3 ... 7
Print
Author Topic: Abundant Music: Online Procedural Music Editor  (Read 32495 times)
krasse
Level 1
*



View Profile
« on: December 11, 2012, 02:30:01 AM »

I have been working for quite some time with a procedural music module that is supposed to be used for games and other interactive applications.

Test it here!

Some output from the module:







Here is a screenshot of the editor in its current form:




It uses canvas/webgl (Three.js), jQuery UI and web audio
« Last Edit: August 08, 2013, 11:37:50 AM by krasse » Logged

Vitali Kirpu
Level 1
*


reach your potential


View Profile WWW
« Reply #1 on: December 11, 2012, 06:31:50 AM »

Wow nice! Smiley
Logged

Working on the game and trying to help others on the way!

If you ever need tips let me know! I will gladly help
Paul Jeffries
Level 3
***



View Profile WWW
« Reply #2 on: December 11, 2012, 01:37:25 PM »

This is awesome on a conceptual level and also I can see this being absolutely ridiculously useful.  Keep up the good work man!
Logged

www.vitruality.com | SPARTAN - Small Pixel Art Animator and procedural tile generator
Code_Assassin
Level 5
*****


freedom


View Profile
« Reply #3 on: December 11, 2012, 03:34:12 PM »

I can definitely see how useful a tool like this would be useful in a Game Jam Smiley

Pretty nice UI you've got going there - looking forward to seeing this released.
Logged
krasse
Level 1
*



View Profile
« Reply #4 on: December 11, 2012, 03:51:41 PM »

Thanks for the positive feedback!
I hope you will find this useful when it goes online
Logged

TobiasW
Level 8
***


This can only end brilliantly!


View Profile WWW
« Reply #5 on: December 11, 2012, 04:18:00 PM »

That sounds so good! It's hard to believe it is generated Smiley

You wouldn't possibly give us a link to the current version for the Ludum Dare 25, would you? I never did any music before and that thing looks like a lifesaver.
Logged

krasse
Level 1
*



View Profile
« Reply #6 on: December 12, 2012, 02:23:44 AM »

That sounds so good! It's hard to believe it is generated Smiley

You wouldn't possibly give us a link to the current version for the Ludum Dare 25, would you? I never did any music before and that thing looks like a lifesaver.

Thanks!

I am just running a local version of the system. It is not online yet. I need to get a nice dedicated/virtual server first and set everything up before, which I won't have time for Smiley

Also, the server is very fragile and can crash if you give it the "wrong" input Smiley

It will be ready before LD 26 though.
Logged

krasse
Level 1
*



View Profile
« Reply #7 on: December 12, 2012, 02:50:55 AM »

Update 1

I am preparing for LD 25 and want to quickly produce songs of different kinds. This day I have been experimenting with this and produced some MP3s:


It is great to try to produce songs of different kinds. You immediately get new ideas for parameters to the module.

One thing that is really powerful with procedural music is that you can set up an overall template for your music and create endless variations by just changing seeds.

For example, I created 4 more variants of the intense song by just randomizing the main seed:  One, Two, Three, Four

You can probably hear that I locked the song structure, meter, some instruments, tempo, the drum types and what instruments should be playing in the different song parts etc.

In this way you can create both very narrow and very broad music by letting the random seeds determine more or less of the content.

Bye for now!
« Last Edit: December 12, 2012, 03:13:35 AM by krasse » Logged

Paul Jeffries
Level 3
***



View Profile WWW
« Reply #8 on: December 12, 2012, 03:21:44 AM »

Update 1

I am preparing for LD 25 and want to quickly produce songs of different kinds. This day I have been experimenting with this and produced some MP3s:


It is great to try to produce songs of different kinds. You immediately get new ideas for parameters to the module.

One thing that is really powerful with procedural music is that you can set up an overall template for your music and create endless variations by just changing seeds.

For example, I created 4 more variants of the intense song by just randomizing the main seed:  One, Two, Three, Four

You can probably hear that I locked the song structure, meter, some instruments, tempo, the drum types and what instruments should be playing in the different song parts etc.

In this way you can create both very narrow and very broad music by letting the random seeds determine more or less of the content.

Bye for now!

*drools*

Could a system like this be made to run in real-time alongside a game, so that the game could generate its own music on-the-fly to respond to what is currently going on?  Or is it a bit too resource intensive for that and/or needs manual validation?
Logged

www.vitruality.com | SPARTAN - Small Pixel Art Animator and procedural tile generator
krasse
Level 1
*



View Profile
« Reply #9 on: December 12, 2012, 04:26:43 AM »


Could a system like this be made to run in real-time alongside a game, so that the game could generate its own music on-the-fly to respond to what is currently going on?  Or is it a bit too resource intensive for that and/or needs manual validation?

This is the next step in the development. The system is currently quite resource intensive but it shouldn't be a problem to make a time-sliced version. The above songs take approx 1-2 seconds to compose for me (depending on length, not counting render time) but you can compose a single phrase in 200-300 ms. I also plan to do a lot of optimization of course Smiley

Also, the system is currently written in javascript so I boldly expect some further speedup by just switching to something that can be compiled to bytecode (for example C# or Java).

I don't think there is going to be a problem with validation. You maybe have to constrain the songs a bit more though.

It would be fun to see what can be done if the module is packed into a Unity or Java/libgdx plugin Smiley
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #10 on: December 12, 2012, 08:37:32 AM »

Wow impressive, what is the exact process you use? Template based and melody generator?
Logged

Paul Jeffries
Level 3
***



View Profile WWW
« Reply #11 on: December 12, 2012, 11:48:33 AM »

This is the next step in the development. The system is currently quite resource intensive but it shouldn't be a problem to make a time-sliced version. The above songs take approx 1-2 seconds to compose for me (depending on length, not counting render time) but you can compose a single phrase in 200-300 ms. I also plan to do a lot of optimization of course Smiley

Logged

www.vitruality.com | SPARTAN - Small Pixel Art Animator and procedural tile generator
krasse
Level 1
*



View Profile
« Reply #12 on: December 12, 2012, 12:46:10 PM »

Wow impressive, what is the exact process you use? Template based and melody generator?

Many techniques are used but the most vital part is the constraint optimization planner. You basically give guidelines to the planner and it tries to optimize a cost function where "rules" for music is encoded + song preferences.

You must also provide the song preferences, which is a large problem in itself Smiley. You don't want to force the user to write constraint rules but you still want to have a lot of options.

Basically it is "just" a constraint optimization system combined with an abstraction to hide all that difficult constraint stuff.

Logged

krasse
Level 1
*



View Profile
« Reply #13 on: December 12, 2012, 01:53:44 PM »



Maybe the opposite for composers Wink
Nah, the results are not that good yet to compete with real composers. It could possibly become the music variant of SFXR though.

Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #14 on: December 12, 2012, 02:12:21 PM »

Remind me of that:
http://www.psmag.com/culture-society/triumph-of-the-cyborg-composer-8507/
I have to buy his book where he explain how he does...

I had participated, on the design side, on a music game where the game interpreted a small composition of the player which translate into game action. I always had been looking at this genre of stuff, i just have no knowledge about music.

I'm really looking for what you will do!
Logged

krasse
Level 1
*



View Profile
« Reply #15 on: December 13, 2012, 03:22:00 PM »

Update 2
I have refined and improved my percussion generator somewhat and felt the need to write something about that.

Some background:
Basically, the percussion consists of grooves and fills.
Each groove has a bass, snare, ride and crash part.
In the vanilla settings of the generator, there is a higher probability to select "normal" instruments to fill the different part "roles". The bass part is usually filled with bass drums and so on but there is always a chance for some other drum to fill another role.

The real fun begins when you start to create some cool rythm variations for the different parts, which is what I have done/improved today.

With the vanilla settings, just randomizing the main seed, the following grooves + fills popped out:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33

These are just four measures where the last measure is the fill. The last ones are in 3/4 but most of them are in 4/4. I am pretty happy with the diversity of the result, but it is not always appropriate for a certain song type so I am trying to find some good and intuitive parameters to control it.

Thats all! Good luck to all participants of Ludum Dare this weekend Smiley
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #16 on: December 13, 2012, 05:30:08 PM »

I'm sorry but  Epileptic you are a  Wizard
Logged

Graham-
Level 10
*****


ftw


View Profile
« Reply #17 on: December 13, 2012, 06:53:39 PM »

I'm doing proc-gen music too. Nice to see some competition.
Logged
krasse
Level 1
*



View Profile
« Reply #18 on: December 13, 2012, 11:48:49 PM »

I'm doing proc-gen music too. Nice to see some competition.

Cool!
Do you have any links to a system or any output?
Logged

Graham-
Level 10
*****


ftw


View Profile
« Reply #19 on: December 13, 2012, 11:53:44 PM »

hahah. no.

my experience is in AI design. so right now I'm working on what you could call a core "ai engine" that will power a lot of proc-gen features. music is just one of them. it will be a while before I can share something like that.

but thanks for asking. I have sketched out many of the issues I'll have to face when it comes to music. there are still many hurdles to cross. relative to my AI (proc-gen) experience my composition experience is more limited. but if you have any critical barriers you're facing I can comment on them.

Logged
Pages: [1] 2 3 ... 7
Print
Jump to:  

Theme orange-lt created by panic