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.

Links

  1. #101
    Falcosoft

    @VEG
    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:
    http://falcosoft.hu/midiplayer_syxg50.zip
    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:
    https://www.tobias-erichsen.de/software/loopmidi.html
    Coolsoft Midi Mapper to set the default Midi out on Windows 10 (it is required also in case of VST Midi driver).
    https://coolsoft.altervista.org/en/midimapper

    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.

  2. #102
    VEG Author

    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.

  3. #103
    RayMan

    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.

  4. #104
    sa.rayman2

    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 .

  5. #106
    sa,rayman2

    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

  6. #107
    sa,rayman2

    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.

  7. #108
    pquenin

    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.

  8. #109
    VEG Author

    pquenin, bi2_polkovnik.mid also sounds not as expected? Please check S-YXG50's settings. Probably, you accidentally disabled the Variation effects.

  9. #111
    pquenin

    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 ?

  10. #112
    pquenin

    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...

  11. #113
    VEG Author

    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.

  12. #114
    Falcosoft

    Hi,
    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:
    https://youtu.be/w8qfXEpifvI

    Effect associated with CC# 94:
    https://youtu.be/XWCv9jaUUm4

  13. #115
    pquenin

    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...

  14. #116
    Falcosoft

    Hi,
    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:
    http://falcosoft.hu/midiplayer_syxg50.zip

    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:

    The following host applications (DAW) have been verified to work properly with the plug-in version SOUND Canvas VA Ver.1.0.0.

    [Windows]
    Windows® 7 SP1/Windows® 8/Windows® 8.1/Windows® 10
    - Steinberg Cubase 8 Series (32-bit Edition/64-bit Edition)
    - Steinberg Cubase 7 Series (32-bit Edition/64-bit Edition)

    Due to host application specifications, system exclusive messages cannot be sent from tracks to SOUND Canvas VA in the following hosts.

    [Windows]
    Windows® 7 SP1/Windows® 8/Windows® 8.1/Windows® 10
    - Cakewalk SONAR PLATINUM/Professional/Artist(32-bit Edition/64-bit Edition)
    - Ableton Live9 (32-bit Edition/64-bit Edition)
    - Ableton Live9 Lite (32-bit Edition)
    - Presonus Studio One 3 Professional (32-bit Edition/64-bit Edition)

  15. #117
    pquenin

    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 !

  16. #118
    Falcosoft

    Mulab, Tracktion, Podium, Reaper...

    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.

  17. #119
    pquenin

    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 !

  18. #120
    JexuBandicoot527

    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.

  19. #121
    Henry

    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.

  20. #122
    Falcosoft

    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

  21. #123
    Paul

    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.

  22. #124
    Jesse

    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?

  23. #125
    Paulo

    (Google translate)
    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

  24. #126
    Slender

    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.

  25. #127
    VEG Author

    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):

    [SYXG50]
    VoiceTable=
    Process=0
    XGLite=2
    DebugPanel=0
    DisableGUI=1

    XGLite=2 limits the synth engine to XGLite v2, and DisableGUI=1 disables 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.

  26. #130
    Sam

    Trojan:Win32/Spursint.F!cl

    No thanks!

  27. #131
    Sam

    Maybe it is Windows Defender False Positive? Thank you.

  28. #132
    Slender

    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. :)

  29. #134
    VEG Author

    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.