Test Signal Generator

Test Signal Generator input properties for Script Engine. Virtual input that synthesises video test patterns (SMPTE/EBU/100% colour bars, grayscale ramp/steps, grid, checkerboard, concentric circles, solid colour, animated frame counter, and primary fills) and audio test signals (silence, sine/square/sawtooth tones, white/pink noise, log frequency sweep, and L/R channel-ID tones). Designed for pipeline diagnostics: verifying colour and levels end-to-end, tuning encoder settings, measuring round-trip latency, and confirming channel routing.

Property Type Access Description
ShowAdvancedOptions bool get/set Show or hide the input's advanced settings in the editor UI. [default=false].
AutoStart bool get/set Whether the generator starts producing output as soon as the project loads. [default=true]. When true, StartCommand is invoked automatically during input initialisation, so the input goes straight to Running. Disable to require an explicit start (useful when the signal should only begin on operator action or via a script trigger).
EnableVideo bool get/set Whether the video pattern is rendered each frame. [default=true]. When false, no video pattern is produced — useful when this input is only being used as an audio source. Re-enabling redraws the pattern on the next frame.
EnableAudio bool get/set Whether the audio test signal is produced each frame. [default=true]. When false, the input outputs silence on all channels instead of the configured AudioSignalType. Use this when only the video pattern is needed, or to mute the test tone temporarily without changing the selected signal type.
PlaybackState PlaybackState get Current playback state of the generator (read-only). Reflects whether the input is Stopped or Running. Set indirectly via StartCommand / StopCommand (or AutoStart at load time). Scripts should read this to decide whether the signal is live; the property also drives the running indicator and the enabled state of the Start/Stop buttons.
StartCommand Command get Begin generating the configured video pattern and audio signal. Invokable command. Transitions PlaybackState to Running and starts output from a clean state — frame counter, sweep, and noise are all reset, and the first video frame is drawn fresh from the current settings. No-op if already running.
StopCommand Command get Stop generating video and audio output. Invokable command. Transitions PlaybackState to Stopped, silences the audio output, and resets the audio meters. Video output is no longer produced until StartCommand is invoked again. No-op if already stopped.
VideoPatternType VideoPattern get/set Which video test pattern to render. [default=SmpteColorBars]. Selects the pattern produced each frame. Most patterns are static and only redrawn when settings change; FrameCounter is animated and updates every frame (it also drives a flash marker for latency measurement). Pattern-specific properties only take effect for the matching pattern (e.g. GridSpacing for Grid, CheckerSize for Checkerboard, SolidColorRed/Green/Blue for SolidColor).
OutputWidth int get/set Output frame width in pixels. [min=128, max=3840, default=1920]. Controls the horizontal resolution of the generated video pattern. Combine with OutputHeight to test specific aspect ratios (e.g. 1920x1080 for 16:9, 3840x2160 for UHD).
OutputHeight int get/set Output frame height in pixels. [min=128, max=2160, default=1080]. Controls the vertical resolution of the generated video pattern. See OutputWidth for typical resolution pairings.
GridSpacing int get/set Spacing between grid lines, in pixels. [min=8, max=256, default=64]. Only used by the Grid pattern. Smaller values produce a denser crosshatch (useful for inspecting fine geometric distortion or scaler artefacts); larger values give a sparser grid suitable for general framing checks. The outer frame border is always drawn regardless.
CheckerSize int get/set Side length of one checkerboard square, in pixels. [min=4, max=128, default=32]. Only used by the Checkerboard pattern. Small sizes are useful for stressing scalers, chroma subsampling, and codec block boundaries; large sizes are easier to read for level and contrast verification.
ShowCenterCross bool get/set Whether to overlay a small red centre cross on the rendered pattern. [default=true]. Drawn on top of every pattern after generation. Useful for confirming framing, centring, and pixel-aspect handling through downstream operators and encoders. Disable for clean test patterns when you don't want the overlay to interfere with measurement.
ShowSafeAreas bool get/set Whether to overlay the broadcast title-safe and action-safe markers. [default=false]. When enabled, draws two dashed rectangles on top of the pattern: a yellow action-safe boundary at 90% of the frame and a green title-safe boundary at 80% of the frame. Use to verify that graphics, captions, and key visuals stay within the expected safe areas after downstream scaling or cropping.
CircleLineWidth int get/set Line thickness for the circle/aspect-ratio pattern, in pixels. [min=1, max=8, default=2]. Only used by the Circle pattern. Controls how thick the concentric reference circles and the horizontal/vertical/diagonal centre lines are drawn. Increase for higher-resolution outputs so the lines remain visible after downscaling or compression.
SolidColorRed int get/set Red channel of the solid-fill colour, 0–255. [min=0, max=255, default=0]. Only used by the SolidColor pattern. Combined with SolidColorGreen and SolidColorBlue to produce an arbitrary 8-bit-per-channel BGRA fill. Useful for level checks (e.g. pure 255 red to inspect chroma clipping) or for driving chroma keyers with a known backdrop.
SolidColorGreen int get/set Green channel of the solid-fill colour, 0–255. [min=0, max=255, default=128]. Only used by the SolidColor pattern. See SolidColorRed for general usage; pure 255 green is the standard chroma-key reference colour.
SolidColorBlue int get/set Blue channel of the solid-fill colour, 0–255. [min=0, max=255, default=255]. Only used by the SolidColor pattern. See SolidColorRed for general usage.
AudioSignalType AudioTestSignal get/set Which audio test signal to generate. [default=Sine]. Silence outputs nothing (level reference). Sine/Square/Sawtooth produce a tone at AudioFrequency with AudioGainDB applied. WhiteNoise outputs flat-spectrum noise. PinkNoise outputs noise with the perceptually flat (−3 dB/octave) slope used for room and system tuning. Sweep is a logarithmic frequency sweep between SweepLowFrequency and SweepHighFrequency over SweepDurationSeconds, repeating per AudioSweepMode. ChannelId plays ChannelIdFrequencyLeft and ChannelIdFrequencyRight alternately on each channel every half-second to confirm L/R routing.
AudioFrequency int get/set Tone frequency for the periodic audio signals, in Hz. [min=20, max=20000, default=1000]. Applies to Sine, Square, and Sawtooth signal types only (ignored by noise, sweep, and channel-ID modes). 1000 Hz is the standard EBU/SMPTE reference tone; 440 Hz is musical A4. The range covers the full audible band — values above ~20 kHz are clamped, and frequencies near the Nyquist of the 48 kHz output may alias for non-sine waveforms.
AudioGainDB int get/set Output level for the audio signal, in decibels relative to full-scale. [min=-60, max=6, default=-20]. Applies to all audio signal types. −20 dBFS matches the common EBU/SMPTE alignment level and is safe against clipping when downstream stages add gain. Values above 0 dBFS will clip in fixed-point targets — only use the positive headroom for deliberate overload tests.
SweepDurationSeconds int get/set Length of one full low→high frequency sweep, in seconds. [min=1, max=30, default=5]. Only used when AudioSignalType is Sweep. Shorter durations are useful for quick spectrum checks; longer durations reveal frequency-dependent issues (resonances, comb filtering, codec artefacts) with finer resolution. Combine with AudioSweepMode to control whether the sweep stops, repeats, or ping-pongs at the end.
SweepLowFrequency int get/set Lower bound of the frequency sweep, in Hz. [min=20, max=1000, default=20]. Only used when AudioSignalType is Sweep. Sets the starting (and, in PingPong mode, returning) frequency of the logarithmic sweep. Must be less than SweepHighFrequency for the sweep to run in the expected direction.
SweepHighFrequency int get/set Upper bound of the frequency sweep, in Hz. [min=1000, max=20000, default=20000]. Only used when AudioSignalType is Sweep. Sets the peak frequency of the logarithmic sweep. Keep below the Nyquist limit (24 kHz at 48 kHz sample rate) to avoid aliasing — 20 kHz covers the full audible band.
AudioSweepMode SweepMode get/set How the frequency sweep behaves at the end of one pass. [default=PingPong]. Only used when AudioSignalType is Sweep. OneShot sweeps once from low to high and then holds at the high frequency. Repeat snaps back to the low frequency and runs again (audible discontinuity). PingPong reverses direction at each end for a continuous low↔high motion with no jumps — usually the most pleasant for spectrum-by-ear inspection.
ChannelIdFrequencyLeft int get/set Tone frequency played on the left channel during channel identification, in Hz. [min=100, max=4000, default=440]. Only used when AudioSignalType is ChannelId. Left and right take turns every half-second: during the left half the right channel is silent, and vice versa. Pick a frequency clearly distinct from ChannelIdFrequencyRight so you can tell them apart by ear (e.g. 440 vs 880 Hz — musical A4 and A5).
ChannelIdFrequencyRight int get/set Tone frequency played on the right channel during channel identification, in Hz. [min=100, max=4000, default=880]. Only used when AudioSignalType is ChannelId. See ChannelIdFrequencyLeft for full behaviour — keep this distinct from the left frequency so the channels are unambiguous by ear.
CurrentFrameCount long get Number of video frames rendered since the last StartCommand (read-only). Increments by one per rendered frame while PlaybackState is Running, and resets to 0 when the generator is restarted. Drives the binary visualisation in the FrameCounter pattern, and can be polled from scripts to gate timing-sensitive logic or measure throughput.

Inherits from: AbstractInput, AbstractAudioProcessing, AbstractAudioMetering.

See also: Test Signal Generator in Inputs — user-facing introduction, screenshots, and section summaries.