direDid you ever wander how to easily create the shiny installer for your rocking AU plugin? Well, you are lucky! Today I show you easy step by step tutorial how to do that. This should work for VST and VST3 as well.
Firstly, we need a tool which we can use for creation of a package. Since I am familiar with Inno setup for Windows I was looking for something similar. A guy recommended me a Packages on KVR Developer forum so I will stick with that, since I’ve found it useful (but little tricky when it comes to AU. But it works well.).
Packages is free. It comes under BSD licence so you can grab sources and hack it, but do not forget to get binaries. Let’s create a new project.
Since Raw Package seems not to support licence terms we easily simply select Distribution. This is also necessary if we want to support multiple formats in one installation file. How to handle multiple format is described at the end of this post. Move next.
Name your project and select project directory. I will go for “Install\Mac” directory in my git repository. Check the end of the path if do not wish to create a sub-directory in selected path with project name at the end. Got it? Let’s Finish!
What we have here? Name is project name, we leave it as it is.
For Path I will use “.” (dot), which means the Packages project directory — the very same as we entered a few moments ago. According to manual “Path” is:
The build location is the folder on disk where the distribution or package will be created during the build phase. If the last path components of the build location do not exist, they will be created.
Reference Folder is folder which is used as path reference in your project. I will leave it as it is.
What about Format? I will use Flat.
Flat: when a distribution project is built in the Flat format, the result of the build is single file. The name of the file ends with the extension ‘pkg’.
Let’s go to package settings, where we will set up the files to install.
Setting pane I will leave as it is in the picture. Important to mention that:
The version of a package is a version string. It is the version of the package, not of the applications or components inside the package.
In Content list Library does not contain default plugin folders so we need to create a structure for AU’s destination. Left-click on Library and select New Folder. Using same approach create this structure:
Note: for VST or VST3 you add “VST” and “VST3” sub-directory in /Library/Audio/Plug-Ins folder.
Got it? Ok. Now it is time to add our AU binary. Select Components sub-directory and click “+” to locate the binary file. I will use the Reference style named Relative to Reference Folder. That’s all here. Let’s move to Project’s Presentation.
First, we set the Installation type (simply click Installation type in preview dialog) to Standard and Custom Install. Which means we skip Installation type step (selecting which package to install).
Next we change the license – GNU GPL 2 in my case. Do not forget to use Relative to Reference folder style.
In next tab we can setup Requirements for our project – disk space, etc.
Now we are almost finished. We need to check – in Packages’ Advanced Preferences -Show Advanced User Options. This enables us handy feature as we will see in a minute.
Now we have Advanced Options in Project Settings tab. Select last two: system volume and current user’s home:
This enables installation process to let user to choose whether he/she wants to install plug for himself/herself or for all users.
Let’s Build and run our new shinny installer! High Five!
For multiple format support we need to duplicate project package and name the packages as format types. In packages’ Payload settings we edit the destination directory (VST is /Library/Audio/Plug-Ins/VST for VST3 it is /Library/Audio/Plug-In/VST3) and change the binary to the right binary file. If we wish user to select which format he wants to install in Project – Presentation we change Installation type to Custom Install.
Okey, that’s all. Found a mistake, do you disagree, or there is a better way? Comment, I’d love to hear from you!