Improving MIDI on a laptop

So I’ve been out of commission for a few weeks getting my laptop computer set up. Yes, I’m rather sad to say farewell to my desktop. That lovely black box has been through more hard times with me than any of my friends … But apparently I too have to venture into the frightening new technology of processors no longer measured in MHz.

So. Laptops. Chances are unless you own a “gamer” laptop that last for 1 hour on its 26 cell battery and runs at a temperature better measured in Kelvin instead of Fahrenheit, you have onboard sound. The problem with onboard sound always is its MIDI synthesis — it’s fairly awful. Microsoft has been including its GS/Wavetable Synth in Windows versions since ‘98, but really, it’s not much better.

I went to this computer from a Turtle Beach Santa Cruz, which I still maintain and always will maintain beats the s–t out of the Audigy in every area, especially the most important are — not being made by Creative Labs. I miss my Santa Cruz, but I’m not willing to sacrifice a USB slot to get their new USB version of the sound card. I’m also not willing to front their insane cost.

This leaves me with one option — a software synthesizer.

I gave two commercial soft synthesizers a try, Wingroove 0.A5 and Yamaha S-YXG50 4.21. Wingroove I had used back in 1995 like many other people and sadly, I remember it sounding a lot better then. The Santa Cruz really spoiled me :( Yamaha’s software, likewise, only has and only will ever sound good on XG MIDIs. The piano synth with it was just hideous during Sentimental Graffiti 2.

However, there is one other option: Timidity++.

I remembered using this to emulate a MIDI device on Linux back in 1999 and thought maybe there was a Windows port. There is. But if you want to use Timidity to emulate Windows MIDI, you’re in for a VERY rough ride. If you’re brave enough to try it and not afraid to make your computer explode, I’ll explain how I did it.

First off, a bit about Timidity. It’s a software synthesizer that uses Gravis Ultrasound style patches as well as some simple SF2 soundfonts. My favourite sound patches right now are the set from Eawplus GUS patch set and also the FluidR3 Soundfont. Download guspat-20000706-required.tar.gz. You can get the optional one if you want but I didn’t like how it sounds.

Next, we’re going to need a hardware MIDI loop-back. For this we can use MIDI Yoke from MIDI-OX (get it, ox, yoke, har har). Download the one appropriate to your system and save. Extract, right click the .inf file and pick install. Click OK to whatever windows come up.

This will add 8 MIDI devices to your MIDI options in Control Panel->Sound and Audio Devices->Audio->MIDI Default Device. After rebooting, pick “MIDI Yoke NT: 2″ from that menu. I don’t know what the device is called if you’re using the Windows 98 version.

Next, we need to install Timidity itself. However, we want the special Windows Synthesizer version, so go to Twsynth’s project page and download the latest twsynth. As of this update it’s twsynth(Beta) 0.1.12 released on 4-14-2003.

Extract Twsynth to C:\Program Files\Timidity. Next extract the Eawplus GUS set to that folder. You should now have a timidity.cfg file present. Open it in notepad and look for two lines near the top that say:

dir “C:\Program Files\timidity\inst”
dir “C:\Program Files\timidity”

Replace these two with:

dir “C:\Program Files\timidity\inst”
dir “C:\Program Files\timidity”

Then close and save the file.

You’re almost there. Now you need to decide how to run this. If you’re using Windows 98, your only option is to have it pop up in a big, dumb console box that you’ll need to minimize. If you’re using NT/2000/XP you can run it as a system service using FireDaemon (thanks to CEpeep at ZMD for suggesting it). We’ll cover the first option first.

Right click timidity.exe and create a shortcut to it. Right click the shortcut and pick Properties. In the Target option, change it to say:

“C:\Program Files\timidity\timidity.exe” -A 65 -iW 2

Click OK and move it to your Start Menu’s “Start Up” folder. It will run at every boot and you’ll need to minimize it. Not too fun but that’s your only choice …

For NT/2000/XP users, go download and install FireDaemon. It’s a program that lets you turn any executable into a system service. We’re going to make a Windows service for Timidity. Click new and edit the follow fields. If I don’t mention a field then leave it as its default:

Under the Program Tab
Short Name: timidity
Display Name: Timidity++
Description: MIDI processor for MIDI Yoke 2
Executable: C:\Program Files\timidity\timidity.exe
Working Directory: C:\Program Files\timidity
Parameters: -A 65 -iW 2
(you can edit -A to change the volume, this would be 65% of sample volume)

Under the Settings Tab
Show Window: Hidden
Logon Account: (your logon name here)
Password: (your password here, if you have one)
Password Confirm: (see above)
Interact With Desktop: Checked
Start-Up Mode: Automatic

Click OK and your Timidity service will begin! This runs in the background at every startup and will eat about 8 - 9MB RAM. If you use Winamp, you should run it and check the properties for your MIDI plugin to make sure it also says “MIDI Yoke NT: 2.”

That’s about it, just be careful that you don’t try to hook more devices to “MIDI Yoke NT: 2″ or you’ll cause MIDI feedback that is eternally passed between the programs and make your PC lock up.

For anyone who wants to hear the comparison, here are a few files. I caputured these MP3s from playing MIDIs on my machine. Below are both the MP3 and the original MIDI so you can hear the MIDI on your current hardware and decide if the MP3 sounds better:

  • Ultima VI: Stones (GUS) - MP3 MIDI
  • Ys Eternal: Rest in Peace (GUS) - MP3 MIDI
  • Sentimental Graffiti 2: White Story ~Fuyu no Kakera~ (GUS) - MP3 MIDI
  • Legend of Heroes IV: BGM4S06 (GUS) - MP3 MIDI
  • Final Fantasy VII PC: Tifa’s Theme (FluidR3) - MP3 MIDI
  • Fuurai no Shiren: Tabi (FluidR3) - MP3 MIDI

About this entry