Setting up your SDKs

SDK Folder Naming Convention
You will need to navigate either Terminal or the Windows Command Prompt to various locations within your SDKs to run CMake. To keep the folder names simple and easy to use with Terminal/Command Prompt, I use a naming convention with:

  • no whitespaces (blanks)
  • no numbers
  • no special characters

There are currently three supported APIs for ASPiK: AAX, AU and VST and each SDK consists of a series of subfolders with AU being the simplest and VST being the most complex in terms of folder hierarchies.

You can setup individual project folders for each API or create a universal folder that will allow you to build for all APIs at once. Here we will set up each SDK independently, and then show the universal SDK folder settings. Note that you can change this stuff in the CMakeLists.txt file if you know how. Then, you can hardcode whatever folder hierarchy makes sense for you.

Alternate SDK Folder Structures
If you would like to arrange your SDKs in a different manner you can do that as well but you will need to edit the CMakeLists.txt file to do so and you need to know how to edit CMake files properly. The SDK folder locations are set near the top of the file and are used after the user-editable stuff near the middle. It is strongly advised to first get your ASPiK projects up and running with the folder hierarchy described here. Once you have your first projects compiling properly, you may then want to experiment with alternate SDK folder hierarchies.

The AU SDK is contained within two subfolders named AUPublic and PublicUtitlity. You can get these two folders along with the latest sample code here:
or get the SDK alone here:
For the AU SDK, you first need to create an outer container for the two SDK folders. You may name this folder whatever you wish - I use the name AU_SDK for my folder so we will use it here. And, if you decide to use the Universal API paradigm instead, you can re-use the same AU_SDK outer folder without issues.

Place your myprojects folder in parallel with the two SDK files and inside of your outer AU_SDK folder like this:

The AAX SDK is contained within a series of subfolders of the current SDK branch. You must establish an account with Avid to gain access to the SDK and Pro Tools Developer Version and you will need an iLok2 device for storing your Pro Tools activation key.

The AAX SDK architects use numbers when naming the various versions such as AAX_SDK_2p3p0 which reads AAX SDK version 2.3.0 I prefer to rename the current SDK to AAX_SDK in keeping with folder naming convention discussed in the Intro to CMake portion of the docs, as well as shortening the name a bit. As with the AU projects, your myprojects subfolder will be located in parallel with the other SDK sub-folders at the outermost level.And, if you decide to use the Universal API paradigm instead, you can re-use the same AU_SDK outer folder without issues. My folder hierarchy looks like this:

The VST SDK is contained within a series of subfolders of the current SDK branch. The architects name the outermost folder VST_SDK and it contains two inner folders, VST2_SDK and VST3_SDK. In addition, there are two script files, one for Mac and one for Windows. These scripts install the VST2 SDK folders within the VST3 SDK so that you may use the VST2 wrapper that is included with the VST3 SDK.

Important: ASPiK VST projects are VST2 compatible by design and require the VST2 API files to be setup properly. This is fairly simple:

Navigate to the VST3_SDK folder that contains copy_vst2_to_vst3_sdk.bat, then, double-click on the copy_vst2_to_vst3_sdk.bat file to run the copy mechanism.

Open a Terminal window and navigate to the VST3_SDK folder that contains the file. Drag and drop the file into Terminal. This will run the copy mechanism.

With the VST2 SDK installed, you can now create the myprojects folder for your exported projects. It needs to be located just inside the VST3_SDK subfolder, in parallel with the other SDK files, exactly as with AU and AAX. Your folder hierarchy should look like this:

You can see the SDK's CMakeLists.txt file - this is entirely independent of your exported projects and when you run CMake for the exported project, it will not interfere in any way with the SDK's files or CMake scripts. You should note that index.html is the Doxygen documentation link.

Universal Exported Project Location
Creating a folder hierarchy for the Universal setup is simple: create an outer folder to hold the SDK sub-folders in parallel with each other. I use the folder name ALL_SDK for my Universal projects. Your myprojects sub-folder is located in parallel with all three SDK folders and is not inside any one of them. My universal project folders look like this: