VOGONS

Common searches


Extract game music files.

Topic actions

Reply 20 of 40, by marooned_on_mars

User metadata
Rank Member
Rank
Member

I think those long delays are there for the purpose to relay an message in that span of time in the case of playing those midis on a MT-32.
Also, in the case of LSL5, there are some sampled sounds that get played in two or more songs which aren't present in the QuestStudios midis.

Reply 21 of 40, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie
marooned_on_mars wrote:

Any suggestions of a MIDI sequencer?

QuestStudios utilities page has an old Win 3.1 version of Cakewalk Professional that runs well under DosBox and should be sufficient for simple MIDI editing tasks. I use it all the time, preferring it over modern software that mostly focuses on digital recording.

marooned_on_mars wrote:

And what is the trouble with iMuse when extracting?

There's a ton of system exclusive messages to interpret, things such as conditional branches, conditional loop points, conditional instrument changes, and the like.

marooned_on_mars wrote:

Would this problem with the pitch bends be present when recording raw midi commands through DosBox?

Yes, if you press the start logging button only at a particular song, as the pitch bend range information get sent only when the game is started.

marooned_on_mars wrote:

I don't really have a clue how to send that sequence or what to hex edit.

Use DosBox to record the raw MIDI output, starting the logging before launching the game, and ending the recording before the first music (usually Sierra logo music) starts. The resulting MIDI file should have only initialization controllers, and you can play it before any extracted MIDI file.

Alternatively, attached utility will insert "set pitch bend range to 12" events at the beginning of the file for any channel that uses pitch bend changes and does not define a bend range by itself. Just run "setbend12 *.mid" to apply this to all extracted MIDI files. (It's a Win32 utility, so run it from the Windows command prompt.) I prefer this method because I play MIDI files in WinAmp (yes, I still use it...), which closes and reopens the output device between files, and since this causes BASSMIDI to reset itself, pitch bend range changes in one MIDI file are not carried over to the next.

Attachments

  • Filename
    setbend12.zip
    File size
    3.44 KiB
    Downloads
    161 downloads
    File license
    Fair use/fair dealing exception

Reply 22 of 40, by marooned_on_mars

User metadata
Rank Member
Rank
Member
NewRisingSun wrote:

QuestStudios utilities page has an old Win 3.1 version of Cakewalk Professional that runs well under DosBox and should be sufficient for simple MIDI editing tasks. I use it all the time, preferring it over modern software that mostly focuses on digital recording.

Well I think that's a bit out of hand for me, so I'll try to look around for modern sequencers, hopefully I'll be able to fiddle with it.

NewRisingSun wrote:

There's a ton of system exclusive messages to interpret, things such as conditional branches, conditional loop points, conditional instrument changes, and the like.

So, the way I understand it, doing the same things on any LucasArts game that has iMuse would be impossible (or next to). That's a pity as I would've been interested to extract music from those too. Ah well.

NewRisingSun wrote:

Alternatively, attached utility will insert "set pitch bend range to 12" events at the beginning of the file for any channel that uses pitch bend changes and does not define a bend range by itself. Just run "setbend12 *.mid" to apply this to all extracted MIDI files. (It's a Win32 utility, so run it from the Windows command prompt.) I prefer this method because I play MIDI files in WinAmp (yes, I still use it...), which closes and reopens the output device between files, and since this causes BASSMIDI to reset itself, pitch bend range changes in one MIDI file are not carried over to the next.

I think I would prefer this method too, since I use fb2k and the player has the ability to record it's output, so the first method wouldn't have worked for me (or at least I think it wouldn't)
Did you make this utility yourself? It worked flawlessly.

Reply 23 of 40, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

So, the way I understand it, doing the same things on any LucasArts game that has iMuse would be impossible (or next to).

I have written a utility that converts iMuse system exclusive messages to text strings so one at least has an idea what's going on. It still requires a lot of editing, though, if you want to record it. Soundtrack Island already has recorded Monkey Island 2 and Fate of Atlantis, though.

Did you make this utility yourself?

Yep.

Reply 24 of 40, by marooned_on_mars

User metadata
Rank Member
Rank
Member

Thanks again for the help, NewRisingSun. I got some tracks to play properly somehow (with a loop trick) now I'll only have to re-arrange the midis in a sequencer and I'll post it on my chiptune site and a link to it in case anyone wants the midis/recordings.
I would have one more question though: when I extract the MT-32 patches, it sounds horrid when I play them through MUNT, but this time it doesn't have anything to do with wrong pitch bends, but rather some instruments missing or sounding seriously wrong. Any ideas what I should be doing?

Reply 25 of 40, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

Are you playing 1.PAT as a .SYX file in MUNT? That won't work, as 1.PAT is not simply a MIDI message dump. It also includes eleven reverb macros, selected by any sound resource using controller 80, and three LCD messages.

I have a PAT to SYX conversion utility, but that only takes care of the initial instrument initialization, not the reverb changes, as those are sent together with the music.

As you can see, using extracted files is not for the faint-hearted.

Reply 28 of 40, by marooned_on_mars

User metadata
Rank Member
Rank
Member

Ah, so it's practically impossible as much as the extracted iMuse music. You're right, I'm starting to get vertigos right now, haha.

Reply 29 of 40, by Spikey

User metadata
Rank Oldbie
Rank
Oldbie

Marooned, if there's a soundtrack or files you want, just hit me up with a PM and I'll send you what I have. I have extensive libraries of extracted music, some edited to loop properly and have metadata, some not.

Reply 30 of 40, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

so it's practically impossible as much as the extracted iMuse music.

Well, not really. You just need to convert the 1.PAT file to a .SYX format file (I have a utility for that) and then send that to MUNT before having MUNT play any MIDI file, making sure that MUNT doesn't reset before any further MIDI file is played.

The only things to keep in mind are reverb changes in the MIDI files, which are encoded as controller 80 values, but are translated to MT-32 system exclusive messages by Sierra's MT32.DRV. If you don't want to do that manually, I suppose I could write a utility that does that. I don't have the time for that right now, though, but you must be busy enough recording the General MIDI music files for now.

Reply 31 of 40, by marooned_on_mars

User metadata
Rank Member
Rank
Member
NewRisingSun wrote:

The only things to keep in mind are reverb changes in the MIDI files, which are encoded as controller 80 values, but are translated to MT-32 system exclusive messages by Sierra's MT32.DRV. If you don't want to do that manually, I suppose I could write a utility that does that. I don't have the time for that right now, though.

Considering that I don't have much expertise into writing programs that would be lovely, whenever you'll get the time to write that please send me a PM, then I could replace my MT-32 music sets from adventure games with proper "clean" soundtracks (minus sound effects and that example with the intro song playing alongside a sea background track)
Would the extracted MT32-specific tracks be plagued by the same looping "problem" ?
Also what about AdLib and other sound modules? Could those be extracted and replayed as well. I know AdLib works with the wonderful utility you provided but still lacks PC Speaker, Tandy Sound and PS/1 Audio.

I was also thinking maybe if we would gather enough interest from developers we could start a project similar to HooT only for IBM-PC. There is a (quite limited) library of IBM-PC soundtracks that can be played through HooT, but most titles are missing 🙁

NewRisingSun wrote:

But you must be busy enough recording the General MIDI music files for now.

I am already done with the GM soundtrack, it was quite easy and quick to do (as opposite to recording in-game), I am now actually busy with recording the AdLib Gold/SB Pro2 soundtrack of the game 😁
But regardless, I can make time for other stuff if required. I feel kind of bad though that it took me 2 months to be able to finish the complete LSL set. I wanted to post it all at once so I could attract more attention to my project.

Reply 32 of 40, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

Would the extracted MT32-specific tracks be plagued by the same looping "problem" ?

Yes, of course. The loop point definition is independent of the output device. (I'm not sure whether there is even a "standard" way of defining loop points in Standard MIDI Files that any MIDI file player I know of would follow.)

I know AdLib works with the wonderful utility you provided but still lacks PC Speaker, Tandy Sound and PS/1 Audio.

They work with the utility as well. I already mentioned that "a" is Adlib (and Game Blaster), "m" is MT-32 and "h" is General MIDI. "s" is PC Speaker, "t" is Tandy and IBM PS/1. (In some games, Tandy and PS/1 is "s" as well.) By the way: I didn't invent those letters; they're encoded in the sound resources' track lists themselves.

I was also thinking maybe if we would gather enough interest from developers we could start a project similar to HooT only for IBM-PC.

I've always found Hoot's user interface quite cumbersome (no mouse support). And if the goal is to have a game music player that allows you to play back the same tune in different emulated configurations, I would find it much more interesting to be able to i.e. switch between Adlib and Roland MT-32 while the song is playing. Hoot doesn't do that.

I am already done with the GM soundtrack

I thought you were recording music from all Sierra games, not just LSL.

As far as Adlib is concerned: Sierra's OPL drivers are not particularly well-written; in particular, by not using the additional voices on the OPL3 (even SBPRO.DRV doesn't do that), voices get cut off unnecessarily, resulting in a rather "clicky" playback. I have written my own FM music player for a few game music formats that I care about to make them sound cleaner, but of course, it's no longer how the games originally sound, so I don't know how much of interest this would be to you.

Reply 33 of 40, by marooned_on_mars

User metadata
Rank Member
Rank
Member
NewRisingSun wrote:

Yes, of course. The loop point definition is independent of the output device. (I'm not sure whether there is even a "standard" way of defining loop points in Standard MIDI Files that any MIDI file player I know of would follow.)

And I gather I can fix it the same "Cakewalk" way?

NewRisingSun wrote:

They work with the utility as well. I already mentioned that "a" is Adlib (and Game Blaster), "m" is MT-32 and "h" is General MIDI. "s" is PC Speaker, "t" is Tandy and IBM PS/1. (In some games, Tandy and PS/1 is "s" as well.) By the way: I didn't invent those letters; they're encoded in the sound resources' track lists themselves.

The problem is with the playback of those midi files, I doubt any sound emulator that emulates PC Speaker PS/1 Tandy and OPL2/3 will ever play them properly. So how could I replay those after extraction? I know that in the OPL case there are some players that support a limited set of game music formats (such as IMF for Id software titles)

NewRisingSun wrote:

I've always found Hoot's user interface quite cumbersome (no mouse support). And if the goal is to have a game music player that allows you to play back the same tune in different emulated configurations, I would find it much more interesting to be able to i.e. switch between Adlib and Roland MT-32 while the song is playing. Hoot doesn't do that.

I'm not sure what HooT version you're using but mine does have mouse support. And it's true it can't do that though I don't really find any use in that feature though I suppose it wouldn't be really bad to code it in. My biggest dissapointment is it's midi playback side, it lacks a lot plus it's using a very outdated build of Munt that doesn't even work.

NewRisingSun wrote:

I thought you were recording music from all Sierra games, not just LSL.

Well I intend to do most of the Sierra titles sometime in the future though my only problem is that I didn't play most of the games so I'm oblivious on what titles to give to the songs and I'm a bit afraid of leaving out unrecorded tracks from the game.

NewRisingSun wrote:

As far as Adlib is concerned: Sierra's OPL drivers are not particularly well-written; in particular, by not using the additional voices on the OPL3 (even SBPRO.DRV doesn't do that), voices get cut off unnecessarily, resulting in a rather "clicky" playback. I have written my own FM music player for a few game music formats that I care about to make them sound cleaner, but of course, it's no longer how the games originally sound, so I don't know how much of interest this would be to you.

I'd like my recordings to have a very "clean" sound, even though that's not how it was supposed to sound or it's not entirely faithful to the original. If you'd have something for LSL please let me know ASAP, so I could stop recording (no use rehashing everything afterwards)

Reply 34 of 40, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

And I gather I can fix it the same "Cakewalk" way?

Yep.

I'm not sure what HooT version you're using but mine does have mouse support.

A very old one, apparently. I have now downloaded a newer one, and that one does indeed have mouse support added. Still not very user-friendly, though.

If you'd have something for LSL please let me know ASAP, so I could stop recording (no use rehashing everything afterwards)

It's on my other computer. I'll upload something later tonight or tommorow. You will receive a PM; I won't post this publicly.

For some games, the difference is quite big though. In Space Quest I, for example, the composer never noticed that his "string" instrument had a ridiculously slow "Attack" envelope because buggy ADL.DRV/PROAUDIO.DRV/SNDBLAST.DRV always cuts it off. Getting a proper non-clicking sound requires modifying the instrument itself to something more reasonable.

Attachments

  • Filename
    adsr_3b.ogg
    File size
    356.13 KiB
    Downloads
    140 downloads
    File comment
    SQ1SCI title with "correct" ADSR envelope (custom player without instrument adjustment)
    File license
    Fair use/fair dealing exception
  • Filename
    adsr_3a.ogg
    File size
    404.99 KiB
    Downloads
    148 downloads
    File comment
    SQ1SCI title with buggy ADSR envelope (original Sierra sound driver)
    File license
    Fair use/fair dealing exception

Reply 35 of 40, by marooned_on_mars

User metadata
Rank Member
Rank
Member

Haven't posted in this thread in a while after I have got what I needed in regards to Sierra and Dynamix. Thanks once again NRS! =)
I've recently been looking for a way to extract music files out of other types of games of lesser "popular" companies such as Maxis, EA, Psygnosis etc. so I was wonderinf if any of you guys know of any extractors.
I also renamed the thread title to better suit what I'm looking for now ^^

Reply 39 of 40, by marooned_on_mars

User metadata
Rank Member
Rank
Member

Thanks for that too. But I'm rather looking for something like NRS posted earlier on, something that can take out tracks in multiple formats (AdLib/SB, MT-32, GM, etc.) and mostly for older games than those of what the ripper would work for 🤣