Software OPL FM MIDI synthesizer
ymfmidi for Windows

日本語 | English
Download ymfmidi for Windows

ymfmidi for Windows is a software FM MIDI synthesizer for Windows, based on ymfm and ymfmidi.

The FM MIDI mentioned here refers to MIDI using the OPL3 chip found in old Sound Blaster cards and similar devices. Nowadays, high-quality MIDI sound sources using soundfonts are easily available, so FM MIDI cannot compete in terms of sound quality.

However, since FM sound sources have long disappeared from PCs, the unique sound of FM MIDI is actually a novel experience today. Although there are soundfonts that try to reproduce FM sounds, FM synthesis fundamentally differs from sample-based soundfonts. In other words, to recreate "that particular sound from back then," faithfully reproducing the FM synthesis mechanism itself is (probably) the best approach rather than relying on soundfonts.

Therefore, this software aims to emulate Yamaha's OPL-series FM sound chips and make FM sound sources available from Windows MIDI environments (midiIn/midiOut API).

Features

The core is ymfm, but most of the main code comes from ymfmidi. Sampling conversion is also from others. Many thanks for these excellent programs.

Instrument definition files (*.wopl, etc.) can be created with an editor or you can use publicly available files. The bundled definition files with ymfmidi seem to come from DMXOPL. I personally find the GENMIDI(GS).wopl there quite good.

Example of ymfmidi for Windows resident in taskbar
ymfmidi for Windows Resident Version
Example of playing 32ch MIDI using two console versions of ymfmidi for Windows
ymfmidi for Windows Console Version

How to set as a MIDI output device

This software can receive and play back MIDI messages from MIDI IN, but cannot be selected directly as a MIDI output destination by other software. To select it as an output in other software, you need virtual MIDI cables such as loopMIDI.

To use loopMIDI, follow these steps:

  1. Download and install loopMIDI from the official loopMIDI website.
  2. Start loopMIDI and click the "Add port (+)" button to create a new virtual MIDI port. You can name the port anything like "YMFM OPL FM MIDI Synthesizer". This will create corresponding virtual MIDI IN and OUT ports that are virtually connected.
    Example of adding a port in loopMIDI
  3. If loopMIDI is your only MIDI IN device, simply running ymfmidiwin-synth.exe will automatically use the created MIDI IN device.

If you have multiple MIDI IN devices, specify the MIDI device number explicitly with the //MIDIIN<number> option.

If you want to use it as the default MIDI output device, install CoolSoft MIDIMapper. After installation, use the MIDIMapper Configurator to specify the virtual MIDI port you created.

Example of MIDIMapper configuration

Information for users who want a Windows standard FM MIDI-like sound

If you want to play sounds close to the Windows standard FM MIDI sound source, you need the instrument parameters used in the Windows standard Sound Blaster 16 driver. This data is included in FMSYNTH.BIN from the Windows NT4 DDK sample.

However, since these parameter definitions are originally included for driver development (DDK), redistribution for other purposes may not be appropriate. Therefore, FMSYNTH.BIN is not included with this software. Instead, the following methods are supported as alternatives.

  1. Using the DDK sample FMSYNTH.BIN

    Specify the FMSYNTH.BIN from the Sound Blaster 16 sample driver included in Windows NT4 DDK as the instrument definition file to load it.

    Example 1: ymfmidiwin //MIDIIN FMSYNTH.BIN

    Example 2: ymfmidiwin-synth FMSYNTH.BIN

  2. Loading from a driver DLL

    Some Windows NT4 Sound Blaster driver DLLs (e.g., sndblst.dll) contain data identical to FMSYNTH.BIN as a resource.

    This software can load instrument data from such DLL resources if you specify the DLL file. It does not have to be sndblst.dll as long as it contains the equivalent FMSYNTH.BIN resource.

    Example 1: ymfmidiwin //MIDIIN sndblst.dll

    Example 2: ymfmidiwin-synth sndblst.dll

Note: The drum sounds included in FMSYNTH.BIN depend on OPL rhythm sounds, which are not supported by the current ymfmidi. Therefore, drum sounds are loaded only from GENMIDI.op2. Please place GENMIDI.op2 in the same folder as ymfmidiwin.exe.

Q&A

Q. "GENMIDI.wopl cannot be loaded" error
A. Place GENMIDI.wopl in the same folder as the executable or specify it explicitly.
Q. When using loopMIDI, if I play MIDI without starting ymfmidi and then start ymfmidi, no sound comes out
A. Sending unnecessary data to loopMIDI can cause it to become unresponsive. Close the MIDI player and ymfmidi, delete and recreate the loopMIDI port, then try again.
Q. Performance is slow
A. Try using the -q option to disable screen output, or use --resampler linear for linear interpolation. Also, reduce the number of chips used.
Q. I want to set it as the default MIDI output
A. Recent Windows versions removed the MIDI mapper, so the OS no longer allows changing the default MIDI output device. Use CoolSoft MIDIMapper or similar tools to change it.

Back to Download

Back to Top