OK, first of all I'd like to apologize I didn't reply earlier. I was away the past three days.
Q1) The documentation for these functions leads me to believe that only one music file can be played at a time. Is this true?
That's true.
Q2) If I am wrong, how can multiple songs be played at one time?
Technically, there's no difference between music and a sound, the only difference is you can set different global volume for music and for all the sounds. OK, there's always only one music channel, but you can as well use the "sound entities" to simulate multiple music channels. You can control them individually (position, volume, pause etc.). Sound entities can be created in SceneEdit, just like the other entities (select the "Free entities" node and then click the "Add entity" button and selecs "Souund entity". Those entities provide the PlaySound, PauseSound, SetSoundPosition, SetSoundVolume ... methods mentioned above.
Q3) Additionally, how can I control each song's volume individually as it is playing?
I already anwered this one; I you go with the sound entities approach, just call the SetSoundVolume() method on your sound entities.
Is there a possibility for crossfading between songs?
Again, with the use of multiple sound entities and with a bit of scripting, you could do the crossfading between songs by setting their volume appropriately.
Is there an ability to pan the sounds across the scene, like if a bird had a sound effect attached, and the bird flew across the sky, would you be able to program the chirp to where the bird was in the scene?
All the sounds made by entities/actors are automatically panned according to the object's position on screen (it's possible to disable the panning when needed). Although it's been reported to me that the default panning is not always sufficient and that it would be better to be able to define exactly how much the sound should be panned. So, I'll add some property for setting that.
The sound effects are a separate thing than the music, correct?
Not necessarily, see above.
I guess that's not possible yet, it would require something like a SetMusicPan() function.
Yeah, that's what I was talking about
Anyway, although this way I described is (IMHO) pretty flexible, it probably isn't exactly easy. Would you prefer a build-in multiple music channels/crossfading? I think two channels would be enough, right?
EDIT: A very raw scripting reference for entities:
http://dead-code.org/misc/scripting_ref_entity.htmlEDIT2: Oops, the colors were not meant to be that way, wrong css file...