> 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="https://565437294-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MFqn5MuayPgQPMZ9pwf%2Fuploads%2Fgit-blob-e70c3939967de6b27c5f35fadabe5efd646ad60f%2F2026-02_waveform.jpg?alt=media" 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.

## Sweep

> **Unreleased:** 1 Field is implemented locally and is not yet available in a published release.

Sweep selection requires **Pro**. Other editions use **1 Line**. Choose **Sweep (Pro) → 1 Line** or **Sweep (Pro) → 1 Field** from the waveform context menu, or use **Sweep** in Waveform Settings. Sweep is independent of the display mode, including Parade.

* **1 Line** is the existing waveform: horizontal position follows image columns, with rows overlaid.
* **1 Field** progresses through successive scanlines from left to right. Each scanline occupies a small horizontal interval, retaining pixel order within the line. This helps inspect how signal levels vary from the top to the bottom of the picture.

For interlaced input, select **First field** or **Second field**. First/second follows the input's field order, so the first field can be either top or bottom. For progressive input, both selections display the complete picture.

1 Field reads the original active source raster before crop, masks, deinterlacing, and working-view color transforms. It does not include SDI blanking or provide a calibrated broadcast timebase. A per-scope source override or snapshot reference is treated as a progressive picture. Per-scope LUT, colorization, scale, zoom, targets, and Smooth Trace remain available.

The mode uses sample points. Enhanced Render, the two low-pass filters, whole-frame peak markers/Peak Hold, trace-edge highlighting, and working-view color pins do not apply to the selected field. Their settings are preserved for returning to 1 Line.

## 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 for a full-range signal on the 8-bit or 10-bit scale, thin dashed lines mark 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**. They are not drawn separately for video-range sources, where those boundaries already align with the displayed video scale. 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="https://565437294-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MFqn5MuayPgQPMZ9pwf%2Fuploads%2Fgit-blob-03c30d2e361d97b4e0e81974e42d68ff202dbb4a%2F2026-02_waveform-pq-scale.jpg?alt=media" alt=""><figcaption><p>Waveform with PQ ST 2084 nit scale</p></figcaption></figure>

## Input Gain (unreleased)

**Input Gain** scales the trace from **10% to 500%**, with **100%** as the default. Set it in the context menu or under **Source & Input** in Waveform Settings. It works in both sweep modes and every display mode.

Luma and RGB scale around black; Cb and Cr scale around neutral. The graticule stays fixed. For example, a 25% signal displays at 50% with 200% Input Gain. Peak markers and their displayed values follow the gained trace. Source pixels, shared QC measurements, and QC violation thresholds are unchanged. Gain is applied to the plotted signal, so HDR nit readings follow the signal's transfer function rather than a direct multiplication of nits.

Double-click the **Input Gain** slider label or use **Reset to 100%** in the Input Gain menu to restore the original display. The existing **Gain** setting controls trace brightness separately.

## 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="https://565437294-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MFqn5MuayPgQPMZ9pwf%2Fuploads%2Fgit-blob-c464e1f6fb56cc941ed8ccc648bc3984ba6daf93%2F2026-02_waveform-highlight-trace.jpg?alt=media" 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="https://565437294-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MFqn5MuayPgQPMZ9pwf%2Fuploads%2Fgit-blob-c859494ee7ba23d3121a4425e0b9d8b80a5fec20%2F2026-02_waveform-highlight-lum-limit.jpg?alt=media" 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="https://565437294-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MFqn5MuayPgQPMZ9pwf%2Fuploads%2Fgit-blob-60bba3f952aa9d0a018556f7488c112ef5cc2311%2F2026-02_waveform-peak-levels.jpg?alt=media" 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.

### Peak Hold (unreleased)

Enable **Peak Hold** in the waveform's context menu or under **Peak monitors** in its settings to retain the lowest and highest measured levels. A **HOLD** label distinguishes these values from current-frame readings. The waveform trace continues to update live.

For a lightning effect or similar short event:

1. Select **Luminosity** mode and the **IRE** scale.
2. Enable **Peak Hold**, which also enables **Show Peak Levels**.
3. Choose **Reset Held Peaks** immediately before the take.
4. Read the retained maximum after the effect. Reset again before the next take.

**Reset Held Peaks** is available in both the context menu and settings. Disabling Peak Hold returns to current-frame readings. Held values are kept separately for each waveform and each parade channel; they are not saved in layouts. Changing the source or measurement domain starts a fresh hold.

Peak Hold uses signal statistics, so trace-based peak settings are temporarily inactive. It accumulates samples while the waveform is being processed, rather than analyzing frames that the input or analysis pipeline skips. Keep the waveform visible throughout the take.

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="https://565437294-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MFqn5MuayPgQPMZ9pwf%2Fuploads%2Fgit-blob-4868e58848b8a5690245cb20682e7fcc4b76c167%2F2026-02_waveform-custom-targets.jpg?alt=media" 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 |

## Stream Deck / Action Editor <a href="#streamdeck-action-editor" id="streamdeck-action-editor"></a>

| 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)
