It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
I was making myself a little imuse program, but knowing that Tarvis is planning to do one also, then I focus instead on the flight sim.

I'm not using the PhysX physics system in Unity, or the fancy shaders or nothing that is unique to Unity. Precisely because of that, I don't discard moving to a own developed engine later.
The only reason I'm using Unity, as I said before, is for productivity. If we had to start from zero developing a 3D engine, it would take months before we could actually develop the game on it.
I just don't feel for developing a 3D engine. I rather develop a game.
Also, my plan is to also implement the digital recording version. Probably not till after the MIDI version, but still.

Now that I know how to extract the real start point and loop points, I think it would be most convenient to just record all music pieces with the intro gap included. The relevant points would be stored as metadata.

I'll code it in C++ for now, but generally the system I think is fairly simple so should not be too hard to port to Unity's C#. Then again I have never worked with Unity before so I can't say for sure.
Post edited November 14, 2014 by Tarvis
I don't know how these things work but if, by any chance, getting the game running with wireframe models is part of the process, a vector graphics version of X-Wing would be very cool.
avatar
mvanvleck: I don't know how these things work but if, by any chance, getting the game running with wireframe models is part of the process, a vector graphics version of X-Wing would be very cool.
That would be pretty trippy, but possible!
avatar
Tarvis: Also, my plan is to also implement the digital recording version. Probably not till after the MIDI version, but still.

Now that I know how to extract the real start point and loop points, I think it would be most convenient to just record all music pieces with the intro gap included. The relevant points would be stored as metadata.

I'll code it in C++ for now, but generally the system I think is fairly simple so should not be too hard to port to Unity's C#. Then again I have never worked with Unity before so I can't say for sure.
A little request regarding the MIDI version: Do you think it would be possible to have the player "render" the playback to a new MIDI file? I like it how DOSbox is able to record the MIDI output of any game to a MIDI file, and in case of TIE Fighter it would allow me to create an orchestrated medley of inflight music more easily than by putting together all the bits manually.
avatar
Laserschwert: A little request regarding the MIDI version: Do you think it would be possible to have the player "render" the playback to a new MIDI file? I like it how DOSbox is able to record the MIDI output of any game to a MIDI file, and in case of TIE Fighter it would allow me to create an orchestrated medley of inflight music more easily than by putting together all the bits manually.
Yeah, that shouldn't be too hard. I'll also make it so you can isolate looped sections and their intros, and any conditional tracks (like TOD doors) in Concourse tracks.

Also, I might have underestimated a bit, so give me a week or so instead of just the weekend!

Also also, are all of you using Windows or should I make this multiplatform?
Post edited November 15, 2014 by Tarvis
Take all the time you need :)

I'm on Windows, but if it doesn't make things more difficult, multi-platform never hurts. Do you think that once it's set up, your tool could work for the TIE Fighter music as well?

By the way, I've noticed something about X-Wing's in-flight music: The four bars of silence at the beginning of each track aren't actually silence in all files. Some, like DG21 to DG31, play notes in there, so I guess they ARE already supposed to have an overlap of those 4 bars. Technically this means each new piece of music is started 4 bars before the end of the current piece (so those 4 bars don't have to be removed at all!).

For our digital version this just means that I could add 1 or 2 bars at the end of each piece for reverb trails, and instead of starting each new piece of music 4 bars before the end of the current piece, it's got to be 5 or 6 bars then.

I'm already making good progress on converting the in-flight music to digital audio (using my sample libraries, instead of just soundfonts).
Post edited November 15, 2014 by Laserschwert
avatar
Laserschwert: I'd love to take care of converting the flight music, but I'm not yet sure when I find time for it (and right now I'm already working on quick versions of the menu and cutscene music, and those will already take sometime). For implementation it should be enough to just create some quick WAVs from the MIDIs and just replace them later on with fancier versions. As long as we decide on the "format" of the WAVs (like 1 second of release trail), that should work.
avatar
Azrapse: Hi.
I'm making some tests with fluidsynth and several sound fonts.
Everyone seems to recommend FluidR3 soundfont. These are some fragments with that font (unfortunately they keep the 2 second silence gap at the beginning):
Fluid CR01
Fluid EM11
Fluid RB01
Fluid RB11

Personally, I think that the ChoriumRevA.SF2 soundfont fits much better to X-Wing. These are the same music fragments:
Chorium CR01
Chorium EM11
Chorium RB01
Chorium RB11

What do you think?
The midis should be edited to remove the silence at the beginning, and add a fixed amount of it after it ends to deal with the possible trailing reverb in a better way, as we discussed.
I found that Timbers of Heaven to be an extremely good soundfont too if you are interested in using that.
avatar
Laserschwert: I'm on Windows, but if it doesn't make things more difficult, multi-platform never hurts. Do you think that once it's set up, your tool could work for the TIE Fighter music as well?
Yup, the music files and the loop tables are the same format, just with 8 character filenames and more states (12 instead of 9, and references to state 0 and state 13 may indicate some arbitrary special loop cases which I must figure out)

avatar
Laserschwert: By the way, I've noticed something about X-Wing's in-flight music: The four bars of silence at the beginning of each track aren't actually silence in all files. Some, like DG21 to DG31, play notes in there, so I guess they ARE already supposed to have an overlap of those 4 bars. Technically this means each new piece of music is started 4 bars before the end of the current piece (so those 4 bars don't have to be removed at all!).
Strange. In my conversions, I do not have any preceding notes. Maybe I manually stripped them out, I don't remember. I converted them a long time ago...

Otherwise, look at the event lists for them. It is possible that such notes if present are never actually played by the engine, because the SysEx Jump command I described earlier may come before them. If so, they are probably just leftover from earlier revisions of those files during development and can be ignored.

EDIT: Okay, I looked into this. Turns out many of the inflight segments had 2 tracks. I looked into how they are called. Those segments have a jump point in Track 1 near the middle that calls it to play Track 2 which is only 2 notes long. Curiously, I discovered that those two notes are already present at the position Track 2 is called in Track 1! So it seems redundant. The only thing extra in Track 2 is a SysEx command 7D 40 which apparently according to ScummVM's iMUSE specs is nothing more than a marker. So all it is is some kind of metadata. I did not check every multitrack segment but all of them I did check were the same way (including DG21 to DG31). So, I decided it was simply safe to discard all Track 2s for the inflight music.

I think what you're finding is that you did NOT convert your MIDis from Type 2 to Type 0 or 1. That means your MIDIs contain both tracks in the same MIDI, and track 2 only has a 2 note delay instead of 4.

avatar
Altureus: I found that Timbers of Heaven to be an extremely good soundfont too if you are interested in using that.
I think we should consider different soundfonts after all. It seems like some of Chorium's patches are slightly out of tune. That's what it sounds like at the end of the Concourse loop I recorded. Of course, it could just be my synth (CoolSoft) Can anyone else confirm for me?

/xwing_chorium_concourse.ogg
HALMARCH00_loop.mid
Post edited November 15, 2014 by Tarvis
FYI The synthesizer normally used by game music composers in the mid 90's time was the Roland Sound Canvas. It comes in many forms, like the Roland SCC-1 internal card or the Roland SC-55 external module. Sample quality wise it is a litle outdated, still for instrument balance it was the reference.
Normally that's true, but X-Wing and most LucasArts games pre-1994 were made for the CM-64/MT-32. first, and then ported to other devices. The strongest evidence is that LA almost always used the CM-64's custom instruments for sound effects back before digital samples for the norm.

TIE Fighter was indeed intended for a Sound Canvas, as its MT-32 and Adlib modes all use the same GMIDI files for playback instead of having specifically made versions.

EDIT: I converted all the concourse music, removed the intro gaps, divided intro and looping parts, and split off conditional instruments when used.

I only encountered two songs with conditional instruments: HALMARCH, the main concourse with the TOD door songs, and MISSION, which is the Historical Mission music. Once the loop part starts, one of the four channels play depending on which Imperial craft is on the screen. If you sit around for a while it cycles through the 3 imperial ships and shows their stats, and that's when those conditional tracks play. There's 4 tracks though, but only 3 ships. I'm guessing the Assault Gunboat will show up there later? My pilot's pretty fresh.

http://www.mediafire.com/download/fgajcc8a98tntnt/xwing_concourse_cutscene_midi.zip
Post edited November 15, 2014 by Tarvis
avatar
Laserschwert: I'm on Windows, but if it doesn't make things more difficult, multi-platform never hurts. Do you think that once it's set up, your tool could work for the TIE Fighter music as well?
avatar
Tarvis: Yup, the music files and the loop tables are the same format, just with 8 character filenames and more states (12 instead of 9, and references to state 0 and state 13 may indicate some arbitrary special loop cases which I must figure out)

avatar
Laserschwert: By the way, I've noticed something about X-Wing's in-flight music: The four bars of silence at the beginning of each track aren't actually silence in all files. Some, like DG21 to DG31, play notes in there, so I guess they ARE already supposed to have an overlap of those 4 bars. Technically this means each new piece of music is started 4 bars before the end of the current piece (so those 4 bars don't have to be removed at all!).
avatar
Tarvis: Strange. In my conversions, I do not have any preceding notes. Maybe I manually stripped them out, I don't remember. I converted them a long time ago...

Otherwise, look at the event lists for them. It is possible that such notes if present are never actually played by the engine, because the SysEx Jump command I described earlier may come before them. If so, they are probably just leftover from earlier revisions of those files during development and can be ignored.

EDIT: Okay, I looked into this. Turns out many of the inflight segments had 2 tracks. I looked into how they are called. Those segments have a jump point in Track 1 near the middle that calls it to play Track 2 which is only 2 notes long. Curiously, I discovered that those two notes are already present at the position Track 2 is called in Track 1! So it seems redundant. The only thing extra in Track 2 is a SysEx command 7D 40 which apparently according to ScummVM's iMUSE specs is nothing more than a marker. So all it is is some kind of metadata. I did not check every multitrack segment but all of them I did check were the same way (including DG21 to DG31). So, I decided it was simply safe to discard all Track 2s for the inflight music.

I think what you're finding is that you did NOT convert your MIDis from Type 2 to Type 0 or 1. That means your MIDIs contain both tracks in the same MIDI, and track 2 only has a 2 note delay instead of 4.

avatar
Altureus: I found that Timbers of Heaven to be an extremely good soundfont too if you are interested in using that.
avatar
Tarvis: I think we should consider different soundfonts after all. It seems like some of Chorium's patches are slightly out of tune. That's what it sounds like at the end of the Concourse loop I recorded. Of course, it could just be my synth (CoolSoft) Can anyone else confirm for me?

/xwing_chorium_concourse.ogg
HALMARCH00_loop.mid
One of those notes at the end does sound kind of off tune. But i tested it with Coolsoft using Timbers of Heaven and Chorium RevA checked and it seemed fine.
avatar
Tarvis: EDIT: Okay, I looked into this. Turns out many of the inflight segments had 2 tracks. I looked into how they are called. Those segments have a jump point in Track 1 near the middle that calls it to play Track 2 which is only 2 notes long. Curiously, I discovered that those two notes are already present at the position Track 2 is called in Track 1! So it seems redundant.
Alright, so those can be removed... BUT, I still think there's a supposed overlap, at least of 1 bar. Check DG02. There's a timpani roll up to the music, which would get removed if we'd remove the first 4 bars. It stays intact if we only remove 3 bars and make the piece overlap by one bar with the previous piece.
avatar
Altureus: I found that Timbers of Heaven to be an extremely good soundfont too if you are interested in using that.
Hi. I have configured DOSBOX to use that sound font instead of the usual Microsoft GM.
I must say that I am finding the trumpets in that font a little bit too strident. They steal the protagonism from everything else.
I know nothing about music, but the whole game sounds like played by one of those street parade orchestras. The Chorium one sound somehow more balanced and cinematic. But it's just my opinion.
Post edited November 15, 2014 by Azrapse
By the way, I am implementing the flightgroups and I am a little bit unsure about the formations.
The list of formations seem to be:
0 = Vic
1 = Finger Four
2 = Line Astern
3 = Line Abreast
4 = Echelon Right
5 = Echelon Left
6 = Double Astern
7 = Diamond
8 = Stacked
9 = Spread
10 = Hi-Lo
11 = Spiral

I am implementing them as a list of vectors relative to the flight leader, so that, ship N's position is calculated by adding the (N-2) vector in the formation list to the leader's position.
The problem is that I would need to know what are the exact values for those positions to mimic X-Wing as much as possible.
Also, those relative positions vectors seem to need to be scaled depending on the size of the ship type. For example, TIE Fighters are closer to each other than Corvettes when flying in formation.

I can create a custom mission with several formations to inspect and guess the values. But do any of you know if this has been figured out before for other game in the series, or is there a standard understanding of military formations I can check online?