osxmidi / LinVst

Linux Windows vst wrapper/bridge
GNU General Public License v3.0
674 stars 41 forks source link

Does LinVst support sendVstTimeInfo as both client and host? #172

Closed taji closed 3 years ago

taji commented 3 years ago

Running into a problem with running Plogue Bidule as a VST inside of Reaper (Linux) via LinVst. The plugin is loading fine and is processing audio and midi but the transport inside of Bidule isn't following Reaper's playback. I've also tested this same setup using Carla and the transport is syncing with out issue (however Carla has other issues as well).

I reached out to the developer at Plogue and he indicated that the Bidule VST plugin makes a "sendVstTimeInfo" request to the host so that Bidule can sync playback. It would seem to me that LinVST would have to forward the request to Reaper and then return Reaper's response back to Bidule VST. Is this supported? If so, any ideas on how to troubleshoot?

I'm running:

osxmidi commented 3 years ago

Running into a problem with running Plogue Bidule as a VST inside of Reaper (Linux) via LinVst. The plugin is loading fine and is processing audio and midi but the transport inside of Bidule isn't following Reaper's playback. I've also tested this same setup using Carla and the transport is syncing with out issue (however Carla has other issues as well).

I reached out to the developer at Plogue and he indicated that the Bidule VST plugin makes a "sendVstTimeInfo" request to the host so that Bidule can sync playback. It would seem to me that LinVST would have to forward the request to Reaper and then return Reaper's response back to Bidule VST. Is this supported? If so, any ideas on how to troubleshoot?

I'm running:

* Ubuntu Studio Ubuntu Studio 20.04 LTS

* LinVST 3.2.1 (today!)

* wine-5.0 (Ubuntu 5.0-3ubuntu1)

* and the latest stable versions of Bidule and Reaper.

No it doesn't.

It's a bit of a rare one.

I've made some changes for it in the file below but whether it works or not I don't know.

If it does or doesn't work let me know, and I'll try to work it out or add it to the main code.

LinVst-3.2.1-Plogue.zip

LinVst-master-Plogue.zip

taji commented 3 years ago

Thanks for the quick response. :-)

Will try to test tonight.

taji commented 3 years ago

Good news. Your patch worked :-) Bidule is now tracking the playback transport. Bidule's built in sequencer's transport follows fine. This may be TMI, but bidule has a module that extracts all of the time data into separate values. I verified that all of these are working as well. Here is the list of values (from the manual):

Playing Output: sends 1 when playing and 0 when not BPM Output: the current BPM Numerator Output: the current time signature numerator Denominator Output: the current time signature denominator Samples per beat Output: # of samples per beat ppq Pos Output: the current ppq position Last Bar started at Output: start ppq of the last bar Trigger at bar Start Output: sends a 1 at each start of bar

Let me know if you need anything else tested.

osxmidi commented 3 years ago

Good news. Your patch worked :-) Bidule is now tracking the playback transport. Bidule's built in sequencer's transport follows fine. This may be TMI, but bidule has a module that extracts all of the time data into separate values. I verified that all of these are working as well. Here is the list of values (from the manual):

Playing Output: sends 1 when playing and 0 when not BPM Output: the current BPM Numerator Output: the current time signature numerator Denominator Output: the current time signature denominator Samples per beat Output: # of samples per beat ppq Pos Output: the current ppq position Last Bar started at Output: start ppq of the last bar Trigger at bar Start Output: sends a 1 at each start of bar

Let me know if you need anything else tested.

Thanks.

I'll add the changes into the next LinVst release.

taji commented 3 years ago

Great! Thanks again for the quick and thorough turn around. :-)