Well, it took me a while to understand why alpha17 was so bad on your PCs and not on mine.
I've left some debug code in, and removed it just after building the setup (instead of just before)... please forgive me.
I agree... ;)turkeybaster5723 wrote:It's hilariously broken.
Oh no, the queue is always active, there's no formula to decide when activate/deactivate it.Ray890 wrote:by queuing MIDI events after a certain data threshold determined by some sort of magic formula
Driver and Synth are two different processes: the first is the .exe of your MIDI player, the latter is VirtualMIDYSynth.exe.
When I talk about a MIDI queue I mean the Shared Memory IPC queue between the two processes.
Alpha17 (badly) intruduced some kind of queue wait; I mean, when there's no space available in the queue, the queue producer will wait for more space to become available (it also added a bad pointer corruption that broke everything, but I already apologized for that...).
Alpha18 will always (and immediately) returns an answer to the MIDI client: MMSYSERR_NOERROR if message was enqueued, MMSYSERR_NOTREADY otherwise.
Now is up to the client to decide how to manage failures: delay data rate, discard/retry failed MIDI message, ...
This is something I'm working on.Ray890 wrote:All non-percussion channel's instruments are reset to acoustic grand piano when the audio returns from live-applying a setting
Most of it is completed (programs assignment, reverb and sustain levels, volumes), but I also need to resend all the SYSEX messages that were sent when play started.
I mean, when you start playing, the player sends a lot of SYSEX messages to set synth mode (GM, GM2, XG, ...) then it sends a lot of control messages to set program (instruments), controller levels and lot of other things.
Well, actually I should store these messages in a cache and "replay" them once the device is live-restarted. This cache could be both time and memory critical.
Fixed in Alpha18Ray890 wrote:Launching VMS can occasionally cause the mixers activity indicator to become stuck...
Will release Alpha18 in a minute or two.