Lmms: VST-host sync doesnt work

Created on 20 Jul 2018  路  5Comments  路  Source: LMMS/lmms

When you use the AcidBox-VSTi in "host sync"-mode, it starts and keeps playing since the plugin is loaded. LMMS doesnt control the play/stop (but it should). You can try this with the demo-version:

https://www.audioblast.me/acidbox.html

With other DAWs this works like excepted.

I talked to AudioBlast, the maker of AcidBox and they wrote to me the following lines:

"in fact, LMMS (or Vestige) doesn't transmit the host "transport bar" flags : the play / stop / loop etc.. are never sent to the plugin.
If you have access to the source code of LMMS/Vestige, search for kVstTransportPlaying and kVstTransportChanged ! "

Tested with LMMS 1.2.0 RC6 on Windows 10 und Windows 8.1.

bug vst

All 5 comments

Possibly a duplicate of #4351.

@andydld Have you enabled "Sync VST plugins to host playback" in settings? If not, try doing so, restart LMMS and see if the problem persists.

With activated "Sync VST..." the problem has changed. After loading AcidBox and click play on LMMS nothing happens within the plugin. After changing from "host sync" to another mode and switch back to "host sync" and an click on play, the pattern starts playing, but it seems, thats an wrong speed. If i then click stop and play again, nothing happens again.

Just one more feedback from AudioBlast:

"I also activated the "Sync VST to host playback" in LMMS and it's a little better, but LMMs has a problem with the "transport bar changed" flag : it sends continuously "changed" when playing, that's not the "standard" for VST hosts, this flag should be used for these cases only :

changing from stop to play
changing from play to stop
manually changing the transport bar position
looping

The continuous "changing" flag (many changes per seconds) makes the Acidbox crazy"

AudioBlast's feedback suggests that we use kVstTransportChanged in an improper way here:
https://github.com/LMMS/lmms/blob/b5dc70c20a3c4d8881bfd1bfc119b2a2581b706a/plugins/vst_base/RemoteVstPlugin.cpp#L1539-L1546

@DomClark Can you look into this?

FYI, this is how Ardour uses the flag: https://github.com/Ardour/ardour/blob/bdf8edc4198494505fb59f92ffc1aef9c1e2136f/libs/ardour/session_vst.cc#L274-L279

if ((timeinfo->flags & (kVstTransportPlaying | kVstTransportRecording | kVstTransportCycleActive))
    !=
    (newflags        & (kVstTransportPlaying | kVstTransportRecording | kVstTransportCycleActive)))
{
    newflags |= kVstTransportChanged;
}
Was this page helpful?
0 / 5 - 0 ratings

Related issues

Gabrielxd195 picture Gabrielxd195  路  3Comments

PaulBatchelor picture PaulBatchelor  路  4Comments

softrabbit picture softrabbit  路  3Comments

Spekular picture Spekular  路  4Comments

Andrewer11 picture Andrewer11  路  3Comments