Плагин VST не распознается в OSX

Я просто пытаюсь проникнуть в мир OSX после недавнего приобретения MAC.

За последние месяцы я еще не построил работающий VST 2.4. Я просто не понимаю, почему: проекты в примерах VST работают (несколько) из коробки, но мои собственные проекты не работают.

Я точно отразил все параметры сборки (включая info.plist и pkginfo), дважды проверил, что содержимое vst.app идентично, правильно получает сборку как vst с правильными расширениями и т. Д., Но код практически такой же, однако мой VST не распознается ни на одном из хостов, которые я пробовал. Командная строка даже идентична для сборки. Я протестировал свой VST с помощью прилагаемого тестера minihost vst, и он проходит и работает, но все равно не будет распознан. Я даже проверил экспортированные символы с помощью nm, и они выглядят правильно (т. Е. CreateEffectInstance правильно экспортируется).

Что дает? Должно быть, где-то скрытые настройки сборки, которые я не обнаружил, могут дисквалифицировать мой VST.

2 ответа

Вероятно, наиболее очевидный, но упускаемый из виду параметр: вы строите как 32- или 64-битные? Вы должны убедиться, что битность соответствует вашему хосту, иначе плагин не будет загружен (что, кстати, может объяснить, почему плагин мог загружаться в ваш собственный мини-хост, а не в другой секвенсор). Чтобы обеспечить совместимость с большинством хостов, я бы выбрал 32-битную сборку.

Кроме того, вот учебник, который я написал по этой теме некоторое время назад. Тем не менее, вы утверждаете, что все делаете правильно с Info.plist и еще много чего, но, возможно, вы пропустили небольшой шаг:

http://teragonaudio.com/article/Making-a-VST-plugin-from-scratch-with-Xcode.html

Другой потенциально полезный инструмент - MrsWatson (отказ от ответственности: я являюсь автором этой программы). Это хост VST командной строки, который может использоваться для предоставления диагностической информации о VST, а также предназначен для тестирования и отладки плагинов. Из-за 32/64-битных трудностей с плагинами, в Mac OSX программа поставляет отдельные 32- и 64-битные двоичные файлы, а не использует универсальный двоичный файл.

Вы должны попробовать запустить следующую команду в вашем плагине:

mrswatson --verbose --plugin /path/to/wherever/you/put/the/plugin.vst --display-info

Если вы видите список параметров и другую информацию, то он должен быть кошерным и может загружаться в большинстве секвенсоров. Надеюсь, что это приведет вас на правильный путь!

Попробуйте использовать ваш отладчик, чтобы посмотреть, что Dispatcher() вызывает ваш хост. Проверьте, есть ли какие-либо различия между вашим плагином и включенными примерами проектов. По моему опыту, хост обычно прерывает загрузку плагина сразу после вызова Dispatcher(), вызывает исключение или возвращает результат, который хосту по какой-либо причине не нравится.

Другие вопросы по тегам