Yamaha S-YXG50 Portable VSTi v1.0.0 [2016/04/25] (a software MIDI synth)

A software MIDI synthesizer for Windows, which functions as a VSTi plugin. Supports both the Yamaha XG and the Roland GS extensions, which is a unique feature of the S-YXG50. The VSTi was a part of the Yamaha SOL2 package. Yamaha discontinued support of this software synthesizer in 2003. As it is abandonware now, a portable version of the VSTi was created (installation and registry keys are not required). It uses embedded (into DLL resources) official 4MB wavetable files, which is the best version of wavetable files for the S-YXG50.

Download: yamaha_syxg50_vsti.7z (3.0MB).

What's new in this patch

  • Installation isn't required. SYXG50.DLL reads files from the own directory.
  • Wavetable files are decrypted and stored in the resources of the DLL file.
  • If you remove them from the resources, VSTi will find them in the own directory (SXGBIN41.TBL, SXGWAVE4.TBL).
  • Antidebug, S/N checking and trial mode code is removed.
  • Hidden settings are read from the ini file with the same name as the dll file, but with the ini extension.
  • Polyphony limit is 128 by default.
  • More frequent updates of information in the GUI.
  • Help button will be hidden if SYXG.CHM is not present.
  • VST meta information is stored in the resources (String Table), so it can be changed easily if it is needed.
  • GUI can be disabled and GUI resources can be removed, as the result this VSTi will work as the SGP.DLL.

How to use

You have to set up some VST host to play MIDI using this synth. It can be your favorite player, but you need to find a plugin, which allows to play MIDI files through VSTi. Some instructions are provided below. Use the bi2_polkovnik.mid (35KB) for checking your setup, it has to sound exactly as the bi2_polkovnik_syxg50.ogg (2.0MB).

VST MIDI Driver (as a system MIDI synth)

VST MIDI Driver allows to use any VSTi as a global system MIDI synth. In this case every game or MIDI player, which uses the default system MIDI synth, will use Yamaha S-YXG50.

  1. Download and install the VST MIDI Driver.
  2. Copy the syxg50.dll from the yamaha_syxg50_vsti.7z into any directory.
  3. Open VST MIDI Driver settings, click “Load VSTi” button and choose syxg50.dll.
  4. In the Advanced tab choose “VST MIDI synth” as the default MIDI synth.
  5. Ready! Now Yamaha S-YXG50 VSTi will be used as the default system MIDI synth.

Yamaha S-YXG50 WDM (an official driver for the Windows XP only)

VST MIDI Driver supports Windows XP/Vista/7+, but on the Windows XP it is better to use the official Yamaha S-YXG50 WDM driver, which you can download from the Microsoft Windows Update servers: 4MB version (better quality, consumes more RAM), 2MB version (worse quality, consumes less RAM). This WDM driver can be installed manually using Add Hardware master in the Control Panel. Don't forget to set Yamaha S-YXG50 as the default system MIDI synth in the Sound settings. VSTi version of this synth is not needed when Yamaha S-YXG50 WDM is used.

foobar2000 (the best player for ones who loves music)

foobar2000 doesn't use the system MIDI synth, but it is not a disadvantage. It allows to use Yamaha S-YXG50 VSTi witout installing any system drivers, which is much more safe.

  1. Download and install the foo_midi plugin from the foobar2000 website.
  2. Create a new subdirectory in the foobar2000 directory and name it “vsti”. Copy the syxg50.dll from the yamaha_syxg50_vsti.7z into that directory.
  3. Open foobar2000, Preferences → Advanced → Playback → MIDI Decoder → VSTi search patch, and set the full path to your vsti subdirectory. Apply changes and reopen the Preferences window.
  4. Preferences → Playback → Input → MIDI synthesizer host. Choose “Yamaha S-YXG50” in the “plug-in” combobox. Apply changes.
  5. Ready! Now foobar2000 will play MIDI files using the Yamaha S-YXG50 synth.


  1. #151

    Me again! It seems I was able to get this running reasonably well using a tool called VSTHost along with the loopback. A bit more involved to get it set up and running than the Falcosoft solution, but I'm getting good results.

    Still not as ideal as being able to simply get the VST running using a VST midi driver, so if anyone has a solution to that, please let me know.


  2. #152

    I absolutely love this synthesiser, thank you for releasing an unofficially modified version! <3

  3. #153

    How do you select an instrument in this VST?

  4. #154

    select an instrument in this VST

    The 'Data List' was «shipped» with XGPlayer – file named "Syxgctrl.hlp". To view it on Vista, 7, 8, 8.1 you have to find KB917607 update (that restores old winhlp32) and install it. In this help-file click "MIDI" — "XG Normal Voice List" or "XG Drum Voice List", if General Synthesis mode – "TG300B Normal Voice List" or "TG300B Drum Voice List". Also XGPlayer has these files: Syxg53h.txt (XG50 Voice list for MA-52W), Syxg101w.txt (XG100 voice list for MA-52W), Tg300b.txt (TG300B Voice List for MA-51W).

    Or read posts #63 and #64

  5. #155

    What happened to VST MIDI Driver?
    I already have a version of it installed, but I'd like to know what happened to it. It's not on kode54's website anymore, and the github repository is gone.

  6. #156
    VEG Author

    I don't know. I guess it is better to ask kode54 himself.

  7. #157
    Joe Salazar

    If anyone has issues getting this to work in a 64 bit DAW (in my case Ableton Live 10), get jBridge to convert the S-YXG50 vst to 64 bits and it will work. jBridge is a paid software but it is cheap ($19 as of this writing) and it works great.

  8. #158

    The vst midi host download link doesn't work. Would you mind sending it to my email instead? Or anything so I could download it again.

  9. #159
    VEG Author

    Don, kode54 told that he lost the latest source code of the driver. There are some links to old versions of the driver in that topic, but as far as I remember they had some issues. So, I would suggest to use foobar2000 with foo_midi plugin, or some other solution if installing S-YXG50 as a system-wide synthesizer is a must. Unfortunately, I didn't try to use any other solutions, but I saw people suggesting some alternatives somewhere in the comments.