QC

Every known rejection reason.Caught before you upload.

UTUVO QC is an offline delivery checker for Atmos ADM BWF masters. It reads the metadata, measures loudness on a 7.1.4 render, and reports every check as Pass, Warn, Fail or Skip against the spec the platform actually publishes.

Twenty-two checks across Apple Music, Amazon, TIDAL, UMG, Sony. Read the rejection cause before the rejection letter arrives.

macOS 13.0 or later · Apple Silicon and Intel · Developer ID signed · Apple notarized · 30-day trial

Public Beta 1.0.6

UTUVO QC report viewUTUVO QC report view
Twenty-two checks, one verdict per row.UTUVO QC report view: every check lands as Pass, Warn, Fail or Skip with the cause named

Product demo

See QC find the problem before delivery.

Twenty-two delivery checks, one clear verdict per row, with the reason behind every warning or failure.

63 seconds · English narration · 1920×1080 · Recorded product demo

A fast tour of the real QC workflow.Download video

The rejection reasons are public. Nobody checks them all at once before you upload.

Platforms publish the rules. They rarely tell you which one you broke. Below are eight rejection causes the delivery specs name, each paired with the QC check that catches it, and the full table of all twenty-two checks against the threshold and confidence that drives the verdict.

UTUVO QC checks gridUTUVO QC checks grid
A real checks grid: every row carries the rejection cause, the threshold, and a Pass, Warn or Fail verdict.

Eight rejection causes. One named check each.

  • Sample rate not 48 kHz. Caught by: Sample rate check.
  • Bit depth under 24-bit. Caught by: Bit depth check.
  • ADM metadata missing chna or axml. Caught by: ADM metadata check.
  • No bed at all in the file. Caught by: Bed layout check.
  • LFE missing, doubled, or full-band. Caught by: LFE channel check + LFE band-limit check.
  • True peak above −1 dBTP. Caught by: True peak check (4x oversampling, BS.1770-4).
  • Timeline offset left in the export. Caught by: Programme start check.
  • Timecode frame rate not 24 fps. Caught by: Timecode frame rate check (Apple / UMG / Sony: Confirmed MUST).

These checks target the rejection reasons the specs actually name. Every result is a pre-delivery reference, not the sole basis for whether a platform accepts the file; the honest scope is that the known rejection causes have been checked.

All twenty-two checks, with thresholds and confidence.

Confirmed is a hard must against the spec the platform publishes. Advisory is a recommendation; the platform may still accept, but the engineer should know.

CheckThresholdConfidence
Sample rate48 kHzConfirmed
Bit depth≥ 24-bitConfirmed
ADM metadatachna + axml presentConfirmed
Bed layout7.1.2 baselineAdvisory
LFE channelexactly oneConfirmed
LFE band-limitLF only (HF ratio)Advisory
Object count≤ 118Confirmed
Object positions±1.0, finite, every dynamic keyframeConfirmed
Programme start00:00:00.00000Advisory
Binaural metadatanot all OffAdvisory
Channel count≤ 128Advisory
Silent objectsnone silentAdvisory
Height contentreal height presentAdvisory
True peak≤ −1 dBTP (BS.1770-4, 4x oversampling)Confirmed
Integrated loudness−20 to −18 LUFS (Apple window)Advisory
Stereo alignment≤ 50 msAdvisory
Duration match≤ 41.7 msAdvisory
Dialnormpresent and consistentConfirmed
Spatialization authenticitynative vs upmix scoreAdvisory
File namingplatform naming rulesAdvisory
DAMF package.atmos attached at 96 kHzConfirmed
Timecode frame rate24 fpsConfirmed

Your rejection letter is hidden in metadata. QC pulls the whole dbmd apart and lays it out.

The Dolby metadata chunk (dbmd) carries dialnorm, downmix coefficients, per-layout monitoring trims and the timecode frame rate. Most rejection letters never mention it, because most readers never open it. QC parses dbmd and the .atmos companion so the engineer sees what the delivery spec actually asks for.

UTUVO QC dbmd parseUTUVO QC dbmd parse
A real dbmd parse: dialnorm, downmix coefficients, per-layout trims and the 24 fps chip, all in one window.

dialnorm, downmix, and the per-layout trims.

  • Dialnorm and downmix levels: parsed from the dbmd chunk (EBU Tech 3285 section 6), shown alongside the spec the platform expects.
  • Per-layout monitoring trims: the Dolby-private dbmd seg10 holds the trim for each monitoring layout, either a Manual number or the marker automatic when the renderer computes it on the fly.
  • Timecode frame rate: read from both dbmd and the .atmos companion file. Apple Music, UMG and Sony all mark 24 fps as Confirmed MUST.

Others give you one number. We tell you how far that number is from Dolby Renderer, and why.

UTUVO QC measures integrated loudness on a 7.1.4 render of the ADM (ITU-R BS.1770-4). On three real masters used as ground truth, it reads consistently +0.10 to +0.45 LU louder than a real Dolby Renderer. That gap is known, documented, and deliberately not corrected.

UTUVO QC loudness cardUTUVO QC loudness card
A real loudness card with the Apple Music target window, the measured LUFS, and the documented offset to Dolby Renderer.

Honest by construction.

  • Measurement-only 7.1.4 render. QC does not produce a delivery render or an encode, and never modifies your master.
  • No Dolby SDK, no licence. QC reads ADM metadata directly and measures loudness from the PCM.
  • Fully offline. No telemetry, no upload, no cloud. Masters and reports stay on your machine.

BS.1770-4 only defines surround weighting for 5.1 (±110°). The three published treatments of 7.1.x back-surround weighting disagree with each other, so until the coefficients are available, correcting would mean guessing. Treat the QC figure as accurate to roughly half a LU against a real Dolby Renderer, not to a tenth of a LU.

Fake Atmos can be heard. Now it can be seen.

Spatialization authenticity scores how likely a master is a native discrete Atmos mix rather than a stereo-to-Atmos upmix. ObjectMap adds a top-down view and a Height view, and draws each dynamic object’s trajectory as a flight trace through the room.

UTUVO QC ObjectMap viewUTUVO QC ObjectMap view
A real ObjectMap frame: top-down view, Height view, and four object flight traces from a real Atmos master.

Authenticity: experimental, advisory, opt-in.

  • Spatialization authenticity is experimental, advisory, and opt-in. It can only ever return Warn. It is never a verdict.
  • ObjectMap shows top-down and Height views with dynamic flight traces per object, read from the ADM at every dynamic keyframe.
  • Object motion summary: static, horizontal or with-height, read from the metadata.

Upmixing a stereo catalogue to Atmos is a legitimate practice; upmixed masters routinely pass platform QC and ship. This check answers "native discrete or upmixed?", not "valid or invalid?".

A folder at a time. Same engine in GUI and CLI.

UTUVO QC batch viewUTUVO QC batch view
A real batch view: one row per master, the worst verdict at the top, and the matching exit code for the whole folder.

Per-file reports, worst-case exit code.

Drop a folder, get one HTML report per master, and the batch ends with exit 0 (all pass), 1 (any warn) or 2 (any fail). GUI and CLI run the same Rust engine, so a delivery script on the studio NAS and a drag-and-drop session in the GUI share the same verdict.

  • HTML report output, self-contained, prints to PDF without external services.
  • Same engine in CLI and GUI. Ship one verdict, in a script or a window.
  • Three-language manual bundled: English, Traditional Chinese, Simplified Chinese.
UTUVO QC MP4 stampUTUVO QC MP4 stamp
A real Atmos MP4 with the red "Not a Deliverable Master" stamp, so the engineer sees the honest scope before upload.

MP4: container-level checks, no faking.

Atmos MP4 (DD+ JOC) gets format and channel info read from the container. That is the honest scope: container-level checks only, not a full Atmos MP4 QC. When the input is an MP4, the report shows the red "Not a Deliverable Master" stamp so the engineer is never misled about what was checked.

Passed QC. Now ship it the way the label wants it.

The Ship tab takes the master that just passed and builds the delivery folder for you: tree, file names, manifest, checksums. Nothing is written until you have read the plan.

UTUVO QC Ship tab: profile and metadata formUTUVO QC Ship tab: profile and metadata form

Five profiles, one dry-run first.

  • Sony Music Atmos ADM BWF + DAMF, Dolby generic ADM BWF, UMG Dolby Atmos Audio Servicing, UMG archival, and a distributor-generic profile. UMG profiles ask for mixer initials, studio location, delivery date and resubmission status.
  • QC stays the gate: a Fail refuses to package, a Skip can only dry-run, the stereo reference is the one you set on the QC tab.
UTUVO QC Ship tab: dry-run delivery planUTUVO QC Ship tab: dry-run delivery plan
  • Preview delivery lists every file with its destination and size. Anything that would stop the delivery shows in the Blocked card; anything worth reading first shows in Warnings.
  • Sources open read-only and copy byte for byte. The folder ships with manifest.json, SHA256SUMS and a delivery note; the recipient checks it with utuvo-qc verify, no GUI needed.

After the platform encodes it, how much is left?

The Encode tab plays the EC-3 JOC through a 7.1.4 endpoint you choose, captures the system render in real time, aligns it to the ADM master and measures the difference channel by channel.

UTUVO QC Encode tab: master, encoded file and capture endpointUTUVO QC Encode tab: master, encoded file and capture endpoint

Measurements, not a verdict.

  • Per-channel lag and gain, integrated loudness and true peak delta, residual energy, and residual by band: below 120 Hz, 120 Hz to 2 kHz, 2 to 8 kHz, above 8 kHz.
  • Encoding is lossy, so the residual is never zero. Encode reports and advises; it never adds a Fail to the QC verdict.
  • Capture runs at playback speed: a seven-minute deliverable takes seven minutes. The tab shows progress and the remaining estimate.
  • Same engine in the CLI: utuvo-qc encode-check writes JSON and an HTML section that drops into the QC report.
UTUVO QC interactive tutorial, step 1UTUVO QC interactive tutorial, step 1

Learn it in the app.

A guided tour walks the QC, Encode and Ship tabs with a spotlight and a pointer. Steps that need an action wait for you; steps that only explain move on with Got it. Replay it from the ? button in the header, from Settings, or from the Help menu.

Requirements

macOS 13.0 or later · Apple Silicon and Intel

Status: Available. Download Public Beta 1.0.6 above.

Specs and download

To report a beta issue, choose Help → Report a Problem… in the app; UTUVO prepares an email to support@utuvo.app and does not attach or upload logs.

Version1.0.6
RequirementsmacOS 13.0 or later · Apple Silicon and Intel
Size14,790,193 bytes
SHA-25622dc5d4a9e91f8305b8f5ae1bc26d68894b91457fbfa7e3305752aff4bd6031c
SigningDeveloper ID signed · Apple notarized
Trial30 days, then a licence key

Asked often enough.

Does it render or encode my master?

No. Checks are offline and metadata-plus-PCM only: it reads ADM metadata and measures loudness from the PCM. It never renders or encodes, and needs no Dolby SDK.

Can I put it in a delivery script?

Yes. CLI with automation exit codes (0/1/2; batch takes the worst result), plus folder batch checking and a self-contained HTML report you can print to PDF.

Does anything leave my machine?

No. Fully offline, zero telemetry. Masters and reports stay local.