Создание плагина VST в Mac OS X без Xcode

Как создать плагин VST на Mac без использования Xcode? (Я использую Code::Blocks).


person Community    schedule 11.11.2008    source источник


Ответы (2)


Если вы действительно настаиваете на обходе Xcode, вам следует просто использовать make, что, вероятно, окажется столь же болезненным, как попытка использовать Code::Blocks. Хотя поначалу Xcode может показаться странным, он действительно избавит вас от головной боли, если вы выпьете kool-aid и разберетесь с этим, особенно если вы планируете разрабатывать коммерческие плагины VST. Например, если вам не нравится его редактор, вы можете легко заменить его другим по вашему выбору. Но, говоря здесь как о другом разработчике Mac VST, самое большое преимущество Xcode заключается в том, что он хорошо справляется с «макинто-ориентированными» вещами; то есть создание правильных пакетов, универсальных двоичных файлов, редактирование ресурсов, связывание с системными фреймворками и т. д. Кроме того, вся документация, которую вы найдете там (плюс другие онлайн-сообщества разработчиков VST, такие как KVR), предназначена для пользователей Xcode.

В любом случае, если вы решите не прислушаться к моему совету, все равно можно будет сделать это по старинке. :)

В принципе, VST — это просто пакет динамических библиотек, поэтому независимо от используемой вами IDE вам просто нужно убедиться, что она правильно упакована и содержит соответствующие ресурсы, иначе хост не сможет загрузить его. Если вы точно не знаете, что в него входит, просто покопайтесь в других VST и посмотрите, что у них есть внутри пакетов. Для сборки вы компилируете свои исходники плюс VST SDK и связываете с ним следующие фреймворки:

  • ApplicationService
  • Углерод
  • QuickTime
  • Система

... и вам, вероятно, понадобятся некоторые другие, в зависимости от того, какие части Carbon вы в конечном итоге будете использовать. Вы также должны строить как UB, иначе вы в конечном итоге действительно будете раздражать многих продюсеров, все еще использующих G4/5. Затем вам нужно создать файл PkgInfo, который будет находиться в каталоге ресурсов пакета, который должен содержать текст: «BNDL ????» (без кавычек, разумеется). Вы также должны создать стандартный файл Info.plist для вашего плагина, который укажет системе имя фактического имени исполняемого файла, который загружается, и некоторую другую информацию, которая отображается в Finder. Опять же, если вы не знаете, что там должно быть, возьмите копию с рабочего VST и отредактируйте по вкусу.

person Nik Reiman    schedule 12.11.2008
comment
Я не согласен. Благодаря возможности использовать Makefiles, настройка команд Makefile окажется гораздо более полезной в будущем, когда что-то пойдет не так в вашей IDE (из-за обновления Xcode, обновления MacOS или переноса на Windows или Linux) или когда вам нужно добавить специальную оптимизацию, связать необычную библиотеку или автоматизировать системы сборки с непрерывной интеграцией. Знания, полученные при правильном использовании Makefile, включая способность понимать команды компилятора, легче распространять на форумах и в StackOverflow, а не просто говорить, что я не знаю, моя IDE делает это за меня. - person Vortico; 28.10.2017

Я сделал это сегодня вечером, когда обнаружил, что проект Xcode VSTGL настолько устарел, что Xcode 4.1 т даже предлагают обновить его. Просто сказал "слишком стар" и ударил меня по хлебной корзине.

Я собрал простой Makefile, в который просто добавил «недостающие» части, так как стало очевидно, что они мне нужны.

Обратите внимание, что VSTGL поставляется с скомпилированным VST с ppc, который я только что заменил своим недавно скомпилированным пакетом, есть макет Foo.app/Contents/[Resources|Info.plist|etc], к которому этот make-файл не обращается, он просто его компилирует. в действующий пакет VST.

Еще одна проблема для меня заключалась в том, что при тестировании я использовал Ableton Live, который, как я не знал, был 32-битным (даже на Lion), поэтому я опускаю «-arch x86_64», но если у вас есть 64-битный хост, он должен Работа?

Кроме того, похоже, что даже в VST 3.0 SDK они все еще используют только Carbon, без Cocoa. (Не то чтобы я был так склонен, я думаю, но опять же, с Lion вы получаете много устаревших вещей.

INCLUDES = \
    -IVSTGL \
    -I../vstsdk2.4/ \
    -I../vstsdk2.4/public.sdk/source/vst2.x/

LIBS = \
    -framework OpenGL \
    -framework GLUT \
    -framework AGL \
    -framework Carbon \
    -framework CoreServices

SOURCES = \
    VstPlugin.cpp \
    ExampleEditor.cpp \
    VSTGL/VSTGLEditor.cpp \
    VSTGL/VSTGLTimer.cpp \
    ../vstsdk2.4/public.sdk/source/vst2.x/audioeffect.cpp \
    ../vstsdk2.4/public.sdk/source/vst2.x/audioeffectx.cpp \
    ../vstsdk2.4/public.sdk/source/vst2.x/vstplugmain.cpp

all:
    g++ -arch i386 $(INCLUDES) -bundle -o VSTGL.vst/Contents/MacOS/VSTGL $(SOURCES) 
person synthesizerpatel    schedule 26.07.2011