Как создать плагин VST на Mac без использования Xcode? (Я использую Code::Blocks).
Создание плагина VST в Mac OS X без Xcode
Ответы (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 и отредактируйте по вкусу.
Я сделал это сегодня вечером, когда обнаружил, что проект 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)