This is an example project that should help you get started with building your own plugins and iOS apps with the help of the code-export feature of gen~
, part of Max 8 made by Cycling '74.
It is based on the JUCE Framework. Please be aware that the JUCE has its own license terms (mostly GPL with the availability of commercial licenses). See their website for further details.
To follow the structure of a Max package, most of the code is located within the /source/
directory.
Some notable files/directories:
Location | Explanation |
---|---|
/source/GenPluginExport.maxpat | main Max patcher to automate building plugins |
/source/post-export.js | Node for Max script in the main Max patcher to help automate compiling and configuring JUCE projects |
/source/exported-code/ | the folder where gen~ will export C++ code |
/source/CoreAudioUtilityClasses/ | required for building Audio Units |
/source/Projucer/ | Projucer files - configures the plugin behavior |
/source/Source-App/ | Source for iOS Application - feel free to edit (includes sample UI) |
/source/Source-Plugin/ | Source for Audio Plugins - feel free to edit |
/source/JUCE | The JUCE framework - do not edit these |
Files generated by the Projucer:
file/dir | explanation |
---|---|
/source/App-Builds/ | iOS projects |
/source/AU-Builds/ | AudioIUnit projects |
/source/VST3-Builds/ | VST3 projects |
- Download and install Xcode. We have tested using Xcode 12.
- Building VSTs requires the VST SDK from Steinberg. Due to the phasing out of VST2 licensing, only VST3 export is currently supported by
gen~
plugin export.- Download and unzip the SDK.
- Rename
VST3_SDK
toVST3 SDK
and move it to~/SDKs/
in your home directory. In other words, you should end up with~/SDKs/VST3 SDK
.
- To build AudioUnits, copy the folder
CoreAudio
(located in/source/CoreAudioUtilityClasses/
) toApplications/Xcode.app/Contents/Developer/Extras/
(create it if needed).
- Download and install Visual Studio 2019. Community Edition is enough!
- Building VSTs requires the VST SDK from Steinberg. Due to the phasing out of VST2 licensing, only VST3 export is currently supported by
gen~
plugin export.- Download and unzip the SDK.
- Rename
VST3_SDK
toVST3 SDK
and move it toC:\SDKs\
. In other words, you should end up withC:\SDKs\VST3 SDK
.
Everything you need to build a plugin is outlined in GenPluginExport.maxpat
.
Note: All provided projects have been created via the Projucer, so it should be safe to use the Projucer to edit them (for example, to add or change a UI).
Plugin building is based on the JUCE Framework.
- If you want to add or remove files from your Xcode or Visual Studio project, do not edit the projects directly (they will be rebuilt on each export), but use the Projucer files in the root folder.
- In the folder
/source/Projucer/
you will find a program calledProjucer
. This program is used to edit those.jucer
files, for exampleC74-Gen-VSTPlugin.jucer
, which also offer more advanced ways of plugin configuration - You can also use the Projucer to add a UI. An example of this can be found in the Projucer file "C74-Gen-Application.jucer" (the iOS Project). Find a series of official Projucer tutorials here.
Enjoy!