/ HALion Developer Resource / HALion Script / Diving Deeper /

Protecting Layers


On this page:

Related pages:


You might want to avoid that users make edits to critical parts of the program. Moreover, how you built the program for your instrument might be a considerable part of your intellectual property. To safeguard the program and your work, you can protect the layers which the users should not have access to.

Using Layer Protection

Protecting layers is a two-step process:

  • First, you define the layers you want to protect by setting the Layer Protection in the Program Tree. This has the advantage that you can decide at an early stage which layers you want to be protected. You can continue your work as usual and you still can add or remove the protection as needed. The permanent activation of the layer protection happens later.
  • Before you release the instrument to the public, you export the program and apply the protection by using Export Program as VST3 Preset... with the Protect option activated. All layers with the layer protection set will be permanently protected in the exported program.

❕ Applying the layer protection permanently by exporting a protected VST3 preset cannot be undone. For this reason, you should always keep a backup of the unprotected program.

Setting the Layer Protection

  1. In the Program Tree, right-click the column header and select Layer Protection. The column for setting the layer protection is added to the Program Tree. An open lock is displayed next to each layer, indicating that the layers are not protected yet.
  2. Click the lock icon on the layer you want to protect. A dialog opens for entering the password for the layer protection.
  3. Enter a password in the text field. You must enter a password each time you protect a layer. You are free to use the same or different passwords for each of the layers.
  4. Click OK to engage the layer protection.

The Layer Protection is engaged if the lock next to the layer is closed. If a child layer is protected through a parent layer, its lock will turn light grey to indicate this. To disengage the Layer Protection, click the lock of this layer to reopen it. This resets the password of the layer. To apply the Layer Protection permanently, you must build a library or export a protected version of the program or layer.

Applying the Layer Protection Automatically

The Library Creator protects layers with activated protection automatically when building a VST Sound. This affects only the presets that go into the VST Sound and not your source presets on disk. Using the Library Creator is the preferred way to protect layers permanently for release.

  1. Set the Layer Protection as described above.
  2. In the Library Creator, add the respective presets to your library.
  3. Build the library and mount it.
  4. Go to the MediaBay and load a preset from the library.

The protected layers cannot be accessed in the Program Tree any longer.

Applying the Layer Protection Manually

❕ Applying the layer protection cannot be undone. Please keep a backup of the unprotected program if you need to edit the layers at a later stage.

  1. Right-click in the Program Tree and go to the Import/Export submenu.
  2. Select Export Program as VST3 Preset...
  3. Activate the Protect option.
  4. Choose a location and file name.
  5. Click Save to export the program and apply the layer protection permanently.

When you load the exported program, the protected layers cannot be accessed in the Program Tree any longer.

Accessing Protected Layers from a Script

By default, protected layers cannot be accessed by scripts. The parameters of a protected layer and any elements inside of it are hidden for scripts. This avoids unauthorized parsing of the Program Tree to retrieve hidden information. A script can access protected layers only by calling the function addLayerPassword with the correct password for the corresponding layers.

Example

-- Access the protected layer(s) which have the password "abc123".

addLayerPassword("abc123")

❕ To hide the password in addLayerPassword, you must also protect the script module. See Managing Script Modules for details.