Atlas Audio: NKS Sound File Extractor
The NKS Sound File extractor reads preset metadata from Native Instruments’ NKS-compatible sound files. These files contain rich categorization data embedded by plugin vendors, making them one of the most metadata-dense formats in a typical sample library. It’s part of the Atlas Audio extractor pack.
Extension: .nksf
Format Overview
NKSF files use a RIFF container with NIKS as the form type. The first chunk (NISI) contains preset metadata encoded in MessagePack format — a compact binary serialization similar to JSON. The metadata is embedded at authoring time by the plugin vendor or preset designer and follows the NKS (Native Kontrol Standard) specification.
Binary Structure
Offset Content
0x00 "RIFF" (4 bytes)
0x04 File size (4 bytes LE)
0x08 "NIKS" form type (4 bytes)
0x0C "NISI" chunk ID (4 bytes)
0x10 Chunk size (4 bytes LE)
0x14 Version (4 bytes)
0x18 MessagePack payload (variable)
The MessagePack payload is a map containing string keys and values. All metadata fields are optional.
What It Extracts
The extractor produces traits only (no edges). NKSF files describe presets — they don’t reference external files. The traits provide preset categorization and authorship metadata.
| Trait | Source | Example |
|---|---|---|
preset_name | name field | Misty Canopy |
preset_author | author field | Alexkid |
preset_vendor | vendor field | Native Instruments |
preset_plugin | First entry in bankchain array | Massive X |
preset_library | Second entry in bankchain array | Lo-fi and Chill Plucks |
preset_types | types array (flattened) | Piano / Keys > Other Piano / Keys |
preset_modes | modes array | Synthetic |
preset_characters | characters array | Distorted, Synthetic |
preset_comment | comment field | Lo-Fi, Chillwave, Hiphop, Study Beats |
preset_device_type | deviceType field | INST |
preset_uuid | uuid field | 98852d18-ecdb-4d80-b1b1-7087b0d38e2a |
Bankchain
The bankchain array is the most lineage-relevant field. It encodes the plugin and library hierarchy:
bankchain: ["Massive X", "Lo-fi and Chill Plucks", ""]
^plugin ^library ^sub-bank (often empty)
This allows Atlas to group presets by plugin and library without needing access to the plugin itself.
Types and Modes
The types field uses a hierarchical structure (e.g., Piano / Keys > Other Piano / Keys). The modes and characters fields are flat tag arrays describing the sonic character of the preset.
NKS Preview Audio
NKS sound files have an associated audio preview file used by NI’s browser for auditioning presets. The preview follows a deterministic naming convention:
Presets/
Misty Canopy.nksf
.previews/
Misty Canopy.nksf.ogg
The extractor constructs the expected preview path (<source_dir>/.previews/<filename>.ogg) and checks if the file exists on disk. If found, it emits an output edge linking the preset to its preview audio.
| Type | Source | Example |
|---|---|---|
| Edge (output): Preview audio | NKS naming convention + existence check | .previews/Misty Canopy.nksf.ogg |
This relationship is certain when the file exists — the NKS specification defines this convention, and preview files are generated by the plugin vendor or Native Access during installation.
Performance Notes
All metadata is in the first ~400 bytes of the file. The extractor reads only the NISI chunk header and MessagePack payload — no need to buffer the full file. The remaining file content is the plugin’s binary preset state, which Atlas does not parse.
Example Usage
# Scan NKS presets
atlas scan ~/Libraries/NI/User Content/
# Search by plugin
atlas search --trait preset_plugin "Massive X"
# Find all presets by a specific author
atlas search --trait preset_author "Alexkid"
Use Cases
- Preset inventory — Catalog all NKS-compatible presets across libraries with their categorization
- Plugin mapping — See which presets belong to which plugin and library via the bankchain
- Author tracking — Track preset authorship across libraries
- Category browsing — Search presets by type, mode, or character traits
- Library auditing — Verify which libraries have NKS-tagged presets installed