Part III: Building Your Installer
In this part of the tutorial, we'll look at the methods, issues and tools for installing HISE plugins.
Types of Installers
We can classify four types of installers you can use to deliver your HISE-based product:
Generic Third-Party Installer Executable
An executable application that places your payload (the files to install) in the specific locations they should go (e.g., the Audio Plugins folder). Most applications use this installation process. Examples include
Apple Disk Image
Disk images are typically used for payloads that don't require the user to install files in specific places (exception the Applications folder). The advantage of this process is the relative simplicity for you, the developer. However, this simplicity comes at the cost of flexibility.
HISE Project
HISE installers refer to mechanisms that are an official part of the HISE project.
Downloading API
HISE currently has an internal mechanism for downloading files. It is targeted for installing content such as sample libraries and impulse responses. It is a good choice for install content because you have complete control over the process, and you can implement it directly within your plugin.
The internal mechanism is usually used by HISE developers in conjunction with another one of the installation methods covered here. An advantage of this delineation is that it isolates the operating-system aspects of your installation from content installation (which through HISE is platform independent).
Multipage Installer
In the future, HISE will have its own built-in installer that covers the complete installation needs of a HISE project.
Copy Protection
Copy protection is a personal choice on the part of the developer, and I won't wade too far into that topic here. Relevant schemes for HISE developers include:
iLok is implemented with both cloud-based and hardware-based schemes. It is generally regarded as the most effective in the industry, and is priced accordingly. Their website provides more information. Implementing iLok within a HISE (or any other) product requires significant programming skills.
Steinberg's software-based copy-protection provides a good trade-off between protection and customer ease-of-use. It's also more affordable than iLok, and while it also requires a high level of developmental expertise, the experience can be more developer-friendly. More information is available on their website. (Full disclosure, I have worked on several Steinberg products.)
For most HISE developers, the most logical copy protection is the one built into HISE. This system is powerful, flexible, and fully-integrated with HISE.
To implement HISE's system yourself, you must be familiar with scripting in HISE. It is far easier to implement than other copy-protection systems.
Installers In-Depth
Let's dive deeper into our four types of installers.
Commercial Third-Party HISE Executable Installers
Some developers have created their installers specifically for HISE. These installers cover all aspects of a typical HISE product installation, and are cross-platform. These installers combine complete process for most HISE products, with features native to HISE.
A good example of such an installer is made by forum-regular @Lindon. With the demise of Whitebox Packages, Lindon's installer the only professional-looking installer (that I know of—I'm sure I'll be corrected if not the case) that covers the complete installation process. There is a cost associated with this installer, and you get what you pay for. Contact Lindon for more information.
:information: If you're a HISE developer who offers an installer, let me know, and I'll include it in this section.
Generic Third-Party Installers
Generic (meaning not specific to HISE) third-party installers have the advantage of (theoretically) providing the most flexible installation system. Often, they are also cross-platform.
Whitebox Packages
For over a decade, this installer has been the stalwart for macOS installation. It has a simple GUI, and provides significant control over the installation process via optional scripting. The most significant limitation is that a single install cannot target both user and system directories (though there's a hack to get around this).
40241dd6-4824-4658-b5b8-9a81e0b40073-image.png
It's also free and open-source, and has the look and feel of the macOS. It does not provide copy-protection, and is not cross-platform.
Development on this product appears to have ceased, and it is no longer functional for some configurations (which, for installers, means no longer functional). For example:
The built-in automated security procedure no longer functions.
For Apple Silicon machines, requires a beta version that is not publicly disclosed.
Does not (reliably) install payloads in their designated location(s).
macOS only.
While there are other generic third-party installers, I don't personally recommend them. One reason is that have the look and feel of early 2000's Qt, and do not look professional.
Apple Disk Image
Apple Disk Image is a disk image format commonly used by the macOS operating system. When opened, an Apple Disk Image is mounted as a volume within the Finder.
Disk Images are a simple way to provide for the installation of executable and content payloads.
Apple Disk Utility
Disk images be can be created with the macOS's Disk Utility application. To provide flexibility for the installation, you should be familiar with developing for macOS.
Using Disk images to distribute your product is free, and does not provide native copy-protection.
Canvas DMG
Until recently, disk images were not an effective mechanism for HISE installation because it lacked flexibility, and required a completely manual process for implementing Apple's security procedures.
However, Canvas DMG alters this calculus.
The primary advantage of DMG is the automated security procedures. The value of these cannot be overstated. Even though I am proficient in using BASH to manually sign, notarise and stable my payloads — I use DMG because of its security implementation.
DMG not only process the disk image itself, but also the contents within the image. It also manages to get through some elements that can otherwise be problematic, such as custom application icons.,
As commercial product, DMG is fully documented, has technical support, and (theoretically) will make any changes when Apple inevitably changes to their security procedures and file system API.
DMG is limited to files that users can drag to folders. You can make a system folder accessible (but not pass any security checks) by creating an alias of them in the installer. DMG has a menu item to create such an alias for the user's system application folder.
:information: You can provide aliases other system folders by dragging them onto the disk image canvas, and holding down the CONTROL key as you release the mouse.
The DMG system also provides a (safe and reliable) hack to Apple's APIs, allowing you to (easily) add text and images, to the Disk Image.
DMG does not offer automated Installation: The user must do the work. For many installation scenarios, the requirements are negligible (i.e., drag a file). For more complex needs, users may have difficulty or make makes during the installation process. Given its installation mechanism, a DMG installer does not have access to User Folders.
While theoretically platform independent, you'd only want to use Apple Disk image for macOS installations. Therefore, with DMG, you'll need installers for Windows and GNU/Linux. As a native macOS application it provides a superior experience for macOS users, both visually and in terms of look-and-feel.
2008e6b6-f279-4c04-8d43-aee99651d24a-image.png
DMG does not support native copy-protection, and that's not a disadvantage to developers who either don't use copy-protection or use a separate system. Canvas costs $25. I'll editorialise here and say that this is next-to-nothing. I don't list that as a disadvantage because it's only $25.
Canvas can be purchased at Araelium's website.
Commercial Third-party HISE Executable Installers
@Lindon's installer, from Channel Robot is a full-spectrum installer. It provides the ability to install both executables and content, and also uses HISE's native API. It is a commercial system.
I'll editorialise again for moment and say that this is a unique product because it provides almost all of the advantages of every installation system. (It is also priced accordingly.) @Lindon is an expert in HISE, himself, and can further advise on HISE-speciic installation.
3bba6630-ec9d-4d33-a816-881dd095fbe9-image.png
Learn more about it here.
:information: @Lindon, contact me to discuss the specifics of your installer, and I'll include them here.
HISE Project
HISE's forthcoming installer is shrouded in mystery and the enigmatic. They are the stories whispered in hushed tone by developers to their most-trusted confidants. Little is known about this mythical endeavour, but all be revealed when its time is upon us.
7e3ab981-42eb-44a9-88c4-3a7f117f49b2-classified.png
<sup><A tantelising leaked image of the installer from whereabouts unknown.
Content Installers
HISE's Download API offers a robust, fully-customisable mechanism for downloading content. As such, you can provide feedback to users on every aspect of the installation procedure. It's also an excellent system for updates and expansions, and provides built-in copy protection.
The API is implement via scripting in your plugin. As such, you should be comfortable with programming in HISE's scripting system. Documentation is available here:
An
introduction to HISE scripting.
Download API
File API
FileSystem API.
Server API
Unlocker API
Engine API (createLicenseUnlock)
The Hise Forum
@d-healey has created a powerful and user-friendly implantation as this API as part of Rhapsody. If you're not familiar with Rhapsody, check it out, as it's an outstanding system for deploying HISE products. It is also free and open-source.
cabf7e8b-7957-462f-a241-821dab7217bb-image.png
More information about Rhapsody can be found at the Libre Wave Libre Wave website. @d-healey has also been known to occasionally frequent the HISE forum, so you can catch him there.
:information: @d-healey , contact me to discuss your installer, so I can revise/expand this section accordingly.classified.png