How to get Windows XP's Midi to sound like an FM Synth with any soundcard:

Programs - GM SF2 - Part GM SF2 - SF2 Players - DLS - Softsynths - Stuff - MID Players - Links
Hey all, I'm glad to see my effort is being appreciated. Another update with some new great content is forthcoming. Please continue to leech and whenever possible mirror the content. Also please be advised that the content that is unavailable off of other servers is coming from my personal computers FTP server. It is slow because I have other FTP accounts, gaming consoles and other family members' torrents running off the same modem. I have lifted the restrictions on the FTP server after multiple complaints. Please restrict your downloads to 4 or less concurrent connections (I'm talking to you NASA Gov't account that lagged my game, crashed my router and gave up after one download completed!) to lessen the stress on my old, old computer. If the hammering continues I'll have to restrict the bandwidth and connections once again. Thx - Anapan. I've created official forum topics for all this stuff on Soundshock. If you have any questions, comments, suggestions or additions stop on by. Official FM chip Emulation topic Official Synth chip emulation topic My goal when researching this was to make it so any games or MIDI files I played in windows sound like I remember them sounding on my old 486's SoundBlaster Pro 2.0. What would be ideal would be an emulation engine in a driver package or VST that allowed OPL .BNK instrument maps to be loaded in like soundfonts - sorta like the MUNT project. Unfortunately that is slightly beyond my capabilities right now so here's some partial solutions and a whole bunch of other chiptune-sounding midi stuff I've found: My sound card doesn't have soundfont support, but I found a VST plugin called SFZ that allows any VST host program to pass MIDI data through to it. This is the fastest VST soundfont player I could find. Another alternative which is also available as a VST plugin is Synthfont The next piece of software necessary is a VST host. Steinberg invented the VST plugin format for their Cubase program, but many other VST hosts are available now - for example FLStudio and Soundforge. For what I'm using these plugins for I found a program called SAVIHost created by Herman Seib that can be renamed to the name of a VST dll making it into a standalone program - a virtual midi device able to be started with a single double-click and without all the overhead that bigger sequencing programs have. Finally to tie all the pieces together there's a virtual device driver called Midiyoke that can take midi data from one program and pass it through to another. Here's another virtual midi cable made by Jeff Hurchalla So here's the procedure to get all of this stuff working together: First install Midiyoke, and in the windows control panel setup reduce it's virtual devices to 1. The others are useless unless you need to emulate more than one device. Next, VSTs can be made into standalone loaders by renaming savihost.exe to the same filename as the DLL. SFZ comes with a .exe file already, but I like SAVIHost better so I just back up the SFZ.exe and copy SAVIHost.exe overtop of it Once you have SFZ loaded into/as savihost, you can make it save the settings you change in it by choosing [File] -> [Autosave PlugIn Bank] Next choose [Devices] -> [MIDI] then [Input Port] -> [In From MIDI Yoke 1] Choose the quality you want (my computer seems to prefer draft because it sucks. Turn effects off if you're using a FM soundfont for more accurate/clean sound. Load a soundfont into it (OPL-3 FM 128M.sf2 for the SB16 sounding set). I get an error message about insufficient memory if I try to load a soundfont that is too large, but found that changing the mode to [PR32] can fix the problem. Finally, change to Channel 10, and select Bank 128 for it (the drum kit) and make sure it's at Program 0 (Standard drum kit) otherwise it will probably use a piano where the drums should sound. I find that some midis reset channel 10 to bank 1 when loaded, and some even change it several times through the song. I believe MidiOX from the guys who made MidiYoke could fix that, but haven't tried it yet. Tom's Midi Player (listed further down) can fix that problem by changing channel 10 to the standard drum kit after a file's loaded. For playing MIDIs I use Winamp (tho TMIDI - Tom's MIDI Player mentioned further down is much better) Once you have Winamp running, press Ctrl-P scroll down to [Plugins] -> [Input] Double-click on Nullsoft Midi Player (In_Midi) Change it's output device to [midiOut Out To MIDI Yoke: 1] then press OK, then Close Finally, load a midi file If all went well, you should be hearing your midi song coming through SFZ using the Soundfont you loaded into it. If you want all your games and midi programs to output midi through the VSTs or stand alone midi programs, go to your Control Panel, choose [Sound and Audio Devices] then the [Audio] tab, and change your [MIDI music playback] Default Device to [Out To MIDI Yoke: 1] - if you do this you will need to have one of the VST programs running to play any MIDI music on your computer. Without one of the programs running, you'll just have silence. Here's a fix for Vista so you have a midi sound source picker Winamp's midi player also supports playback using custom DLS instrument banks. To play Midis using an alternate DLS instrument bank in Winamp press Ctrl-P scroll down to [Plugins] -> [Input] Double-click on Nullsoft Midi Player (In_Midi) In the [Devices] tab, change it's output device to [DirectMusic / Microsoft Synthesizer (with output)] Switch to the [DirectMusic] tab turn off [Reverb] and [Chorus], change it's Mixing Frequency to 44100 Put a check in [Use custom DLS file], and click the [...] button to locate the new instrument set you want. then press OK, then Close While searching for how to do all that stuff I found a lot of other neat ways to listen to MIDIs. Stand alone Midi players that output songs with different lo-fi sound sets: htsfms - 8 or more(?) OP FM synthesis realtime midi playback (depending on the bank loaded) player.exe - drag a MIDI file into the window for immediate playback module.exe - with MIDI Yoke as your default windows midi device, any midi music will be played through htsfms Batch files to load module.exe using the different patch sets. extract these batch files into the htsfms directory to launch module.exe with the alternate fm banks for different sounding playback (rather than manually editing the .ini file every time) The earlier version has a better UI, but a less developed patch set. fmmidi - I think this is an x68k computer midi playback emulator. - the first tab has file loading and an option to choose MIDI Yoke as an input. gxscc - emulates a MSX computer soundcard from Konami (128k wavetable) - Drag a MIDI file onto it's window for playback. No option for midi passthrough with MIDI Yoke (check the Soundfont section for a fix to that). There's an easter egg if you double-click on the icon in the top-left (OPL sound set) IMFCreator - A program created to convert Midis into IMF Adlib format for inclusion into a Wolfenstein 3D windows port, it allows MIDI playback using an FM GM bank, and includes an FM instrument editor, with import of most old standard adlib bank formats (BNK, SBI, IBK, CMF, and others). Amazing! I imported The Fat Man's OPL2 Timbres into it's instrument bank format. Also some random GM IBK bank some dos games used (left original drums since the ibk didn't include any) AXS (Another Experimental Synth) - Has a GM bank loaded by default and allows realtime tweaking of the synth sounds. Very original sounding. Supports Midiyoke as input and includes sampling and tracking capabilities. EMU de MIDI - plays MIDI files using lo-fi sounds like the MSX SCC and YM2413- de MIDI It's command line based, so drag MIDI files onto it's icon in explorer to start playback or install it as a plugin in KBMediaPlayer. Bleeper Music Maker - Robbi-985 made a program that can play MIDI files through your PC Speaker - it doesn't get any more oldschool than this! Lots of neat tweaks available and it even supports realtime playback with MIDI Yoke. This is obviously the best thing that's ever been on the internet. ever. Sorry other guys but this is serously cool - try playing the stunts theme from the mirsoft adlib archive on it - it's impecable! Runners up for best of the internet are Shiru's rendition of the Ducktales' Moon theme in TFM or DRAX's Adlib rendition of Crooner (actually the internet is only for porn - seek out the adlib song "Spiderpussy 81"). Complete GM Soundfonts: OPL-3 FM 128M.sf2 - Zandro Reveille of the of the ZSF project sampled the GM instruments from his SB16 ISA perfectly. I can barely tell the difference from the real hardware. This is the soundfont I was looking for when I started the research for this page. - 57Mb compressed mirror - FM 128M.sfpack uncompress this with SFPack gxscc_gm_033.sf2 - The sounds from the stand alone midi player GXSCC converted to Soundfont by Zandro. He sent me the waveform map he made prior to the sf2. nokia_30.sf2 - Bryan Bilocura created this GM bank from the Nokia cellphone midi developer VST. Further info on his thread here. MT32 GS 2.51.sf2 - 016.5mg GS GM MT32 V2.51 Bank by LuckyMax MT32 8MB 0.2a.sf2 - Roland MT32 Soundfont Beta 2.02a, January 21, 2006 by Zandro (not Reveille) - more info here. Gravis Ultrasound.sf2 - Generated by PAT2DLS using Gravis Ultrasound patches (author unknown) Gravis_Ultrasound_Classic_PachSet_v1.6.sf2 - GUS Classic Patch Set v1.6b converted by ArekR - Yamaha XG Sound Set Re-Map.sf2 - Zandro Reveille converted the XG DLS to Soundfont with correct mapping and naming according to the XG specification. XG Sound Set Re-Map.sf2 XG_Sound_Set__from_SoundMAX_DLSbyXG_.sf2 - SoundMAX XG Soundset converted from DLS to Soundfont by MaliceX setzer_spc.sf2 - Setzer- made a full GM soundfont using samples extracted from various Super Nintendo games. FAT_OPL2FM_v2.sf2 - The Fat Man's OPL2 GM timbres converted by Anapan (updated feb13'09-looping fixed) Zandro's OPL3 soundfont has more accurate samples of the same timbres, and a better drum kit - 26Mb Incomplete GM Soundfonts: (Most of these make substitutions to play all instruments but don't list 128 instruments in SFZ) YM-FM_Font.sf2 - MaliceX's great FM synth soundfont created mostly from Yamaha chips. It's GM compatible but currently missing a few sounds. Best FM drums of any of the soundfonts I've heard. CheapChip.sf2 - A work in progress release of a GM Chiptune soundfont by SOU1 made from instruments taken from cellphone music chips, GXSCC, and fmmidi. Sounds great so-far nes.sf2 - Instruments and drums by Jason Zaffary nes_soundfont.sf2 - samples taken from street fighter 2010 by Tony Thai. NES_Font_Advance.sf2 - A bunch of NES sounds, and 3 drum kits made my my old friend Timothy Purcell. gbfont.sf2 - Another soundfont by MaliceX made to sound like it was generated by a Gameboy. opl3.sf2 - Drum samples from an OPL3 emulator by Ian Wilson Drum - 4-Op FM.sf2 - Another drum kit by Ian Wilson. This one's 4-op instead of 2. FM.sf2 & FM-Drum.sf2 - seems a bit buggy on SFZ, but maybe timidity or an audigy soundcard would have better luck. Good samples and gm/gs/xg compatible. Famicom.sf2 - all instruments are like Nintendo beeps, no drum bank (filter out ch10) SNES Game Soundfonts - Blitz Lunar / Dave Harris extracted all the instruments out of several Super Nintendo games and arranged them in roughly GM configurations. Moccy made a Street Fighter II soundfont. Softsynths that can playback midi using soundfonts: You can use XMPlay to play midi files using soundfonts. Midig by Carlos Rodriguez Butragueno is another excelent program that does midi file playback. It comes with a custom selection of samples but can be reconfigured to use any set. I've lost the installer for 2.03 and the 2.04a update. It's website has been down since late 2007. If anyone has a working html link for any of the different revisions (I read on one forum that there's a 2.05 version) please email it to me so I can put it here - it's available on Zandro's "SoundFonts The Collection" torrent. Here's an article on The Home Recordist about how to customize it's samples: TiMidity++ Windows Synthesizer (TWSYNTH) - Load soundfonts into a windows driver without having a compatible soundcard for realtime midi rendering. Fludisynth - Crossplatform Soundfont loader/player for systems with no Soundfont support (extra links because I haven't compiled the latest version for windows yet): Old windows build and source for newer ones - link - link - link - DLS GM instrument sets: Final Fantasy 8 DLS - I really like this one; FAT_OPL2FM.DLS - The Fat Man's OPL2 GM timbres converted by Anapan - 26Mb VST plugin DLLs: All these VSTs can be made into standalone loaders by copying savihost to the same filename as the DLL. The devices should be changed to midiyoke input. Most of them can't do more than one instrument at a time - those ones sound best if you change the plugin -> filters to disable these boxes: control change program change track 10 track 16 and all the system common stuff Looks like the trick with the mono tone instruments is to just run lots of the same VST at once, and filter all but one channel for each instrument (or just use FLStudio or Cubase the proper way...). VOPM - an X68000 OPM chip emulator. It's capable of generating some amazing effects if you play around with it... Filter out the drum input (channels 10 & 16) if you want to use Midiyoke to play a MIDI through it's GM bank. Louis Gorenfeld made an unnoficial english manual for VOPM! - and a pack of patches - and a program to rip instruments from Sega Genesis GYM music into VOPM format - Shiru made a program to rip instrument patches from VGM format into VOPM format - More FM modules available here - - Actually originally from Shiru's TFM tracker... MaliceX ripped some MDX timbres from games and put them in his site's downloads section - Hexter - 6-op FM synth that can load the thousands of available Yamaha DX7 Patches (disable effects for authentic DX7 clone) - has a GM-like bank loaded by default. (copy & paste url if clicking doesn't work) se64 - some presets on this make midi sound like chiptunes. I especially like #3. ProroPSG - I had some good results with this as well ymVST - This plugin emulates the sounds of Atari ST sound chips. It's monotonal tho so it would be necessary to run 16 at once to get proper midi playback. still it makes simple midis sound very old-tech. FAMISYNTH II - Cool interface and lots of Nintendo/Famicom sounds built in. Syntendo - Another great Nintendo sound VST. This one has lots of features and comes with quite a few presets.$LPqnh389ryMANbxUO1t3Ib96URXNqZ3q/46902/SYNTENDO.ZIP The Shepherd - Emulates the whistle from Kill Bill's Elle Driver when she's in that nurse uniform. Try playing any midi on it while keeping a straight face. Alice-1377 - Emulates the Alisa 1377 synthesizer. Awesome FM synth presets. PooBoy I&II - They Emulate Gameboy sounds. Both are really good at remaking the full range of sounds a gameboy can produce. Chip32 - has presets for all the basic NES waveforms, and also lets you draw in any shapes you want. Controllers for ADSR and others. Quantum 64 - Not a SID chip emulation, but similar sounding and has a great arpeggiator. Basic 64 - More SID/NES sounding presets. Magical 8-bit - More NES-like sounds and others from YMCK. NinTiny - Another NES-like VST;O=A Synth1 - FM VST. It has a GM bank loaded by default, but only allows one instrument to be played at a time through midi input. Roland VSC - GM/GS/XG compatible wavetable softsynth can be obtained by downloading this update then extract, then from it extract VSC.dll. Use Universal Extractor to do the two extractions - Jack Dark / Darkware VSTs - I haven't had a chance to try and of these but on my webcrawling I heard them mentioned several times along with some of the ones above. - fetch For more great VSTs like these, check out Chiptuning on Woolyss a great resource on all things chiptune. Some other VSTs to look up/try (not freeware) Beast - By reFX, no longer available, but it's always been one of my favorites... - trial Slayer2 - Also by reFX - makes any midi into heavy metal. Best Grunge guitar modeling I've heard. Blue - By Rob Papen, some of the most unique-full-bodied instrument sounds you'll find. quadraSID - Another by reFX - Emulates SID chips from Commodore 64 computers. Sytrus - A great VSTi with some great sounds. Comes with FL Studio. z3ta+ - Another good one. lots of neat sounds. VAs - Virtual Analogue Synth. Bonus icons for the VSTs and stand-alone players (so your shortcuts don't all have a big purple diamond icon when you make shortcuts to SAVIhost) Installable Soft Synths Yamaha S-YGM, S-YXG20, S-YXG50, S-YXG70, S-YXG/DM, S-YXG100, Sondius XG/S-YXG100 Plus, S-YXG2006LE - Seems to be discontinued, but had a nice sounding XG wavetable patch set. A newer (XG-Lite) version is also built into Yamaha's MidRadio Player - More info on that here. Only S-YXG50 WDM, the VST version of S-YXG50 and an Unofficial S-YXG2006LE VST work in XP outside MidRadio Player. Official Website ( fetch) - S-YXG50 v4.21.03 WDM trial here - S-YXG50 full version can be obtained cheaply by buying a copy of Final Fantasy VII PC on Ebay or Amazon. S-YXG70 upgrade can be optained from the Final Fantasy VIII PC S-YXG100 Plus v1.12.15 trial here - Some info on Sondius - More information on the Yamaha Softsynths including which versions of them work on which OSes - Some very in-depth information on VSC and S-YXG50 tweaking from VOGONS member dvwjr - Roland Virtual Sound Canvas - GM/GS wavetable virtual device driver Website - Website - Website advert - In the latest version you can choose between SC-55, SC-88 and SC-88Pro compatible sound sets. This feature is not available in the VSTi version. Wingroove - GM wavetable virtual driver & stand alone midi player. I always liked the sounds built into it. Webpage - Stand Alone Soft Synths (romplers) Yamaha's MidRadio Player - Japanese MIDI player based on Yamaha's XG-Lite sample set (it's actually passing the midi through to an embedded VST called S-YXG2006LE). FPD98 & FPDLite - Software Sampling Synthesizer - Japanese MIDI player with a good sounding sample set - FPD98 is not free. Other stuff of note: I found a Mt-32 emulator/driver here: It was superseded by MUNT which emulates MT-32 and CL-32L devices (reported to be working correctly on Vista). You need ROM dumps to get the 1st one working, I haven't tried MUNT yet. Another way I found to play back MIDI files so they sound like they're played through an OPL2 chip is Adplug There is a bug in all the builds I tried that only allows it to play MIDI Format 0. This can be easily fixed with GNMIDFMT. Both emulation engines in Adplug sound a bit different, but they're pretty accurate. Worth a download, but still not capable of realtime music playback from games. Use GNMIDFMT to convert between the different formats of MIDI (it won't affect the output in most players, it's just for compatibility): To make it play MID files you need to disable the filetype MID in the Nullsoft Midi input settings, and enable MID in ADPlug's settings (probably a restart is necessary after each extension change). It's also incapable of playing Drums in Midi format 0 files, so it would be best to delete track 10 from the MIDI before converting it. It probably needs the .DAT file from the second link aswell. Try a Warcraft II song I converted. Play and save Nintendo and Super Nintendo music through midi - always fun. NSF2Midi SPC2Midi Old or registered newer versions of the Nintendo emulator Pasofami have realtime midi output (the new versions have sound output disabled in the free trial version) Marat Fayzullin's NES and GB emulators also have realtime midi playback and recording capabilities if you buy them (not reccomended). PXTone by Pixel of Cave Story / Doukutsu Monogatari fame - a music sequencing program which was used to make the soundtrack of Cave Story. Website - Tutorial - Other interesting device independent midi playing programs: Tom's Midi Player TMIDI - good control over how it's played (can fix the channel 10 switching bug when using SFZ) MidiJam - 3d visualization of the instruments playing The Music Animation Machine - check out the nico nico douga videos - !konami code! Some extra links: Soundshock - discussion forum for FM Synthesis BeRo Mini Tracker - Win32 music tracker with OPL2/3 synthesis engine built in Chris Lomont's Vista compatible FM Tracker Adlib Tracker II -This is what most FM composers use to make OPL3 music. Check out some demos of a Soundfont project being actively worked on by Breadrack/Nocouch - Sounds Awesome!! Malvineous' Sound/Music File Utilities - DRO2MIDI & DRO2IMF: convert RAW and DRO OPL capture files (as created by Adplug and Dosbox respectively) into Midi or IMF! Adlib Digisnap - digitally record highest quality audio capable of being recorded from an OPL2 chip by soldering a LPT recording device right onto an adlib/sb/sbpro1 sound card. Building an AdLib Digisnap - Janne Ropponen / Kuvaweopu documents his experience with pictures building said device linked above. Malfunction's FM Synthesis Heaven Louis Gorenfeld's guide on getting started with FM Qotile Slocum - this guy did some awesome Atari 2600 and C=64 hacking - links to atari 2600 midi implementation stuff too. Da!NyL's Workspace - Some great utilities for playback and format conversion between C=64 SID format and OPL3 FM format music. BuzzMachines - Modular sound processing/building/tracking system. Looks really interesting, I'll have to check it out better later. Has lots of FM modules. Chiptuning on Woolyss - A great resource for everything chiptune related. There's a great tracking section aswell. moogle charm: programs - A listing of music programs for different systems. OPLx Page - Information on programming for OPL, OPL2, and OPL3 Korean IMS player (file format for Adlib based music) melcoms Adlib Archive - Lots of great programs and adlib songs in all formats archived here Studio Compyfox: Hardware Research - software emulations of music hardware (synths, eq, dynamics, etc) .NET Wrapper for OPL code. Includes sourcecode for both OPL2 and OPL3 DRO-ED - software for working with Dosbox OPL captures. Original Mame OPL3 code by Jarek Burczynski and Tatsuyuki Satoh. FM Dreams 4-op FM synthesis waveform generator Java implementation of OPL3 emulation Hardware OPL3 box (SWEET!) YM2413 sourcecode/module for playing MSX music OPL3 Programming ( fetch) GNU Linux source that's probably great (Bisqwit's very tallented), but I'm not able to make it run in windows 'cause I don't know how to port or compile the sourcecode. Midicode Midisynth - midi software synthesizer with Dual FM/AM Aldib sound card acivated through a paralell printer port (for newer motherboards) Some really useful sounding midi emulation tools are listed here. I haven't had a chance to try any yet. SoundFX NT - Commercial dos soundcard/FM emulation product (has anyone actually tried this?) Sound Generator Library - Japanese information for all(?) the Yamaha sound chips Similar to above but in english ( fetch) GUS Emulator for win9x/2k (I haven't tried it) Some Articles: back story: I found out that the sound I was looking for was made by a Yamaha YMF262 (OPL3) chip with drivers utilizing general midi timbres made by The Fat Man. Yamaha hired him to develop the timbres for their SDK and drivers. He also composed the music in a lot of the videogames you've played. The first thing I tried was Dosbox as I know it's soundcard emulation is very accurate. I downloaded a bunch of MID players for dos. Most of them sounded slightly off because each had different FM settings for the General Midi instrument set. I found one that used the BNK file made by The Fat Man: at the bottom of the page. Some other dos midi players of note: - Midier - Megamid - Midpak At least one of those other midi players requires the Midis to be in Format 0. So-far so good. Next I wanted to be able to use the soundcard emulation in realtime in windows. There is a CVS version of Dosbox that has MIDI input capability. Unfortunately I couldn't find any dos programs to pass midi signals through to the different soundcard emulations in it so I never got any further there. Same story with VDMSound. It's emulation engine is strictly designed for dos programs only and I couldn't find any way to integrate it into win32 applications. Aparently it's OPL3 emulation isn't very accurate anyway (according to the Adlib Tracker guys). I searched for any Soundfonts that were made from OPL2 or OPL3 chips. Although there were some collections of sounds, none covered the full GM instrument bank. The closest I could find was a couple drumkits: Then I found a program called Awave Studio that can load Adlib instrument banks (BNK format) After fiddling with it for awhile I managed to get all 128 instruments converted to waveforms from a BNK file I found in Master of Magic. The drums didn't turn out, but with dosbox I managed to record all the drum sounds and compile everything into a full GM soundfont. As a bonus, Awave Studio can output DLS instrument banks too for use in Microsoft's GM Softsynth (included with direct-x). Roughly 3 months after I published this webpage I was contacted by Zandro who contributed a lot more content to the page. After a few emails back and forth about how to improve my OPL2 soundfont, he informed me that he was making a better one by sampling a real SB16 (OPL-3 FM 128M.sf2). Now finally I can play games and listen to midis exactly like I wanted. This project is a complete success but by no means complete. I'll try to keep the content that's already here available, mirroring it as necessary and update it as I find more. I hope you have as much fun with this stuff as I have. If you're still reading this you must have an amazing attention span! I fully reccomend you now head on over to or and listen to the songs the way they were meant to be heard. - Anapan (