Note: This post has not been fully translated yet.
A few weeks ago I started again to concern myself with an issue that I’ve been struggling with every now and then for almost 10 years: How can you improve the sound of MIDI files on the computer with simple means? By “simple” I mean:
- I don’t want to buy a new and expensive sound card – the whole thing should work with my cheap onboard card.
- I don’t want to buy a hardware synthesizer either.
- I don’t want to grapple with complicated programs wich are rather meant for professional use.
Actually quite a precise question. However, for a layman who doesn’t intend to delve much deeper into the subject, but is only looking for a small tutorial or how-to, even the endless vastness of the Internet doesn’t have much to offer. As I worked my way through several MIDI, synthesizer and home recording forums during the past weeks, I came across many posts by people who seemed to have just as little knowledge as me and therefore hopefully approached the expert community with their questions. But somehow I was always more confused after reading the answers than before. For example, the daddy who had bought his children a MIDI karaoke program and wanted to know if there was a way to improve the sound a bit, got the absolutely helpful hint to “attach an additional MIDI board by Yamaha, Terratec, Roland, or Ensonic to the 26-pin wavetable connector on the front panel”. Got that?
I guess that there are many others besides me, who don’t know very much about the matter and to whom even the simplest technical terms are an unknown territory. And so I came up with the idea to write this guide for beginners, because for some reason this seems to be a scarce good on the internet. I will describe two ways to improve the MIDI sound: wavetables and soundfonts.
A wavetable is basically just the MIDI driver that can be set in the sound options in Windows. Ours sounds crappy, so we need a better one. So let’s find out in the options what wavetables are available to us. Most people surely already know this window from desperately clicking around in the hope of better sound … ;) You can reach it via “Start” → “Control Panel” → “Sounds and Audio Devices” (name varies depending on the Windows version).
As seen in the picture, most people will probably find two drivers here, namely the Microsoft wavetable, which comes with Windows by default and is considered the most gruesome of them all, and another one from the manufacturer of your sound card, which is more attuned to the card and usually sounds a little bit better – but nonetheless awful. Therefore we want to install a different driver. But which one? During my research I read the same names over and over again, and in the above-cited expert opinion they were mentioned as well: Yamaha, Roland and Terratec are among the leaders in terms of synthetic sound production. So I simply chose the Yamaha S-YXG50, as it has often been recommended and rated well. Although the development of the S-YXG series has been ceased as far as I know, but that doesn’t make it sound worse, right? However, it is probably the reason that the driver is now relatively hard to find on the Internet, or the links you find are often dead. Therefore, I put an additional copy here on my server.
Download sources (8.42 MB):
After installation and a computer restart, open the sound options again. In the list of MIDI drivers you should now also find the entry “YAMAHA XG SoftSynthesizer”, wich you want to select, of course. Then just press “Ok”, listen to a few MIDIs and enjoy the new sound! Here’s a sample:
|Microsoft GS||Yamaha S-YXG50|
The sound will usually be significantly better now. Some people may already be satisfied with this result – for simpler purposes, the sound of the S-YXG50 is indeed quite alright. However, if you want it even more realistic, you should read on when it comes to sound fonts.
The term “soundfont” actually illustrates quite well what it is: Just like you can choose a font for your text in a text processing program, you can also choose a tone for your music in a sound processing program. And just like you can assign one font to the headlines, another one to continuous text and maybe yet another one to the footnotes of a text, you can also assign a different soundfont to each track of a MIDI song.
Soundfonts can be thought of as many individual wave files, one for each note. They are premade sounds, which may have been recorded from a real instrument or generated artificially. Either way, they are realistic sounds that a MIDI driver would never be able to produce. Using a soundfont-compatible program, you can load a MIDI file, assign a soundfont to it (e.g. a trumpet soundfont), and when a c’ occurs in the melody, it will not be played by the default MIDI driver; instead, our program searches the designated soundfont file for the sound that has been specially recorded for the c’ on real trumpet.
Now you need two things: a program that can handle soundfonts, and of course a soundfont. I have tried several programs, and my two favorites in terms of simplicity and beginner-friendliness are XMPlay and SynthFont.
A first small soundfont for testing is also available on the SynthFont website:
It might be a good idea to create a separate folder for your soundfonts (e.g. “My Documents\soundfonts”), which will hopefully soon be filled with many other soundfonts. For the moment, however, this first one will do. Now let’s have a look at the above-mentioned programs.
XMPlay is actually just a normal audio player (like Winamp, for example). But with the help of the additional MIDI plug-in you can load one or more soundfonts and use them for MIDI playback. The program does not require an installation, but can be simply extracted to a folder (e.g. “C:\Program Files\XMPlay”). After that just unpack the MIDI plug-in into the same folder.
You can now already load a MIDI file in XMPlay (using the small plus sign in the playlist window). However, if you try to play the file, you will hear nothing, not even the horrible Microsoft wavetable sound. This is because XMPlay is actually not a MIDI player, but can be made capable of playing MIDI files with soundfonts by installing the MIDI plug-in. Therefore you need to configure the plugin and tell it which soundfont it should use. Click on the little wrench to get to the options. Then select “Plugins” and double-click on “MIDI” in the right window. Now click “add” and choose your downloaded soundfont SYNTHGMS.SF2. Since this soundfont represents a complete General MIDI bank, the lower window has now filled with the well-known instruments from 000 (Grand Piano) to 127 (Gunshot). Now confirm your choice with “Apply”, close the options window, and click the play button. If all went well, you should now hear something. The sound is not overwhelming, but as I said, SYNTHGMS is really just a small soundfont for testing purposes.
There are also other soundfonts that do not include all 127 instruments, but only one, for example. You can use such a soundfont after assigning a whole sound bank like SYNTHGMS to your song, to replace individual instruments yet again and thus refine the sound of your songs even more. For example, if you don’t like the sound of the saxophone in the James Bond theme, you can just load another soundfont and assign it only to the saxophone, while all other instruments keep their SYNTHGMS sound. So let’s get ourselves a soundfont which, as mentioned above, contains only one instrument. I’ll provide one here that is very suitable for testing, because its futuristic synthetic sound can always be well discerned.
- soundfont “Cool Thing” (Unfortunately I don’t remember where I got this soundfont.)
Now open the same window again in which you loaded your soundfont before, and double-click the instrument that you would like to replace in the the lower white box. In my example that’s number 66, the tenor saxophone. This will open a file browser, in which you should navigate to “Cool_Thing.sf2” and select it. A new entry should appear at the top of the upper white field, which states that channel 66 is now to be played with the soundfont “Cool Thing”. The list is cascading, so to speak: The player will first check in the uppermost soundfont, whether it contains appropriate instruments to play the selected MIDI file. If this is not the case, the program simply goes further down the list, until it encounters a soundfont that contains a suitable instrument. You can easily test this by moving the entry “Cool Thing” to the very bottom: The saxophone will then be played by SYNTHGMS again, because XMPlay sees that it already contains a saxophone sound. So there’s no need for the program to go further down the list and look for other saxophone sounds.
The further procedure is obvious: The lowest entry should preferably be a good, big soundfont that contains all or nearly all instruments. Based on this one, you can then “stack” additional soundfonts to replace individual instruments according to your personal taste, thus refining the sound further and further.
Synthfont ist eigentlich ein Programm, das noch mehr kann als nur MIDI-Dateien mit Soundfonts abzuspielen. Ich werde hier aber nur diesen einen Aspekt erklären – der Rest interessiert uns ja erst mal nicht. ;)
Üblicherweise fragt Synthfont beim Starten, ob man gleich eine Standard-Soundfont zum Abspielen von MIDIs auswählen möchte. Sollte es das nicht tun, so kann man dies auch später jederzeit nachholen, indem man auf den großen “Setup-and-Options”-Button oben links klickt. Im folgenden Fenster klickt man auf den Reiter “Files and Folders”, wo man unter “Default soundfont file” seine Lieblings-Soundfont angeben kann. Nun kann man auf “Open MIDI or Arrangement” klicken und eine MIDI-Datei laden. Sie wird nun logischerweise gleich mit der eben gewählten Soundfont abgespielt.
Auch hier können wir wieder einzelne Instrumente ersetzen. (Im Gegensatz zu XMPlay klappt das bei Synthfont jedoch nicht “im laufenden Betrieb”: die Musikwiedergabe muß hier zuerst gestoppt werden.) Dazu macht man einen Rechtsklick auf den entsprechenden MIDI-Track und klickt dann auf “Assign SoundFont File” (s. Abbildung). Im nun folgenden Fenster wählt man links seine gewünschte Soundfont aus. Rechts kann man, wenn man möchte, noch ganz genau angeben, welches Instrument aus dieser Soundfont benutzt werden soll. Wenn man keins auswählt, wird Synthfont einfach dasjenige nehmen, das dem Instrument in der MIDI-Datei enstpricht. Sollte das Programm in einer Soundfont kein passendes Instrument finden, so wird es uns in einem Dialogfenster darum bitten, daß wir eines auswählen. Man kann das Instrument später noch jederzeit ändern, indem man wieder einen Rechtsklick auf den Track macht und diesmal “Assign Preset” wählt.
Es gibt noch eine weitere erfreuliche Parallele zwischen Soundfonts und Textschriftarten: So, wie Hunderte von Menschen hobbymäßig jeden Tag neue Schriftarten erfinden und sie dann kostenlos im Internet zur Verfügung stellen, so gibt es glücklicherweise auch Leute, die eigene Soundfonts entwickeln und zum kostenlosen Download anbieten. Die folgende Liste beinhaltet einige beliebte/bekannte Soundfonts, mit denen man sich eine gute Basis verschaffen kann. Doch Achtung: Manche Soundfonts (besonders Crisis 3) sind sehr groß und für ältere Computer nicht geeignet. (Die in Klammern stehenden Zahlen geben jeweils die Endgröße der entpackten Soundfont an.)
- Airfont 340 v1.01 (76,7 MB)
- Crisis General MIDI v1.8 (231 MB)
- Crisis General MIDI v3.01 (1,57 GB; current password August 2012: jasmin))
- Equinox Grand Pianos (91,7 MB)
- Fluid R3 GM/GS (66,8 MB)
- RealFont v2.1 (101 MB)
- SGM-180 v1.5 (175 MB)
- Steinway Grand Piano v1.2 (28,9 MB)
- Ultimate Drums (4 MB)
Besonders große Soundfonts werden oft im sfArk-Format komprimiert, das man mit dem gleichnamigen Programm wieder entpacken kann.
Darüber hinaus existiert noch das früher verbreitete Format sfPack von Megota Software. Vor einigen Jahren verschwand jedoch plötzlich die Homepage der Firma, und die Arbeit an dem Programm wurde eingestellt. Dennoch gibt es noch unzählige im sfPack-Format komprimierte Soundfonts im Internet, weshalb ich hier wenigstens “inoffizielle” Downloadquellen angeben will: