> For the complete documentation index, see [llms.txt](https://docs.timeinpixels.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.timeinpixels.com/nobe-omniscope/scopes/waveform.md).

# 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 color 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 coloring, in parade modes each channel is tinted with its own color.

> **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 linearizing 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 colors** | Use pure red/green/blue instead of shaded trace colors                                                                                                                                                                                                                                                                                                                                                                                               |
| **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 colored 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 color**     | Customizable (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 color**       | Customizable line and text color                                                                       |

In parade modes, peak levels are shown per channel.

For Video-range sources, the peak markers and numeric readouts follow the source's actual range definition, including SDI-style legal-range mapping and any preserved below-black / above-white excursions. If **Scale the video/SDI range to the full range** is enabled, the displayed trace is expanded for viewing, but the source-aware peak math still tracks the original range correctly.

## Zoom & Pan

Zoom vertically into shadows or highlights for detailed inspection, then pan the zoomed scale to inspect a different level range.

| Input                                | Action                             |
| ------------------------------------ | ---------------------------------- |
| **Mouse wheel**                      | Zoom in/out (0.5×–20×)             |
| **Space + Left-click drag**          | Pan the zoomed waveform vertically |
| **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 centers 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.) |
| **Color**          | Customizable 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 colors 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 analog 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 color 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                             |
| Space + Left-click drag | Space + Left-click drag | Pan zoomed waveform                     |
| 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)
