How to configure a SoundFont in Windows 7

As you may already know, the MIDI sound file format does not contain any sounds per se. Instead, it is something like a score sheet that tells your operating system which sounds to play at certain times and for how long. Said sounds are stored on your own hard drive or synthesized in real time by the OS itself.

Long story short, the default sound synthesizers on Windows 7 (and probably earlier versions) suck. The only instrument that sound more or less natural is a piano, whereas the guitars, much less distorted or overdriven ones, sound awful. Those who don’t have to work with MIDIs often may be fine with just that, but if you would like to compose music on your PC, you definitely need a decent SoundFont.

As usual, there exists a perfectly legal and cost-free solution, but you’ll have to put in some effort. Please read through the entire instructions first. What you’ll need:

  • An actual SoundFont with good sounds. I recommend SGM-V2.01 because it’s free and of very high quality.
  • The TiMidity++ driver for Windows, or better yet, its installer (here, ignore the moonspeak, it’s still in English).
  • On Windows Vista/7 only: The Vista Midi Picker (kudos to Alkel U3 for finding it).

What you do:

  1. Install TiMidity. It’s pretty straightforward, you can do it. Important: Launch the installer with admin privileges, otherwise the driver won’t get installed properly!
  2. Unpack the SGM archive. Actually, we only need one file: “SGM-V2.01.sf2″.
  3. Move the “SGM-V2.01.sf2″ to “C:\Program Files (x86)\timidity\musix” (or wherever you have installed TiMidity).
  4. Edit the configuration file. Actually, TiMidity keeps two config files, but you can edit both, just to be sure (note that both are write-protected by default): “C:\Windows\timidity.cfg” and “C:\Program Files (x86)\timidity\musix\timidity.cfg”. The files should contain following lines:
    dir "C:\Program Files (x86)\timidity\Musix"
    
    soundfont "SGM-V2.01.sf2" amp=200%

    If you want to know what that means, the driver installation also contain the documentation, go read it.

  5. Reboot your PC.
  6. If you are using XP or earlier Windows, simply go to “Control Panel -> Sounds and Audio Devices -> Audio” and select TiMidity++ from the drop down menu under “MIDI music playback”. That’s it, you are done.
  7. Under Win7/Vista, you’ll have to use the Vista Midi Picker (just unpack it anywhere and start it) to change the MIDI Output Device to “TiMidity++ Driver”. Alternatively, you can edit the registry directly:
    1. Start regedit.exe and navigate to the key “HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum\{4EFE2452-168A-11D1-BC76-00C04FB9453B}”. There should be a subkey named “Timidity++ Driver” hanging under it. Open it and copy the value of the property “MidiOutId”.
    2. The same key above should also have a subkey called “Default MidiOut Device”. Open it and set the value of its property “MidiOutId” (default: 0xffffffff) to the same number as in the “Timidity++ Driver” subkey.
    3. Open key “HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum 64-bit\{4EFE2452-168A-11D1-BC76-00C04FB9453B}\Default MidiOut Device” and set the value of the property “MidiOutId” to same number.
  8. Reboot your PC. It must be working now.

To test your installation, try playing a MIDI that contains instruments other than piano (like guitars). Have fun.

PS: If the Vista Midi Picker doesn’t work for you, you can try Putzlowitsch’s Vista MIDI Mapper (thanks to Joe for pointing me to it; I haven’t tried it out yet, however, so I make no guarantees!).

PPS: Actually, it seems that you don’t have to do all of the above anymore: an utility called VirtualMIDISynth by CoolSoft seems to do it all automatically and I haven’t spotted any serious problems with it yet. You still need to download the SGM sound font and manually plug it into the driver’s configuration, but you can do it. Enjoy. ;)

This entry was posted in midi. Bookmark the permalink.

39 Responses to How to configure a SoundFont in Windows 7

  1. Pingback: How to configure Macaw in the “noob mode” | Fortress of Solitude

  2. LiquidStupid says:

    Brilliant up to a point … what to you mean by “index corresponding to Timidity”? Being less than a regedit pro I can’t intuit the answer. This looks really good, all apart from that.

    I’m running Win7 x64, btw.

    Thanks. ^^

    • Koveras says:

      Heh, you are the first commenter on this blog. Have a cookie. ^^

      About your question: When you execute “mixer /listmidi” in DOSBox, you get a list of all you sound drivers. Each item in the list contains a number and a name of a driver. The number in the beginning is the index you must copy to the registry value in step 8. Let me know if that helped. :-)

  3. Mark says:

    Windows 7, 64 bit, after I installed Timidity++ Driver, it will play a MIDI file using the nice sound fonts, but there is no “Timidity++ Driver” shown in DOSBox. The Timidity++ Driver is not an entry in any of the MIDI devices in the registry. Any ideas?

    • Koveras says:

      That happens to me, too. The driver is somewhat old and Win7 doesn’t like it anymore, so it disappears from the list every now and then. You should try reinstalling the package (just the package, not the other steps on the list; also, when you reinstall, don’t reinstall “Musix” module, because that will overwrite your customized timidity.cfg) and see if the driver appears in DOSBox.

      I haven’t been able to figure out why the driver disappears but it usually happens after Windows updates. On other times, however, it runs like a charm for months at a time. It’s weird.

  4. Alkel U3 says:

    This guide is great, exactly what I needed, thanks!

    But I have a problem. The only program that really uses the Timidity on my computer that I’ve found so far is Windows Media Player 11. All the others I’ve tried (midi player in Opera, Media Player Classic – HC, Age of Empires, DOSBox, Anvil Studio 2011, OpenTTD 32 and 64bit) just keep outputting to the default MS synth. Since it works with the WMP and I can also select it as an output in Synthfont I’m pretty sure it is properly installed.

    Any idea what could be wrong or what should I do? Could it have something to do with the particular system version (Win 7 HP 64bit)?

    Thanks in advance.

    Oh, and I’ve found a utility (no installation required) which apparently does the registry thing from steps 7 and 8: Vista Midi Picker

    • Koveras says:

      I have never experienced this problem on my PC myself, so I cannot really tell you what’s wrong there. :( All my applications (WMP, Macaw, TuxGuitar, and GuitarPro) automatically use the Timidity driver and if not, I can usually configure it in the respective application preferences.

      Did you use this Vista Midi Picker program or the direct regedit method to change your default MIDI driver? It may be that the VMP isn’t fully compatible with your Win7 version, so it only sets the WMP preference rather than the global system one…

      If you find a solution, please let me know.

      • Alkel U3 says:

        I followed this guide step-by-step, changing the registry manually, than I noticed the problem and googled a little bit for help and after that I played with the VMP (not that it helped anything, it only showed me that I already have the Timidity++ Driver selected)

        This happens to me all the time. Similarly my installation of Opera can’t work with WOFF fonts even though according to the version it should and nothing helped, not even googling, reinstalling, threatening and not even cursing. I guess I simply can’t have nice things. (I’m really considering reinstalling the system right now)

        • Koveras says:

          Ouch. If even cursing doesn’t help, then I am out of ideas. :D Seriously, though, I am beginning to suspect that your problem has to do with your OS, too. I heard reports that Win7 can be (mis)configured to be very restrictive about drivers (and fonts) that don’t come directly from Microsoft… So yeah, if you are having other troubles in addition to midis not playing right, a system reinstall may help a lot.

  5. bforsun says:

    BIG thanks!!
    Good work for me.

  6. Dean says:

    Hi, Koveras.
    Thank you for this great guide, it’s quite possibly the best all-in-one guide i’ve found on the web so far. ( and believe me i have searched ALOT for a few days!). Well anyway after install/reboot etc I seem to be having a problem with the vista midi app, it only detects the Microsoft GS Waveable Synth. DOSbox detects both! Any ideas? Or is there any other Win7 64 apps to change the default Midi output?

    • Koveras says:

      Hi, thank you for your praise. It made my day. ^^

      As for the Vista Midi Picker, I must admit that I still haven’t tried it out. I do know, however, that Timidity was never meant to work on 64bit systems (but it does), so maybe newer Midi apps won’t recognize it. For practical suggestions, have you tried instead to edit the registry key specified in step 8? The reason I never tried Vista Midi Picker is because the good old registry hack still works best for me. :)

  7. Arala Cran says:

    Ano… hope you can help a cat in need here. I’ve got it only to work with the program itself and instead the default system keeps reverting to the regular one in Windows Media Player which is actually missing a few effects. I’ve not only used the soundfont pack found here, but also another one which seems to fit the gaps in quite nicely, but I’ve been lost at the part dealing with DosBox on two computers here: one is Windows-7, and the other is Win-Vista.

    I clicked the registry edit file which was in the zipped file and it said it changed something so I restarted the computer but nothing happened different except with the TiMidity program able to use over four soundfonts at once.

    How do I override the old one with this? I tried that new program noticed but it says “unknown device” and won’t select anything else.Also I’m lost with the “HKEY” part…. where do I find that? o.O’

    (forgive me, I’m not that advanced with THOSE kinds of system files)

    • Koveras says:

      Which registry file do you mean? In which zip file was it? I don’t recall anything of the like…

      How are you lost on the DOSBox? Have you installed it on both your PCs? Actually, I have just found that you don’t really need DOSBox to find the Timidity ID… I will rewrite the guide.

      You can edit your registry data by opening the regedit.exe program. You can open it by typing “regedit.exe” in the search field of the Start Menu (bottom left) in Win7. From there, you should be able to navigate down to the required key.

      If the new program doesn’t let you select anything but “(unknown device)”, it means that it cannot find any MIDI drivers on your PC. That, in turn, may mean that Timidity didn’t install properly/completely. Are you sure you have run the installer with an admin account?

  8. Xeotroid says:

    Hi, I have a problem, I normally install Timidity and reboot the computer, in register isn’t Timidity. In Vista Midi Picker is just MS WaveTable and “(Unknown Device)”.
    Thanks

    • Koveras says:

      It sounds like the driver is not installed properly for you. Do you run the Timidity installation in the Admin mode? Hold Shift, then right-click on the Timidity install EXE. From the context menu that pops up, select “Run as administrator” (it should have a yellow-blue shield icon next to it). That should install the driver properly.

  9. kikililou says:

    Hi,
    I follow the steps. I have installed timidity with Admin mode but it doesn’t appear in the regedit. Only the original wave table and my external soundcard (wich doesn’t have any wave table, only midi ouputs).
    I tried with midi picker but it doesn’t work, I got the same default midi devices in the list.
    I’m under Windows 7.
    What’s about?
    Thank you

    • Koveras says:

      That’s very strange, I have never encountered such behavior before. I did encounter a problem where the key HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum\{4EFE2452-168A-11D1-BC76-00C04FB9453B} did not exist, so I had to import it from another machine. Is it present on your computer?

      Also, I have exported my Timidity driver regkey and uploaded it for you here. Try importing it and see if it works. I don’t guarantee that it is gonna work, but it’s worth trying.

  10. Tom23 says:

    VIRUS !!! Fuck you ashole !

    • Koveras says:

      Could you specify the exact location of the supposed malware? I have given several links in the blog entry itself plus a couple in the comments. Also, please try to avoid coarse language, even when your emotional state renders it subjectively justified.

      • gu75 says:

        You had to give a better deserving answer to that Tom23 Ashole! Once their v┼črus program neglects something they think everything is virus and they are unable to control their fucking mouths..

        • Koveras says:

          Thank you for supporting me on this. ^^ But I personally prefer to counter rudeness with politeness–just to avoid sinking to the same level as Tom23. :)

  11. Gerti says:

    Great, great!!!!

    Everything is working fine for me!!! Midi file in wmp works like a charm, even

    Koveras, maybe you can help me with something else! In Sibelius 7, when I open a midi, it shows me only the Microsoft GS Wavetable Synth and the sound is the old one, not the soundfount I have installed! Now, how can I change that? Is there a way>>> Thank you

    • Koveras says:

      Hey, sorry for late reply, didn’t see your comment. :(

      I am not entirely sure why Sibelius 7 won’t recognize the driver… I can only recommend trying to reinstall it, and if that doesn’t work, ask the Sibelius support whether their software supports this particular driver.

  12. gu75 says:

    Nope, win7 64 and did not worked for me as well to Timidity in registry or in vista midi picker. Rus both in administrator mode did 3 times everything as told can not see the driver although installed correcty. There must be a better method for win7 64′s this method does not work unfortunately :(

    • Koveras says:

      I also have a 64-bit Win7 and it works… occasionally. It may have something to do with recent Windows updates, since it’s definitely harder to get Timidity driver to work properly now than at the time I wrote the guide above… :(

  13. Ally says:

    I wanted to ask a couple questions before I try your suggestion.

    I have a SoundBlaster X-Fi Xtreme Audio card, and my OS is Windows 7 Professional. Are there settings in Windows 7 Profession that prevent soundfonts from working? I have Cakewalk Home Studio 9.0, and the options for soundfonts is greyed out. Did I miss some kind of initialization step?

    • Koveras says:

      I don’t really know, I have never worked with Cakewalk Home Studio. As far as I know, sound fonts are a pretty universal thing, which should work with any OS and sound driver, provided you have the right software to play them. If you can import sound fonts directly into your software, I strongly recommend to figure out why it wouldn’t let you (have you tried contacting the tech support?) and use that instead, since Timidity is not a very reliable option, as numerous comments above point out. But it’s unreliable on any system, regardless of the sound card. :)

  14. Joe says:

    Thanks for this useful article!! Just want to say like Vista Midi Picker there is also very useful Vista MIDI Mapper Control Panel.

  15. Raffael says:

    I went through the comments and the only thing I havn’t do is reboot the computer..
    My Windows Media Player doesn’t play the MiDi files anymore, why?

    • Koveras says:

      I am assuming it’s because, if you followed the instructions, you have switched the MIDI driver to Timidity but the driver cannot work until you’ve rebooted your PC. :)

  16. lavino says:

    I tried this with a Win7 bootcamp running VMWare under a Mac. I edit the .sf2 file in the .cfg but when I tested the midi output I didn’t notice any difference. Sf2 file is right. I was using that other midi selection panel that runs in control panel. Even I selected Timidity++ there is no difference =( I dunno what I did wrong as I double checked everything.

    • Koveras says:

      I am not sure about how well this method works under VMware, so maybe that’s the reason. But to be honest, I have had trouble getting Timidity to work on my Win7 lately, too. :(

    • lavino says:

      oh Finally got it to work. The edit cfg panel doesn’t work I read off a wrong cfg file so I was not actually changing the cfg. So I ended up triple check the cfg file I modified. After that , works like a charm.

      Got a different question. Is it possible to load a 2nd or 3rd etc sound font into diff MIDI channel other than channel 1?

      • Koveras says:

        Oh, I see. :D Yeah, that thing with two config files for Timidity really confused me, too, as I now recall. Thanks for the heads up!

        About additional sound fonts, I am not really sure how that works. I’ve never tried installing more than one, so I’m afraid you’d have to find someone who knows more about sound fonts than me. :(

Comments are closed.