Scientific InstrumentValidated with real files

JCAMP-DX Spectroscopy (.jdx/.dx)

.jdx.dx.jcm

Any spectroscopy instrument software exporting via the IUPAC JCAMP-DX exchange standard (Bruker and many others)

What it is

A plain-text spectroscopy exchange format defined by the Joint Committee on Atomic and Molecular Physical Data (JCAMP) — an official IUPAC-recognized standard, so unlike most formats on this page it has a real published specification and a public conformance test corpus we could check against.

Who produces it

FTIR, NMR, UV-Vis, and other spectroscopy software that exports in the vendor-neutral JCAMP-DX format — Bruker is a common source, but the format itself is vendor-neutral by design.

What we read / what we don't read

What we read

  • ##XYDATA=(X++(Y..Y)) blocks, both plain (uncompressed) ASCII numbers and ASDF-compressed data (SQZ/DIF/DUP pseudo-digit encoding) — the compression decoder was checked character-for-character against a well-established open-source JCAMP-DX parser and validated against two real Bruker files from IUPAC's own official test corpus
  • ##XYPOINTS=(XY..XY) and ##PEAK TABLE=(XY..XY) blocks with plain (uncompressed) numbers
  • $$ inline comments (JCAMP-DX's own comment marker), stripped before decoding

What we don't read

  • ASDF compression on XYPOINTS/PEAK TABLE blocks — theoretically allowed by the spec, but no real fixture exercises it, so a compressed line there is rejected rather than guessed at
  • PAC (packed, sign-only) encoding and scientific notation within ASDF — neither has a real fixture to verify against

How to import it into AltaiPlot

  1. Open AltaiPlot and drag your .jdx/.dx/.jcm file onto the window, or use File → Import.
  2. AltaiPlot detects the JCAMP-DX text structure and reads it directly — no external dependency involved.
  3. Plain or ASDF-compressed spectral data lands as a plotting-ready X/Y column pair.
  4. A compression scheme this importer doesn't cover (PAC, or ASDF outside XYDATA) is rejected with an explicit error rather than misread.

Auditability note: this page's capability claims are sourced fromsrc/renderer/src/engine/v7/import/importers/JcampDxImporter.ts:13 — see the full format list for every extension AltaiPlot recognizes.