# Waveform

The Waveform scope plots signal levels vertically against the horizontal position of each pixel in the frame. Use it to judge exposure, balance channels, and spot illegal levels at a glance.

<figure><img src="/files/xHrAdjgAB2sR4wZecskw" alt=""><figcaption><p>Waveform scope in RGB Parade mode</p></figcaption></figure>

## Display Modes

| Mode             | Description                                                                                                                                                                                                                                    |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Luma**         | Single luma trace — a weighted sum of the **gamma-encoded** R'G'B' channels. The weights follow the active colour space (Rec. 709: 0.2126 / 0.7152 / 0.0722; Rec. 2020: 0.2627 / 0.6780 / 0.0593). This is luma (Y'), not scene luminance (Y). |
| **RGB**          | R, G, B overlaid on the same area. Individual channels can be toggled on/off.                                                                                                                                                                  |
| **RGB Parade**   | R, G, B side by side with configurable spacing                                                                                                                                                                                                 |
| **YRGB Parade**  | Y, R, G, B side by side                                                                                                                                                                                                                        |
| **YCbCr Parade** | Y, Cb, Cr side by side                                                                                                                                                                                                                         |

Each mode can be **colorized** — in luma mode this applies HSV-based colouring, in parade modes each channel is tinted with its own colour.

> **Luma vs. luminance.** Luma (Y') is computed from the **non-linear** R'G'B' code values and is what broadcast waveform monitors have always shown. True luminance (Y) would require first linearising the signal through its inverse EOTF. For QC against legal-range limits or relative exposure reads, luma is the correct quantity; for absolute nit measurements, use the **PQ / HLG nit scale** described below — which does decode through the inverse EOTF.

## Scale

| Scale          | Range                       |
| -------------- | --------------------------- |
| **IRE**        | 0–100                       |
| **Percentage** | 0–100 %                     |
| **8-bit**      | 0–255                       |
| **10-bit**     | 0–1023                      |
| **PQ ST 2084** | 0–10 000 nits (logarithmic) |
| **HLG**        | 0–1 000 nits (logarithmic)  |
| **mV**         | 50–700 mV                   |

The scale follows the input source by default. Enable **Scale override** in the scope settings to choose a different scale per scope.

**Legal range lines** — when enabled, lines are drawn at the narrow-range (a.k.a. video-range / "legal") code values defined by Rec. 709 / Rec. 2020: **64 and 940 in 10-bit**, **16 and 235 in 8-bit**. Values below black level or above nominal peak (but still inside the 0–1023 / 0–255 container) are legal in the *full-range* sense but may be clipped or flagged by downstream broadcast gear. See [Signal Range](/nobe-omniscope/sources/davinci-resolve-ofx/signal-range.md) for full-range vs. narrow-range handling in the OFX integration.

### HDR / PQ Scale

PQ and HLG scales are **absolute**: the code values are decoded through their inverse EOTF (SMPTE ST 2084 for PQ, ARIB STD-B67 for HLG) to a physical luminance in nits. A 10-bit PQ code value of 769 is **1 000 nits** regardless of the display it is eventually shown on — this is what makes HDR absolute and SDR relative.

Adjust the **Mastering Level** slider to zoom into a specific nit range. Double-click to reset to the maximum value. Reference graticules at standard HDR levels (26, 203, 1 000 nits) help align HDR deliverables — **203 nits** is the SMPTE ST 2084-A reference diffuse-white level, and **1 000 nits** is the most common mastering-display peak.

<figure><img src="/files/YO3gs2Zl2XamYyrUineL" alt=""><figcaption><p>Waveform with PQ ST 2084 nit scale</p></figcaption></figure>

## Trace Presentation

| Setting              | Description                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Gain**             | Master trace brightness (1–100 %)                                                                                                                                                                                                                                                                                                                                                                                                                    |
| **Enhance Edges**    | Lifts fine detail in the trace for better visibility                                                                                                                                                                                                                                                                                                                                                                                                 |
| **True RGB colours** | Use pure red/green/blue instead of shaded trace colours                                                                                                                                                                                                                                                                                                                                                                                              |
| **True Y**           | Show the raw Y' channel from the incoming YCbCr signal instead of re-deriving luma from the RGB conversion. Only active for YCbCr sources — RGB sources are unaffected. Peak-level overlays and alert scaling stay accurate when this option is enabled. Useful when verifying a broadcast Y'CbCr deliverable that has already been chroma-subsampled, because re-deriving Y' from chroma-upsampled R'G'B' can introduce small rounding differences. |
| **Smooth Trace**     | Light temporal/post smoothing to reduce speckle noise                                                                                                                                                                                                                                                                                                                                                                                                |
| **Enhanced Render**  | Use line-strip rendering instead of point rendering                                                                                                                                                                                                                                                                                                                                                                                                  |

### Highlight Trace Edges

Render coloured outlines at the outermost boundaries of the waveform trace — useful for quickly spotting signal extent and comparing shots.

<figure><img src="/files/cfNPOXFSo6gtoO1laIWQ" alt=""><figcaption><p>Highlight trace edges showing signal boundaries</p></figcaption></figure>

| Setting            | Description                 |
| ------------------ | --------------------------- |
| **Edge thickness** | 0.5–3 px                    |
| **Edge colour**    | Customisable (default: red) |

### Mark QC Luma Violations

When the [Luminosity Limit](/nobe-omniscope/qc/luminosity-limit.md) QC check is enabled, turn on **Mark QC luminosity violations** to render luma trace samples in red wherever they exceed the configured min/max thresholds. This gives an immediate visual indication of out-of-range levels directly on the waveform.

<figure><img src="/files/Qp2AbemDI07cUdvlQFD0" alt=""><figcaption><p>Luma trace samples exceeding the QC limit highlighted in red</p></figcaption></figure>

Requires at least one min or max check to be active in the Luminosity Limit QC panel.

## Peak Levels

Peak level indicators show the minimum and maximum signal values for each channel as numeric readouts with horizontal marker lines.

<figure><img src="/files/VdudrU71lz0HEdK6AfD9" alt=""><figcaption><p>Peak level indicators on the waveform</p></figcaption></figure>

| Setting                     | Description                                                                                            |
| --------------------------- | ------------------------------------------------------------------------------------------------------ |
| **Show Peak Levels**        | Enable/disable the indicators                                                                          |
| **Trace-based Peak Levels** | Derive peaks from the rendered trace shape instead of image statistics (Luminosity and RGB modes only) |
| **Peak Levels colour**      | Customisable line and text colour                                                                      |

In parade modes, peak levels are shown per channel.

## Zoom

Zoom vertically into shadows or highlights for detailed inspection.

| Input                                | Action                 |
| ------------------------------------ | ---------------------- |
| **Mouse wheel**                      | Zoom in/out (0.5×–20×) |
| **Middle-click** or **Double-click** | Reset zoom to 1×       |

Context-menu presets for quick zoom levels:

* **0–20 IRE** (5×) · **0–15 IRE** (7.5×) · **0–10 IRE** (10×)

Toggle between **zoom shadows** (default) and **zoom highlights** to target the range of interest. In video range mode the view automatically centres on legal black or legal white.

### Adaptive Scale

The waveform scale adapts its granularity to the current zoom level — the more you zoom in, the more intermediate scale values appear. This keeps the readout useful at every magnification without cluttering the view when zoomed out.

{% embed url="<https://timeinpixels.com/nobe-omniscope/waveform-adaptive-scale.mp4>" %}

## Custom Targets

Up to 4 per-scope reference lines at specific signal levels — useful for marking black points, white points, or exposure targets.

<figure><img src="/files/nez6xBaiXZE1wT0A5rZN" alt=""><figcaption><p>Custom targets with numeric labels</p></figcaption></figure>

| Per-target setting | Description                                                  |
| ------------------ | ------------------------------------------------------------ |
| **Value**          | Adapts to the current scale (IRE, 8-bit, 10-bit, nits, etc.) |
| **Colour**         | Customisable per target                                      |
| **Thickness**      | 1–5 px                                                       |

Targets can be **dragged** directly on the waveform for quick repositioning.

### Global Target Sets

[Global targets](/nobe-omniscope/features/global-targets.md) provide a shared set of luma reference lines that appear across all waveform and parade scopes. Toggle individual targets, adjust colours and thickness, and save/recall target sets for different projects or standards.

## Filtering

| Setting                               | Description                                                                                  |
| ------------------------------------- | -------------------------------------------------------------------------------------------- |
| **Waveform Low-Pass filter**          | Horizontal box blur that softens the trace. Adjustable kernel size (0.5–20).                 |
| **Signal Low-Pass filter (EBU R103)** | Uses EBU R103 pre-filtered input. Requires the filter to be enabled globally in Preferences. |

## Broadcast Workflow Notes

Practical guidance from industry waveform/vectorscope practice:

* Use waveform as the primary legal-range check: keep most luma in the narrow range (64–940 in 10-bit) and allow only controlled specular excursions per delivery spec (EBU R103, ARIB TR-B32, SMPTE RP 2077).
* In digital workflows setup is not used; the legacy 7.5 IRE setup only applies to analogue NTSC.
* For balancing, pair **RGB Parade** with the **Vectorscope**: parade for channel-level alignment (neutral balance = aligned top/bottom of the three traces), vectorscope for hue/saturation verification.
* For **HDR** deliverables, don't rely on luma alone — switch to the **PQ or HLG nit scale** to read absolute brightness. Diffuse white should sit near 203 nits, highlights ride above that, and only a small percentage of pixels should reach the 600–1 000 nit "sparkle" zone.

## Layout & Spacing

| Setting                 | Description                                                         |
| ----------------------- | ------------------------------------------------------------------- |
| **Channel spacing**     | Gap between parade channels (0–30 px). Only active in parade modes. |
| **Top & Bottom margin** | Vertical margin (0–100 px)                                          |
| **Left margin**         | Space for the scale labels                                          |
| **16:9 ratio**          | Lock the scope aspect ratio to 16:9                                 |

## Color Pins

When colour pins are placed on the [Source Signal](/nobe-omniscope/scopes/source-signal.md) viewer, they are reflected on the waveform:

* **Luma / RGB modes** — circle at the pin's horizontal position and luma value
* **Parade modes** — circles in each channel lane at the respective R, G, B values
* Hovering a pin draws a horizontal line at its luma level

## Keyboard Shortcuts

| macOS        | Windows      | Action                                  |
| ------------ | ------------ | --------------------------------------- |
| Mouse wheel  | Mouse wheel  | Zoom in/out                             |
| Middle-click | Middle-click | Reset zoom                              |
| Alt (hold)   | Alt (hold)   | Morph between waveform and source image |

## StreamDeck / Action Editor

| Action                       | Description                                                                             |
| ---------------------------- | --------------------------------------------------------------------------------------- |
| **WaveformZoomBlacks**       | Cycle zoom presets for shadows (5×/7.5×/10×/1×). Also supports continuous dial control. |
| **WaveformZoomWhites**       | Cycle zoom presets for highlights                                                       |
| **WaveformTogglePeakLevels** | Toggle peak level indicators                                                            |

## Related

* [Global Targets](/nobe-omniscope/features/global-targets.md)
* [3D LUT & Color Management](/nobe-omniscope/features/3d-lut.md)
* [Gamut Check](/nobe-omniscope/qc/gamut-check.md)
* [Available Actions](/nobe-omniscope/streamdeck/available-actions.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.timeinpixels.com/nobe-omniscope/scopes/waveform.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
