Mu2026 Hybrid
This is a separate, experimental 32-bit Windows VST2 instrument. It is not an update to S-YXG100 Hybrid or S-YXG2026 Hybrid.
What plays
MU2000 supplies the main XG voice set. Where a requested voice is not distinct in the MU2000 program ROM, the S-YXG2006LE engine can supply its additional voice. Native VL/PVL and SG workers handle their own MIDI parts. The plugin's unique ID and name differ from the existing Yamaha plugins.
Effects
The modified MU2000 engine accepts sixteen internal audio channels: eight stereo buses for dry, reverb, chorus, variation, and insertions 1-4. Audio from 2006LE and the native workers enters the appropriate MU2000 effect path before final output. Insertions 2-4 use the MU2000 slave DSP. MU2000 voices retain the effects implemented by S-MU2000. XG50 is neither loaded nor used for effects or voices.
Each insertion follows the MIDI part assigned by Yamaha SysEx. VL voices and 2006LE parts are routed separately. SG uses an insertion only when its worker output belongs to one assigned channel; a combined multi-channel SG output cannot safely be separated at this point.
External audio is level-matched before it enters MU2000's effects. The modified engine retains headroom above unity at that input so louder SG passages are not clipped before the effects stage. MU2000's own voices are unchanged.
Required files
Keep the VST DLL, mu2000-engine.bin, both worker executables, syxg2006le-engine.bin, its two table files, and both VXD files together. Provide the MU2000 program and wave ROMs in a roms subfolder. For a local test, roms.txt can instead contain a relative path to an existing S-MU2000 ROM directory. Relative paths are resolved from the plugin folder. ROMs and Yamaha binaries are not part of public source.
The program ROM is mu2000_flash.bin. The four 8 MB wave ROMs are xv364a0.ic49, xv365a0.ic50, xw848a0.ic53, and xw849a0.ic54, placed in the ROM layout expected by S-MU2000.
Instrument definitions and updates
The source repository includes definitions for QWS and Reaper. They combine the existing MU1000/MU2000 voice names with VL/PVL and SG names. Some inherited PLG expansion names may describe optional hardware that this plugin does not emulate.
Run Update Yamaha Hybrids.cmd from the plugin folder or its parent to check for signed code updates. Close Foobar, REAPER, VSTHost, and other audio hosts before installing. The updater preserves locally supplied Yamaha data, mu2026.ini, and roms.txt. It stores a compressed rollback outside the plugin folder.
Performance settings
The manual code package includes a default mu2026.ini beside the VST DLL. For a source build, copy Config/mu2026.ini there. At load, the plugin selects Yamaha's original firmware path for MU notes, controllers, envelopes and voice allocation, while external VL, SG and 2006LE audio still enters the MU effects buses. The older native=1 shortcut is no longer used, even if an existing INI retains it. It could omit drum filtering and change synthesized effects such as Feed. The suspend_unused=1 setting makes instances that have never received MIDI return silence without rendering the MU engine. Foobar's MIDI component loads three instances; with a single-port song, this avoids spending audio-thread time on the two silent ones. An instance starts normal rendering as soon as it receives any MIDI event. This does not change the standalone S-MU2000 plugin. Updates preserve your existing INI.
INI example and buffering guidance
Close the audio host before editing. Put mu2026.ini in the same folder as mu2026-hybrid.dll, not beside the updater if the DLL is in a separate VST folder. Keep only one [engine] section and update existing keys rather than adding duplicates. This is the recommended starting configuration:
[engine]
suspend_unused=1
vl_sg_gain=2.0
xgl_gain=0.75
If an older INI already exists, check that suspend_unused=1 is present under [engine]. If the file or key is missing, unused-instance suspension is disabled. Setting it to 1 avoids rendering instances that have never received MIDI; it does not suspend an active musical part or reduce polyphony. This is particularly useful in Foobar, but it cannot guarantee that every host or very small audio buffer will be glitch-free. Restart the host to load changes. Do not change the gain settings to cure buffering.
Version 0.1.2 ignores the old native INI key; it can be removed, but no manual change to that key is needed for the compatibility fix. Existing user INIs are deliberately preserved by the updater, so updating alone does not add a missing suspend_unused key. If audio still breaks up, try a larger host buffer and report the host, sample rate, buffer size, MIDI file and whether another application is in the foreground. For comparison, stress renders were checked at 44.1 and 48 kHz with 512-frame blocks; that is not a proven minimum buffer size.
vl_sg_gain in the same section sets the VL/SG worker gain before MU2000 effects. The default is 2.0, which balanced complete local VL and SG songs in listening tests. It does not change MU2000 or 2006LE voices.
xgl_gain sets the S-YXG2006LE fallback voice level before MU2000 effects. The default is 0.75, keeping the complete 48 kHz mix below MU2000's output ceiling without changing VL, SG, or MU voices. The MU engine preserves float headroom while resampling injected effects audio at rates other than 44.1 kHz.
Current limits
Internal audio injection is tested through MU2000 dry, reverb, chorus, system variation, and all four insertions at 44.1 and 48 kHz. VL, SG, and fallback voices can enter an insertion when assigned to their MIDI part; mixed SG output needs exactly one routed part. FatPizz's VL-only render changes when its CC94 system-variation send is removed, confirming a wet path, but the exact delay level against physical hardware remains unverified. Shellshk's drum pitch and variation delay were corrected and confirmed in live Foobar playback. A first VL note can still cause an audio-thread setup spike; 96-sample live buffers, long sessions, simultaneous insertion assignments to one part, and physical PLG-board fidelity need more testing.
Licensing
The wrapper is based on S-YXG2026 Hybrid and retains its MIT license. The modified S-MU2000 engine fork credits the original project by tarboh and retains its BSD 3-Clause license and third-party notices. Yamaha firmware, ROMs, tables, and VXD files are not covered by those code licenses and must be supplied separately by users with appropriate rights.