- FSO Revision: 5307
The music.tbl defines the soundtracks and how they are played in FSO.
This table is one of the Modular Tables and can be extended with xxx-mus.tbm
- Music.tbl consists of two sections: one for in-game soundtracks, another for menu music tracks.
- Soundtrack entries
- #SoundTrack Start
- Soundtracks names and definitions
- #SoundTrack End
- Menu music tracks
- #Menu Music Start
- Music names and definitions
- #Menu Music End
- Soundtrack Name is immediately followed by the soundtrack order number and the name of the soundtrack.
- Syntax: Integer: String
- Example: 1: Genesis
- All music track lines beging with $Name: followed by the filename of music track, with file extension. After the tracks filename the number of measures (NM) in the track is defined followed by the number of samples per measure (SPM).
- Syntax: String Float Integer
- Example: $Name: FS2_Amb_A01.wav 25.0 105840
- The SPM value is computed using the formula SPM = 2 * SF * L / NM, where SF is the sampling frequency in hz and L is length of the music piece in seconds (exact seconds up to about 3 decimal places). The NM value is important. The game uses SPM to determine how long a measure is, and it will stop playing the track after the specified number of measures. Whenever the game situation changes and one track must be interrupted by another, the game will interrupt the current track at the end of the currently playing measure.
So if you enter wrong numbers here, say using a different calculation, the track might still be played to the end - but when it should be interrupted it might not be for quite a while because you specified the length of one measure wrong. E.g.: If you set NM to 1 and SPM to 2*SF*L the track will be played without problems - BUT, the interrupt will never happen. You have informed the game that the entire track basically consists of one large measure, so it will keep playing the track until that measure is over before switching to any other track - and this can take a while. So make sure you use correct values here. If the exact measure count is not known you best use the following method:
Set NM to half the length of the track in seconds, say 61.202s = 30.601, and SPM to 4 * SF, say 4 * 22050Hz = 88200. By doing this you state that one measure is 2 seconds long. This leads to a max delay of 2 seconds.
Another important result of this is that a track must not contain any quiet at the beginning or end of the file, since that distorts the location of the measures in the file. The game considers the entire file to be the track, it does not check where the actual music starts. So make sure you cut the track so it is a snug fit, begins with music and ends with music. This is however less important if you do not know the number of measures anyway and use the 2 second work-around described above, since an exact fade after a measure cannot be done that way anyway.
Order of the music tracks:
|Allied Arrival during Normal||"Ally arrival 1"|
|Enemy Arrival during Normal||"Enemy arrival 1"|
|Battle 1||"Battle 1"|
|Battle 2||"Battle 2"|
|Battle 3||"Battle 3"|
|Allied Arrival during Battle||"Ally arrival 2"|
|Enemy Arrival during Battle||"Enemy arrival 2"|
|Victory 1 ( goal completed )||"Victory 1"|
|Victory 2 ( all enemies dead, goals completed )||"Victory 2"|
|Goal Failed||"Failure 1"|
|Player dies||"Dead 1"|
|Ambience 2||"Normal 2"|
|Ambience 3||"Normal 3"|
Specific Music Tracks
Menu Music Tracks
- Menu music tracks are defined with filename after the track's name.
- There is a limit of 50 menu music tracks.
- Syntax for all of the Menu Music entries are similar
- Syntax: $Filename: Filename.xxx
- Example: $Filename: FS2_Brief_01.wav
- Defines the name of the menu music
- Syntax: String
- Defines the actual file
- Syntax: String, filename with file extension
- Uses normal soundtrack and menu music tracks from FS2
#SoundTrack Start $Soundtrack Name: 1: Genesis $Name: FS2_Amb_A01.wav 25.0 105840 $Name: FS2_AArv_A01.wav 1.8 105840 $Name: FS2_Arv_B01.wav 3.8 81415 $Name: FS2_Btl_A01.wav 25.8 66150 $Name: FS2_Btl_A02.wav 27.8 81415 $Name: FS2_Btl_A03.wav 39.8 81415 $Name: FS2_AArv_A01.wav 1.8 105840 $Name: FS2_Arv_B02.wav 3.8 81415 $Name: FS2_Vict_A01.wav 2.8 52920 $Name: FS2_Vict_A02.wav 30.8 52920 $Name: FS2_Dth_A01.wav 23.8 132300 $Name: FS2_Dth_A01.wav 23.8 132300 #SoundTrack End #Menu Music Start $Name: Brief1 $Filename: FS2_Brief_01.wav $Name: Brief2 $Filename: FS2_Brief_02.wav $Name: Brief3 $Filename: FS2_Brief_03.wav $Name: Brief4 $Filename: FS2_Brief_04.wav $Name: Brief5 $Filename: FS2_Brief_05.wav $Name: Brief6 $Filename: FS2_Btl_A01.wav $Name: Brief7 $Filename: FS2_Cinema2.wav $Name: Success $Filename: FS2_DB_01.wav $Name: Average $Filename: FS2_DB_02.wav $Name: Failure $Filename: FS2_DB_03.wav $Name: Aquitaine $Filename: Aquitaine.wav $Name: Psampik $Filename: Psampik.wav $Name: Cinema $Filename: FS2_Cinema2.wav #Menu Music End