Управляйте воспроизведением хоста с помощью плагина JUCE audio VST

Я пытаюсь найти способ управлять позицией/темпом воспроизведения VST-хоста из сборки плагина VST с помощью JUCE.

Я не уверен, возможно ли это.

Я нашел функцию setPlayHead на AudioProcessor, и я думаю, что это может быть то, что я ищу.

https://www.juce.com/doc/classAudioProcessor#a9015f8476c07b173e3c9919b3036339d

Но в документе setPlayHead я читаю это:

Tells the processor to use this playhead object.

Так может ли кто-нибудь сказать мне, должно ли это означать, что новый AudioPlayHead, установленный на AudioProcessor, будет использоваться для воспроизведения хостов (zb Cubase), или это означает, что только AudioProcessor моего плагина VST будет использовать этот AudioPlayHead, и AudioPlayHead хоста остается незатронутым)

Спасибо за любую помощь / вклад в это.


person 80prozent    schedule 13.09.2016    source источник


Ответы (1)


Таким образом, секвенсор не может управляться плагином VST. VST API не позволяет ничего подобного. Метод, который вы нашли, на самом деле является частью Juce API, который позволяет секвенсору передавать структуру точки воспроизведения в плагин.

Справедливости ради, нет технической причины, по которой плагин не мог бы этого сделать. Хост должен будет предоставить неофициальный пользовательский код операции и связанный с ним canDo для этой функции. Однако это не будет частью стандарта VST и будет работать только для этого конкретного хоста.

Насколько я знаю, ни один крупный хост VST (включая Ableton Live, Cubase и т. д.) не имеет механизма, позволяющего это сделать. Думая с точки зрения хоста, было бы немного сумасшествием предоставлять такой механизм. Только представьте несколько плагинов, пытающихся остановить/воспроизвести воспроизведение хоста одновременно!

Так что да, извините, но это на самом деле невозможно, как вы думаете. Однако плагин VST может управлять темпом хоста (но не состоянием воспроизведения) через Ableton Link. . Поскольку Link работает через локальный сетевой сокет и не имеет понятия master/slave, плагин VST теоретически может отправлять изменения темпа на хост таким образом.

Прямо сейчас (где «сейчас» == сентябрь 2016 года) Ableton Live является единственным секвенсором, который поддерживает Link, но Ableton заявила, что они работают с другими компаниями, чтобы помочь им добавить поддержку Link, поэтому я не удивлюсь, если больше секвенсоров начнут добавлять поддержку Link в ближайшем будущем.

person Nik Reiman    schedule 13.09.2016
comment
Спасибо за ваш ответ. Не совсем тот ответ, который я искал, но имеет смысл для меня. Публикация вопроса здесь была моим последним средством, но я уже понял, что это не будет успешным. - person 80prozent; 14.09.2016