The new BASSMIDI is definitely faster. I just ran my own latency test with a microphone and MIDI-OX to send output to each synth. The time is measured in seconds from the beginning of the sound produced by the physical key being struck on my test Yamaha EZ-200 (with "Local" set to Off), until the beginning of the sound produced by the synth. For SoundFont-based synths, the same SoundFont was used for each.
- latencyTest.png (11.58 KiB) Viewed 117300 times
Having MIDI-OX send events back out to the keyboard, it was tricky to discern exactly how fast the keyboard's synth itself was. "Instantaneous" is probably fair. The 0.016 listed there is more of a guess. The key strike sound was nearly indistinguishable from the keyboard's resulting audio.
That said, after updating to the latest version of VirtualMIDISynth and cranking the "Additional output buffer" on the "Advanced options" tab of the Configurator all the way down to zero, it was also pretty hard to tell the difference. So, CoolSoft's is something I'd describe as effectively zero-latency too. (Remember, these are measurements from the
start of the key-strike sound, where that sound usually lasts about 40-50ms itself!)
All told, both BASS-backed virtual synths are now fast enough to make real-time playing in Synthesia a reality. It's very exciting to see both coming along. Actually, now that I've seen these results, I'm second-guessing my plans to create a software synth in Synthesia. There doesn't seem to be any need when free, high-performance, low-latency synths are already out there. There is something to be said for convenience, I suppose: making things as easy as possible for less-sophisticated users is nice. Though I wouldn't have been able to ship any SoundFonts with Synthesia anyway, so it would have already been additional setup. And the setup programs for either virtual synth are both very nice now.
Regarding VirtualMIDISynth violating BASSMIDI's source license, that's a pretty serious allegation. Is there any proof? The dates listed in the changelog for VirtualMIDISynth start right around when you first mentioned BASSMIDI here on the Synthesia forums and the changes from version to version between the two seem different enough. That they each have different feature sets now and different performance seem to further indicate they're distinct code bases. Since they're both simple wrappers around the BASS library, it seems conceivable enough to me that they could have coincidentally gotten started around the same time and ended up similar because of the limitations/features exposed by the shared underlying library.
I suppose I could ask Claudio. He has been known to
post around these parts too. In that particular post he mentions he plans to open-source the 1.4 release. Once he does, it should be a simple enough matter to compare the two code bases to see if any kind of foul play has occurred.
Worst-case scenario, he adds the
license text to his source distribution and things have gone from "illegal hack" to "perfectly legitimate use of the BASSMIDI source".