Atlas Audio: Reaktor Ensemble Extractor

The Reaktor Ensemble extractor analyzes Native Instruments Reaktor ensemble and instrument files to discover embedded file references and library associations. Reaktor files contain explicit content directory references that point to their dependent resources. It’s part of the Atlas Audio extractor pack.

Extension: .nrkt

Format Overview

NRKT files use the NI DSIN container format with additional content reference structures. They are typically small (7-18 KB) and contain instrument/ensemble definitions along with explicit references to their dependent resource files.

Binary Structure

Offset  Content
0x00    Container size (4 bytes LE)
0x04    Padding (4 bytes)
0x0C    "hsin" marker (hash/identity block)
0x30    "DSIN" chunks begin
0xA0+   ContentDir reference (UTF-16LE)
0xC0+   file:// URI reference (UTF-16LE)

Key DSIN chunk types:

Type IDNameContent
0x65 (101)AUTHORING_APPProduct ID with version string (e.g., “2.0.4”, “4.5.6”)
0x6A (106)-Version/flags metadata

Content References

Reaktor files embed explicit references to their resource files using file:// URIs in UTF-16LE encoding:

ContentDir: file:///Prism.rkplr
ContentDir: file:///Monark.ens

These references point to the Reaktor library resources that the ensemble depends on. The version string in the AUTHORING_APP chunk (e.g., “2.0.4”) identifies the Reaktor library format version.

What It Extracts

TypeSourceExample
Trait: ensemble_nameFilenameBass Bottle
Trait: reaktor_versionDSIN version field2.0.4
Edge (input): Library referenceAUTHORING_APP product_idReaktor Factory Library or kontakt:product_id:1234
Edge (input): Content referencefile:// URI in ContentDirPrism.rkplr

Content References as Edges

The file:// URI references are the most lineage-relevant data. They create input edges from the ensemble to its dependent resource files (.rkplr, .ens, etc.). This allows Atlas to trace which Reaktor library resources an ensemble requires.

Implementation Notes

This extractor reuses the NI container DSIN parsing from ni_container.rs for product ID extraction. The content reference parsing is Reaktor-specific — it scans for ContentDir markers and extracts the associated file:// URIs from UTF-16LE encoded strings.

Example Usage

# Scan Reaktor ensembles
atlas scan ~/Libraries/NI/Reaktor/

# See what resources an ensemble depends on
atlas inputs ~/Libraries/NI/Reaktor/Bass\ Bottle.nrkt

Example output:

Inputs for "Bass Bottle.nrkt":

  Libraries:
    Prism (Reaktor)

  Resources:
    Prism.rkplr

Use Cases

  • Ensemble inventory — Catalog all Reaktor ensembles with their library associations
  • Dependency tracking — Discover which Reaktor library resources each ensemble requires
  • Missing resources — Detect ensembles with broken content references after library moves
  • Library usage mapping — See which Reaktor libraries are actively used by ensembles