◀ Back to contents

Generator

This page covers the generator's controls. For how it synthesizes signals inside - direct digital synthesis, the waveform kernels, sweeps and active distortion compensation - see Theory of operation ▸ Signal generator.

Produces test signals routed to the configured output device. Two engines coexist in this pane and are mutually exclusive: the tone generator (sine / sweep / noise / etc.) and the audio-file player. Starting one stops the other.

Every numeric field here accepts the value four ways: type it in, scroll the mouse wheel, click the ▲/▼ arrows, or - with the field focused - press the keyboard ↑/↓ cursor keys (same step as the arrows).

Generator pane 1 2 3 4 5 6 7 8
  1. ON AIR indicator. Grey when idle; the LED lights and the text blinks while the generator is emitting - ON AIR indicator.
  2. Signal form. The waveform selector (sine, dual-tone, triangle, rectangle, white / pink noise, linear & log sweep, compensated sine) - Signal form. The surrounding fields reconfigure per form (duty cycle for triangle/rectangle, the sweep controls for sweeps).
  3. Snap to FFT bin. Rounds the output frequency to the exact FFT bin so the tone is coherent with the analyser - the basis of the frequency-lock loop (Theory ▸ phase accumulator). See Snap frequency to nearest.
  4. Amplitude (RMS). Output level in volts RMS against the DAC calibration; the unit selector accepts µV/mV/V, dBV and dBFS - Amplitude (RMS).
  5. Corrections. Loads a harmonic-compensation file so the compensated sine form actively cancels the chain's measured distortion - Corrections.
  6. WAV file. Save to... exports the current signal to WAV/AIFF/FLAC; Load from... + In loop plays a file back (the In-loop box repeats it).
  7. Calibrate DAC & Play. The crosshair button opens the DAC calibration dialog; the green triangle is Play / Stop. Starting the tone stops file playback and vice-versa.
  8. Output channel. The Both / Left / Right combo in the header row picks which DAC lane carries the signal; the unselected lane plays digital silence - Output channel.

Header

Signal form

Drop-down combo with eleven waveforms. Each entry has a small pictogram showing the waveform shape. Changing the form reconfigures the surrounding controls - the duty-cycle field enables for Rectangle and Triangle, the sweep controls appear for Linear sweep and Log sweep, the frequency field disables for the noise variants.

FormNotes
SinePure tone, DDS-driven.
Sine compensatedDDS-corrected so the actual emitted frequency exactly matches the requested value.
TriangleAdjustable duty cycle (asymmetric ramp).
RectangleAdjustable duty cycle (high-time fraction).
White noiseUniform-random samples.
Pink noiseGaussian source via Voss-McCartney.
Pink noise linearFlat-amplitude white source via Voss-McCartney.
Linear sweepChirp with linear-in-time frequency ramp.
Log sweepFarina logarithmic chirp - equal energy per octave.

Output channel

Combo in the top header row - in the Signal form label row, above the signal-form selector and beside the ON AIR indicator - choosing which DAC lane carries the generated signal: Both, Left or Right. The unselected lane plays digital silence, so you can drive one side of a stereo device - or one channel of the device under test - on its own. It is live: switching lanes while a tone is playing takes effect at once, without stopping the generator.

ON AIR indicator

An LED and the text ON AIR at the top-right of the pane. Whenever either the tone generator OR the audio-file player is driving the output, the LED lights solid red and the ON AIR text blinks. Both go grey when nothing is playing - so the indicator tells you, at a glance, whether the program is currently emitting sound.

Frequency

Frequency

The output frequency, for periodic waveforms (disabled for the noise forms). Accepts Hz and kHz; a number with no suffix is read as Hz, and the display switches to kHz above 1 kHz.

The label may show a bracketed annotation - e.g. Frequency (1000.122 Hz) - when the snap-to-FFT-bin correction or the integer-sample period (for Rectangle) produces an emitted frequency slightly different from what you typed. The bracketed value is the actual emitted frequency.

Snap frequency to nearest

Checkbox. When on, the emitted frequency snaps to the nearest FFT bin for the current FFT-analyser length. Useful for clean spectrum measurements: with snap on, the fundamental sits exactly on a bin and window-leakage doesn't pollute the harmonic estimates.

Duty cycle

Active only for Rectangle (high-time fraction) and Triangle (rise-time fraction), as a percentage. Each waveform remembers its own value, so switching between Rectangle and Triangle restores each one's last duty.

For Rectangle only, the duty is adapted to what the DDS can actually output: its +1/−1 step can land only on a whole sample, so the finest duty step is one sample per period - f / fs (output frequency ÷ sample rate). Example: 10 kHz at 384 kHz gives 38.4 samples per period, so the smallest step is ≈ 1/38.4 ≈ 2.63 %, and a finer typed value snaps to the nearest achievable step. The label then shows the adapted duty in brackets - e.g. Duty cycle (2.632 %).

Triangle uses real continuous-phase DDS (its samples ride the exact ramps, so the corner is sub-sample), so its duty is exact - no quantisation and no bracket. See Theory ▸ duty quantisation.

Dual tone (IMD)

Generator in dual-tone mode

Visible only when Dual tone is selected. The single frequency field is joined by a second frequency and an amplitude balance between the two tones (each as a percentage; a 19 kHz + 20 kHz or 60 Hz + 7 kHz pair are the usual intermodulation tests). The combined output is re-normalised to the dialled V RMS whatever the split, so a 50/50 pair is not quieter than a single tone at the same setting. Both tones can be snapped to FFT bins independently, and the FFT analyser measures their intermodulation products - see Theory ▸ dual tone and Theory ▸ two-tone.

Dual tone (compensated)

The intermodulation-corrected counterpart of Dual tone, the two-tone analogue of Sine compensated. Every distortion product of a two-tone signal - each tone's harmonics and their intermodulation products - sits at a·f1 + b·f2 for integer a, b, so the generator pre-distorts the output with an anti-phase correction tone at every such product to cancel it at the analyser side. The corrections are measured for you by the closed-loop predistortion wizard - the ★ wand button beside the FFT analyser's record control - and then applied live. Selecting this form from the combo without measured corrections loaded simply emits the plain two tones, exactly as Sine compensated falls back to a pure sine.

Sweep / chirp

Visible only when Linear sweep or Log sweep is selected. Replaces the single frequency field with a block of sweep parameters.

Generator in sweep mode

Start frequency

The frequency the chirp begins at (Hz / kHz).

Stop frequency

The frequency the chirp ends at (Hz / kHz).

Duration

Total chirp length, in seconds.

Fade in

Seconds. Amplitude ramp at the start of the chirp, suppressing the click an abrupt amplitude step would cause.

Fade out

Seconds. Same as fade-in but at the chirp's end.

Loop

Checkbox. When on, the sweep restarts as soon as it ends, in a continuous loop.

Amplitude

Amplitude (RMS)

The output level, held internally as volts RMS. Units: µV, mV, V, dBV and dBFS (case-insensitive); a number with no suffix is read as volts. The metric display auto-rescales (µV / mV / V) so the number stays readable; typing a dBV or dBFS value keeps the field in that unit (the auto-rescaling never switches to a dB unit on its own), and the wheel and arrow keys then step it in dB - 10 dB per wheel notch, 1 dB per arrow. Typing a plain number with no suffix again returns the field to volts.

Note: dBV is referenced to 1 V RMS regardless of device - x dBV = 10x/20 VRMS. Its suffix has short forms: d and db are accepted as well as dbv.

dBFS is referenced to the converter's full scale instead. Type the level with a dbfs suffix - short form dbf - for example -6 dbfs. Following the AES17 convention, 0 dBFS is a full-scale sine, that is the full-scale RMS level, so the number keeps its meaning when you change the waveform. The value is still held as volts RMS and resolved against the current DAC calibration: recalibrating the DAC therefore changes the dBFS figure shown for the same physical output level.

Ceiling. The field stops at the level where the signal just reaches the converter's full scale - beyond that the output could only clip - so the maximum follows the waveform: a rectangle may sit 3 dB higher in RMS than a sine, a triangle a little lower, and a dual tone tracks its own amplitude split. Volts, dBV and dBFS all trim to that same maximum, so for a sine the top of the range is exactly 0 dBFS. It moves with the DAC calibration, and with the signal form: switching to a form with less headroom pulls an already-entered level down to the new limit.

Dither

Sets how much triangular (TPDF) dither is added just before the output is quantised - Off, or a depth from 1 LSB up to the output bit-depth. Enter it as bits, or type a dBV suffix to set it as the noise level it makes; the caption shows the other unit, and the wheel/arrows step ±1 bit (bits view) or ±10 dBV (dBV view), with Off at the top.

The dBV is the physical level of the dither noise, anchored to the DAC full-scale: entering, say, −100 dBV puts the noise the FFT measures at −100 dBV - with any analysis window, since the analyser's noise metrics account for the window's noise bandwidth - provided the FFT uses incoherent (power) averaging (coherent averaging cancels noise and reads far lower). Dither breaks up periodic quantisation patterns at very low output levels.

DAC calibration (crosshair button)

The crosshair button at the bottom-left of the pane opens the shared DAC calibration dialog, which anchors the Amplitude (RMS) scale - the volts RMS the DAC emits for digital full-scale - against a level you measure at the output. Set the generator to a known amplitude, read the actual output with a trusted meter, and enter that reading.

DAC calibration dialog

Type the measured signal amplitude in nV / µV / mV / V. The dialog has a Left and a Right row for a stereo card - calibration is always per channel, since two physical DAC channels never match exactly - and a single row for a Mono card; each row writes only its own channel's active range. A card set to Coupling: Linked is still calibrated per channel - Linked shares only which range is selected.

Windows volume is part of the calibration. Set the Windows sound-settings volume for the output device to 100 and never move it again once calibrated. In a browser it counts twice over: playback goes through the Windows mixer, so the slider scales the signal directly, and on many USB interfaces it additionally programs the device's internal hardware volume, so a later nudge silently rescales the full-scale you measured. Exception: a card that uses the slider position to switch modes - the E1DA Cosmos above position 49 ties its channels (right is the main input, left carries the same signal 6 dB lower) - must sit where its mode requires and stay there.

Corrections

Predistortion file (.dpd)

Optional predistortion file describing the DAC compensation. A single-tone file lists each harmonic's complex correction; a dual-tone file lists the intermodulation products as (a, b) coefficients. The generator pre-distorts the output so the listed distortion cancels at the analyser side. Use the open-file button to pick a .dpd; the read-only field then shows the loaded path, and the clear button unloads it. These files are produced by the FFT pane's predistortion wizard (the ★ wand button beside the record control) - see Dual tone (compensated) and Sine compensated.

WAV export

Duration

Seconds. Length of audio to write when using Save to. Independent of the live emission - the file is rendered in one pass using current generator settings.

Save to...

Read-only path + Save button. Clicking it opens a save dialog; the chosen file's extension picks the format (.wav / .flac / .aiff / .aif). Confirming writes the file immediately, using the current generator settings and the duration above.

The written file is the ideal, mathematically exact signal - synthesised digitally and free of any DAC, amplifier or cabling distortion. Use it as a reference, or to drive another instrument with a known-clean source. See Theory ▸ saving a signal.

The file carries a fixed full scale, not this machine's. An exported waveform is rendered against a fixed full scale of 2·√2 V peak - that is 2 V RMS - rather than against the live DAC calibration. A 1 VRMS sine therefore always lands at the same digital level in the file, whichever converter happened to be calibrated on the machine that wrote it, so a reference file means the same thing everywhere and two files written on two benches are directly comparable. The played tone is unaffected: that still goes out against the real calibration of the device you selected.

WAV playback

Load from... + In loop

Plays back an existing audio file to the output device. The open-audio button picks the file - any WAV / AIFF / FLAC, not only files this program saved. The In loop checkbox repeats the file on end-of-file; the toggle is live - flipping it during playback takes effect at the next loop point.

The file goes out through the same single lane the generated tone uses, so a file with more than one channel is averaged down to mono: every channel contributes and the sum is divided by their count, and no channel is dropped. A stereo file whose two sides carry different material is therefore heard as their average, not as a stereo pair.

On a network bench. When the selected backend is a Phonalyser server, the generator is a network away and the protocol carries no audio from this machine to it - so the file travels instead. It is uploaded once and the bench's own generator lane decodes and plays it, out of the bench's converter at the file's own rate and depth. In loop is honoured at the far end, and Stop reaches across. Two differences worth knowing: a file may be at most 50 MB - the limit the server enforces, checked here before anything is sent, so an over-size file is refused at once rather than after the transfer - and the play indicator goes out when the bench reports the file ended, so it follows the far end rather than this screen. The upload lives in the server's memory and is dropped as soon as the connection closes; nothing accumulates on the bench.

Play / Stop file

Small play LED next to the path field. Lit while the file is playing, dim otherwise. Starting file playback stops the tone generator if it was running (and vice versa for the main play button).

Main play button

Play / Stop

Large play button anchored to the bottom-right of the pane. Starts the tone generator with the current form / frequency / amplitude. While running, the icon shows the lit play state and the ON AIR indicator blinks. Pressing it again stops emission. Starting the main player stops the WAV-file player if it was running.


◀ Back to contents