Tag Archives: Winamp

How to Make MIDI Files Sound Better in Windows 7

Note (December 29, 2021): For those with Windows 10, please see Improving MIDI Playback in Windows 10 and Firefox.

For those that might remember, my old computer system had a melt-down of sorts and I had to get a new one. This new system has Windows 7 Pro/SP1 64-bit and has a Realtek ALC892 Audio chipset in it. Regular MP3s and other digital music formats sound fine on it but MIDI files sounded like crap for the most part compared to my old system. I do still have the Sound Blaster X-Fi Elite Pro that was in my old system; however, I just never felt like going through the effort of trying to get it to work in this system due to its age and probably limited support in Windows 7 64-bit. Anyway, I knew the problem wasn’t so much the audio chipset (well, yes, it does have an impact) but the lack luster MIDI instrument samples that ship with Windows 7 which the included “Microsoft GS Wavetable Synth” uses. I also looked at the Sound Control Panel Applet and noticed that there was no option to set a default MIDI playback device like Windows XP had (which I still find rather odd.)

So, I went searching on the internet and found an article aptly titled: How to Make Midi Files Sound Better on Windows, which led me to CoolSoft’s VirtualMIDISynth. So I thought I would try it out and, what do you know, it works great! I was even able to load the SoundFont that my Sound Blaster X-Fi Elite Pro was using.

Anyway, since my website uses Windows Media Player to play its MIDI files with, I did need to use this software to change MIDI Mapper’s Default MIDI Out Device from Microsoft GS Wavetable Synth to CoolSoft VirtualMIDISynth:

MIDI Mapper Tab

Then, I loaded up the Soundfont my old card was using in the Soundfonts tab:

Soundfonts Tab

While it doesn’t sound exactly like it did before (due to the differences in audio hardware and drivers), it is now much closer because it is using better base sound samples to work with. MIDI files can sound much different simply by changing the Soundfonts used. I tried a few of the ones linked to at those sites and some of them aren’t too bad. Short of getting a new sound card that puts more emphasis on how MIDI sounds, this is a good compromise, and it’s free! LOL πŸ™‚

Oh, for those using Firefox, the amount of memory that the associated plugin-container.exe process uses while playing a MIDI file will roughly match the size of the Soundfont(s) selected as it has to load them into memory. So, a 256MB Soundfont will cause it to use that much memory.

For those like me that also use Winamp, since the default device has now been changed for all of Windows, it will start playing MIDI files using the improved instrument sounds as well. However, you can directly change the MIDI playback device by going into Winamp’s Preferences -> Plug-ins -> Input -> Nullsoft MIDI Player -> Devices Tab and select the second midiOut / Microsoft MIDI Mapper choice (this is the one that came with Winamp v5.63):

Winamp MIDI Device Setting

Note: If you change the default MIDI Mapper device back to Microsoft GS Wavetable Synth in the VirtualMIDISynth Configurator then Winamp will show two entries for midiOut / Microsoft GS Wavetable. In this scenario, pick the second one. Why it doesn’t list VirtualMIDISynth specifically I do not know. I may send feedback to Coolsoft and/or Winamp about it.

Just for the heck of it, I swapped out Winamp’s current MIDI plug-in with a really old one that supported auto-loading Soundfonts. Its device listing is somewhat different and lists VirtualMIDISynth by name:

Winamp MIDI v2.63b Device Setting

I tried the auto-load Soundfont option that this plug-in has for MIDI files that use a specific Soundfont; however, it didn’t work. Pretty sure that option only works with Sound Blasters (this did work in my old system).

Anyway, I’m still playing with different Soundfonts to get the best sound. Now I need to install a virtual MIDI keyboard so I can play specific instruments. Hope this information helps someone out there. πŸ™‚

Configured Winamp v5.57 and website to use new Now Playing plug-in.

After upgrading Winamp to its latest version (5.57), the Now Playing v2.1.2 plug-in I was using would cause Winamp to crash every time I closed Winamp which caused none of its settings to be saved. After some googling around I came across Brandon Fuller’s Now Playing: A Winamp Plugin (site gone) which seemed to do what I needed. It would allow me to FTP a XML file containing information about the last X number of songs I played and would also let me send a HTTP post request to run a PHP script with the current song’s information contained within the $_POST variable. It calls this HTTP request a “ping”.

When this “ping” is sent, my PHP script parses the newly uploaded XML file to create the now playing images and song history (as seen on my Entertainment page), as well as a prepared Twitter message in a separate file should I choose to send a tweet out.

You can also send Twitter and Facebook updates using this plug-in. I’ve only tested it with Twitter and it seems to work; however, I use a separate PHP script to manually Tweet the song I’m currently listening to so I don’t fill my Twitter stream with song spam.

This plug-in does lack a couple things that the older one would do:

  1. Send an album cover image along with the rest of the song’s information in a $_POST variable such as a folder.jpg located in the same directory as the song; however, it will send a link to an Amazon album image if the information matches (sometimes it doesn’t match correctly or just can’t find one). I am working on a mechanism to get around some of these pitfalls by uploading album images and having my script check for the existence of the local album image first.
  2. Work with Shoutcast streams to extract out song information.

Even so, I will continue to use this plug-in for its compatibility and continuing support by the developer. It also seems to be a bit more reliable and stable than what I was using. Yes, I did purchase a license key. πŸ™‚

Winamp’s Now Playing Plug-In, URL Streams, and Classic vs Modern Skins

Well, this is going to be one of those posts with a very narrow target audience and will undoubtedly make no sense and confuse others. πŸ™‚

(Update 12/21/2009: With the release of Winamp 5.57, the Now Playing Plug-In version 2.1.2 I discuss below started to cause Winamp to crash. I found a new plug-in and discuss it here.)

I use Winamp to play my music with: MP3s, MIDI, MOD files, Internet Radio and so on. I also use the Winamp Now Playing Plug-In version 2.1.2 which interfaces with a PHP script on my website to create now-playing images, and a list of the past 10 songs I have listened to. The plug-in is rather old and it’s amazing it even still works with the current version of Winamp. It does seem to exhibit one rather odd and maddening behavior that has taken a while to track down.

The behavior manifests itself when playing a URL playlist stream (which are typically from Shoutcast) such as this one from Club 977 Music: http://www.club977.com/CLUB977HI.pls. When it first starts playing, the Now Playing Plug-in will always see the first song that is played and update the images and lists accordingly; however, it would not always recognize changes in the song title when a new song started playing. This was, of course, annoying. Over time I seemed to notice a pattern and today I tested it out and here are my findings:

  1. If I start Winamp with a classic skin such as Bento Classified or the standard classic skin that comes with Winamp, the plug-in will recognize song title changes as the stream plays. If I then switch to a different classic or modern skin while Winamp is running, it will continue to work.
  2. If I start Winamp with a modern skin (Winamp Modern, Bento, etc.), the plug-in will NOT recognize song title changes as the stream plays, even if I change to a classic skin.

So, the key is to always close Winamp with a classic skin loaded so that it will start with that skin and the Now Playing Plug-in will work. The work-around is simple enough but figuring out what was going on was a bit maddening. If you use this plug-in then, hopefully, you’ll find this useful.

Since Winamp does not provide tech support for 3rd-party plug-ins, I’m not going to bother to find out exactly why it acts this way. At least I now know how to keep it working. πŸ™‚

My continuing experiences and thoughts concerning Twitter, Twitpic, and Audiotwit.

After a few more days of using Twitter, I decided to try Twitpic and Audiotwit that I had noticed others using.


This just seems to be a basic service for storing and commenting on images that sends out a tweet when you add a new photograph or comment on one. It has no provisions for creating albums or anything like that. Since I have my own photo gallery, I have no real need to use this as a place to store images. Same reason I don’t store images at my MySpace page or using something like Flickr. I will admit that the main page that shows where new images are coming from is kind of cool. I did upload one picture and here’s my twitpic page.


To use this relatively new service, it appears, you send a reply tweet to @listensto with the artist and song title of what you are listening to.Β  An example tweet would be “@listensto Metallica – One“. Then, it creates an Audiotwit page for you at (username).audiotwit.com.Β  In my case this was mrheadrick.audiotwit.com. It then adds a Lyrics link next to the song to look-up the song’s lyrics.

Winamp Now PlayingSince I was using the Winamp Now Playing Plug-In version 2.1.2 together with a PHP script I wrote to generate now-playing images and a song history on my entertainment page, I wondered if there was a Winamp Twitter plug-in and there was one to my amazement. While it did work, it had problems dealing with some characters, such as “&” where it would just chop-off everything after the “&”.Β  The RSS feed of the audiotwit page is also a bit buggy.Β  “&” causes problems with the feed and the feed itself does not validate with Feedvalidator.org.Β  During all this testing, I decided I better create another twitter account just for this purpose and keep all the “now listening to” spam out of my main twitter account.Β  (Update 8/11/2010: @mrheadrick_np was the account I made at the time; however, it got flagged to not show in searches and hasn’t been used in months and has been deleted. The audiotwit page at mrheadrick_np.audiotwit.com still exists for the time being.)

During this time I had also discovered that many others used the phrase “listening to” to announce what they were listening to. There’s even a search link at the Twitter search results page for this phrase. At this point I decided to stop using the Winamp Twitter plug-in which was a bit limiting and use my Winamp PHP script to send a tweet via the Twitter API using both “@listensto” and “listening to” methods.Β  After some searching around, I used the improved script by Scott Sloan I found here and adapted it to my own needs.

So now, mrheadrick_np.audiotwit.com and this “listening to” search will show what I am playing. The feed you see in my blog is the feed that the “listening to” search produces, which does not have problems with “&” and other characters being in the artist and song titles.


I also added a Twitter widget to my main website. I used the HTML version and modified the CSS to create the appearance I wanted.

Having done all this, does anyone else really care what I’m doing or have been up to or what the most recent songs I’ve listened to are? Beyond family and close friends (most of which do not use Twitter), there might be a few, such as those from Surmunity, but I suspect most could care less. Several of the people that are following me on Twitter I think are doing so more to increase their own page ranks and points of entry for the various search bots to find their websites and content than to really follow what I am doing or saying. Some strangers that follow me, especially those with goobldygook usernames, are clearly doing so for spamming purposes. These I block when I come across them and many of these type of accounts are usually suspended by Twitter. Even so, I still think Twitter is kind of cool. πŸ™‚