Atlas Audio: Kontakt Multi Extractor

The Kontakt Multi extractor analyzes Native Instruments Kontakt multi-instrument files. A multi is a container that references multiple Kontakt instruments loaded simultaneously. It uses the same NI container format as single instruments. It’s part of the Atlas Audio extractor pack.

Extension: .nkm

Format Overview

NKM files use the NI DSIN container format, identical to .nki files. The key structural difference is that a multi contains multiple nested instrument containers (marked by DSINu sub-chunks), each of which may have its own product ID and identity information.

Binary Structure

Offset  Content
0x00    Container size (4 bytes LE)
0x04    Padding (4 bytes)
0x0C    "hsin" marker (hash/identity block)
0x30    "DSIN" chunks begin
...     "DSINu" sub-containers (one per loaded instrument)

Each DSINu sub-container has its own hsin identity block with a unique hash, representing an individual instrument slot within the multi.

File Sizes

Kontakt multis are typically larger than single instruments (observed range: 1.5-1.6 MB) because they embed the preset state for multiple instruments.

What It Extracts

TypeSourceExample
Trait: multi_nameFilename / SOUNDINFOWonder Mountain
Edge (input): Library referenceAUTHORING_APP product_idKontakt Factory Library or kontakt:product_id:1234

Implementation Notes

This extractor reuses the NI container parsing logic from the Kontakt extractor (ni_container.rs). The top-level DSIN structure is identical to .nki files — the extractor reads the product ID from the AUTHORING_APP chunk the same way.

The nested DSINu instrument containers within the multi could theoretically be parsed individually to discover which instruments are loaded, but this is deferred to a future iteration.

Example Usage

# Scan Kontakt multis
atlas scan ~/Libraries/NI/Kontakt/Multis/

# See what library a multi belongs to
atlas inputs ~/Libraries/NI/Kontakt/Multis/Wonder\ Mountain.nkm

Use Cases

  • Multi inventory — Catalog all Kontakt multis with their parent library associations
  • Library dependency — Identify which libraries are required by multi-instrument setups
  • Instrument slot tracking — (Future) Discover which individual instruments are loaded within a multi