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
| Type | Source | Example |
|---|---|---|
Trait: multi_name | Filename / SOUNDINFO | Wonder Mountain |
| Edge (input): Library reference | AUTHORING_APP product_id | Kontakt 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