XMPlay MIDI plugin

Started by Ian @ un4seen,

winner

Quote from: Ian @ un4seenOnly XG mode uses bank 127 for drums, so the MIDI plugin will only use a soundfont's bank 127 for drums when in XG mode and it detects that the bank probably does contain XG drums (and the "Use bank 127 drums in XG mode when available" option is enabled). In your case, it looks like it failed that detection, so it fell back to the standard bank 128 (d0) for drums. It is possible that it was mistaken. If you suspect it was, please post a link or upload the soundfont to have a look at here:

   ftp.un4seen.com/incoming/
Thank you. I do have the "Use bank 127 drums in XG mode" option checked. Also, I tried some midis that were specifically for the XG mode, and the problem persisted. I've uploaded my soundfont to the Incoming FTP folder.

Ian @ un4seen

Bank 127 in that soundfont doesn't actually contain XG drum kits. The 127:0 preset has "GS" in its name to seemingly confirm that :)

winner

Quote from: Ian @ un4seenBank 127 in that soundfont doesn't actually contain XG drum kits. The 127:0 preset has "GS" in its name to seemingly confirm that :)
OK Ian, thank you. I will correct the soundfont accordingly.

winner

Quote from: Ian @ un4seenBank 127 in that soundfont doesn't actually contain XG drum kits. The 127:0 preset has "GS" in its name to seemingly confirm that :)
So, I've tried other soundfonts with XG drum kits, and XMPlay is still not recognizing the bank 127 presets, defaulting to the d0 presets.

A soundfont which does have the proper drumsets is the ColomboGMGS2 SoundFont v.7.5.

Ian @ un4seen

Here's an update for you to try, with some tweaking of the bank 127 drum detection:

   www.un4seen.com/stuff/xmp-midi.dll

Let me know if you still see any problems with it.

winner

#980
Quote from: Ian @ un4seenHere's an update for you to try, with some tweaking of the bank 127 drum detection:

   www.un4seen.com/stuff/xmp-midi.dll

Let me know if you still see any problems with it.
Thank you, Ian! This version of the midi plugin is detecting some of the 127 bank presets, but I find it is not detecting a preset at 127:48.

Ian @ un4seen

Which soundfont is that happening with? I checked with the ColomboGMGS2 soundFont just now and 127:48 ("XG Orchestral" preset) seems to be detected fine in that.

raygrote

Hi,
Two questions here.
First, I just updated everything I have which uses the bassmidi dll to the latest version. I wanted to test the new sf2 modulators which are supported, such as velocity to release time. This worked well when using the dll in a Bassmidi vst, but when I went into xmplay to see how it would sound there, I noticed that this didn't work. The release time remained constant across all velocities. I tried with midi input rev 17A. I haven't tested newly added/similar sfz opcodes yet.

Have new bassmidi features not made it into xmplay's midi plug-in yet? normally they're pretty quick to migrate over iirc, so I was a bit surprised to see this.

Second, what does "emulate Creative limits" do? I don't have much experience with Creative sound cards to know what limits could be emulated.

winner

Quote from: Ian @ un4seenWhich soundfont is that happening with? I checked with the ColomboGMGS2 soundFont just now and 127:48 ("XG Orchestral" preset) seems to be detected fine in that.
Ian, thanks for testing. I'm seeing this happen with a different soundfont, which only has the "Orchestra" name for that preset and not "XG Orchestral." I suspect that this is the problem. So I will keep using this version of the plugin and see if it works OK.

Ian @ un4seen

Quote from: raygroteFirst, I just updated everything I have which uses the bassmidi dll to the latest version. I wanted to test the new sf2 modulators which are supported, such as velocity to release time. This worked well when using the dll in a Bassmidi vst, but when I went into xmplay to see how it would sound there, I noticed that this didn't work. The release time remained constant across all velocities. I tried with midi input rev 17A. I haven't tested newly added/similar sfz opcodes yet.

Have new bassmidi features not made it into xmplay's midi plug-in yet? normally they're pretty quick to migrate over iirc, so I was a bit surprised to see this.

Oops. The latest BASSMIDI stuff should also be supported in the latest XMPlay plugin, but I see that the "velocity to release time" modulator code indeed wasn't fully brought over (parsing was but applying wasn't). Here's an update to fix that:

   www.un4seen.com/stuff/xmp-midi.dll

Let me know if you still see a problem with it.

Quote from: raygroteSecond, what does "emulate Creative limits" do? I don't have much experience with Creative sound cards to know what limits could be emulated.

It limits the range of some SF2 generators to match what Creative/SoundBlaster hardware does. The limits affect initial attenuation, envelope decay times, modulation envelope pitch depth, modulation LFO speed/pitch/volume. They were always applied in previous releases but are now optional.

Quote from: winnerIan, thanks for testing. I'm seeing this happen with a different soundfont, which only has the "Orchestra" name for that preset and not "XG Orchestral." I suspect that this is the problem. So I will keep using this version of the plugin and see if it works OK.

If you upload/link the soundfont, I'll have a look anyway. The MIDI plugin doesn't use the preset name in the bank 127 drum detection, so that won't be the issue.

raygrote

Thanks Ian for the update. It works perfectly! So far I haven't found any other issues.

Androgeos

Quote from: Ian @ un4seen
Quote from: raygroteSecond, what does "emulate Creative limits" do? I don't have much experience with Creative sound cards to know what limits could be emulated.

It limits the range of some SF2 generators to match what Creative/SoundBlaster hardware does. The limits affect initial attenuation, envelope decay times, modulation envelope pitch depth, modulation LFO speed/pitch/volume. They were always applied in previous releases but are now optional.

Thanks for the info, Ian! Having the "Emulate Creative SF2 limits" box checked in Rev 17 fixed playback issues on my end - specifically, any file that uses the "Picked Bs." (bank 0 instrument 34) in gzdoom.sf2. ;D

deus-ex

Hi Ian,

I hope you are save and sound.

I just noticed that XMP-MIDI is able to auto-detect MIDIs using a second drum channel on Channel 16, indicated by an '- D16' in the format string on the info screen (F1). That's quite a pleasant surprise. When was this auto-detection feature added, and how is it actually achieved?

I have one more MIDI file that uses a second drum channel on Ch16, that currently is not detected by XMP-MIDI (v1.0.17.3).
deus-ex_-_Mood_(D16).mid has been uploaded to: ftp://ftp.un4seen.com/incoming

saga

Quote from: deus-exI just noticed that XMP-MIDI is able to auto-detect MIDIs using a second drum channel on Channel 16, indicated by an '- D16' in the format string on the info screen (F1). That's quite a pleasant surprise. When was this auto-detection feature added, and how is it actually achieved?
Let me refresh your memory: http://www.un4seen.com/forum/?topic=5337.msg45080#msg45080 ;D

deus-ex

Hi saga,

thanks for sparking a light in my memory section. How come you do remember this old stuff? Or is it elite seeking skills?

Rereading the old posts I think I did not understand back then that Ian actually implement an auto-detection for those MIDIs. I thought my request couldn't be realized and I never checked back on this particular issue. So it was always there since 14 years, and I never noticed. Ouch...

The bottom line is: Better late than never, right? Right? :)


saga

QuoteHow come you do remember this old stuff? Or is it elite seeking skills?
A bit of a combination of both, I remembered it being discussed in this thread, so it was just a matter of coming up with the right search terms. :) What I did not remember is that it was you who brought the topic up initially. ;D

deus-ex

Quote from: sagaWhat I did not remember is that it was you who brought the topic up initially. ;D

Guess what, that makes two of us. :)

Ian @ un4seen

Quote from: deus-exI have one more MIDI file that uses a second drum channel on Ch16, that currently is not detected by XMP-MIDI (v1.0.17.3).
deus-ex_-_Mood_(D16).mid has been uploaded to: ftp://ftp.un4seen.com/incoming

Are you sure that file has channel 16 drums? Trombone looks correct. The track is even called "Trombone" :)

deus-ex

Since you have legitimate doubts I rechecked the tune carefully in XMPlay, also making use of your MIDI-input plugin's mixer feature to mute/solo the channel. Then I checked with Open Cubic Player, which can also mute/solo channels and even display the currently played notes of each channel. You are right, it's indeed and intentionally a trombone instrument playing on channel 16.

I flagged this MIDI as (D16) many, many years ago based solely on my listening judgement in Open Cubic Player. Open Cubic Player uses Gravis Ultrasound Patches, I'm using a self-customized patch set, to recreate the instruments. These patches are by far not as accurate/vibrant as common SF2 soundfonts these days, due to their size limits and lack of technical features.

Thanks for looking into it. :)

Juest

hi so i was looking into Microsoft Hover! format, kind of perplexed that it is not supported by this plugin, it is a renamed midi stream apparently. but its custom and only winamp midi plugin seems to be capable of reading it... perhaps something could be done, i honestly don't know what to expect here other than likely disappointment... thanks in advance

Nukkels

I've just had my sound card's analogue outputs fail, so I'm using optical output until I can afford a new sound card, and I just realised that XMPlay will no longer output any audio through the speakers when playing a midi file. Mods, mp3s, etc are all fine, it's just midis, so I assume it's the plugin doing something different for the midi playback. Midi files still play audio through Windows Media Player and others, it's just XMPlay that's affected.

Ian @ un4seen

That's strange, the MIDI plugin should have no influence on the output device. Do you get sound if you output to a WAV file instead? If not, check the MIDI plugin's soundfont config. Perhaps you deleted the old XMPLAY.INI file for a fresh start when the soundcard broke to see if that would get things working?

winner

Quote from: NukkelsI've just had my sound card's analogue outputs fail, so I'm using optical output until I can afford a new sound card, and I just realised that XMPlay will no longer output any audio through the speakers when playing a midi file. Mods, mp3s, etc are all fine, it's just midis, so I assume it's the plugin doing something different for the midi playback. Midi files still play audio through Windows Media Player and others, it's just XMPlay that's affected.
As a help for troubleshooting, which output device have you selected in XMPlay? Default or other? Also, if you have your output resolution set to 32 bits, does optical playback work if you set it to 24 bits or less?

Nukkels

Quote from: Ian @ un4seenThat's strange, the MIDI plugin should have no influence on the output device. Do you get sound if you output to a WAV file instead? If not, check the MIDI plugin's soundfont config. Perhaps you deleted the old XMPLAY.INI file for a fresh start when the soundcard broke to see if that would get things working?

Yeah, that's what I thought too - it didn't record to wav output either, so I dug a little further and it seems that all of my soundfonts had been removed (I didn't delete or change the ini file) - I re-added the soundfonts and it all worked normally again, but then broke after a reboot, so I think the plugin is working correctly, but my soundcard definitely is not. Thanks again for your help, it did put me on the right track.

Ian @ un4seen

Quote from: Nukkels...so I dug a little further and it seems that all of my soundfonts had been removed (I didn't delete or change the ini file) - I re-added the soundfonts and it all worked normally again, but then broke after a reboot...

That's strange. Does the problem only happen after a reboot, or also when just restarting XMPlay? If the latter, perhaps the XMPLAY.INI file isn't being written. Do you see it in your XMPlay folder, and is it getting updated? If it's there but not getting updated, perhaps it's write-protected?