VirtualMIDISynth 2.x is the second generation of VirtualMIDISynth. 2.x introduces a deep and important architectural change: Driver and Synth components have been split in two distinct parts, while the Configurator is now included into the new Synth.
The driver is still a DLL, loaded by the MIDI application as 1.x, but now it only contains the "windows multimedia driver" parts needed to identify the virtual MIDI device ("CoolSoft VirtualMIDISynth") to the system and receive MIDI streams from MIDI applications outputs.
The received MIDI stream is then forwarded to the new Synth component: a new, isolated and independent process that listens to VMS2 driver instances and plays the received MIDI streams. Synchronization between multiple driver instances could be done easily, from a single point.
Required BASS libraries are now loaded by the Synth process; so a MIDI application can use BASSMIDI Driver using BASS v.2.2 and VMS using BASS v.2.4 with no issues.
It is encouraged that we test the software out and leave feedback, reporting any additional bugs found to aid development.
Latest version: 2.0.1
Latest development version: 2.1 RC2
Development version history: Read changelog chart below
FIX: Mixers show wrong volume level (VUMeter was shared between devices).
FIX: Resize issues of Configurator tabs and "Additional buffer" option.
Alpha11 - March 20th 2015
FIX: x64 working again (alpha10 regression).
Alpha12 - April 11th 2015
NEW: Changed MIDI device name to a shortest form: "VirtualMIDISynth #x" instead of "CoolSoft VirtualMIDISynth (#x)" to make it easily recognizable in clients with short dialog controls (like some game emulators).
NEW: Added soundfont bank/preset support: double click on soundfont list items to set.
NEW: Soundfont preload is not a global option anymore; it is now an option of each soundfont.
NEW: Starting another instance of synth won't show the error message "Another instance is already running..." anymore; existing instance will now open its configurator dialog.
FIX: Fixed crashes in x64 build, causing some x64 softwares (like TeamSpeak Client 3 and possibly other x64 MIDI players) to crash under Win8.1.
FIX: Fixed wrong soundfont device assignment under some circumstances.
FIX: Fixed watchdog implementation, rewritten from scratch.
Alpha13 - April 29th 2015
NEW: Gain can now be set for each soundfont, allowing quieter/louder soundfonts to play together.
NEW: Virtual devices count is now a user configurable option, from 1 up to 4. Once changed, VirtualMIDISynth must be restarted to enable it.
NEW: Dialogs can now be snapped to all active windows.
NEW: Upgraded bassmidi.dll to version 22.214.171.124 that brings noticeable improvement in MIDI rendering efficiency with less CPU usage.
NEW: Added a new "About" tab to configurator, with some runtime informations.
NEW: A warning message is shown if the synth is closed with active clients.
FIX: Fixed Options tab controls overlapping.
Alpha14 - May 26th 2015
NEW: All settings changes can now be applied live.
NEW: Mixers can now be kept always on-top (through mixer context menu).
NEW: Option to set CPU usage limit.
NEW: Option to enable dynamic voices limit control.
NEW: Option to release only the last occurrence of a note when voices limit is reached.
NEW: Option to enable "sinc interpolation" (BASS_MIDI_SINCINTER flag).
NEW: Status box (into About tab) now auto updates its content when needed.
NEW: Added OS, memory, MIDI client and active voices info to Status box.
FIX: Improved soundfonts loading and their assignment to devices.
FIX: An error message is now shown when a soundfont file fails to load.
FIX: Fixed painting issues when resizing configurator dialog under Win8.
FIX: Fixed detection of WinXP-x64 that hasn't SP3 available.
FIX: Fixed linker parameter that prevented VMS running on XP
Alpha15 - June 7th 2015
NEW: Status box in About tab now updates itself more frequently.
NEW: New statistic added to status box: BASS update rate.
FIX: Dynamic voices limit algorithm fixed, now it only increases BASS update frequency without touching voices limit. Also removed configuration option, now it's always active.
FIX: Changed description of CPU limit setting (in BASS it's not a CPU percentage, like windows task manager, but render/play rate).
Alpha16 - June 25th 2015
NEW: Confirmation dialog, shown when VirtualMIDISynthAdd is being closed, now shows active clients process names and PIDs.
FIX: Lowered fast-mode threshold level, it now switches to 1ms update rate even with non-intensive MIDIs to avoid stuttering.
FIX: Disable Mixer VUMeter option is not applied live.
FIX: Increased watchdog timeout from 2 to 5 seconds, to avoid false positives when playing black MIDIs.
Alpha17 - July 22nd 2015
FIX: Fixed "Another instance of VirtualMIDISynth is already running..." bug when quickly restarting more than one instance of the synth.
FIX: Lowered update FAST mode threshold: 1ms update rate is now active for most of the time.
FIX: IPC MIDI queue deadlock with really fast rate MIDI traffic.
FIX: Optimized MIDI queue efficiency.
Alpha18 - July 29th 2015
NEW: Driver now returns MMSYSERR_NOTREADY if the queue is full; now is up to the MIDI client to decide if wait for queue free space or give up.
FIX: Fixed queue overflow issue.
FIX: MIDI Mixer sometimes stops updating.
Alpha19 - August 6th 2015
NEW: Added support for SFZ soundfonts.
FIX: Fixed paint issues when scrolling Options configuration tab.
Alpha20 - August 30th 2015
NEW: User can now add custom exe names to driver blacklist. These blacklisted executables won't load VirtualMIDISynth anymore. NOTE: actually there's no GUI for this feature, custom names must be manually added to VirtualMIDISynth.conf file, section "[Advanced]", key "ClientBlacklist".
NEW: Updated BASSMIDI to 126.96.36.199.
FIX: Optimized configuration parser.
Alpha21 - September 17th 2015
NEW: SoundFont filename can now be changed by double-clicking on it in soundfonts list.
NEW: SoundFont filesize is now shown in soundfonts list.
NEW: Increased voices limit to 2000, following BASSMIDI changes.
NEW: Updated BASSMIDI to 188.8.131.52.
FIX: MIDI devices now persist their state when BASS is restarted (i.e. after a configuration changes).
FIX: VirtualMIDISynth does not crash anymore if it goes out-of-memory loading large soundfonts.
Alpha22 - September 27th 2015
NEW: MIDIConverter feature to convert MIDI files to analog (WAV/MP3/FLAC). MIDIConverter uses the soundfont configuration of device #1. This feature is accessible from systray menu.