Muse DRM

Learn about Muse DRM and how to apply it to your products through the Muse Hub Developer Utility.

Applies only to commercial (paid) Applications and Plug-ins

Muse DRM is an important part of the Muse Hub platform because it ensures product ownership, and enables commercial business models such as pay-once, subscription and free trials (as well as refunds) to be handled.

For customers, they experience a seamless acquisition process and are never aware of any license management, since it's handled seamlessly by the Hub.

For developers, this means you don't need to invest in costly and complex 3rd party solutions, or spend a long time building your own.

Muse Hub Developer Utility

As a Muse Hub Partner, you gain access to our developer tooling, including the Muse Hub Developer Utility. This can be used to easily apply Muse DRM through a quick, simple process which can be optionally integrated into your build pipeline.

The Muse Hub Developer Utility is a no-code tool that integrates your product with Muse Hub's technology. It creates a Muse Hub compatible version of your application binary, enabling license verification. If a valid license is detected, the application or plug-in binary executes. Otherwise, the binary is blocked, and a notification window informs the user of the invalid or missing license.

The macOS version of the Developer Utility can wrap macOS and Windows binaries.

The Windows version of the Developer Utility can wrap Windows binaries only.

Usage

The Muse Hub Developer Utility can be operated via a simple command line interface (CLI), and can be easily built into scripts for automation. For Muse DRM to operate succesfully, your product must be free from other DRM solutions.

Before you start, you'll need:

  • Your user-specific API key

  • The product's product_id which is generated when you add a product in the Partner Portal, and shown in the top left of the Partner Portal (labelled as either an application_id or effect_id).

  • An "open" build of your product free from any DRM or other license management systems.

Once you're ready to go, run the musedrm tool with the following usage:

Application example
musedrm --protect [your app.app] --api_key [your api key] --product_id [your application_id] --overwrite

You can protect multiple binaries within the same command, as long as they correspond to the same product on the same platform. You must wrap macOS and Windows products separately.

For example, to protect multiple plug-in formats, such as VST3, AU and AAX, which you will later bundle together in a single installer, you would run:

Plug-in example
musedrm --protect [plugin.vst3 plugin.component plugin.aaxplugin] --api_key [your api key] --product_id [your application_id] --overwrite

Parameters

  • --protect MyProduct [bundle or standalone product, one or more are accepted]

  • --api_key <your API key>

  • --product_id [GUID from the top of the product page in Cosmos]

  • --out [cannot point to the original location, use --overwrite instead]

  • --overwrite [replaces the software with the protected version in place, used in alternative to --out]

  • --main_binary Contents/MacOS/MainBinary [OPTIONAL, bundles only, omit for auto-detect, or specify for all --protect entries]

  • --help Only display usage information, ignoring all other arguments

  • --version Only display the tool's version, ignoring all other arguments

Be sure to wrap the top folder of a bundle, also on Windows where "bundle plug-ins" are regular folders that contain the plug-in binary.

For instance, when wrapping the recent Windows VST3 bundles, do not pass "plugin.vst3/Contents/x86_64-win/plugin.vst3" to musedrm, but the top .vst3 folder:

The same goes for .aaxplugin folders.

After wrapping

If succesful, the tool will return your protected binary, plus a unique musedrm_id which you'll need when uploading the application or installer to the Partner Portal later.

You can then proceed to codesign, notarise and build your installers as usual.

Be sure to wrap your product before you codesign.

Developer Notes:

Audio Units built with Xcode 15 may return a CLI error:

  • It's been reported that Audio Unit components built with Xcode 15 require a special linker flag to avoid corruption through the DRM process. Without this build flag, your AU component may return an error in the Muse DRM CLI tool. To resolve, add the -Wl,-headerpad,0x1000 to the "Other Linker Flags" section of Xcode's build settings for your project.

Last updated