VirtualMIDISynth 2.1 - Release Candidate 2

Pages

Posts: 1121
Joined: March 25, 2012 - 01:19
VirtualMIDISynth 2.1 - Release Candidate 2

BEWARE: VirtualMIDISynth 2.1 final has been released, attachments removed!

This is the Release Candidate of VirtualMIDISynth 2.1.

Noticeable changes: Virtual MIDI devices can now be shared between clients.
In other words, VirtualMIDISynth #1 could be used by more than one MIDI client at the same time.

NOTE: this is still experimental and could lead to unexpected behaviors.
I don't mean your system will crash, but MIDI play could have issues for sure.
DO NOT USE IT for live performances!

NOTE: this thread continues the discussions started in these previous ones (now closed):
http://coolsoft.altervista.org/forum/thread/459
http://coolsoft.altervista.org/forum/thread/496

Posts: 24
Joined: June 26, 2015 - 03:15
Re: VirtualMIDISynth 2.1 - Release Candidate

Hi, Chief,

Well, how lovely, the multi-client capabilty.

Installed OK, works so far on several apps (in basic testing), multi-client aspect seems good so far.

Thank you so much.

Best regards,

Doug

Posts: 17
Joined: March 12, 2013 - 16:32
Re: VirtualMIDISynth 2.1 - Release Candidate

Hi Claudio

I tested the new (beta) version, that support multiple MIDI sources at once.
It seems to work fine.

I just found one thing.
For example Microsoft GS Wavetable Synth propably creates new instances for every MIDI source.
Several sources can play thru the same channel, but every source have own settings: instrument, panorama,...
and note off in one instance don't close the same note in the other instances.

Best Regards
Vaclav Mulle

Posts: 1121
Joined: March 25, 2012 - 01:19
Re: VirtualMIDISynth 2.1 - Release Candidate

You're right: Microsoft GS Wavetable Synth is an in-process synth (like VMS 1.x was), so each instance is separated from the others.

Multiclient feature in VMS2 is actually implemented like a "hardware multiplexer", so multiple MIDI streams are "mixed" to the same MIDI device.
It's like having a single hardware MIDI synth connected to multiple keyboards: the last event wins, so if keyboard A sets GrandPiano to track 1 then keyboard B sets Flute, then track 1 will be flute.

It actually only allows the multiple (but not simultaneous) clients usage, i.e. a notation program and a player.

I'll improve it to have really separated synths-per-client, but it requires more work and testing (I suppose memory usage will increase a bit).

Another required feature is ready to be released: multiple output device, that allows to set a different audio device to each VirtualMIDISynth #X device.
I'll release an RC for that and, maybe, it will be released in 2.1, before multiple clients.

Posts: 24
Joined: June 26, 2015 - 03:15
Re: VirtualMIDISynth 2.1 - Release Candidate

Hi, Cluadio,

coolsoft wrote:

Multiclient feature in VMS2 is actually implemented like a "hardware multiplexer", so multiple MIDI streams are "mixed" to the same MIDI device.

Yes, and that is very nice. Although "this is not your job to fix", it allows me to overcome bad behavior of the notation program Overture which, upon startup, "connects to" all MIDI devcies that it discovered, whether or not they have been marked as "enabled" on the Overture MIDI device management dialog.

If VMS did not have multi-client capabilities, this bad behavior would, so long as Overture is running, prevent any other application from connecting to any instance of VMS, which might well prevent that application from starting..

Or, if another application is running, and connected to an instance of VMS, Overture can't be started as it finds it connot connect to that instance of VMS (even though it is set not to use it).

So thanks so much for this improvement.

Best regards,
Doug

Posts: 1121
Joined: March 25, 2012 - 01:19
Re: VirtualMIDISynth 2.1 - Release Candidate

Thanks for your kind words.
Anyway it still seems "half done, almost incomplete", at least to my eyes.

I also wonder how much will it take for the first user coming to the bug forum and report something like "strange sounds coming from VMS", or "VMS does not obey program or control changes"...
It will surely require a lot of time before detecting that the user is using two or more configured MIDI clients on the same VMS device.

IMHO if users are allowed to set two or more clients on the same virtual device, they should not mind the "technical background" of this choice; each client should play as it is the only one connected.
I don't know how much work will it take, but that's my will before releasing the feature to the stable branch.

coolsoft wrote:
Another required feature is ready to be released: multiple output device, that allows to set a different audio device to each VirtualMIDISynth #X device.
I'll release an RC for that and, maybe, it will be released in 2.1, before multiple clients.
This feature is complete and does not actually have any issue.
That's why I'm going to release an RC just for that and, if no issue arise, will release it in 2.1.

So:

  • 2.1 will have multiple output device but not multiple client
  • 2.2-beta will have multiple output device and the current beta version of multiple client
Posts: 8
Joined: January 1, 2016 - 17:54
Re: VirtualMIDISynth 2.1 - Release Candidate
coolsoft wrote:
This is the Release Candidate VirtualMIDISynth 2.1.

Noticeable changes: Virtual MIDI devices can now be shared between clients.
In other words, VirtualMIDISynth #1 could be used by more than one MIDI client at the same time.

Dear Mr. coolsoft

I now have the time to test the RC1, and it's working fine with multiple instances. Thank you very much.

One observation: On the "About page" the device is always shown as free, even if a program is playing...

Windows 7 Home Premium (64 bit), Service Pack 1 (6.1.7601)
VirtualMIDISynth: 2.1-RC-SharedMidiDevices (x64)
Memory (MB): total 16278, free 12781 (79%)
Available devices: 1
* VirtualMIDISynth #1: <free>
Active voices: 35
Rendering time: 4%
Update rate (ms): 1

Anyway, thank you for you efforts,

Posts: 1121
Joined: March 25, 2012 - 01:19
Re: VirtualMIDISynth 2.1 - Release Candidate

Thanks for your report.

bassklampfe wrote:
One observation: On the "About page" the device is always shown as free, even if a program is playing...

Is it always free or, once becomes free it won't get any other new ProcessID?
I mean, close everything including VMS, start a single MIDI client (VMS will start automatically) and look at the about page: is it already free?
If not, will it become free once you close the MIDI client? And does it remain free once you open the MIDI client again (or another one)?

Again, which MIDI client are you using?

Posts: 8
Joined: January 1, 2016 - 17:54
Re: VirtualMIDISynth 2.1 - Release Candidate
coolsoft wrote:

Again, which MIDI client are you using?

Ok, I did some tests

* Start vanBasco
=> VirtualMIDISynth #1: C:\Program Files (x86)\vanBasco's Karaoke Player\vmidi.exe (#3292)
* Stop/Restart play in vanBasco
=> still VirtualMIDISynth #1: C:\Program Files (x86)\vanBasco's Karaoke Player\vmidi.exe (#3292)
* Close vanBasco
=> VirtualMIDISynth #1: free
* Start vanBasco again
=> VirtualMIDISynth #1: C:\Program Files (x86)\vanBasco's Karaoke Player\vmidi.exe (#3236)
* Close vanBasco

* Start PriMus (my favorite notation program)
=> VirtualMIDISynth #1: C:\Program Files (x86)\PriMus\PriMus.exe (#6712)
* Play in PriMus
=> VirtualMIDISynth #1: free
* Stop in PriMus
=> VirtualMIDISynth #1: free
* Play in PriMus
=> VirtualMIDISynth #1: free

I believe, the difference is :

* vanBasco does one open on programstart and one close on programend

* PriMus opens/closes midi devices frequently during edit/play

But I'm not sure. Is there any debug/logging in VMS?

Posts: 24
Joined: June 26, 2015 - 03:15
Re: VirtualMIDISynth 2.1 - Release Candidate

Here are observations here, with VMS 2.1RC running under Windows 7:

******

Open Overture; it has the device VMS #1 enabled.

About shows: free

Start Overture playing into VMS #1.

About shows: free

Stop Overture; keep it open

About shows: free

******

Start Encore; set destination device as VMS #1

About shows: free

Start Encore playing into VMS #1.

About shows: free

Stop Encore; keep it open

About shows: free

******

Start VanBasco Karaoke player; set it to use VMS #1

About shows: free

Start VanBasco playing

About shows: PID #6852

Stop Van Basco, keep it open

About shows: free

******

Start Cakewalk Home Studio 2

About shows: free

Start Cakewalk playing

About shows: free

Stop Cakewalk, keep it open

About shows: free

******

Best regards,

Doug

Pages

warning

Warning, JavaScript is disabled!

JavaScript is not available, maybe because you disabled it globally into your browser settings or you are using an addon like NoScript.

We do not have any dangerous JavaScript running here.
Please enable JavaScript; if you're using NoScript this image will help you adding CoolSoft to your whitelist.

Thanks for your comprehension and enjoy CoolSoft.