2019-01-22 08:43 EST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000750FSSCPsoundpublic2006-05-21 22:35
Assigned ToGoober5000 
Product Version 
Target VersionFixed in Version 
Summary0000750: Incorrect music order for FSPort & 3 non-playing music files
DescriptionFrom http://www.hard-light.net/forums/index.php/topic,37451.0.html

Hmm... I've finally gotten around to a stable 3.6.8 VP and build combo, and had time to test this out. Those three files still refuse to play. Is it because they are PCM instead of ADPCM? Maybe FS2 SCP isn't used to 16-bit PCMs being mono or something. The other music tracks work, but I've noted a problem:

When the tracks play in SCP, they should be looping 1-2-event? > 3, (Loop 1 and 2, and if an event happens, play 3, then return to looping 1 and 2 and waiting for an event to play three). I tested SCP FSPort vs. FS1 with the missions I've uploaded here:
(Of course, you need FSPort, MVP 3.6.8, FSPort_Music.vp, and then it should work)
Just order the drone to depart, and then track 3 (nrml3) should play. With FS1 it does, with FS2:SCP FSPort, nrml3 is part of the nrml1-2-3 loop.
Additional InformationI was told I should Mantis this bug...so here goes my first shot at Mantis!! I'm not sure if this is one or two bugs at work here (I believe it's two) Should I submit them separately?
TagsNo tags attached.
Attached Files




jr2 (reporter)

Last edited: 2006-01-26 14:25

Oops...didn't make my profile default, so it didn't get included. Here it is if anyone needs it:
MSI mobo, AMD Athlon XP 3200+
BFG nVidia 256MB GeForce FX 5700 8X AGP
250 GB & 120 GB Maxtor ATA 133 Drives

Yeesh! and I forgot the most important stuff! Where's the EDIT button? Ahh... there it is.
Using MVP 3.6.8 (delta)
FS SCP 3.6.7 CVS 1-12-6
FSPort 2.3 w/FSPort_SCP & FSPort_Music VP
Anything else I forgot? (Besides my head)

edited on: 01-26-06 14:25


taylor (administrator)

The non-playing files should be fixed now (when I get time to commit it).

The NRML track thing is probably going to have to be left to Goober5000 since I think he wrote that code in the first place.


Goober5000 (administrator)

Ah. :) This is something I've been wondering about but never got around to checking. I wasn't able to figure out the FS1 music algorithm from the code so I just had to guess.

Basically, the way it is now (in FSO), the NRML tracks will just play, in sequence, over and over (except during a battle, of course). So it just does NRML_1, NRML_2, NRML_3, NRML_1, NRML_2, NRML_3, etc.

So you're saying it should be NRML_1, NRML_2, NRML_1, NRML_2, etc., unless the music changes to something else (either arrival, departure, or battle)? Then it should play NRML_3 before returning to the regular order. Is that correct?

Are you sure that's the correct FS1 algorithm? If so, it'd be really nice to finally know what it is. :)


jr2 (reporter)

Quote: Are you sure that's the correct FS1 algorithm? If so, it'd be really nice to finally know what it is. :) :unQuote

- Not precisely sure...give me a couple (or 3 or 4) hours, let me check several things...It definitely doesn't play three normally (when nothing happens), and it definitely inserts three when a goal is completed and the victory music plays. Let me check the others and get back to you.


jr2 (reporter)

Last edited: 2006-01-31 17:54

...Or more ;-) I've uploaded four test files to FileFront. They are two pairs of missions, one each for FS1 and FSPort. Note that I'm assuming your FSPort music naming convention is FS1- prefix. I'll also upload them here in a .zip file.

edited on: 01-31-06 17:53

edited on: 01-31-06 17:54


Goober5000 (administrator)

Reposted from the private message. In the future please keep all bug reporting in Mantis.

OK, I think these are the rules (but I am by no means a coder, I'd like a coder to watch it happening...you should check the FS2 missions file just to be sure, it only takes [exactly] 15 minutes):

The nrml1 and nrml2 files loop. If an allied ship arrives, aarv1 plays, and the track switches to nrml2. If a hostile ship arrives, earv1 plays, followed by a bttl1 and bttl2 loop. In the bttl loop, if a friendly arrives, aarv2 plays, and then it switches to bttl2. The same goes for hostile except of course it's earv2. If all enemies are gone (even if there's still goals to do), nrml3 plays, followed by nrml1-2 loop. When a goal completes, vict1 will play, and then nrml3. (Although I need to check this with a secondary objective...I think they behave the same). If all goals are complete and all enemies dead, vict1 plays, vict2 plays, and then nrml3.

I go through all of these in the mission using messages while the music is playing.

Anyways, hope these help.


jr2 (reporter)

Very sorry... just got back on-line; for awhile I was off. I just wasn't positive that those were the right rules: I thought it might be better to PM and have them pass through Goober first. (I was kind of hoping he'd say he got it all fixed in two seconds flat and that the rules matched the test files... oh well. Guess when I learn to code it's not going to be very easy...)
PS This was mentioned in the second message to Goober:
It would be nice if the music.tbl had the support for multiple files for Normal (Ambience). Because, if you only list the number of measures and the beats-per-measure for nrml, and nrm2 and nrml3 are different, the music will switch tracks at the wrong time (I think that makes it part of this bug). I'd suggest this format:
file1.wav,file2.wav,file3.ogg 12.0,13.5,30.0 2000,3500,4000
have the individual files' values separated by commas.
Anyways let me know what you think.


Goober5000 (administrator)

I didn't repost that second message because that's already been done. Look at fsport_music.vp to see how.


taylor (administrator)

I think I have this setup correctly in the icculus.org port now. The changes were minor, and #ifdef'd, but it shouldn't be a big deal to fold those into FSO with simple if() statements.

Just to recap on what I did:
normal1 progresses to normal2
normal2 progresses to normal1
normal3 progresses to normal1
victory1 progresses to normal3
victory2 progresses to normal3

Add SONG_NRML_2 to SONG_NRML_1 Current_pattern check in event_music_do_frame(). In event_music_start_battle(), if battle music is started and no hostile ships are present, next_pattern = SONG_NRML_3.

The alliedarrival2 to battle2 thing should already be handled by a missing battle3 song (it's none.wav in FS1) as it would automatically fall back on battle2. The victory1 to victory2 thing should also be handled by the code already and after victory2, normal3 is already what it progresses to.

I think that covers all of the progressesion that jr2 observed. Haven't tested any of it yet though. If the changes haven't been made to FSO yet then maybe that info will help a little.


Goober5000 (administrator)

Okay, this appears to be fixed. :)

I do have one comment, though - the audio code seems to truncate the last second or so of a pattern, causing the changeover to feel rather rushed. Could this possibly be related to the OpenAL code, taylor?


taylor (administrator)

It didn't fade out properly at one point, but I thought that I fixed that. Maybe it's still an issue for the Windows version of OpenAL though. I'll try and take another look at it this week.


Goober5000 (administrator)

Okay. I'll open another bug for that then.

Marking as resolved.

-Issue History
Date Modified Username Field Change
2006-01-26 14:09 jr2 New Issue
2006-01-26 14:20 jr2 Note Added: 0004493
2006-01-26 14:25 jr2 Note Edited: 0004493
2006-01-26 16:48 taylor Note Added: 0004495
2006-01-26 19:14 Goober5000 Note Added: 0004500
2006-01-26 19:15 Goober5000 Status new => assigned
2006-01-26 19:15 Goober5000 Assigned To => Goober5000
2006-01-27 09:33 jr2 Note Added: 0004507
2006-01-30 16:29 jr2 File Added: FS_music_algorithm_test_files.zip
2006-01-30 16:30 jr2 Note Added: 0004574
2006-01-31 17:53 jr2 Note Edited: 0004574
2006-01-31 17:54 jr2 Note Edited: 0004574
2006-02-13 17:11 Goober5000 Note Added: 0004740
2006-02-17 07:28 jr2 Note Added: 0004776
2006-02-17 11:59 Goober5000 Note Added: 0004781
2006-03-26 23:00 taylor Note Added: 0005257
2006-05-21 18:11 Goober5000 Note Added: 0005553
2006-05-21 20:51 taylor Note Added: 0005554
2006-05-21 22:35 Goober5000 Status assigned => resolved
2006-05-21 22:35 Goober5000 Resolution open => fixed
2006-05-21 22:35 Goober5000 Note Added: 0005555
+Issue History