Что нужно чтоб загружать VST ? (1 онлайн

Technomax

Moderator
26 Дек 2002
3.090
710
113
Питер
forums.somethingawful.com
Привет, подскажите, есть в FL плагин PAtcher, он может грузить в себя сторонние плагины и потом к ним (плагинам) можно подключать разные крутилки для управления элементами загруженного VST, по какому протоколу идет обмен ? Как он считывает какие параметры есть в данном VST, как мне подключиться программно со стороны к этим параметрам ? Я хочу сделать шкуру для готового VST, но понять не могу, как подключиться к нужным мне параметрам.
 

mysticman

Active Member
13 Ноя 2014
135
168
43
Москва
Проще точно не получится. Только ставить Steinberg vst sdk и писать плагин самому.
Самое простое, что тут можно посоветовать, это сделать плагин используя, например, Synthedit. Там просто из готовых модулей можно сделать плагин для себя, а так же нарисовать к нему свой интерфейс.
 
  • Like
Реакции: MAME

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
@Technomax, просто ничего неполучится, если вы знакомы с программированием то могу подкинуть исходник с примером как хост получает список встроеных в плагин параметров и их значения.
Реализовать shell внутри которого будет крутится плагин - это довольно сложно.
 

Technomax

Moderator
26 Дек 2002
3.090
710
113
Питер
forums.somethingawful.com
Реализовать shell внутри которого будет крутится плагин - это довольно сложно.
А почему так ? Тут же только оболочка/загрузчик и интерфейс, нет особых вычислений, соедени только ручки интерфейса с значениями самого синтеза и все. Как то же Patcher работает, и проценты загрузки он не накидывает. Я бы им и обошелся, но он урезан в создании интерфейса, галимый значение показывать не хочет, а они в синтезе иногда полезны.


если вы знакомы с программированием то могу подкинуть исходник с примером как хост получает список встроеных в плагин параметров и их значения.
На с++ ? Я не потяну. Я уже и на питоне нашел какой то враппер вст, пока особо не разбирался. А может вы знаете, какой конструктор, который бы помог с этим ? Blue cat audio сделал plug n script, можно ли на нем такое провернуть ?
 

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
А почему так ? Тут же только оболочка/загрузчик и интерфейс, нет особых вычислений, соедени только ручки интерфейса с значениями самого синтеза и все. Как то же Patcher работает, и проценты загрузки он не накидывает. Я бы им и обошелся, но он урезан в создании интерфейса, галимый значение показывать не хочет, а они в синтезе иногда полезны.
Патчер незаточен чтобы полноценно управлять плагином вживую. И есть один момент: есть разработчики которые делают правильный вывод параметров из плагина в хост, т.е. параметр показывает герцы и названия волновых форм. А есть разрабы которые просто незаморачиваются с таким выводом и все параметры отображают свое значение от 0.000 до 1.000.
Я когда-то на kvr пытался пообщатся с несколькими разработчиками чтобы они сделали вывод параметров по классическому vst sdk, но как мне многие отписались - ради одной хотелки напрягаться небудем а всех пользователей устраивает то как мышкой можно все крутить...

На с++ ? Я не потяну. Я уже и на питоне нашел какой то враппер вст, пока особо не разбирался. А может вы знаете, какой конструктор, который бы помог с этим ? Blue cat audio сделал plug n script, можно ли на нем такое провернуть ?
NScript - это тот же C++ (используется скриптовый движок AngelScript), там нет функций для запуска внешних плагинов.
Если скинете ссылку на враппер на питоне я могу глянуть что там такое, но в вашей FL это непоможет.
Могу посоветовать перейти на Reaper, в нем на 1000% можно управлять всем что в голову взбредет. Правда скин у плагина все равно неполучится изменить без вмешательства во внутрености плагина...
С конструкторами туго, завтра поковыряюсь по своим мусоркам на внешнем винте. Где-то помню что-то было, но я кучу хлама насобирал от любопытства и для коллекции и уже давно забыл что понагребал)))
 

Technomax

Moderator
26 Дек 2002
3.090
710
113
Питер
forums.somethingawful.com
Если разберетесь, дайте знать, есть ли смысл там ковырять ?
Правда скин у плагина все равно неполучится изменить без вмешательства во внутрености плагина...
Я не хочу его менять, тут понятно что без исходников не получиться, я хотел навесить сверху свою рожу, но чтоб она показывала значения, и размер был современный, а не просто ручки с анимацией кручения, и думай там, что ты крутишь ( Сейчас там вырви глаз, конечно можно пользоваться лупой, но это не удобно,
 
Последнее редактирование:
  • Like
Реакции: Alex Longard

Technomax

Moderator
26 Дек 2002
3.090
710
113
Питер
forums.somethingawful.com
что решение с доступом ко всем параметрам это 50% на 50%.
Это что значит ? Что 50% получится ?
А что за протокол используется для управления значениями в VST? В Helix например я через миди управлять не смог, а тот же сайлент может (правда не все органы подвластны управлению). И например эмулятор DsP 563xx управляются все органы через миди CC, с чем это связано ?
По другому напишу, в Helix идут сперва параметры их там 1000 с чем то, а потом миди СС, а в DSP только CC, это потому что оболочка в которой грузиться биос не имеет интерфейса, и соответственно оно и не прописано ?
Если так, то мне надо сделать загрузчик VST который сам будет видится как вст и при этом он должен быть с интерфейсом и прописанными органами управления соответствующими самому синтезатору, но как же тогда парни прикручивают морду к биосу, если в биосе это не прописано ? И как быть если команд миди всего 127, а параметров может быть 1000 ? Расширяют за счет каналов ? Их там 16*127= больше тысячи. Я прав ? )
 
Последнее редактирование:

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
Это что значит ? Что 50% получится ?
Это в смысле что возможно получится автоматизировать а возможно и нет)))) Я посмотрел на pyvst, надо было сразу посмотреть. Это скрипты для запуска vst по типу хоста, т.е. можно с помощью этого модуля написать типа свой мини куб)))
Еще лет десять назад игрался с ним, но тогда этого модуля небыло на github, я на тот момент скачивал это с kvraudio.

А что за протокол используется для управления значениями в VST?
Это не протокол, в стандарте миди есть параметры у которых значение и управляющий параметр меняются в зависимости от привязки параметра к плагину. Чуть позже попытаюсь объяснить на простых примерах.

Их там 16*127= больше тысячи. Я прав ? )
:D Можно и больше параметров управлять, у меня x-touch mini по midi рулит все 32 000 параметров драм-машины Punch2))))
Лучше на примерах объясню, у меня разговорный словарик маленький)))
 
  • Like
Реакции: Technomax

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
Спасибо, значит можно с pyVST решить задачу ? Жду ответа.
Частично, если только вы не планируете с нуля писать обработчик для входного midi/audio сигнала, вывод на звуковую карту, интерфейс для управления всем этим барахлом.

И так:
Midi CC по стандарту имеет от 0 до 127 параметров, итого 128, но у некоторых параметров есть msb и lsb за счет которых делают внутренее управление. Но это делится на страницы, например пара кнопок переключают страницы между осциляторами и фильтрами, но на каждой странице будут использоватся одни и те же параметры CC.
Например:
кнопка data dec переключает на страницу Osc
параметр CC 123 будет управлять параметром Osc volume
кнопка data inc переключает на страницу Filter
параметр CC 123 управляет Filter resonance.

За счет такого разделения у синта может быть ну очень дохрена параметров, но из-за того что на панели обычно не натыканы тысяча ручек, слайдеров, кнопок, это в синтах разделяют на страницы.

К примеру у синта Sylenth1 около 250 параметров доступных для автоматизации, они поделены на группы, при наличии midi контроллера который имеет систему пресетов и банков для миди-событий можно все это попривязывать к регуляторам такого контроллера и в дальнейшем даже не прикасаться к мышке чтобы что-то крутить с экрана.
Но есть одна хреновина, не все хосты типа куба, флстудии, аблетона позволяют настроить портянку контроллеров больше чем физически расположено на контроллере. Для такого есть плагины которые могут создавать типа карты миди-событий и потом их перенаправлять через себя с миди-контроллера в хост. Я очень давно видел подобный плагин и то он работал с косяками в Cakewalk Sonar.

Helix имеет около 4000 параметров, но разработчик клепал синт ради собственной развлекухи и не заморачивался наворачиванием функционала для автоматизации, если например у Sylenth1 можно изменять волновую форму прямо с мидиклавы и если хост поддерживает такое, то можно увидеть название значения типа "sine" "triangle"...
У Helix все параметры отображают свои значения в виде от 0.000 до 1.000

Управлять этими всеми параметрами можно например с помощью Ctrl, но прийдется долго и нудно вычислять какое значение параметра чему будет соответствовать на морде плагина. Увы эту инфу из плагина можно достать только если его дизассемблировать)))
 
  • Like
Реакции: Technomax

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
Я по некоторым личным причинам когда-то бегал по Kvr и попрошайничал чтобы некоторые разработчики сделали параметры автоматизации по правильному стандарту VST SDK, но 90% разработчиков отписались что их это неволнует так как пользователи все равно мышкой тупо тыкают в морду плагина а под мои специфические задачи никто напрягаться небудет. После моих таких просьб несколько разработчиков испортили даже то что более-менее работало...
 

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
Нужно попробовать пообщаться с Джонасом, разработчиком Helix. Может он подскажет как самому нарисовать морду для плагина раз она в формате фотожопы. Я поглядывал пару раз на этот синт, но отпугнуло что параметры без значений, а для меня это очень важно...
 

Technomax

Moderator
26 Дек 2002
3.090
710
113
Питер
forums.somethingawful.com
Я не очень понял про автоматизацию, она работает на любую ручку у хеликса, только там значения как вы и писали с 0-1000 и название параметра например у width OSC1 это O0S-W 0-1000. Это как то может помешать ?
 
  • Like
Реакции: Alex Longard

Technomax

Moderator
26 Дек 2002
3.090
710
113
Питер
forums.somethingawful.com
Спрашивали на квр, но он послал вежливо всех, попробуйте увеличить картинку в 2 раза, и если хост это поймет, то вам повезло........Но если такой хост и есть, это не фрукт. Так что ждать от него помощи нет смысла. Я так понимаю он просто кого то попросил нарисовать ему фейс, может даже заплатил, и теперь это для него болезненная тема, хотя сейчас наверно ему уже пофиг.
Частично, если только вы не планируете с нуля писать обработчик для входного midi/audio сигнала,
Там в PyVSt его нет ? Или имеется ввиду под конкретно этот синт ? А частично это что значит, что я смогу сделать с тем что есть ?
 
  • Like
Реакции: Alex Longard

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
@Technomax, непомешает, например в Reaper можно получить весь список параметров который будет выглядеть как
fxparam - value
Как у вас в FL я незнаю.
Но Helix как раз то что value передает в виде чисел, то есть название типов фльтров, режимов эффектов, названия волновых форм у осциляторов получить неполучится. Например вы когда в окне плагина в менюшке выбираете волновую форму вы видите сразу ее название, а в автоматизации значение будет менятся к примеру 0.010 0.020 ... 0.200 и так далее... Это зависит от позиции волновой формы.
Вот кусочек кода на языке Purebasic для наглядности как выглядят параметры внутри плагина, код примитивный думаю сможете разобраться. Текст в кавычках отображается для хоста в автоматизации.
Код:
Procedure getParameterName(index.l, *text)
Select index
Case #LeftVolume
PokeS(*text, "Left volume", #kVSTparameterLen, #PB_Ascii)
Case #RightVolume
PokeS(*text, "Right volume", #kVSTparameterLen, #PB_Ascii)
Case #ModeVolume
PokeS(*text, "Mode", #kVSTparameterLen, #PB_Ascii)
EndSelect
EndProcedure

Procedure getParameterLabel(index.l, *text)
Select index
Case #LeftVolume
PokeS(*text, StrF(leftparam, 4), SizeOf(Float), #PB_Ascii)
Case #RightVolume
PokeS(*text, StrF(rightparam, 4), SizeOf(Float), #PB_Ascii)
Case #ModeVolume

Select Int(ModeValue * 1000.0)
Case 0
PokeS(*text, "left", #kVstMaxShortLabelLen, #PB_Ascii)
Case 1
PokeS(*text, "center", #kVstMaxShortLabelLen, #PB_Ascii)
Case 2
PokeS(*text, "right", #kVstMaxShortLabelLen, #PB_Ascii)
Default
PokeS(*text, "empty", #kVstMaxShortLabelLen, #PB_Ascii)
EndSelect

EndSelect
EndProcedure
 
  • Like
Реакции: Technomax

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
Спрашивали на квр, но он послал вежливо всех, попробуйте увеличить картинку в 2 раза, и если хост это поймет, то вам повезло........Но если такой хост и есть, это не фрукт. Так что ждать от него помощи нет смысла. Я так понимаю он просто кого то попросил нарисовать ему фейс, может даже заплатил, и теперь это для него болезненная тема, хотя сейчас наверно ему уже пофиг.
Судя по первым исходникам хеликса то Джонас писал синт пока учился в универе и ему изначально этот синт был нужен как дипломная работа. Он про это писал в какой-то теме на Kvr, насколько помню с 2017 года куча людей много чего просили но разраб на всех забил болт)))
Там в PyVSt его нет ? Или имеется ввиду под конкретно этот синт ? А частично это что значит, что я смогу сделать с тем что есть ?
С Pyvst вы можете только посмотреть как плагин показывает свою морду))) Вам самому прийдется искать для Python модули для работы с аудио и миди, писать самому логику обработки сигналов и взаимодействия с плагином.
Погуглите на тему
Python audio enveronment
Python midi editing

Я этой темой очень давно неинтересовался.
Вечером подключу внешний винт к планшету и скину вам книгу по обработке звука на Python. Может как-то пригодится.
 
  • Like
Реакции: Technomax

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
На флэшке нашел.
Книга только на английском,
такие книги обычно непереводят, так как почти никого такое неинтересует :(
 

Вложения

  • Like
Реакции: Technomax и lamamama

Сейчас онлайн (Пользователей: 0, Гостей: 1)