Saturday, August 23, 2008

Analyzing songs to create in-game objects

Concept: Each song becomes a unit - generating a character or an object that can be used in a game from a single song

This concept of using music in games borrows from Song Summoner and Monster Rancher. It's easy to take their idea of using a common resource (MP3s or CDs) and improving it. Basically the question is: How do we create a character that actually represents the song you're creating it from?
The type of analysis for this technique would lend itself towards global attributes of a song, such as tempo, overall melodic stability, overall energy, etc. This is because the song isn't unfolding over time, instead we are treating the song as a single object, kind of like box that we can peer into with MIR techniques.
So what can we extract that would be relevent for a user? How would the user feel a character relates to a certain song? This is a difficult question for me to answer since I have been trained to recognize certain musical attributes. For example "Harmonic stability" for me means something very real, but when I try to point out how that changes in a song to someone untrained, they don't know what I'm talking about. On the other hand, if some basic attributes are directly recognizable by the average user then we can include some more esoteric features and not lose anything by them not being recognized.

So we need features that can be arranged into a single axis (like tempo: a value from "slow" (50?) to "fast" (120?). And a character should not be penalized for being anywhere on the axis (for example if we tie tempo to character speed then a slow tempo would create a slow character, with no advantage), instead each side of the axis should be opposite, but positive characteristics. This way each character can accurately represent the song. The final thing is that it should avoid genre cliches (such as distorted guitars = AN ANGRY CHARACTER!!~!!) since for every example that the shoes fits there are 20 examples you didn't think of that don't work that way.


atures into attributes - Initial mappings

1) Average Tempo

Slow Fast
<--------------------->
Slow Speed, Fast Speed,
High Defense Low defense

Explanation: The faster song the song, the faster the character is. Since there is no advantage to being slow, another attribute should be tied in to make it advantagous to be slow. In this case a slow song creates a high defense but slow moving character


2) Overall Energy

Low energy High energy
<--------------------->
Healing Attacking

Explanation: The louder a song is (or more compressed a song is) the more the character is orientated towards attacking. So quiet songs become healing characters and loud, aggressive songs become more attack orientated characters.


3) Harmonic stability/Pitch certainty (IE how distorted/clean the song is)

Unstable Stable
<--------------------->
Chaotic Orderly (Not an attribute, but a character type)

Explanation: This is an attribute that may not be easy to explain to someone but might be felt intuitively. Basically the lower the value, the noiser a song is.

4) Number of sections in the song = number

Explanation: A standard verse/chorus/verse/chorus song is said to have two sections, although it might also have an intro and outro, making it have 4 sections. As it turns out section analysis is quite robust, so this is a good feature to use. The number of moves available to a character could be tied to the number of sections. So a Bob Dylan song might have 2 or 3 powerful moves, whereas a Mr. Bungle song would have 10 or more less powerful moves.

5) Scale Harmonic Stability

Unstable Stable
<-------------------->
Magic-using Object-using

Explanation: Atonal music tends to be linked to mystical experiences, so I chose this axis to represent music that fits easily into a tonal context to be more "real-life" characters: warriors, or merchants. As the music becomes more atonal, the character becomes more reliant on magic than on items.

No comments: