XMPlay MIDI plugin

Started by Ian @ un4seen,

Ian @ un4seen

Dunno if it's common, but since drums generally don't have attack/decay envelopes (so that the whole sample plays regardless of note length), I guess they're safe enough to use, and XMPlay should play them :)

arfy

Hi, excellent work on the plugin, just tried it today. However, the one feature I'd like to see is the ability to use not only soundfonts, but also any midi device on the system. I assume this wouldn't be too hard to implement, and it would eliminate having to use the winamp plugin, as it seems to loose controls when used with anything other than direct music synths. Also, if this feature was added, would it be possible to add the ability to send a reset message at the begining of each song, like the winamp plugin does, either gm, gs, or xg?

thanks,
arfy

Tsorovan

#177
Yes, it's quite common, Rich*. Many drum pattern designers (like in Sonar, I'm pretty sure) create 0 length notes by default. I'm guessing you use the piano roll for programming drums?

Drum notes (exceptions being timpani and choked cymbals, that is) don't reeeeeaaally have a proper duration in the MIDI time domain as you claim since in practicality they're all staccato with natural fade-out. Just spacing.

For instance, when is the last time you saw drum sheet music with 16th note rests in a quarter note ostinato?


*: at least in music production, not necessarily in the rather smallish MIDI-format-as-an-end-product scene.

heftig

Quote from: KnurekWhoa, that does sound nice. Any other good, free soundfonts to consider? I'd like to compare at least two. ;)

Crisis GM 3.01 is the best free soundfont I have found yet. It's extremely large (1.57GB uncompressed), but plays fine in XMPlay.

Some oggs I made using Crisis GM and XMPlay (from random .mid files from the net, without editing):
http://consupharm.de/1942.ogg
http://consupharm.de/Crimson_Tide.ogg
http://consupharm.de/Star_Trek_First_Contact.ogg

Sounds really nice IMO.

Originals:
http://consupharm.de/1942.mid
http://consupharm.de/Crimson_Tide.mid
http://consupharm.de/Star_Trek_First_Contact.mid

deus-ex

Quote from: heftigCrisis GM 3.01 is the best free soundfont I have found yet. It's extremely large (1.57GB uncompressed), but plays fine in XMPlay.
Tried Crisis v3.01 myself a while ago. I had high expectations regarding its sheer size, but i was really disappointed. It has a lot of poor sounding samples which made me laugh when comparing the huge size to the fonts i'm using.

I tried all different fonts recommended by several users (Crisis, Chorium, Air340, Fluid etc.), i finally ended with using SGM-180 v1.5 (~180MB), acompanied by the Equinox Grand Pianos (~96MB) from the SGM-180 maintainer as well. Though the samples of the SGM-180 v1.5 are not as clear and crisp as i whished them to be (and there are some lower quality samples included as well, like you find in every soundfont), the overall harmony throughout the instrument set is very well done.

For the drums i added one additional font Ultimate Drums (~4MB) since the SGM-180 drum-sets aren't really that good.

Finally i appended the 8MB and 4MB soundfonts of my XiFi soundcard to the soundfontlist as these interestingly hold several instruments which are not to be found in the big soundfonts (as reported by XMPlay). Everyone should try this to see if it ~fixes~ some of the missing instruments for you as well.

NOTE: XiFi-setup only installs the 2MB and 4MB soundfonts into the System32 folder, the 8MB soundfont can be found on the Setup CD. I don't know why Creative left it out. This hint may apply for Audigy users as well.

Grindill

deus_ex, I really like your recommendations in regards to sound banks, but I'm having a trouble locating "Ultimate Drums." If it's not too much trouble, could you possibly provide a link?

So far, the quality is great with SGM and Equinox Grand Pianos. Thanks for pointing these out. :D

deus-ex

@Grindill
Here's the downloadlink for the Ultimate Drums soundfont. Make sure you load it before the SGM-180 soundfont and your set.

Grindill

Thanks, deus-ex. Do I need to have all the fonts in any particular order? Currently, I have the SGM font last. I'm guessing I need to have the piano font first, the drums second and the SGM last.

deus-ex

That's exactly how i did it, plus the 8MB and 4MB soundfount provided with my soundcard put in Slot 4 and 5 (as explained in my previous post).

Knurek

Quote from: deus-exThat's exactly how i did it, plus the 8MB and 4MB soundfount provided with my soundcard put in Slot 4 and 5 (as explained in my previous post).

Any other good replacements? The guitars in SGM180 seem to sound a bit weak, that that's generally the case with sampled guitars...

deus-ex

@Knurek
Coincidence. :)
I'm currently looking for good Guitar soundfonts, as well as for Strings, Brass and several Trumpet/Horn instruments. I'll let you guys know if i found anything worth.

Ian @ un4seen

Quote from: GrindillSo far, the quality is great with ... Equinox Grand Pianos.

Yep, that is some very nice pianos :)

Btw, regarding the sound quality, some presets might not currently sound exactly as intended, as the plugin doesn't include filter support. That's coming in the next release (along with other improvements), so things should sound even better then.

deus-ex

BTW. Ian,
i never mentioned it. I have several MIDI's in my collection which use a different Channel for the Drums instead the standard Channel 10. I know of only one application supporting these, it's the Open Cubic Player, which allows setting a "Type" flag to mark those as there seems no other propper way to detect them than by ear. :)

I wonder if you could add support for such an feature as well, maybe via a toggle in the rightclick menu. So if you encounter a MIDI file which sounds quite wrong it's very likely that it uses a different Channel for the drums, you could simply rightclick the file in the playlist to toggle that option which tells XMPlay to handle Channel 10 as a normal instrument channel.

A very prominent example of these mentioned MIDI's is the file CANYON.MID which was distributed with Win95. Of course i can upload all my examples if you're interested.

arfy

hi, also this situation with drums beeing used on channels other than 10 is common in gs and xg midi files. However, they can be easily supported by support of sysex messages. In gs, a sysex tells the device which channel is used as a second drum part, and it can even have several channels mapped to either drum map of gs. In xg, however, a bank number of 127 (that's cc0) is used, which is often supported by soundfonts, so that's easily solved.
btw, looking forward to having soundfont filter support :)


raina

Btw, thanks for the soundfont tips deus-ex. I've been jamming with the Equinox pianos the whole evening. :)

Ian @ un4seen

Quote from: arfyhi, also this situation with drums beeing used on channels other than 10 is common in gs and xg midi files. However, they can be easily supported by support of sysex messages. In gs, a sysex tells the device which channel is used as a second drum part, and it can even have several channels mapped to either drum map of gs. In xg, however, a bank number of 127 (that's cc0) is used, which is often supported by soundfonts, so that's easily solved.

The plugin supports the GS sysex (the "Cowboy Bebop" example that comes the with Chorium soundfont uses it). I'm not sure I've seen the XG method used though. Do you have any examples? If so, please upload them here...

   ftp.un4seen.com/incoming/

Quote from: deus-exi never mentioned it. I have several MIDI's in my collection which use a different Channel for the Drums instead the standard Channel 10. I know of only one application supporting these, it's the Open Cubic Player, which allows setting a "Type" flag to mark those as there seems no other propper way to detect them than by ear. :)

I wonder if you could add support for such an feature as well, maybe via a toggle in the rightclick menu. So if you encounter a MIDI file which sounds quite wrong it's very likely that it uses a different Channel for the drums, you could simply rightclick the file in the playlist to toggle that option which tells XMPlay to handle Channel 10 as a normal instrument channel.

A very prominent example of these mentioned MIDI's is the file CANYON.MID which was distributed with Win95. Of course i can upload all my examples if you're interested.

Unfortunately, that CANYON file doesn't include any sysex/etc to specify drum channels, so I don't think there's much that can be done about it. It's just a dodgy file :)

deus-ex

Quote from: Ian @ un4seenUnfortunately, that CANYON file doesn't include any sysex/etc to specify drum channels, so I don't think there's much that can be done about it. It's just a dodgy file :)
And I didn't state Canyon.mid would include any such commands. That's why such files only can be detected by ear. That wasn't just a funny saying. :)
As i said, i have several such MIDI files. I looked through OCP's documentation and found following explanation for the optional setting of the file type:

If you want to play midi files with a second drum track on channel 16 use the MIDd option. Any other file should be autodetected correctly

MIDd = standard midi file, channel 16 is a second drum track


So, as opposed to my previous post, it's a feature for MIDI's with a second drum channel located on Channel 16. Sorry for my inaccuratenes. As OCP's developers are stating those cannot be (reliably) detected, hence the user has to select the appropiate filetype himself. With this setting OCP plays all those MIDI's right.

I have uploaded my collection as a RAR-archive (deus-ex - MIDI files with a second drum-channel.rar, 22 files) to your server. As i didn't got any listing to see wether the file was received i retried uploading with a ZIP-archive, same result. So hopefully you got the files now.


Zarggg

@deus-ex, et al:

Just to make sure I have this understood correctly, is this the proper way to configure the plugin, as per your suggestions?

deus-ex

@Zarggg
Exactly. :) It seems you don't have Creative's 8MB soundfont installed, though. Don't you have it?

Ian @ un4seen

Quote from: deus-exSo, as opposed to my previous post, it's a feature for MIDI's with a second drum channel located on Channel 16. Sorry for my inaccuratenes. As OCP's developers are stating those cannot be (reliably) detected, hence the user has to select the appropiate filetype himself. With this setting OCP plays all those MIDI's right.

I have uploaded my collection as a RAR-archive (deus-ex - MIDI files with a second drum-channel.rar, 22 files) to your server.

Do you mean identify the files by modifying the signature to "MIDd"? That doesn't sound very graceful, but I have another idea... if channel 16's track name includes "drum", assume it's a drum channel. That works for 19 of your 22 files :)

I'll add the "auto-detect channel 16 drums" option for the next release.

deus-ex

Quote from: Ian @ un4seenDo you mean identify the files by modifying the signature to "MIDd"?
Naaaah!!! ;D

That MIDd example was to show how OCP handles it internally. OCP has an built-in filebrowser which in addition allows you to add further information (author, style, release-date, filetype etc.) and to store all this into a playlist which enables for very fast loading of files/directories, because files available in such playlists doesn't get rescanned (unless you tell it to do).

Here's an example of my Open Cubic Player playlist for MIDI files, Genre "Rock and Pop", hence the filename.

POP.MDZ:
MODINFO1

MODULE LASTDAYS.MID
SIZE 22978
  TYPE MID
  TITLE Last Days of Summer (Piano edition)
  CHANNELS 16
  COMMENT MOVIE: Last Days of Summer

MODULE LASTDAY_.MID
SIZE 14338
  TYPE MIDd
  TITLE Last Days of Summer
  CHANNELS 16
  COMMENT MOVIE: Last Days of Summer


First file in the example is a common MIDI file (TYPE MID), the second uses an additional drum track at Channel 16 (TYPE MIDd).

I'm not thinking about modifying the header of the MIDI file itself (no way, sir), but a simple per-file-toggle which allows the user to notify XMP of such MIDI files thus handling those with the flag set as MIDI's with a second drum track. And eventually this flag could be saved within XMP's per-track-settings/playlists as well.

So in addition to your solution (which of course rox :P ) you may want to add the option to let the user decide when and when not to use the "Channel 16 = drum track" logic, because as you said, it doesn't detect all files, and on the other hand autodetection might trigger false positives.

Zarggg

Quote from: deus-exExactly. :) It seems you don't have Creative's 8MB soundfont installed, though. Don't you have it?
No, I do not have it. My system came with the Audigy2 pre-installed, with no install CDs (damn Gateway and their "recovery partitions").

deus-ex

#197
Quote from: ZargggNo, I do not have it.
Hang in there, Zarggg.

Have no fear, deus-ex is here (a saying at Remedy Entertainment).
I rapidly share the file with you. ;)

Grindill

deus-ex, know of any good trumpet sound banks? :-\