foo_midi

Also, do those HMI games include different drum bank files, or do they use an existing drum bank?

Here you are the different HMI2 drum banks and my complete collection of HMI2, HMP and HMP2 modules. I used to keep only those modules which I like to listen to.Back in the old days I wrote my own quite advanced replay interfaces using 4DOS batch routines which allowed independant selection of instrument and drum patches. For playback I used players from Miles and utilized the sound-setup binaries from Human Machine Interfaces.

foo_midi

I found the Shattered Steel melodic set. Now I just need the drum set from Normality.

Shattered Steel is quite an interesting case. The demo release included both the original MIDI files and the HMI2 variants, HMI2 was used in the demo. It also included (probably by mistake) a couple HMI2 modules from Descent2 (I placed those in a subfolder) and some FM patches from another game (METALH = Metalhead?). The full version of Shattered Steel had all the MIDI music removed except for the sound-setup test tune. The game used CD Audio versions of the MIDI tunes instead.

This came with the distribution of MUS Play. This is a very nice DOS based player for .mus files which recreates the original sound of the music in DOOM, Heretic and Hexen quite nicely, I never found anything sounding closer to the games than this. MUS Play runs fine under DOSBox, try command-line musplay.exe <file.mus> /d4 to get the best experience. The current implementation of adlmidi doesn't come close to this. For proof please check attached example I just recorded from the file MUS_E1M1.MUS (Heretic - Episode 1 Level 1) using MUS Play. (Don't forget to replace included GENMIDI.OP2 with the one of DOOM, Heretic or Hexen for best results).

foo_midi

Not really. Foobar2000 components must generate their own audio. If you want foo_midi to sound as bad as the Microsoft GS synthesizer, there's a number of copies of that bank converted to SF2 format, which will work with BASSMIDI.

Or you can dig up the VSTi version of Roland Virtual Sound Canvas, and although it doesn't support system exclusive messages, and must be configured to GS mode manually, it does support some of the GS sound set, and will probably sound like what Doom was composed with as well.

foo_midi

If you want foo_midi to sound as bad as the Microsoft GS synthesizer [...]

Ha ha. Actually I would only want this for recreation of the DOOM, Heretic and Hexen music the way I used to experience it back then. No problem though, I can render these musics with MUS Play and save the output to a streaming format of my choice.

crash = one MIDI file which manages to crash foo_midi and foobar2000 altogether

XMPlay using the XMP-MIDI plugin is able to load and play all these files, and it does not report wrong durations. Hopefully this collection helps you to further optimize foo_midi's file loader and playtime calculation.

foo_midi

Done. Updated and rebased against 1.2.0. Note that the sample rate is now hard coded to 32KHz for MUNT.

Also note the new SysEx dump support. To apply SysEx .SYX or .DMP files to the start of any type 0 or 1 MIDI file, add them to a playlist, select all of the MIDI files you wish to apply dumps to at the same time as selecting all of the dump files you wish to apply to each of them, then right click and select "Assign SysEx dumps" under "Utilities". Similarly, select a series of MIDI files and no dump files, and you may select "Clear SysEx dumps" from the same menu.

foo_midi

Excellent! it's working. I thought at first the old reverb algorithms were still in place, but seems everything's fine. Also, love the apply sysex dumps to any file. helps when playing sierra soundtracks with external patch banks. Also hearing emulated gm on an mt-32 is pretty cool! is the patch set based off the official one that Roland put out to allow mt-32's to play back gm?

foo_midi

I updated the foo_midi dll to 1.209 and now I get this message when Foobar2000 loads up...

Failed to load DLL: foo_midi.dllReason: The specified procedure could not be found.

it updated through the components updater screen, and then removed it and tried manually updating it with no success. and when I try to actually play a .midi file it says it's an unsupported file type.

in the components menu, it lists the component as (component not loaded) and (unknown) version for foo_midi module.

foo_midi

nevermind, it was a fault of my own idiocy. lol. I had lingering .dll files from the foo_midi in my /foobar2000/ folder that seemed to be conflicting with the installer, after I deleted those now it works like a charm.

foo_midi

These two MIDI songs from Operation Inner Space seem to contain a non-standard-ish second drum channel. XMPlay is able to detect that (if you activate the "auto-detect channel 16 drums" xmp_midi option), but all other players just play "random" piano keys instead. Would be nice if foo_midi supported that as well, though I have to admit I don't know any other files with that configuration.

foo_midi

I’m curious: what is the rationale behind this choice? Was 32 kHz chosen because it rhymes with MT-32? I typically listen to MIDI at 48 kHz, so I was a bit disappointed to find my output switching to 32 whenever an MT-based file (such as those released by Quest Studios for old Sierra titles) comes up in the playlist. (I otherwise have no complaints, of course; the plugin works beautifully!) And, I mean, if authenticity is the goal, ideally it should be 49716 Hz, right? Of course, few modern soundcards support such an odd number, and anything over 44.1 is honestly beyond the range of even the keenest human hearing, and thus pointless, but I digress. I just want to know why we settled inflexibly on 32, of all possible rates?

In any event, thank you to everyone involved in making this great plugin.

foo_midi

I have a question because I'm having trouble playing some midi files through munt. Files which contain mt32 sysex messages play perfectly fine, but I also have a bunch of mt32 midi files which don't seem to contain mt32 sysex messages and therefore don't play through munt. Is there some way to force playback through munt? I also tried the method explained above to "attach" a sysex to normal midi files but it's not working for me. I get the exact same error that Nahkranoth mentioned.

foo_midi

Add a .dmp file containing only an MT-32 reset message to the same playlist

Select all tracks, including the dump, which will have no length

There should be some SysEx management options in the Utility submenu of the context menu, such as adding or removing

Sorry for not noticing this sooner, I was not subscribed to this topic, and the foobar2000 subforum (28) portal does not track the fb2k uploads forum.

Thanks for the reply.

I don't know how to make a .dmp file containing just a MT32 reset message. How would I do that?

What I've tried is using external .syx files package with some midi collections. For example, some midi songs in Quest Studios offer the midi tracks and a separate sysex file to load before the song (like this one http://www.queststudios.com/mt32midi/cqc_1.zip). With the previous file as an example, if I add the midi file and .syx to the playlist, select both, choose Utilities->Assign Sysex dumps and then play the file, I get a window with the message:

Unable to open item for playback (Error processing dump CAMELOT.SYX: Object not found):"I:\midi\CQC_1.MID"

Both files are in the same folder, so, it seems like there is some kind of bug that prevents the decoder from loading the .syx file?