Making music for Armagetron Advanced

Made a pack that makes Armagetron sound like a rock concert? Hook us up!
User avatar
Lucifer
Project Developer & Local Moonshiner
Posts: 8610
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Making music for Armagetron Advanced

Post by Lucifer » Wed Apr 09, 2008 11:08 pm

So, there's been some interest lately in making music for the game, and folks are trying to do so and probably encountering reactions that are a little different than what they were hoping for. I thought I'd summarize the situation here, and we should refer folks who want to make music to this post and hopefully this thread as the topic gets discussed.

First thing's first. Don't ask people what they like, they won't tell you. :) But they *will* tell you if they don't like what you made. That's a pretty frustrating situation, but it's not likely to change. It sucks, too. You get all worked up and inspired and throw together your masterpiece, link it here, and then get a bunch of "Sorry, I don't like it" responses. As time goes on, and people don't post to say they liked it, you wonder if it was worth it. The not obvious answer to your question is "yes, it was worth it", but you'll have to read the rest of this long post to see why. And before anybody gets worked up about it, I've been down this road myself. ;)

Second thing's second, don't worry about if people like it or not. Chances are, nobody's taken the trouble to put the music into the game and see how it plays. Maybe your composition wasn't really fleshed out enough for someone to do that, and you can take the blame, if there's any to be had. But maybe it was fleshed out enough, and nobody did it. Game music isn't like radio music, or album music, or even movie soundtrack music. You can't listen to it in isolation and predict how it's going to work in the game. You have to test it ingame, or else you don't know how it's going to work out. You have to hear it with the cycle motor, the turn noise, the explosions, the stupid announcer, the whistle, and all that stuff. You have to see how it works when you're storming the fortress, or capturing the flag, or just core dumping all you see. Until you've done that, you haven't really heard the music. So for you musicians, you need to do that before you post it anyway. :) If you post with "I didn't listen to it ingame", then you guarantee that the few that will test it ingame aren't going to bother either. You need to be able to post honestly with "I tested it ingame and it helped me <do some things>". Post with that, and I guarantee you'll get some people trying it out. And you'll get much better responses from people who listen to it ingame than you'll ever get from people listening to it in isolation.

And that's why, when it comes down to it and you're making your masterpiece, you don't waste any of your time or creative effort trying to satisfy people with music they like. They don't have to like it. To be quite honest, in isolation, the music in the movie Tron is some of the worst music I've ever heard. In the movie, though, I love it. What's the difference? (Yes, I'm so old I used to own the Tron soundtrack on vinyl, bought it soon after seeing the movie in the theater) What matters is this:

What really matters is how it plays in the game.

I direct you to another open source game that is very fun, Blob Wars: Metal Blob Solid. The music in that game is composed of mod files downloaded from the internet. They worried about matching it to the action, and that's it. Play the game for awhile, then listen to the music itself in isolation. See the difference?

So what do people want in armagetron? I've studied this question off and on for several years, and here's what I've come up with:

* Fast music
* Rhythmic music
* Slow music
* Melodic music

Yep, it's contradictory. Ask someone who doesn't drink wine what kind of wine they'd like you to make and see if you get a meaningful answer. Ask someone who doesn't fix cars but does drive them what kind of turbocharger to install on yours and see if you get a meaningful answer. There are a lot of musicians around here, and you'll get useful answers from all of them, but the vast majority of folks here won't give you good answers. Have I made that point strongly enough?

Here's the part about what you should do:

First, make the music. Make a track that spans 2-4 minutes and loops. Test it ingame using either your favorite media player, or the embedded media player in 0.3.0. Tweak it, work on it, etc. Then put it up and see what people think, as suggested before. That's one approach. It might get you results.

Or you can remember that while most of the people around here aren't musicians, many of them are programmers. That means that if given a specification, they can easily test your finished product to see if it meets the requirements given. If you want to go that route, here's what I suggest:

Get the latest trunk code from bzr or subversion. Look around for information on how to do that. Listen to music that's already there. Also get 0.3.0, there's a different opening track in there to listen to. Yes, it's true, I made most of the music you'll find. There's also a track in there by a guy who used to post here, Raoul Duke, called When the Glass Breaks, iirc. Listen to the two opening themes, the Fortress Walk, and When the Glass Breaks at a bare minimum. If you have 0.3.0, play it. You'll have to bind some keys and kickstart the ingame music manually, but it does work. See how it works ingame. The two ingame tracks that are there were developed more like programming and less like music.

When you've done all of that, you'll have learned a few things, hopefully. In general, I've had people who've tried 0.3.0 tell me they liked the opening track, but I think in general people hate it (which they've told me also). I think only one person to my memory has told me they didn't like the fortress walk, and lots of people said they liked it. Nobody's commented on anything else, except that Raoul Duke got a lot of positive feedback about his track (and very little negative feedback).

This is as close to a specification as we're going to get. I'd like to see 3-4 themes expressed in several different ways: a rock track, a speed metal track (think: Iron Maiden), a funky track like the Fortress Walk, a slow pop track, and that's probably it. I'd like sonic compatibility between them. That sounds weird, but it basically means that every track has to be able to segue smoothly into every other track. The easiest way to do that is to keep the same arrangement of instruments for each track. So if you burn them all onto a CD, it should sound like an album, more or less. It should not be a patchwork of songs and ideas that conflict with one another! The 3-4 themes should include a march, a soaring victory noise (think: INdiana Jones), a dirge, and a love theme. Also consider adding other themes, or crossing some of them, etc. Each theme, and each expression of the theme, should be able to follow one another arbitrarily and randomly. That means you have no control over whether the funky dirge will follow the speed metal love song.

It may offend your artistic sensibilities to create music to a specification. If that's the case, then I'd suggest you shy away from making game music completely. The only difference between a programmer and a musician in a game project is the tools they use to develop the game.

When you've got a track to submit for approval, ask yourself what kind of approval you're after. The long-term plan is to make soundpacks and musicpacks, similar to moviepacks, that people will be able to download as resources and use as they like. So, is the approval you're after "default music distributed with the game"? Or do you just want to know you're loved? If the answer is the second, don't worry about negative reactions to your music, and get with the developers to talk about what the sound engine should look like. If you're actively making music for the game, you will have a great deal of input into how the music engine will work.

If you're after some sort of approval to put it with the game, you're going to have to GPL the work. Period. No discussion is available on this. Of course, what that means for music is a little trickier to define, so I'll be satisfied if the final mix is GPL to be compatible with the game license. But if you made a mod file, or a midi file, you better be prepared for people to load it up in their favorite tracker, change it around, and redistribute it. Expect people to take samples they like and use it in their own music. That's what GPL is all about. 'nuff said.

If you're ok with that, great, post your music here, make sure you state very clearly that you're after inclusion in the game, and you'll get developers to listen to it. Point them to this post to remind them they have to test the music ingame to make a credible decision. ;) Then you'll get a decision, sooner or later. Expect later rather than sooner, and don't be upset if you get a "no". Just kindly take your music and prepare to wrap it up in a musicpack so that people can use it if they like.

There are a lot of reasons we might turn down a music submission, and very few of them deal with our own opinions of the music. We've got to worry about the size of the download, cpu usage, etc. We have to deal with having it in our SCM repositories, and that means regular bandwidth we have to deal with. It may very well come down to half of us preferring one submission and the over half preferring your submission, and the two together are too big. It goes without saying that we'll turn down anything that's a straight up rip of the movie music. Don't waste our time with copyright infringing music, we've got enough problems already. ;)
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden

User avatar
Lucifer
Project Developer & Local Moonshiner
Posts: 8610
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Post by Lucifer » Wed Apr 09, 2008 11:42 pm

Forgot a few things.

On the subject of collaboration, here's the issues.

If you're the kind of musician who prefers to write music by playing it, and then memorizing it, and recording it, and then you're done, you're going to have a great deal of difficulty collaborating with people here. Similarly if you're used to working with other musicians, like, in a band, and you can trade riffs and show one another what you're doing, you're going to have trouble. Finally, if you're one of those musicians who doesn't know an E minor from a D suspended seventh, you're screwed.

You need to be able to first communicate what's in the music. So if I say, for example, I have a theme that plays over a simple progression of E, A, Dminor, F, and resolves back on E, you need to be able to take what I said, listen to track, and find the chord changes. In my experience, a lot of self-taught musicians wind up inventing their own words for things. I kid you not, I've heard someone use the word "buttons" where he meant "A minor pentatonic". And he was an old guy, a friend's dad back when I was in high school, and the friend was roughly the same age as me. If you're in that trap, you're going to have to find a way to communicate anyway. I'm not going to say you need to go off and learn all the correct, accepted terminology. It's all useful for communication, but not necessary. Just resign yourself to hitting a few bumps over the issue and work on it with whoever you're working with. (If you're going to collaborate with me, you're going to have to learn the generally accepted terminology, and I may have to learn more, sorry. Luckily, you don't have to collaborate with me)

The second thing you need to resolve is how you're going to actually do the collaboration. It's almost a physical impossibility for two people across the country from each other to plug in and jam together. I'm exaggerating somewhat, because it is possible, it's just....weird. It comes out a little off, and it's hard to come up with the kind of synergy you're usually after when you jam with someone. VOIP won't work, there's about a half-second delay in there. It's possible the internet is now too crowded and lag will hurt you. Still, a 200ms ping between the two of you isn't insurmountable, but it is difficult to deal with, especially for faster tunes. So instead, I'd suggest that you replace jamming with communication. It's also a common collaboration technique for one person to mock up a section of music, record it, and send it to the other person. Then you go from there....

Leading to the last topic of collaboration: tuning and timing. These are the same topic! So, everybody reading this post and thinking about collaborating knows that an A, as played in the blues, is 440hz, right? Are you aware that your computer might play that same A at what it thinks is 440hz, but is really 439.2hz? Meanwhile, mine may very well play it at 440.9hz. That difference is frequency is enough to really screw with your recording in several ways:

* Two tracks recorded to an external metronome will deviate from one another in tempo.
* No notes will ever sound right with each other, and you will get dissonance that you don't want.
* Identical notes will always clash.

This is coincidentally the same reason everyone in a band has to tune up using the same tuner. I can't use my quartz tuner while you use yours, we have to use the same tuner, or else we won't be in tune with one another. Hopefully you already knew that.

The reason this happens is because of tolerances. :) Your sound card has its own little timer, and that timer has a tolerance. For example, it may be specified to time exactly 1 second, plus or minus 10ms. Then, in an entire production run of that card, you'll get some cards that think 1 second is 990ms long, and some that think it's 1010ms long. Since frequency is cycles per second, you start to see where the divergence happens.

The solution is painfully simple. Use one computer to record a metronome track, if need be, as a wav file or an mp3 or something. Then use that for your metronome. Sure, your computer might play it slightly faster than mine, but what's recorded will be in sync. If you're using tracker software or midi, the tempo problem is already solved.

Similarly, if you're using samples and creating your own noises on your computer, the pitch problem is solved. But once you plug in a guitar or a keyboard or something, you start having problems. If you use an external instrument, it needs to be tunable! Or you need to know how to post-process it to match the other instruments. Use one of many programs available to tune your instrument with your computer's sound card, and the other guy(s) also have to do it. That's the same thing as using the same tuner to tune the whole band. It amounts to using timers that are compatible. So if my computer plays an A at 442hz, my guitar will be tuned to 442hz. If your computer plays the same A at 438hz, then you will hear my guitar played back, slightly slower, at 438hz. Hopefully you've tuned *your* guitar to the same 438hz A, and it'll sound like a 442hz A on my computer. See how that works?

If not, just remember two things: Use the same metronome, recorded in a file and played back. Tune your instruments with your computer, not your handheld quartz tuner.

To summarize:

To collaborate on a music track, you need to have a way to communicate with one another, a way to exchange musical ideas, and a way to ensure you can stay in pitch and in tempo with your partner(s).
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden

User avatar
teen
Round Winner
Posts: 390
Joined: Mon May 21, 2007 2:27 am

Re: Making music for Armagetron Advanced

Post by teen » Sat Oct 03, 2009 10:38 am

**** the police
Image

User avatar
radian
Core Dumper
Posts: 154
Joined: Sun Oct 30, 2005 4:14 pm
Location: http://myspace.com/tonysaxbones
Contact:

Re: Making music for Armagetron Advanced

Post by radian » Sun Dec 13, 2009 11:19 pm

yea tempo and tuning can be problematic on collaborations
the key of A at 440 is good for callibration

http://www.onlinetuningfork.com/
i just love it

User avatar
sinewav
Graphic Artist
Posts: 6198
Joined: Wed Jan 23, 2008 3:37 am
Contact:

Re: Making music for Armagetron Advanced

Post by sinewav » Sun Dec 13, 2009 11:39 pm

Is the key of A used as an example because it's the key of the cycle engine (cyclrun.wav)? Because, it is. It's not 440 though, it's more like 220 with some slight modulation.

Z-Man, did you make the engine? What did you use to create it?

Anyway, when I wrote music for Armagetron, I sent the game through my mixer with the AI fighting each other. As I picked sounds and melodies, I did so with Arma playing in the background. This way I could determine immediately if any of the voicings would clash harmonically with the game. Also, I wanted to write an essay about my experience composing, but it appears most of what I learned has already been written about by game musicians.

User avatar
Jonathan
A Brave Victim
Posts: 3392
Joined: Thu Feb 03, 2005 12:50 am
Location: Not really lurking anymore

Re: Making music for Armagetron Advanced

Post by Jonathan » Mon Dec 14, 2009 3:20 am

I don't think A440 is used because it's close to cyclrun. This cycle sound is never played at the same speed anyway, or were we planning to add music to cyclrun? :) Also, it's really more like A55. As for how it was made, it was apparently based on two sawtooth waves at slightly different frequencies, but I can't replicate it that easily beyond the basic sound. Could be a DC offset before applying some effects.

Either way, the main thing is to tune to the same file, played through the sound card that will be recording. Could be radian's example for A440, although I'm sure some would object to Flash. Plain wav files plus a description of how to generate them (where applicable, i.e. computer-generated files) would be best.
ˌɑrməˈɡɛˌtrɑn

User avatar
Z-Man
God & Project Admin
Posts: 11220
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Re: Making music for Armagetron Advanced

Post by Z-Man » Mon Dec 14, 2009 12:18 pm

sinewav wrote:Z-Man, did you make the engine? What did you use to create it?
Yes, but I wouldn't call it an engine. Well, it's called engine in the source code, but it's more of a conglomerate of 2D game logic stuff and simple rendering pipeline stuff. You can't really write other games with it.

User avatar
radian
Core Dumper
Posts: 154
Joined: Sun Oct 30, 2005 4:14 pm
Location: http://myspace.com/tonysaxbones
Contact:

Re: Making music for Armagetron Advanced

Post by radian » Mon Dec 14, 2009 5:05 pm

i think its worth bearing in mind that your ears do a fantastic job of telling you what sounds right and what sounds wrong.i do a lot of recording for my two bands using an 8 trk digital recorder,i sometimes intentionally record instruments v v slightly out of tune,it can add richness to a peice.

but its good practice to avoid sounds that have similar frequencies,because they tend to resonate horribly,this is especially true with pure digital tones,say,from a sound generator or synthesizer.most tuners are quartz based,and they do a pretty good job of keeping us chaps in tune,quartz tuners of the same make, make long distance calibrations easy and they are quite cheap to buy

i would love to write a piece dedicated to arma,but i keep coming up against the same problem (the audio file size) and when i go down to simple digital tones,although the file is smaller the end result sounds too basic.

could you tell me the cut off point for a wav audio file size for 0.3.0,,a rough estimate will do
cause i think constructing the song around the file size parameter would eliminate hacking the resolution down to fit the application,and therefore maintain the quality of the original sound sources
Last edited by radian on Mon Dec 14, 2009 5:29 pm, edited 1 time in total.
i just love it

User avatar
Z-Man
God & Project Admin
Posts: 11220
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Re: Making music for Armagetron Advanced

Post by Z-Man » Mon Dec 14, 2009 5:25 pm

I don't know about any file size limit, sorry. Sure there is one?

User avatar
radian
Core Dumper
Posts: 154
Joined: Sun Oct 30, 2005 4:14 pm
Location: http://myspace.com/tonysaxbones
Contact:

Re: Making music for Armagetron Advanced

Post by radian » Mon Dec 14, 2009 5:38 pm

just trying to avoid lag
with low end machines,trying to play the file whilst arma is running

can anyone take a guess 50 kb ??
i just love it

User avatar
sinewav
Graphic Artist
Posts: 6198
Joined: Wed Jan 23, 2008 3:37 am
Contact:

Re: Making music for Armagetron Advanced

Post by sinewav » Mon Dec 14, 2009 5:39 pm

Z-Man wrote:
sinewav wrote:Z-Man, did you make the engine? What did you use to create it?
Yes, but I wouldn't call it an engine. Well, it's called engine in the source code, but it's more of a conglomerate of 2D game logic stuff and simple rendering pipeline stuff. You can't really write other games with it.
Heh, I used the wrong words to ask my question. I wasn't thinking game engine, I was thinking cycle engine (cyclerun.wav). I'm used to saying "engine" since that is the name of the moviesounds file of the same function (engine.wav). My question was about the creation of the sound file. :oops:
radian wrote:i would love to write a piece dedicated to arma,but i keep coming up against the same problem (the audio file size) and when i go down to simple digital tones,although the file is smaller the end result sounds too basic.
Filesize isn't a problem man! Just go with your inspiration. I don't know if you heard it or not, but the music I wrote that was inspired by Arma is a single, 23 minute-long track.
Last edited by sinewav on Mon May 04, 2015 6:46 pm, edited 1 time in total.

User avatar
Z-Man
God & Project Admin
Posts: 11220
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Re: Making music for Armagetron Advanced

Post by Z-Man » Mon Dec 14, 2009 6:24 pm

sine: ah, I was wondering about the relevance :) Yeah, I created that in some basic sound creation program. Can't remember how, though, or what program.

User avatar
radian
Core Dumper
Posts: 154
Joined: Sun Oct 30, 2005 4:14 pm
Location: http://myspace.com/tonysaxbones
Contact:

Re: Making music for Armagetron Advanced

Post by radian » Mon Dec 14, 2009 8:28 pm

ok i think i get it
the audio player is the cpu eater ,not the size of the audio file

il,e go on daves list and make four tunes
i just love it

User avatar
Lucifer
Project Developer & Local Moonshiner
Posts: 8610
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Re: Making music for Armagetron Advanced

Post by Lucifer » Sun Dec 20, 2009 9:34 am

File size is a problem for the downloadable package, but we haven't put a number on it. All the sounds that come with the game will be ogg vorbis, though, more than likely. Game music is often resampled for both size and cpu time considerations. We'll do whatever works the best. ;) *YOU* should get your music ready in your favorite uncompressed format. We'll either post-process it to the target (after figuring out what the target is), or ask you to do it.

The game will support plenty of formats. libvorbis and libmad have similar interfaces, so supporting ogg vorbis and mp3 at the same time is easy. Supporting a bunch of others through libsndfile is also easy. And then libflac is similar to libvorbis, iirc. Users will be able to choose when it comes to music that's not bundled with the game, and since music will be a resource, users will be able to choose music made/packaged for the game that's also not bundled with it. That's all the easy part. And on top of it, we'll probably find a way to get the decoding thread to go to a different CPU (assuming we can work out the other multi-core issues we've got) so that if you've got a fancy system, you can use as much of it as possible to make the game the best it can be, but if you don't, you can still have a good game with good music.

A440 isn't an arbitrary choice of tuning notes, it's the standard. When you own a tuner, like those quartz guitar tuners, there's usually a button to play a particular note so you can tune by ear, and *that* note is always 440hz, which, on a guitar is an A. On other instruments it's something else. I think it's a C on the clarinet, an F on the trombone, etc. Just to clear that up. And yes, there's no relation between that and the cycle engine sound. ;) (Other than the fact that the cycle engine sound does hit that frequency from time to time)
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden

User avatar
Tank Program
Forum & Project Admin, PhD
Posts: 6698
Joined: Thu Dec 18, 2003 7:03 pm

Re: Making music for Armagetron Advanced

Post by Tank Program » Sun Dec 20, 2009 11:07 am

Lucifer wrote:On other instruments it's something else.
That depends on what key the instrument is in. On an 'A' clarinet, used most often in orchestras, it's still an A. On a 'B♭' (b flat) clarinet, typically used in marching bands and the most comment type, it all goes up half a step, so B♭ comes out at 440hz. I think. Generally though, 440 hZ is A, except for all the odd cases where all the crazy old composers went and wrote something crazy.
Image

Post Reply