For the complete documentation index, see llms.txt. This page is also available as Markdown.

Muse DRM

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

Applies only to commercial (paid) Applications and Plugins

Muse DRM is not suited as a protection for Electron apps, that should use Muse SDK instead.

Muse DRM is an important part of the MuseHub 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.

MuseHub Developer Utility

As a MuseHub Partner, you gain access to our developer tooling, including the MuseHub 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 MuseHub Developer Utility is a no-code tool that integrates your product with MuseHub's technology. It creates a MuseHub compatible version of your application binary, enabling license verification. If a valid license is detected, the application or plugin binary executes. Otherwise, the binary is blocked, and a notification window informs the user of the invalid or missing license.

Usage

The MuseHub 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:

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 plugin formats, such as VST3, AU and AAX, which you will later bundle together in a single installer, you would run:

When submitting individual assets without an installer, each asset shall be wrapped separately:

Parameters

  • --protect <Product.vst3> bundle or standalone product, one or multiple assets are accepted (see the use cases for installer vs individual asset above)

  • --api_key <your API key>

  • --product_id <GUID from the top of the product page in Cosmos>

  • --out <destination path> Cannot point to the original bundle, see --overwrite

  • --overwrite Replaces the software with the protected version in place, used in alternative to --out

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

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

  • --is_protected <Product.app> <Product.vst3> ... Check if one or more assets are already protected by MuseDRM

After wrapping

If successful, 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 and notarise the wrapped assets. Please use codesign --force --deep to make sure the protection files are codesigned correctly as part of the bundle.

If using an installer, you can package your installer as usual with these wrapped and notarized products.

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