Additional FM patches and a few example modules.
Do you have many more HMP files?
Also, do those HMI games include different drum bank files, or do they use an existing drum bank?
Do you have many more HMP files?
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.
Let me know if you are looking for anything special.
I found the Shattered Steel melodic set. Now I just need the drum set from Normality.
Also, what is default.op2 from? It doesn't seem to be from Doom 2.
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.
Find also attached all tunes and FM patches from the game Normality.
Also, what is default.op2 from? It doesn't seem to be from Doom 2.
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).
musplay.exe <file.mus> /d4
Driver 4 is MPU-401, which is just a pass-through to your system's MIDI synthesizer.
Driver 4 is MPU-401, which is just a pass-through to your system's MIDI synthesizer.
Right. Could this pass-through be achieved with foo_midi somehow?
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.
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.
You can use VSC. It sounds similar. Let me verify that right now. Hmm, yes, does sound like that, only slightly better.
Are those the only Descent 2 banks? Or did it recycle others from the original Descent?
Are those the only Descent 2 banks? Or did it recycle others from the original Descent?
Here, I extracted all MIDI related files both from Descent and Descent 2 for you. Note the details found in file descent.sng of each game.
I browsed through a couple of MIDI archives (a few thousand files) which I downloaded recently. I found a lot of MIDI files revealing issues with foo_midi. I sorted them into four categories:
- wrong time = wrong calculation of the total duration of a MIDI file
- no content = foo_midi does not detect any notes to play
- load fail = files being rejected to load "unsupported format or corrupted file"
- 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.
Hey there. Loving foo_midi, but I'd love to see an update to the munt engine, now that development really seems to have picked up. munt is now at v1.2.0. Any chance you could update things?
arfy
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.
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?
It is Roland's MT-32 GM patch set. If you know a better generic patch set, I'll gladly bundle it, and provide an option to select the patch set.
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.dll
Reason: 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.
anything I can do on my end to remedy this issue?
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.
Hi kode54!
Just tried this SysEx thing with some mt-32 midis from Betrayal at Krondor. After assigning SysEx to a midi file I've got a message:
Unable to open item for playback (Error processing dump BAK.SYX: Object not found):
"D:\tmp\music\midi\bak_1\BAK_1.MID"
Obviously BAK.SYX is a SysEx dump that has to be assigned to BAK_1.MID file. They're put in the same folder, so there shouldn't be a problem.
What could be wrong here?
Thanks!
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.
Note that the sample rate is now hard coded to 32KHz for MUNT.
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.
Thanks kode54 for this plugin! I'm really liking it so far.
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.
Thanks!
Yes. You may add a MT-32 reset SysEx dump to each file.
- Add the MIDI files to a playlist
- 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.
Yes. You may add a MT-32 reset SysEx dump to each file.
- Add the MIDI files to a playlist
- 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) (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?
The .syx file must continue to exist on disk after you have added it. It merely adds the file's path as a reference to the tag database for those MIDI files.
The .syx file must continue to exist on disk after you have added it. It merely adds the file's path as a reference to the tag database for those MIDI files.
Yes, both files (.mid and .syx) exist on disk in the same directory but I get the error anyway.
Ok, seems like I found the problem. When both files (.mid and .syx) are in the same directory, the plugin does not store the complete path to the .syx in the <MIDI_SYSEX_DUMPS> tag, it just stores the name of the file, and can't find the sysex file on playback. However, if I put the sysex in a different directory than where the midi file is, it does store the complete path and finds it on playback.
Thanks for your research, algernon64, but in my case to be able to play midi files with assigned sysex dumps I had to use .syx file copied to different disk. It seems that foo_midi stores relative paths to .syx files, and while playing it expects full path instead.
Thus "..\..\..\foo.syx" leads to error, and "c:\foo.syx" works fine.
So I'd like to kindly ask kode54 to implement it right.
Thanks for your time!
And huge thanks to kode54, with recent fix midi files with assigned .SYX play juuuust fine!
Wrong thread sorry, (comes as first result for foo_midi on Google)