Dynamic Sound (Part 1)
by Luke Hopkins · 07/03/2006 (11:36 am) · 14 comments
Dynamic Sound (Part 1)
Have you ever played a game where the music gives you so much energy to go round killing everything in site as fast as you can? Games I've experience with this are games such as Halo and Geometry Wars.
As a musician and gamer I want combine the two together, instead of having the game playing a song relevant to the level or a song just changing due to level. I'm going to hopefully develop some sort of music engine inside of Torque that can play the relevant samples of music together and then link each one to each other to create music that reacts to the atmosphere and continually plays but is always different. Example: if the engine detects a lot of player activity and enemy the song becomes faster and a guitar solo will come into play. This will work by basically the whole engine will be based up the basics of Music Theory, such as chord structures, beats per minute, scales intervals, pitches, dynamics and tempo. This music theory will then go in the samples made, which then can easily mix within the engine. By doing this people then with a good knowledge of Music can start to join the game industry and they don't need to know any coding as most things will be based up on music samples. The only coding will be to put the files in the right position and to get the samples to react with the right environment.

The image above shows the tracks for all the different sounds that go into the song. This basically shows a song building up to a solo in the way in which more and more tracks and sounds are added in order to build the sound up. Normally the track would not be spilt in the way that it is shown but I have split them up in order to explain how its goings to fix in to the engine.
Next I'll go on to explain how a song is made what rules you have to go by and why these rules are a very important to the engine.
I am going to show you how music theory is applied to the lead guitar and how it will develop in the engine. I am only going to show you a lead guitar part as I would be here for ages explaining all different theories and music you might not understand so I have gone for the most common instrument the guitar.
This picture shows four different sections of the song

I will now cut these four up and explain what theory has to go in to them and why. Basically each bar has to have the same chord structures and end and start on the same tempo this is so when the engine links them together the song will sound correct.

The intro will start on tempo of 120.00 and I the four chords I will use are going to be Bm, E, C#m and D
Now for my other bar I can choose any chord that can link with Bm or D such as A of course you will need to go by the chord patterns for the genre you want. I think I'll stop here for now as either you totally lost or you get were I'm going with this I will post more once I got my samples settled into the engine and I'll make a blog on how I get the samples to work and react with the engine. Sorry if a few of a chords are wrong I don't think they are or just say if you don't think that this engine will be needed for any game engines or projects. Like to hear whether you find this useful or just plan nonsense this is my first big project and I'm still properly grasping Torque but I would like to know what you think to this blog also I know at the moment it has no relevance to Torque but it will do in the next blog.
Have you ever played a game where the music gives you so much energy to go round killing everything in site as fast as you can? Games I've experience with this are games such as Halo and Geometry Wars.
As a musician and gamer I want combine the two together, instead of having the game playing a song relevant to the level or a song just changing due to level. I'm going to hopefully develop some sort of music engine inside of Torque that can play the relevant samples of music together and then link each one to each other to create music that reacts to the atmosphere and continually plays but is always different. Example: if the engine detects a lot of player activity and enemy the song becomes faster and a guitar solo will come into play. This will work by basically the whole engine will be based up the basics of Music Theory, such as chord structures, beats per minute, scales intervals, pitches, dynamics and tempo. This music theory will then go in the samples made, which then can easily mix within the engine. By doing this people then with a good knowledge of Music can start to join the game industry and they don't need to know any coding as most things will be based up on music samples. The only coding will be to put the files in the right position and to get the samples to react with the right environment.

The image above shows the tracks for all the different sounds that go into the song. This basically shows a song building up to a solo in the way in which more and more tracks and sounds are added in order to build the sound up. Normally the track would not be spilt in the way that it is shown but I have split them up in order to explain how its goings to fix in to the engine.
Next I'll go on to explain how a song is made what rules you have to go by and why these rules are a very important to the engine.
I am going to show you how music theory is applied to the lead guitar and how it will develop in the engine. I am only going to show you a lead guitar part as I would be here for ages explaining all different theories and music you might not understand so I have gone for the most common instrument the guitar.
This picture shows four different sections of the song

I will now cut these four up and explain what theory has to go in to them and why. Basically each bar has to have the same chord structures and end and start on the same tempo this is so when the engine links them together the song will sound correct.

The intro will start on tempo of 120.00 and I the four chords I will use are going to be Bm, E, C#m and D
Now for my other bar I can choose any chord that can link with Bm or D such as A of course you will need to go by the chord patterns for the genre you want. I think I'll stop here for now as either you totally lost or you get were I'm going with this I will post more once I got my samples settled into the engine and I'll make a blog on how I get the samples to work and react with the engine. Sorry if a few of a chords are wrong I don't think they are or just say if you don't think that this engine will be needed for any game engines or projects. Like to hear whether you find this useful or just plan nonsense this is my first big project and I'm still properly grasping Torque but I would like to know what you think to this blog also I know at the moment it has no relevance to Torque but it will do in the next blog.
#2
07/03/2006 (11:50 am)
lol i just emailed you sorry about it i didn't see yours yea we can work together on it i was mainly so the music side to it anyways and slowly push though the coding but yea if you want to work together im up for it
#3
07/03/2006 (1:32 pm)
This is really interesting because I have also spent a lot of time thinking about something like this, however I went in a different direction. What I wanted was actually a music "compression" scheme for musical elements that would let us put more music into downloadable games. For example: If your game has a trance sound track, does the sound file *really* need that 4/4 kick drum every single beat encoded into the mp3? Hell no. It's gonna be there (probably) the whole time...why not just make it loop. Etc.
#4
@Luke - What email did you send to? I haven't seen it yet! I'm very interested in connecting you with the composer who actually came up with the idea to begin with. He currently works for me on Forbidden Dawn. Maybe the 4 of us (you too Pat!) could really hash out a design doc for the system and get started working it. We should talk more off forum about this.
07/03/2006 (1:45 pm)
@Pat - Very interesting thoughts. I think we have the makings of an incredible tool here. With all three ideas put together, not only would you have a dynamic music (and sound for that matter) layer, but it would be more efficient if used properly than the current system.@Luke - What email did you send to? I haven't seen it yet! I'm very interested in connecting you with the composer who actually came up with the idea to begin with. He currently works for me on Forbidden Dawn. Maybe the 4 of us (you too Pat!) could really hash out a design doc for the system and get started working it. We should talk more off forum about this.
#5
07/03/2006 (1:49 pm)
sounds like a plan have your guys got msn if so add me atouchofclass2@hotmail.com
#6
07/03/2006 (1:59 pm)
I have MSN, but prefer to use YIM (yahoo) as MSN is crap. I'll toss you on there when I get home in a few hours.
#7
If you were to create a program like this to be used in GG's 2D and 3D engines I would be interested in checking it out. I find the indie community going through the same things that our big budget counterpart is just now getting over. A lack of ambition and priority in sound. Music is an afterthought in the indie community. Maybe this will help make music and sound stand out in indie games. Sounds interesting and I hope you guys can make this happen. Let me know if I can help test or contribute tracks or whatever.
-Ajari-
07/03/2006 (2:09 pm)
Kind of sounds like what is already in place for the Metal Gear and Splinter Cell series. At different stages of being detected more and more layers are added to the tracks to make the music interactive with what's going on in the game. As things cool down the tracks are stripped away until it's back to just the priginal core beat or melody.If you were to create a program like this to be used in GG's 2D and 3D engines I would be interested in checking it out. I find the indie community going through the same things that our big budget counterpart is just now getting over. A lack of ambition and priority in sound. Music is an afterthought in the indie community. Maybe this will help make music and sound stand out in indie games. Sounds interesting and I hope you guys can make this happen. Let me know if I can help test or contribute tracks or whatever.
-Ajari-
#8
Sound Designers and Engineers Unite!
07/03/2006 (2:13 pm)
Sound is at the front lines in my MMO strategy, along with economics. I have a sound engineer/composer and another composer, both highly professional working on the project at this time. We are working on hours and hours of music, dynamic and static that will be used in-game. Sound is highly important to every aspect of games and I don't have any illusions of 'skimming' in this area, which is why I'm willing to put a lot of energy and effort into this project.Sound Designers and Engineers Unite!
#9
07/04/2006 (4:10 am)
Myself and a friend have been developing a tool along these lines for the past year, and are putting the finishing touches on the prototype of the editor and engine. The interface is different; we've followed the tracker tradition (as opposed to MIDI), but we're hoping it will push musicians to create dynamic/event-driven/non-linear music.
#10
What exactly can you do with it?
07/04/2006 (8:18 am)
Can we get more insight into this tool Paul? Are you releasing it as a resource or shareware or what?What exactly can you do with it?
#11
There are two components to the set: the tracker and the engine which integrates into your game. The engine will play a song and whenever the game call triggers an event, that event gets sent to the current song, and if an event handler command has been set up at the right spot, the music will change depending on how the music has been written. Clearly this requires some co-ordination between the musician and the designer, but it gives power and flexibility to the musician.
The tracker will be shareware, the engine will be free (at least for the current supported platforms). The EA release has been delayed due to hard drive crashes and OpenAL bugs that have blocked finishing off the prototype tracker (a bug which I'm hunting down as I type).
The debug release of the engine currently weighs in at 267K. After stripping it and adding in Lua (for later features), it's reasonable to expect the size of the engine won't get over 500K, making it perfect for integrating into casual games. I would expect the size to grow once Ogg support is added, though by how much I'm not quite sure... I'll have to test it.
Hope that helps.
07/04/2006 (9:32 am)
@Jonathon: At the most basic level It's a tracker (in the vein of such music programs as Impulse Tracker and Octamed). However, it also gives the author the ability to write modular event handlers that can be activated by one of several special event handling commands that can be interspersed throughout the music.There are two components to the set: the tracker and the engine which integrates into your game. The engine will play a song and whenever the game call triggers an event, that event gets sent to the current song, and if an event handler command has been set up at the right spot, the music will change depending on how the music has been written. Clearly this requires some co-ordination between the musician and the designer, but it gives power and flexibility to the musician.
The tracker will be shareware, the engine will be free (at least for the current supported platforms). The EA release has been delayed due to hard drive crashes and OpenAL bugs that have blocked finishing off the prototype tracker (a bug which I'm hunting down as I type).
The debug release of the engine currently weighs in at 267K. After stripping it and adding in Lua (for later features), it's reasonable to expect the size of the engine won't get over 500K, making it perfect for integrating into casual games. I would expect the size to grow once Ogg support is added, though by how much I'm not quite sure... I'll have to test it.
Hope that helps.
#12
07/04/2006 (10:11 am)
So basically it can control when a song itself plays, or it can play certain 'tracks' liek the blog originally spoke of? For instance, could I use your engine when x happens to have lead guitar start playing then drums start playing then a bass beat? Or do I just play a pre-recorded song at certain events?
#13
The example you give would be pretty straightforward. It should be noted, however, that a tracker uses samples and not MIDI to create sound, so you are prerecording your instruments to a small degree. The quality of your song will relate directly to the quality and number of your samples.
07/04/2006 (11:18 am)
@Jonathon: Well you set up an event handler, and the event handler dictates a set of commands. Whatever commands are dictated is up to the musician. You could jump to another section of the current song, jump to another song, have a sample play, affect whatever sample is playing in the channel... whatever the command set allows (which is pretty broad).The example you give would be pretty straightforward. It should be noted, however, that a tracker uses samples and not MIDI to create sound, so you are prerecording your instruments to a small degree. The quality of your song will relate directly to the quality and number of your samples.
#14
11/25/2009 (4:59 pm)
You should definitely play some Left 4 Dead ( as research of course ). Music and sound is actually a key component of gameplay. Most notable is how the dynamic music really pulls you in to intense moments, and the 'horde' attack is actually foreshadowed by a musical theme. 
Torque 3D Owner Jonathon Stevens
-dish