I'd like to get a Wiki page assembled that has a nice explanation of the current music engine in the game that composers would be writing to. Ogg files, m3u playlists, what m3u playlists are there, how is music selected from those playlists (random or in order), how are transitions controlled, etc) as well as what the plans or tentative plans are for future development of the music engine.
Those types of things are very important to composers writing for the game, and I don't even have a good understanding of all those myself.
Oblivion and/or Klauss - could you guys reply and provide some of that information or let me know where I can find it.. I could then arrange it together into a nice wiki page.
Thanks!
Mike
Current Music Engine in Vega Strike
-
- Merchant
- Posts: 62
- Joined: Sun Jan 23, 2005 5:39 am
- Location: Winnipeg, Canada
- Contact:
-
- Artisan Extraordinaire
- Posts: 1269
- Joined: Tue Mar 21, 2006 10:55 am
- Location: Philippines
Sorry, no idea. Klauss is the one to ask. It was the reason why I first got worked up about VS's music.. too many playlists. But whatever Klauss decides now, I'll back it up.
A Step Into Oblivion
Dreams of things that will never be,
Songs of thoughts only I can hear,
Leave me be to sleep forever,
To dream my dreams,
And sing my hymns,
Of things that will never be...
Dreams of things that will never be,
Songs of thoughts only I can hear,
Leave me be to sleep forever,
To dream my dreams,
And sing my hymns,
Of things that will never be...
-
- Elite
- Posts: 7243
- Joined: Mon Apr 18, 2005 2:40 pm
- Location: LS87, Buenos Aires, República Argentina
Quickly, soundserver.exe handles playing songs, while VegaStrike.exe handles sequencing them, using the defined playlists (which are selected according to the situation by dj_lib.py).
The soundserver uses SDL to play them, which supports .mp3, .ogg, .wav, I don't think it supports flac (perhaps on Windows), and it does support .mid (but I have the feeling it will get dropped, at least temporarily, during the soundsystem rewrite, as supporting midi with only OpenAL is simply impossible - we'll get something later, though, don't despair).
.m3u lists are just like winamp lists, which are a bunch of files, each on its own line (relative paths are computed against where soundserver.exe is, which is usually inside the bin folder - and usually you want to always say ../music/something ), and you can add comments (on their own line, I don't think it works on the same line) by starting the line with '#'.
Eventually, we'll add sequencing commands to playlists, disguised as special comments (probably '#!<command>') - that will allow us to specify a bayesian network for the tracks, with (potentially) custom transition - that means, each track can have a certain subset of tracks follow it, with a certain assigned probability. That's not that far in the future, it needs not wait for the rewrite, as it's doable as an enhancement to the current engine.
Playlists are stored in the user-data folder (usually under ~/.vegastrike), inside their own folder hierarchy (~/.vegasrtike/playlists).
Inside playlists, you may find additional grouping, by situation:
That all gets configured in dj_lib.py, so if you add playlists, you have to add them to dj_lib.py as well - I doubt anyone will have to add playlists, though.
Inside playlists, you can (currently - until the extension commands get added) bias the frequency of some tracks by simply repeating them on the playlist. The engine will avoid playing the same track over and over, having a record of recently played tracks.
I could wiki this in a while (long, short, I don't know - so if anyone wants to do it first, you're welcome, just post here so that I know where it is, and can take a look and fix anything). Wikying stuff is a lot more work than plaintext posts, ain't it?
I hope it's clear - any doubts, just ask.
The soundserver uses SDL to play them, which supports .mp3, .ogg, .wav, I don't think it supports flac (perhaps on Windows), and it does support .mid (but I have the feeling it will get dropped, at least temporarily, during the soundsystem rewrite, as supporting midi with only OpenAL is simply impossible - we'll get something later, though, don't despair).
.m3u lists are just like winamp lists, which are a bunch of files, each on its own line (relative paths are computed against where soundserver.exe is, which is usually inside the bin folder - and usually you want to always say ../music/something ), and you can add comments (on their own line, I don't think it works on the same line) by starting the line with '#'.
Eventually, we'll add sequencing commands to playlists, disguised as special comments (probably '#!<command>') - that will allow us to specify a bayesian network for the tracks, with (potentially) custom transition - that means, each track can have a certain subset of tracks follow it, with a certain assigned probability. That's not that far in the future, it needs not wait for the rewrite, as it's doable as an enhancement to the current engine.
Playlists are stored in the user-data folder (usually under ~/.vegastrike), inside their own folder hierarchy (~/.vegasrtike/playlists).
Inside playlists, you may find additional grouping, by situation:
- * battle
* peace
* threat
That all gets configured in dj_lib.py, so if you add playlists, you have to add them to dj_lib.py as well - I doubt anyone will have to add playlists, though.
Inside playlists, you can (currently - until the extension commands get added) bias the frequency of some tracks by simply repeating them on the playlist. The engine will avoid playing the same track over and over, having a record of recently played tracks.
I could wiki this in a while (long, short, I don't know - so if anyone wants to do it first, you're welcome, just post here so that I know where it is, and can take a look and fix anything). Wikying stuff is a lot more work than plaintext posts, ain't it?
I hope it's clear - any doubts, just ask.
-
- Merchant
- Posts: 62
- Joined: Sun Jan 23, 2005 5:39 am
- Location: Winnipeg, Canada
- Contact:
Excellent! I've added that stuff to the Wiki:
http://vegastrike.sourceforge.net/wiki/ ... ment:Audio
Take a look and make sure it's OK.. make edits as needed.
Mike
http://vegastrike.sourceforge.net/wiki/ ... ment:Audio
Take a look and make sure it's OK.. make edits as needed.
Mike