@@ -1283,7 +1283,7 @@ 2. Compatibility
bs-16i cannot handle GeneralUser’s modulators, so many instruments sound incorrect. |
-| FluidSynth (& Qsynth, et al.) |
+FluidSynth (& Qsynth, et al.) |
Excellent |
FluidSynth v2.3 or later recommended. See section 3.0.2 for ideal settings. |
@@ -1313,12 +1313,12 @@ 2. Compatibility
The Live! only supports SoundFont v2.0, but v2.01 or later is required for GeneralUser GS. |
-| SpessaSynth |
+SpessaSynth |
Excellent |
Version v3.20.43 or later recommended. |
-| SynthFont, et al. |
+SynthFont, et al. |
Poor |
Can’t handle GeneralUser’s modulators, making quite a mess of many presets. |
@@ -1331,7 +1331,7 @@ 2. Compatibility
If you would like to test a SoundFont player for proper specification support, you can use my SoundFont Spec Implementation Test.
2.1. Operating Systems
Windows and Linux currently have the best application support for high quality SoundFont playback. Support on macOS is weak in comparison, with many applications opting to use macOS’ horrible native SoundFont player. As for mobile operating systems, Android has a few good options, but software for iOS is not covered in this documentation as I do not own any contemporary iOS devices for testing.
-As for Linux, all of the Windows applications that I list in the following sections also work quite well in Wine. I personally run the Windows VST plugins in REAPER via yabridge with great success.
+As for Linux, all of the Windows applications that I list in the following sections also work quite well in Wine. I personally run the Windows VST plugins in REAPER via yabridge with great success.
3. Configuration and Usage
The following sections will detail how to best configure your SoundFont synth for use with GeneralUser GS. The sections are broken down into the most common use cases for GeneralUser GS: using DAW plugins (composing or live musical performance), playing MIDI files, and retro PC gaming. There are also options that can cover multiple use cases. Most of the recommended applications are based on either BASSMIDI or FluidSynth and will be listed in order of my personal recommendation.
I won’t detail every application using these two SoundFont engines, but instead only what I find to be the easiest to use and/or provide the best playback quality. There are also likely to be good applications that I have missed, so please let me know if you think a different application should be on this list.
@@ -1548,18 +1548,18 @@ 3.2. Playing MIDI Files
Standalone applications (option #1) are generally the easiest to set up and use, but as of this writing, only a few provide ideal playback quality. This will change in the future once FluidSynth-based MIDI players such as VLC adopt FluidSynth 2.4 or later with its improved reverb and chorus settings. Using a separate synthesizer and MIDI player (option #2) is covered in section 3.4 below.
The following sections start with my top recommended MIDI playback applications for each operating system, followed by other noteworthy options. I have included a few MIDI files with GeneralUser GS in the demo MIDIs folder for testing each application. You will also find .ogg audio of each MIDI file as a reference for how playback should sound (played using FluidSynth and GeneralUser GS 2.0.0).
3.2.1. FluidSynth (GNU/Linux, macOS, Windows)
-FluidSynth can usually be found embedded within other applications (such as VLC) for MIDI playback, but it can also be run as a standalone MIDI player and/or virtual MIDI device. I find FluidSynth’s combination of sound and MIDI playback quality to be the best of all the options I have tried, provided you make a few tweaks.
+FluidSynth can usually be found embedded within other applications (such as VLC) for MIDI playback, but it can also be run as a standalone MIDI player and/or virtual MIDI device. I find FluidSynth’s combination of sound and MIDI playback quality to be the best of all the options I have tried, provided you make a few tweaks.
The player runs in a terminal window, but you can easily set it up to automatically play when double-clicking a MIDI file in your file manager. If you’d rather use something with a graphical user interface (GUI), check out the other players listed in the sections below.
Installation & Setup
📝 Note: I have created video tutorials of the setup process for each operating system: GNU/Linux | macOS | Windows
-Download and install FluidSynth for your platform:
+Download and install FluidSynth for your platform:
- Linux: A
fluidsynth package should be available in your distro’s repository.
-- macOS: Install using Homebrew (
brew install fluidsynth) or MacPorts (sudo port install fluidsynth).
-- Windows: For a proper installation, I recommended installing FluidSynth via Chocolatey (
choco install fluidsynth). Otherwise, you can get a zip file of the latest release here, but you will need to manually extract it and move the bin, include and lib folders to your desired application folder (e.g., C:\Program Files\FluidSynth).
+- macOS: Install using Homebrew (
brew install fluidsynth) or MacPorts (sudo port install fluidsynth).
+- Windows: For a proper installation, I recommended installing FluidSynth via Chocolatey (
choco install fluidsynth). Otherwise, you can get a zip file of the latest release here, but you will need to manually extract it and move the bin, include and lib folders to your desired application folder (e.g., C:\Program Files\FluidSynth).
Open an editor that can create plain text files. Most operating systems come with one. You will use this the editor to create a FluidSynth configuration file:
@@ -1672,9 +1672,9 @@ 3.2.4. Midi Clef Karao
Midi Clef Karaoke Player (current version is 9.0.3) is an excellent MIDI player for Android that uses BASSMIDI for SoundFont playback.
You can install Midi Clef Karaoke Player from the Google Play Store, and it shouldn’t be too hard to figure out how to load GeneralUser-GS.sf2 as the default SoundFont and start playing MIDI files. Consult the app’s built-in help if you get stuck.
3.2.5. SpessaSynth (Web App)
-SpessaSynth is a web MIDI player that works great with GeneralUser GS v2.0. In fact, it currently uses GeneralUser GS by default, though the version included with the web player uses compressed audio samples (SF3 format). If you wish to have the best audio quality, you can manually upload the uncompressed SF2 file into the player.
+SpessaSynth is a web MIDI player that works great with GeneralUser GS v2.0. In fact, it currently uses GeneralUser GS by default, though the version included with the web player uses compressed audio samples (SF3 format). If you wish to have the best audio quality, you can manually upload the uncompressed SF2 file into the player.
3.2.6. dmidiplayer (GNU/Linux, macOS, Windows)
-Drumstick Multiplatform MIDI File Player (dmidiplayer) can play MIDI files using its internal FluidSynth engine or an external MIDI device, among other options. As of version 1.7.4, dmidiplayer contains everything you need for excellent sounding MIDI playback, if you don’t mind a few caveats:
+Drumstick Multiplatform MIDI File Player (dmidiplayer) can play MIDI files using its internal FluidSynth engine or an external MIDI device, among other options. As of version 1.7.4, dmidiplayer contains everything you need for excellent sounding MIDI playback, if you don’t mind a few caveats:
- MIDI tempo is a bit off in some cases.
- Slight MIDI event timing jitter even when setting FluidSynth to use the smallest possible audio period size (64). I will need to do further research and update this documentation once I know more.
@@ -1682,7 +1682,7 @@ 3.2.6. dmidiplayer (
If you are put off by the idea of using FluidSynth through a terminal, dmidiplayer provides a way to enjoy FluidSynth’s sound while using a very nice, simple GUI.
Installation & Setup
-- Download and install dmidiplayer version 1.7.4 or later.
+- Download and install dmidiplayer version 1.7.4 or later.
- Start dmidiplayer.
- Go to “Settings” → “MIDI Setup” and set the following:
- MIDI OUT (box 1): FluidSynth
@@ -1702,18 +1702,26 @@ 3.2.6. dmidiplayer (
- Click “OK”
You should now be able to load and play MIDI files using dmidiplayer.
-3.2.7. Others
+3.2.7. MIDI Voyager (Android)
+MIDI Voyager (current version is 5.4.12) is a fast MIDI player for Android that uses BASSMIDI for SoundFont playback, and supports older Android versions down to Ice Cream Sandwich.
+While the original developer has retired and the app is no longer available on the Play Store, a version 5.4.12 has been made based on the now-defunct MIDI Voyager Pro 5.4.11 which deprecates MIDI Voyager free, is ad-free, license-free and has BASSMIDI updated to 2.4.14.
+
+- Replace the current SoundFont with or add a new collection using the SoundFont
GeneralUser-GS.sf2 in “Settings” → “Soundfont”.
+- In “Effects”, set the Reverb Level to around 40%.
+
+3.2.8. Others
The following applications use FluidSynth for MIDI playback and therefore are supported by GeneralUser GS. However, they do not allow customizing the reverb and chorus effects and will not sound nearly as good as the above recommended options. This will change in the future once these programs adopt FluidSynth version 2.4 or later:
3.3. Retro PC Gaming
GeneralUser GS can be used for music playback in many retro PC games. The following applications all feature FluidSynth for MIDI playback. Please note that I have only tested these programs in Linux, but my instructions should work for all operating systems.
3.3.1 DOSBox Staging / DOSBox-X
-DOSBox Staging and DOSBox-X are modern forks of DOSBox. While I only use DOSBox Staging, both applications do a fantastic job of playing retro PC games. Whichever you choose, follow the application’s documentation for configuring your game(s) to use FluidSynth for MIDI playback, and then apply the following tweaks for the best sound in GeneralUser GS.
+DOSBox Staging and DOSBox-X are modern forks of DOSBox. While I only use DOSBox Staging, both applications do a fantastic job of playing retro PC games. Whichever you choose, follow the application’s documentation for configuring your game(s) to use FluidSynth for MIDI playback, and then apply the following tweaks for the best sound in GeneralUser GS.
DOSBox Staging
Locate your DOSBox Staging configuration directory:
@@ -1758,7 +1766,7 @@ 3.3.1 DOSBox Staging / DOSBox-
3.3.2 ScummVM
-To set ScummVM to use GeneralUser GS for General MIDI playback:
+To set ScummVM to use GeneralUser GS for General MIDI playback:
- Go into “Global Options...”.
- Select the “MIDI” tab.
@@ -1794,14 +1802,14 @@ Drumstick Multiplatform MIDI File Player (dmidiplayer) (GNU/Linux, macOS, Windows) – This is a very nice MIDI player with a simple, accessible GUI. I have found Drumstick MIDI Player to occasionally be slightly off tempo from other players, but you may or may not notice.
+- Drumstick Multiplatform MIDI File Player (dmidiplayer) (GNU/Linux, macOS, Windows) – This is a very nice MIDI player with a simple, accessible GUI. I have found Drumstick MIDI Player to occasionally be slightly off tempo from other players, but you may or may not notice.
- Ultralight MIDIPlayer (GNU/Linux, macOS, Windows) – This player is written to be lightweight and able to handle highly complex MIDI files. It requires Java 8 to run. Under Linux, I could not get it to see my virtual MIDI devices, so I was unable to see how well it performs on that platform.
- Sekaiju (Windows) – This player is actually a full-on MIDI sequencer, but it does a great job playing MIDI files to an external MIDI source. It also runs well in Linux via Wine.
There are a lot of MIDI players out there I haven’t explored, so I am definitely open to suggestions.
Now, on to the list of recommended virtual MIDI devices.
3.4.1. Qsynth (GNU/Linux)
-Qsynth is a graphical front-end for FluidSynth. While you can use FluidSynth (see section 3.2.1) directly as a virtual MIDI device, Qsynth makes it a lot easier to configure and tweak FluidSynth’s many settings.
+Qsynth is a graphical front-end for FluidSynth. While you can use FluidSynth (see section 3.2.1) directly as a virtual MIDI device, Qsynth makes it a lot easier to configure and tweak FluidSynth’s many settings.
Installation & Setup
@@ -3098,12 +3106,12 @@ 6. Com
7. Products Using GeneralUser GS
GeneralUser GS has been included with countless music applications over the years. Below is a list of products I am aware of, though I‘m sure there are plenty that I don‘t yet know about:
@@ -3124,4 +3132,4 @@
-~Chris