◀ Back to contents

Tips

Small things that make a big difference - shown one at a time at startup (turn that off with the checkbox on the tip dialog, or in Preferences ▸ Look & Feel), and all collected here.

Coherent averaging digs far below the noise floor. Leave coherent (complex) averaging on and let the FFT run: each block is de-rotated to a common phase before summing, so the tone adds coherently while the noise partly cancels - the floor keeps dropping the longer you wait. See Theory ▸ Coherent averaging.
Snap the generator to an FFT bin for a clean spectrum. With Snap frequency to nearest on, the tone lands exactly on a bin, so window leakage doesn't smear the fundamental across its neighbours and the harmonic estimates stay honest. See Generator ▸ Snap.
Pin the fundamental by hand on a twin-T notch. A passive twin-T null is so steep that a few tenths of a hertz of thermal drift swing the de-embedded fundamental by tenths of a dB and wobble your THD. Enter the level you actually know with Manual fundamental; the harmonics, on the gentle flank, de-embed fine. See Theory ▸ pinning the fundamental.
Only the QA40x is bit-exact in a browser. A page has no exclusive mode: Web Audio capture reaches it as float32 after the Windows shared mixer, so whatever that mixer did is already in the samples. The QA40x is the exception - it bypasses the mixer by not being a sound card at all, and is read directly over WebUSB. See Theory ▸ Audio backend.
There is no backend to pick for a faster scope. The oscilloscope's refresh rate is set by the Web Audio callback and the render path, not by a driver you can choose. What you can raise is the capture rate itself, and that is set in Windows on the device rather than in this application. See Windows input device.
The mouse wheel zooms around the cursor. In any trace view: wheel moves vertically, Shift+wheel horizontally, Ctrl+wheel zooms the vertical axis and Ctrl+Shift+wheel the horizontal - and both zooms keep the value under the pointer fixed, so you zoom into exactly what you're looking at.
Every numeric field takes units, the wheel, and the keyboard. Type a value with its unit (µV, 1.5 V, -3 dBV, 2 kHz), or scroll the wheel, click the ▲/▼ arrows, or press the keyboard / keys to step.
Sinc interpolation only matters when you're zoomed in. The Sin/Lin switch changes the trace only when sample points are at least a couple of pixels apart on screen; otherwise straight lines look identical and cost less CPU. Turn it on once individual samples are visible. See Oscilloscope ▸ Sin/Lin.
Hysteresis stabilises the trigger on a weak, noisy signal. Without it, noise around the trigger level fires a flurry of false triggers and the trace jitters. Enable trigger hysteresis and the trace locks. See Oscilloscope ▸ Hysteresis.
A saved generator signal is a perfect reference. Save to... writes the ideal, mathematically exact waveform - synthesised digitally, with no DAC, amplifier or cabling distortion. Feed it to another instrument and any imperfection you measure belongs to that device, not the source. See Theory ▸ saving a signal.
De-embed a fixture with a calibration file. Measure a notch, attenuator or soundcard's response once in the Frequency-response module, then load that .frc into the FFT analyser: its response is divided out at display time, so the table shows the device under test, not the chain. See Theory ▸ the red and blue dots.
The reconstructed-beat overlay tames a close two-tone pair. In dual-tone mode the scope's Reconstructed beat overlay draws the slow |f₁−f₂| envelope, so you can trigger on the beat instead of chasing the fast carrier crossings. See Oscilloscope ▸ Reconstructed beat.
The frequency-response sweep is its own reference. The swept measurement is deconvolved against the exact sweep that was played - not a re-measured copy - so the recovered magnitude and phase are the device's true transfer function. See Theory ▸ Frequency response.
Ctrl+F1 jumps straight to the right help. Press F1 anywhere for the manual, or Ctrl+F1 to open the help at the exact section for the control that currently has focus. And the new Index & search page searches the whole manual.
The residual view shows what hides under the fundamental. Flip a scope channel to Residual and it draws the captured signal minus its best-fit tone - the distortion, noise and glitches buried under the fundamental become visible. Dual tone works too: both frequencies are measured from the capture itself, so free-running DAC and ADC clocks cannot smear the subtraction. See Oscilloscope.
Overlay an ideal filter on a measured response. The Frequency-response module's Filters tab anchors an ideal low-pass, high-pass, band-pass or notch (Butterworth, Chebyshev, inverse Chebyshev, elliptic or Bessel) to the measured curve, and Compare plots the deviation from it - just like comparing against RIAA. See Frequency response.
Let the Unevenness readout judge flatness for you. On the Unevenness tab, read the band edges where the response first leaves a ±X dB corridor from its peak (or from its minimum, for a notch), or the ± deviation over a chosen range - annotated on the plot, with the figures drawn as an overlay table on the curve. See Frequency response.
Full-scale calibration belongs to the sound card. Each card keeps its own profile - one row per attenuator or DIP range, separate left / right values, matched by device name on every backend - so switching devices or backends never mixes calibrations up. Known cards come pre-configured; your crosshair calibration refines them. See Preferences ▸ Card.
Drive only the channel you are measuring. The generator, the frequency-response sweep and the notch tuner each have an Output channel selector - Both, Left only or Right only - that gates the driven lane live. Handy for crosstalk checks and single-input devices. See Generator.
Zoomed far out, the scope renders like a real DSO. Above one sample per pixel the trace becomes a digital-phosphor image: each column's dwell histogram, swept with a pen of the configured trace width - narrow pulses and beat envelopes keep their true peak-to-peak at any zoom, and brightness shows where the signal dwells. See Theory ▸ Oscilloscope.
Glitched captures never poison a long average. The FFT rejects blocks containing splices, dropouts or band-limit-violating glitches before they enter the average, then re-syncs and keeps going. For a small or non-sinusoidal signal that trips the gate on every block, uncheck Detect time discontinuity on the FFT settings tab. See Theory ▸ keeping bad blocks out.
SNR and ENOB stay honest under a wide or noisy tone. The noise figures exclude not only the fundamental and its harmonics but the fundamental's whole leakage / phase-noise skirt: the excluded band widens to follow a broad or jittery tone outward until its bins fall back to the noise floor, so a wide skirt never inflates SNR or ENOB. See Theory ▸ Distortion & noise metrics.
Skip the unit - plain digits mean the base unit. Type just a number and the field takes it in its base unit: 1000 in a frequency field is 1000 Hz, in an amplitude field 1000 V, in a time field 1000 s. And kilohertz has short forms: 1.5k, 1.5kh and 1.5khz all mean 1.5 kHz.
Drag a rectangle to zoom into exactly that region. In the oscilloscope, FFT and frequency-response views, drag with the left button to rubber-band the area you care about - on release it stretches to fill the view (the scope keeps the trigger level and position on the same waveform point). Ctrl+Z steps back through the last 32 zooms of the view under the pointer or with focus - a thin green border marks which view will take the undo.
Set dither in dBV and read it straight off the FFT floor. The generator's dither field takes bits or a dBV level, and the dBV already includes the FFT window's noise bandwidth - so with incoherent (power) averaging the FFT noise floor lands exactly where you set it: enter −100 dBV and the floor sits at −100 dBV. Coherent averaging cancels noise and reads far lower.
The hardware does not have to be on your desk. Run Phonalyser as a server on the machine your converters are wired to, then press Servers... in Preferences ▸ Audio. The table opens empty: type that bench's host and port (8377 by default) under Add a server by address once, and its own peer table fills in the rest. Its backends then join the backend list, and devices, cards, calibration, the generator and the sweeps all work as though the card were plugged in here. See The Phonalyser server and Preferences ▸ measuring through a server.
A bench device someone else is measuring on says so. Each of a server's devices is locked to one client at a time, and a device another operator holds reads in use by plus that client's name right in the device list - so you find out before you press Record, not after. See Preferences ▸ choosing a bench backend.
Read harmonics straight off the axis with dBr. Switch the FFT's magnitude unit to dBr and the fundamental sits at exactly 0, so every harmonic and spur reads directly as "so many dB below the tone". The reference is the displayed fundamental and is re-read on every repaint, so it keeps following a drifting level. See FFT ▸ magnitude unit and Theory ▸ plot-time corrections.
Type an output level in dBFS when full scale is what you mean. The generator, the frequency-response sweep and the tune-notch wizard all accept an amplitude in dBFS - suffix dbfs, or the short dbf - and keep displaying it in that unit. 0 dBFS is a full-scale sine, so the figure does not change meaning when you switch waveform. See Generator ▸ amplitude.
The amplitude histogram tells clipping from noise at a glance. Open it from the oscilloscope toolbar: a sine draws the bathtub of its two turning points, broadband noise a Gaussian bell, and a clipped signal a hard spike where the rail is. A waveform clipped on one side only shows as unequal bars about the centre line. See Oscilloscope ▸ amplitude-histogram window and Theory ▸ how often, not when.
A QA40x "0 dBV" input range is not 0 dBV RMS. The ranges table spells it out - 0 "dBV" real 0 dBFS or -9 dBV - because a QA input range is a peak-to-peak dBFS reference across the differential pair, whose true RMS full scale sits about 9 dB lower. The output ranges are genuine dBV. See Theory ▸ what a "dBV" input range actually is.
Your calibration can follow you onto the bench. Select a server device that has no calibration while this machine holds a calibrated card matching it, and Phonalyser.web offers to copy the values across - once per session, and never silently. Say no and nothing is written. See Preferences ▸ cards and calibration on the bench.
A QA403 runs at 384 kHz; a QA402 does not. The rate list follows the analyzer actually attached - the sample-rate register has a fourth code only the QA403 has. Capture and generator both run at whichever rate you pick, because the two directions share one hardware clock. See Theory ▸ the QA40x analyzer backend.
The QA40x can drive a converter straight from its front-panel I2S port. Switch the port on under QA40x preferences and the output bit-depth list offers the port's 16 and 32 bits in place of the analyzer's 24, the input staying at 24 throughout. It is experimental: QuantAsylum documents the connector, but not the registers that enable it. See Preferences ▸ Audio.
A long sweep no longer has to be waited out. The frequency-response progress window carries a Cancel button. It is cooperative - the sweep ends through the ordinary stopped path, so the window closes and the pane unlocks exactly as after a completed run, with the capture and the generator handed back. See Frequency response.
A smooth-looking frequency response can still be clipped. If the capture reached full scale you are warned as soon as the trace appears. Deconvolution turns a railed recording into a fine regular ripple that reads like noise rather than like damage, so lower the drive level instead of trusting the curve. See Frequency response ▸ wobbly trace.
Any frequency response on screen can be saved. The Save to... tab writes the displayed curve to a file with no quality gate of any kind - a sweep you have just run, one driven gently, or one loaded back from disk. The only thing it asks is that a measurement exists. See Frequency response ▸ Save to....
Plug a card in without restarting the application. Scan devices in Preferences ▸ Audio re-enumerates the browser's device list, re-composes the backend list - which is how a QA40x plugged in after start-up appears as a backend at all - and asks a connected bench for its backends again. See Preferences ▸ the buttons on the backend row.
Preferences tells you when your volts are guesses. Closing the Audio tab after a backend or device change checks that the committed selection really resolves to a measured full scale, and names the input, the output or both when it does not. A card bound to the device but holding zeros counts as uncalibrated - an empty row is not a measurement. See Preferences ▸ card.
A dead input says so instead of drawing a flat line. Unplug the card, or let another application take it exclusively, and the oscilloscope and the FFT stop with one dialog naming the backend and saying whether the device was lost or merely stopped delivering samples. The playback side is watched the same way. See Theory ▸ a stream that dies after it started.
A stored setting that will not parse is never overwritten. Your settings and cards live in the browser's local storage, not in files. A value that will not parse is copied aside to the same key with a .corrupt suffix and the run starts from defaults, so every calibration in it survives for recovery instead of being cemented over by the next save.

◀ Back to contents