Heya!
The Tie Fighter Total Conversion project is trying to produce high-quality captures of the original MIDI output from the DOS Tie Fighter game.
Obviously this is not a SCUMM engine game, but it does use the iMuse music system for dynamic music, and it's causing headaches for the team. They are able to extract gmid data from the game, but this doesn't quite play right in normal MIDI players.
Is there any chance there is code or tools in the ScummVM project that could help with this? Ideally, I'm thinking of having the ability to glue a bunch of arbitrary gmids together into a standards-compliant .midi file that can then be played on common playback software?
iMuse MIDI player?
Moderator: ScummVM Team
Re: iMuse MIDI player?
No SCUMM / iMUSE expert, but there is the technical reference documentation here:
https://wiki.scummvm.org/index.php?titl ... _resources
https://wiki.scummvm.org/index.php?titl ... iMuse_data
Apart from that, "Use the Source, Luke":
https://github.com/scummvm/scummvm/tree ... cumm/imuse
https://wiki.scummvm.org/index.php?titl ... _resources
https://wiki.scummvm.org/index.php?titl ... iMuse_data
Apart from that, "Use the Source, Luke":
https://github.com/scummvm/scummvm/tree ... cumm/imuse
Re: iMuse MIDI player?
As a not-a-programmer, "use the source" is a little bit outside my realm of competence.
How accessible is SCUMM? Could someone (maybe me?) take the gmid files from TIE Fighter / XWing and construct a new ScummVM "game" that just plays defined sequences of music?
How accessible is SCUMM? Could someone (maybe me?) take the gmid files from TIE Fighter / XWing and construct a new ScummVM "game" that just plays defined sequences of music?
Re: iMuse MIDI player?
I haven't looked at imuse for years, so my memory is fuzzy, but I don't think conversion will be easy (to retain all of the original music). OTOH the format isn't really special. Each sequence internally is a normal SMF .MID file except it's marked as "type 2" which is unsupported by many sequencers. And every track is either a part of a main song or a subsong. So to play/edit it, it's as simple as flipping the flag from type 2 to type 1 in the file header and load into your favorite midi editor. Now, to play anything, you must disable every track except the one you are trying to play. Take note that often only one of the tracks will setup controllers/instruments and all other will assume it's already done so may not play correctly stand alone. This part is easy. The problem is you don't really know when to start the extra parts (tracks) as these are used during scene transitions/game callbacks (ie. switching from one file to another, from normal fight to boss fight etc. etc.) Imuse uses internal sysex commands for all it's extras but that will probably require digging into the source to understand. Years ago I was only interested in playing "main" songs outside of the game, so I never bothered about transition parts/callbacks. Good luck.starslab wrote: ↑Wed Jul 21, 2021 3:48 am As a not-a-programmer, "use the source" is a little bit outside my realm of competence.
How accessible is SCUMM? Could someone (maybe me?) take the gmid files from TIE Fighter / XWing and construct a new ScummVM "game" that just plays defined sequences of music?
Re: iMuse MIDI player?
In essence, iMUSE could be considered a small specialized programming language that uses a MIDI-like file structure for its programs.
There are commands which are then triggered by the game scripts. Thus, it is not a single playback, but a program. The only viable way of getting it aside would be to either emulate those commands sent to the iMUSE subsystem or capturing the MIDI playback directly produced by ScummVM or DOSBox.
Eugene
There are commands which are then triggered by the game scripts. Thus, it is not a single playback, but a program. The only viable way of getting it aside would be to either emulate those commands sent to the iMUSE subsystem or capturing the MIDI playback directly produced by ScummVM or DOSBox.
Eugene
Re: iMuse MIDI player?
The issue with capturing from DOSBox is that the scripts do a bunch of things that are hostile to "just capturing the music".
For example, during the cinematic sequences for both XWing and TIE Fighter, iMUSE dials down the volume when digital effects are playing, then lets it back up when the digital effects are done.
That is, how shall we say, less than ideal for archiving the musical performance.
And the in-flight music is extremely dynamic. It will change depending on if the player is in combat, and will also seamlessly play little ditties when friendlies or hostiles are destroyed, and when friendly or hostile reinforcements enter the area.
I'm thinking of trying my hand at making a little Scumm "game" that plays "background music" on each screen the player navigates to, using the MIDI data ripped from the original games, but excluding all the iMUSE commands that are hostile to music capture.
For example, during the cinematic sequences for both XWing and TIE Fighter, iMUSE dials down the volume when digital effects are playing, then lets it back up when the digital effects are done.
That is, how shall we say, less than ideal for archiving the musical performance.
And the in-flight music is extremely dynamic. It will change depending on if the player is in combat, and will also seamlessly play little ditties when friendlies or hostiles are destroyed, and when friendly or hostile reinforcements enter the area.
I'm thinking of trying my hand at making a little Scumm "game" that plays "background music" on each screen the player navigates to, using the MIDI data ripped from the original games, but excluding all the iMUSE commands that are hostile to music capture.
Re: iMuse MIDI player?
In case anyone else lands in this thread via Google looking the same as I am, you might be interested in this: https://github.com/foonix/unity-midi-imuse
It can only output to it's integrated software-synth right now, but hopefully the author will update it in the future to allow playback to an external MIDI port.
It can only output to it's integrated software-synth right now, but hopefully the author will update it in the future to allow playback to an external MIDI port.