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 its 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 its 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.
- Download and install the VST MIDI Driver.
- Copy the syxg50.dll from the yamaha_syxg50_vsti.7z into any directory.
- Open VST MIDI Driver settings, click “Load VSTi” button and choose syxg50.dll.
- In the Advanced tab choose “VST MIDI synth” as the default MIDI synth.
- 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.
- Download and install the foo_midi plugin from the foobar2000 website.
- 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.
- 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.
- Preferences → Playback → Input → MIDI synthesizer host. Choose “Yamaha S-YXG50” in the “plug-in” combobox. Apply changes.
- Ready! Now foobar2000 will play MIDI files using the Yamaha S-YXG50 synth.
- yamaha_syxg50_vsti.7z (3.0MB) — a version with the embedded 4MB wavetable, for general usage.
- yamaha_syxg50_vsti_ext.7z (4.0MB) — a version with external 2MB and 4MB wavetables, for experiments.
- bi2_polkovnik.mid (35KB) and bi2_polkovnik_syxg50.ogg (2.0MB) — demo MIDI file and how it has to sound.
Hi, I have a recommendation. I think you should list 'FSMP+ your S-YXG50 plugin' special package as an alternative solution on your site and in the readme since currently (as I see now) this solution is arguably less problematic than your current recommendations:
1.For simple MIDI file splaying it's configuration free. The user has to just download the package, no installation required at all, start MidiPlayer.exe and it's loaded with your example midi file for testing (bi2_polkovnik.mid) and your plugin loaded in its full glory (in full interactive mode unlike in foobar).
2. It can be also used as a more problem free driver solution that supports both x86 and x64 programs.
3. It does not have the nasty problem of VS Midi driver with midi /karaoke players that also use the basss/bassmidi libraries
(I think you remember this problem from Vogons: https://www.vogons.org/viewtopic.php?f=24&t=47840&start=20#p613580)
4. Overall well tuned for your XG plugin:
full SysEx reset support: both GS/XG + GM, proper instrument names on both melodic and drum channels, support for XG Capital Tone Fallback etc.
I have made a new package with your readme file included in VST folder:
It can be hosted on both of our sites, or on just mine and you only linked it, I'm open for any solutions.
What do you think?
@cs127 and also @VEG:
You can also try this solution. If you want to use Veg's plugin on Windows 10 as a system wide solution you need thees thing:
FSMP + syxg50 preconfigured package: http://falcosoft.hu/midiplayer_syxg50.zip
A software Midi Cable such as LoopMidi or Loopbe:
Coolsoft Midi Mapper to set the default Midi out on Windows 10 (it is required also in case of VST Midi driver).
1. Insatall LoopMidi, add a virtual Midi Port and give it a name (e.g. FSMP) and set it to start with Windows (right click context menu on the system tray)
2. In Coolsoft Midi Mapper set the added Virtual Midi port as the default Midi out port for Windows.
3. Start Midiplayer.exe and in Device Setting Dialog choose the Virtual Midi port as active Midi in port.
4. in MidiPlayer's main menu set 'Start with Windows (System Tray)' .
Now you are done. All x86/x64 software should use syxg50 for Midi music even after restart.
VST MIDI Driver is downloadable again from the kode54's home page (the latest build is from 2018/11/08).
Falcosoft, let it be the first comment on this page, at list for now. I'll review the text of the page later, to add your way as an alternative.
that was perfect.
First of all, my English is not good. I have used Google Translator.
Hi, you changed our world. I hope your world will be better.
This software was really good with the YXG voice bank. You have revived my memories.
Still YXG's abilities have not been shown to all people.
It's very good if all YXG functionality can be used.
It was almost like the original YXG sound. But does it have all the facilities?
A yamaha soft synthesizer or SF2 or VST with all its capabilities. i mean the following parameters: syx, rpn, ntpn, cc, pg, msn, lsb, ... ?
Thank you for your great and exact work
Thank you for providing this software.
And also because you read this text with patience and care.
I wish there was a software to run on Windows (64 bits) that we could use to execute various effects commands. For example, SYXs and especially the scale tuning commands for specific notes. . Especially notes "Sori / Koron" in the Iranian, Arabic and Oriental ُScales.
Also, we would like to have ready-made Sys ready to send and receive the best settings on the DS-XG.
I wish you were introducing a complete console to implement the XG, GM or GS commands. Thank you .
You can use my software as a console to send XG, GS, GM etc. SysEx messages to S-YXG50 VSTi.
You can use both saved .syx files and literal HEX strings. Heres' a video about it:
Usable effect commands can be found in Yamaha's XG specification:
Thank you so much.
All your content was helpful to me. I hope you will succeed in your work.
After Win 7 x64, my Yamaha sound card is unusable,
and for the past 10 years I've been hoping to be able to put Yamaha back on my computer again.
It's much better if you have the sysx for the steps (Sori, Coron) on the site.
For example, this SYSx can set the B-note on Yamaha XG roughly ( quadrant nuoe ).
Of course, the 10-channel notes in this order are not related to the drum.
Note “B” on each channel (except Ch. #10) will be bumped by a quarter.
B Coron For Yamaha XG:
F0 43 10 4C 08 00 4C 0E F7
F0 43 10 4C 08 01 4C 0E F7
F0 43 10 4C 08 02 4C 0E F7
F0 43 10 4C 08 03 4C 0E F7
F0 43 10 4C 08 04 4C 0E F7
F0 43 10 4C 08 05 4C 0E F7
F0 43 10 4C 08 06 4C 0E F7
F0 43 10 4C 08 07 4C 0E F7
F0 43 10 4C 08 08 4C 0E F7
F0 43 10 4C 08 10 4C 0E F7
F0 43 10 4C 08 11 4C 0E F7
F0 43 10 4C 08 12 4C 0E F7
F0 43 10 4C 08 13 4C 0E F7
F0 43 10 4C 08 14 4C 0E F7
F0 43 10 4C 08 15 4C 0E F7
About VST MIDI Driver (as a system MIDI synth)
In Win8.1 x64 after the installation of the "VST MIDI Driver",
the "Advanced" option is not available.
on the win 7 x 64
And for this reason , "Media Player Classic" could not use the"VST MIDI Driver " and used the default system "wavetable"
, certainly was not suitable for running xg files.
Of course, I could use VST MIDI Driver using winamp.
The MidiPlayer player works well on Windows 8.1.
But it's a problem with Windows 7.
Meanwhile, MidiPlayer could not use the VST MIDI Driver on the win 7 x 64.
I do not know where the problem is.
Hello VEG, thank you for this ! I use it as a VSTi and also with the VST MIdi driver.
Am I the only one that can't get variation FX to work ?
I have tried to activate Variation FX with Sysex, or with the Shiru's control panel, but sending CC 94 (Varaiation send) have no effect.
pquenin, bi2_polkovnik.mid also sounds not as expected? Please check S-YXG50's settings. Probably, you accidentally disabled the Variation effects.
> Usable effect commands can be found in Yamaha's XG specification
Look to https://soundprogramming.net/manuals/Yamaha_MU100_SoundList_and_MIDIData.pdf (from https://soundprogramming.net/synthesizers/yamaha/yamaha-mu100/ ), yet.
bi2_polkovnik.mid sounds good (in XGWorks), but it has the Variation effect block connected as a insertion effect. I want to use the Variation effect block as a third system effect, with the FX send controlled with the Midi CC 94. It works if I use Yamaha XGWorks software with S-YXG50 as a midi driver.
But I can't get it to work in another DAW with the VST plugin, even if I export the XGWorks song as a midi file that contains all the sysex to set the Variation effect block in System mode.
Isn't the "Variation" checkbox in the S-YXG50 plugin's settings a way to set the Variation effect block in System mode ?
I have tried other tests :
- import the bi2_polkovnik.mid in Podium DAW with S-YXG50 as a midi out driver : OK.
- import the bi2_polkovnik.mid in Tracktion 7 DAW with S-YXG50 as a VSTi : KO, I have not the variation effect on the guitar.
So it's seem OK if used with VST Midi driver, and KO if used as a VSTi plugin...
Unfortunately, I can't help you because I'm not a music creator, and I don't know the tools which are used for this purpose. I use S-YXG50 for playing old MIDI files only.
The plugin itself has no problem with variation/insertion effects.
So the problem must be your VST Host. With my Midi Player that is also a VST Host I could use both effect modes:
Effect associated with a fixed channel:
Effect associated with CC# 94:
Yes, I have tested Shiru's control panel with my XG keyboard and I also have this problem, so it's not a S-YXG50 problem.
There is a sequence of sysex messages that must be send o the device to make this to work, I have tried some with without success...
Will check your vids ASAP...
I have tried in different VST hosts : Mulab, Podium and Tracktion... What I don't understand is that it's OK if S-YXG50 is called via a midi driver (VST Midi driver), but it's KO if I use the VSTi directly in the Host...
Falcosoft, I just watched your videos, and the comments with the sysex massages, will try this when back home.
Your midi player looks great ! Does it work on Windows 10 ?
Falcosoft, I can't find the meaning of :
F0 43 10 4C 02 40 00 00 F7
F0 43 10 4C 02 40 01 3D F7
F0 43 10 4C 02 40 0D 41 F7
F0 43 10 4C 02 40 11 43 F7
Oh, just found that it's EQ settings...
1. Yes, Midiplayer works perfectly under Win10 (I'm using it myself under this OS, too).
There is a version that is pre-configured to work with S-YXG50 plugin so if you download this version you have no other things to do, just use it:
1. Unfortunately some DAWs can only handle SysEx messages correctly when using an external Midi port. Maybe it's because SysEx support was introduced relatively late in VSTi world (VST 2.3 or 2.4?) so even big name hosts like Cakewalk has problem with SysEx handling in case of VSTi plugins.
Reinforcing this, the not so long ago released Roland SC-VA plugin that requires heavy SysEx message support for all its features to work mention in its documentation the tested hosts that work perfectly with the plugin, and the list is unfortunately not too long:
OK thank you for this explanation, I understand what is happening now...
You can add these hosts to the list of applications that don't work :
- Mulab, Tracktion, Podium, Reaper...
I have installed Midiplayer, it works perfectly and is great ! Thank you !
I do not know the others well, but Reaper is definitely not one of them. Reaper can send SysEx messages with the help of the built-in ReaControlMidi VST plugin. I have just tried and it works also with S-YXG50 VSTi.
Yes, you're right, it works in Reaper 32bit and 64 bit !
I'm new to Reaper (I have installed it just for testing the S-YXG50 panel and S-YXG50 VSTi) but I realize that it's an awesome DAW !
Can you make a GS default version of this? Is for work in the TG300B mode in FL Studio... since that in FL always open in XG mode.
Isn't TG300B-mode just a subset of the XG voice map?
In any case, a GS reset at the start of your MIDI track would put the S-YXG50 into TG300B-mode. Problem is, I can only find XG and GM Reset commands in the SysEX event palette for the S-YXG50 in SOL2.
Henry is right, sending GS Reset SysEx puts S-YXG50 into TG300B-mode. The problem is modern DAWs are not particularly good at sending SysEx messages to VSTi plugins. See discussion above. If you can find a way how to send any SysEx messages in your DAW then your problem is solved. You have to send these bytes (GS Reset SysEx):
F0 41 10 42 12 40 00 7F 00 41 F7
Thanks! Didn't even realize this was an option, very handy for more authentic General MIDI emulation in DOSBox, sounds really good with the games I tested it with, better than anything else I've tried imo imo including soundfonts, volume of course is more balanced too because of it being a proper ROM.
Thanks for putting this up. Is there any way to code this VST to allow audio input so that the effects could be used in plugin form?
When you have installed the driver and driveS-YXG50, there is a syxg50 vst (1 out) that works even on W10 (flstudio 64 bit).
To read, change the instruments, see all functions you can install XG-Wizard but free of charge you can not save
I noticed that it was mentioned in the blog that full XG support can be enabled in SGP.DLL. Are there any guides on how to do this? Google doesn't seem to be particularly helpful here.
Slender, I did it on my machine as an experiment. Since SGP.DLL contains exactly the same version of the synth engine (but without GUI and with disabled XG), it makes no sense to provide instructions how to patch SGP.DLL to enable full XG support. Portable version of S-YXG50 VSTi exposes some internal settings into ini file, so you can change them. If you want, you can turn syxg50.dll into SGP.DLL just by using this ini file (it should have the same name as your copy of the "syxg50.dll", but with "ini" file extension):
XGLite=2limits the synth engine to XGLite v2, and
DisableGUI=1disables GUI. You can even remove images and dialogs from the DLL resources (using ResHacker) to make it even closer to SGP.DLL in terms of file size, and it will work properly.
Hello. I am looking for full-version of XG-Wizard & XG-Gold. A long time ago, a user at this post, provided links, but they are dead. Can anyone help?
Maybe it is Windows Defender False Positive? Thank you.
Oddly it seems that setting XGLite to 2 in syxg50.ini appears to change some sounds, such as the Cuíca. For a while I thought that was a difference in the synth that was associated with SGP.DLL, but it turns out that isn't the case. :)
Slender, XGLite=2 makes SYXG50.DLL to behave like SGP.DLL. SGP.DLL uses exactly the same engine, just with different settings (full XG is disabled) and with GUI removed.
Does anybody have more information about the "SoftSynth YAMAHA YmF-724 44100 16-bit (9,67mb bank)" which had been posted here by Wlad back in 2017:
It's actually really good apparently and I wondered if it is even superior to the S-YXG50 regarding instrumentation or other technical aspects. Also it would be nice to know a bit more about who made it and how.
It is a fan-made version of Yamaha S-YXG50 with sound bank based on the data from the Yamaha YMF-724 driver. It is made by Wlad. Size of the bank is increased synthetically using interpolation. But I would prefer to have original sound data from YMF-724 driver without interpolation.
Ah, I see. I thought it was an independant project without any connection to this one. If it's rather a mod, I guess it's best to stick to the original plugin. Thanks a lot for the clearification!
erroneous opinion) The mod is better than the original, as well as AMG is better than Mercedes.
I'm also searching for a complete version of XGold, the link above is dead. Did you have success?
XGold and beyond, on the Russian version of the blog.
The https://kode54.net/vstmididrv.exe link is wrong.
I downloaded it from here: https://sites.google.com/site/f90d83a8/home/vstmididrv_w_syxg50
After the YXG50 configuration, the problem is "VST Midi Synth - midi out device open failed!" in many midi softs.
What is the problem?
midi question, try this one https://drive.google.com/file/d/1iF19MmVS9e9aC97XUG-M_UAiEM945tw9/view
Hello VGE and friends. I was missing this address.
After downloading your software, I did a very old and favorite job again. Thank you all
VSTi Yamaha TyRUS https://www.youtube.com/watch?v=k1XgncyIDws
I recently bought Steinberg 2 channel USB audio interface. Made in China for Yamaha and, of course, it's now removed my XG VSTi set up. Has any one any ideas how I can reinstall the VST and driver agin please? I don't like some of the links - my virus cheker blocks them.
Further, I've managed to get the VST MIDI synth back but no sound. Any ideas please?
Port a and Port B both showing.
Could somebody explain (step-by-step) the best way to install the Yamaha S-YXG50 VST synth and get it working with 64-bit Cakewalk by Bandlab (on Windows 10).
Hi Steve Case,
Believe it or not, this is exactly what I did few days ago (both on Windows 7 with Cakewalk Sonar and Windows 10 64bit with Cakewalk by Bandlab)
1. Download and install the VST Midi Driver from the link provided by cs127 above. The MD5 of the file is f424977f72692f135f4ab0996da27434.
2. Copy the syxg50.dll from the yamaha_syxg50_vsti.7z into any directory. I put it in C:\Program Files (x86)\yamaha_syxg50_vsti\syxg50.dll. You may need admin rights to do that so don't get scared.
3. Click on Configure VST MIDI Driver from the windows start menu (or C:\Windows\SysWOW64\vstmididrv\vstmididrvcfg.exe), click on “Load VSTi” button and point it to the syxg50.dll file that you put somewhere in step 2.
Congratulations! At this point you got virtual Yamaha DB-50XG in your system which works exactly like the hardware!
For some weird reason the VSTi version never worked in Cakewalk. If you don't have Yamaha DB-50XG for comparison, you may think that using it as VSTi is fine but it is not!
5. Now open your Cakewalk, go to Edit -> Preferences [MIDI] -> Devices. In the Outputs section you should see two new midi devices:
VST MIDI Synth (port A)
VST MIDI Synth (port B)
Check them both to get two devices, each with 16 midi channels.
Please note that the VST MIDI Synth is using the Windows System audio output!
Now the problems:
1. The output volume slider doesn't work here.
Solution - you can add SySex message in your midi files to change the output volume.
When used as VSTi directly in Cakewalk, the latency is compensated but not when it is used as virtual hardware device. It could be because Cakewalk thinks that the hardware midi devices should have no latency at all? Anyway, if you want to sync only that virtual midi Yamaha device with your audio, the easiest solution is to go to Edit -> Preferences [Audio] -> Sync and Caching and set the Timing Offset (msec) to a value that will sync your audio and midi (120 msec did the job for me).
It is really huge to finally have the Yamaha VSTi working just like a real Yamaha DB-50XG. If it is still not clear - never use the Yamaha VSTi in Cakewalk as VST instrument, it just doesn't work right. It never did with any version of it for the last 20 years.
Thanks to all who made this possible!
Is there a source code available for the VST MIDI Driver?
Way back when, I had the Midi daughtercard on my Sound Blaster, and the S-YXG50 VSTi plugin sounds exactly like my memories of it.
I was able to get Foobar running with the plugin and it sounds great. I would like to get setup with the plugin as a Windows Midi driver. I am running Windows 10 v. 1909, and I tried to get it set up using the VST midi driver, but was not able to get any sound using the driver. I also tried using the CoolSoft MIDImapper to specify the default Midi device, but no luck. Any idea if this is still possible on the newest Windows versions?
@Falcosoft Thanks very much for your additions to this thread. I tried your suggestion in post #101 to set up using your media player and a MIDI loopback (I tried loopMIDI per your suggestion). While it works, the volume output is extremely low. Is there any way to adjust this?