Alpha Sound Lab

Measurement, correction and verification for sound systems

2.15.0

1What this is

A program that measures a sound system, designs the correction, and then checks whether the correction did what it promised.

It does four things, and the fourth is the one that matters. It takes a measurement — from your own interface, or from a file Smaart or REW exported. It aligns a multi-way loudspeaker: crossover points, delays, polarity, level. It fits correction, automatically or by hand, as FIR or as parametric bands. And then it measures again and tells you how far the result sits from the prediction.

Not all of it needs FIR hardware. The settings sheet prints every number the program worked out — crossover points, delays in milliseconds and samples and metres, polarity, gain, the band list, the limiter settings for each way — on one page you can type into any processor by hand. A system set up from that sheet and an ordinary DSP gets the alignment, the crossover and the EQ. It gives up only the linear phase.

What it is not

It is not a replacement for Smaart or REW. There is no live analyser, no RTA, no spectrograph, no waterfall. The measurement side answers one closed question — what does this system do, and did my filter change it the way I said it would — and it stops there deliberately.

2Installing

Windows 10 version 1809 or later, 64-bit. No account, and nothing phones home.

The installer offers Just me or All users. Just me needs no administrator and is the right choice on a machine that belongs to you.

Choose a short install folder

Windows still refuses paths past 260 characters, and this program installs files 110 characters deep on its own. The installer checks and stops you rather than failing halfway through with a message about permissions that is not about permissions.

Installing a new version over an old one is an upgrade: same files replaced in place, one entry in Add / Remove Programs, and the demo clock keeps whatever time it had. Close the program first so the files are not in use, and install to the same folder — a different folder gives you two copies side by side rather than an upgrade.

Windows will warn you

This program is not code-signed, so SmartScreen shows “Windows protected your PC” the first time. Click More info, then Run anyway. It is not planned to change: a certificate costs more each year than it would be worth here. Nothing about the program needs you to turn any security setting off, and you should not.

What comes with it

Example measurements are installed alongside the program, in the examples folder. way_sub, way_low, way_mid and way_hi are a four-way box with real faults in it — one way wired backwards, another 5.9 ms late — and pos_1 to pos_6 are one loudspeaker measured from six seats. Load those before your own. They are built so that what the tool is telling you is unambiguous.

3The nine stages

The strip across the top reads left to right in the order the work happens. Each stage shows its result before you move on, and there is deliberately no button that does everything.

#StageWhat it is for
1ImportA measurement from a file, and the microphone that took it
2MeasureTake your own, with an interface, a microphone and a loopback cable
3SystemSub, low, mid, high: delay, polarity, gain, crossover, limiters
4TargetThe curve you are correcting towards
5FIR DesignWindowed-sinc and linear-phase Linkwitz-Riley legs
6IIR / PEQParametric bands by hand
7Auto FitFitting that prefers few bands to many
8AuditionHear it on your own material before it reaches a rig
9ExportCoefficients, processor presets, and the settings sheet

The two plots on the left stay on screen throughout. The upper one is magnitude; the lower one switches between Excess Phase, Phase, Group Delay and Coherence. Excess phase is phase with the bulk delay removed, which is what you want when you are looking for a crossover problem rather than a distance.

4Importing a measurement

Any file with columns of frequency and magnitude, and optionally phase and coherence.

Whitespace, commas or semicolons all separate columns. Header and comment lines are skipped rather than parsed as zeros. If a file has a fourth column it is read as coherence, and a value above 1 is taken as a percentage.

Coherence gating

Where the measurement carries coherence, the Threshold on the Import panel keeps the auto fit from correcting where the measurement cannot see. A dip that only exists because the microphone could not hear the loudspeaker over the air conditioning is not a dip to fill in.

Several positions

Load several positions takes the same source measured from several seats and separates the loudspeaker from the room. Where the traces agree, the loudspeaker is doing it and EQ helps everywhere; where they disagree, the room is doing it and EQ only helps the one chair it was measured from.

Point density is not resolution

120 points spread linearly from 20 Hz to 20 kHz land 168 Hz apart, so the first sample above 20 Hz is at 188 Hz and a room mode at 92 Hz is simply not in the file. The program says so when a file's coverage is coarse, because a fit over that file reports an excellent residual while ignoring the bottom three octaves.

5Measuring it yourself

The Measure stage takes its own measurement with a swept sine. You need an interface with two inputs, a measurement microphone, and one cable from an output back into the second input.

Why the loopback cable is not optional

The program will not measure without it. Without a timing reference, the delay in a measurement is whatever the sound card's buffers happened to be that run — on the machine this was developed against, that moved by 70 ms across four runs. Delay is exactly what the System stage exists to work with, so a measurement with no reference produces confident, useless alignment numbers.

Latency itself does not matter. The reference says when the sweep really left, so a round trip of 300 ms changes nothing. The program needs known latency, not low latency — which is why there is no ASIO and no special driver to install.

Before the first measurement

Check both halves are on the same sample rate

Windows keeps a default format per endpoint — one for recording, one for playback — and lets the two halves of one interface differ. When they do, Windows resamples the unmatched side with a converter that is not locked to your interface's clock. A click survives that because it is one instant; a five-second sweep can fail, because its time base drifts underneath it.

On the interface this was built against, matched rates gave an arrival 91 dB clear of the noise and mismatched rates gave 26 dB — with the signal level identical either way, nothing clipped, and every other check passing. It reads exactly like a bad cable.

It is not deterministic, though: a later run with the rates still mismatched measured cleanly. Treat it as the first thing to check when a sweep will not resolve, not as a certain diagnosis.

Windows Sound settings → the device → Properties → Advanced, for the recording and the playback device. The program tells you when it sees them disagree.

Check signal path sends a click down the loopback and reports whether anything is processing your audio. Two seconds, no loudspeaker needed. A click either comes back as a click or it does not — and a sweep cannot answer this, because through a processed path a sweep stays perfectly linear in level and passes every other check while its arrival collapses. Run it once when you set a rig up. The usual culprits are Windows audio enhancements, a plugin host holding the interface, or effects in the interface's own control panel.

Then watch the meters. They sit above the Measure button on purpose. The first fault this hit on real hardware was the interface's gain knobs at zero, and it produced a full five-second sweep, no driver error, an arrival standing 39 dB clear of the floor, and a plausible curve made entirely of noise. A level that moves when you tap the microphone answers that in a second. Aim for the microphone around −20 to −6 dBFS on the sweep, and keep the loopback clean rather than loud.

Taking one

SettingWhat it does
Start atWhere the sweep begins. 30 Hz by default — see the warning below.
LevelSweep amplitude, as a fraction of full scale. A quarter leaves headroom for the system's own peaks.
LengthLonger is quieter-proof and reaches higher: the fade-out eats fewer octaves off the top.
Sweeps to averageNoise differs every sweep; the loudspeaker does not. About 3 dB per doubling.
WindowHow much of the impulse response to keep. The setting that changes the answer most.
Why the sweep starts at 30 Hz, not 10

A sweep spends equal time per octave. Five seconds starting at 10 Hz is about half a second of continuous drive between 10 and 20 Hz — below where any normal cabinet is loaded, and in a ported box below tuning the cone is barely loaded at all. That is maximum excursion in exchange for no output, and it is how drivers are destroyed by measurement sweeps. Turning the amplifier down does not help: the danger is travel, not power.

Averaging

Raise Sweeps to average in a room that is not quiet. Beyond the noise it buys, averaging produces a real per-frequency figure for how much the sweeps agreed — something a single sweep cannot know about itself. A sweep that could not be measured at all is discarded rather than averaged in, and the reason is given.

The window

A long window keeps the room's reflections and measures what a listener hears in that seat. A short one closes before they arrive and measures the loudspeaker. Neither is wrong and they do not agree.

The cost of a short window is resolution: a windowed measurement resolves no better than roughly 1/length. 5 ms says nothing usable below about 200 Hz; 30 ms nothing below about 33 Hz. Cutting the room out cuts the bottom off with it, and the panel shows the limit for whatever you have set.

Reading the result

FigureWhat to make of it
Propagation delayMicrophone to loudspeaker, measured against the loopback, in milliseconds and metres. Sanity-check it against a tape measure.
Signal above noiseUnder 10 dB the measurement is refused. Above 40 is comfortable.
Sweeps usedHow many survived, out of how many were run.
Microphone correctionThe calibration applied, or plainly that none was.
Trustworthy up toWhere the sweep stops describing your loudspeaker and starts describing its own fade-out.

The curve is drawn only across the band the sweep can describe. Below the fade-in limit and above the trustworthy top, what you would see is the sweep tapering in and out rather than the loudspeaker — a monitor swept from 30 Hz reads about −20 dB at 31 Hz, and nearly all of that is the fade.

Use this measurement sends the capture into the rest of the program, exactly where an imported file lands, so Target, Auto Fit, FIR, PEQ and Export all work on it. Save to file writes it out with a header recording the interface, the sweep, the calibration and the trustworthy band.

The impulse response

Impulse is the first tab under the magnitude plot, beside Excess Phase. The other four are frequency against level; this one is time against amplitude, and it is the only view in the program that shows when things arrived rather than what they added up to.

The arrival sits at t = 0, in the middle of the axis, with 60 ms drawn either side of it. A second peak is a second source or a reflection, and the gap between the two is the delay one of them needs. No magnitude curve carries that: two arrivals 8 ms apart and two arrivals 1 ms apart both appear as comb filtering, and the comb does not say which.

The lit region is what the measurement window kept, so a reflection sitting in the dim part is one the response above has already excluded. Change the window and the region moves; re-measure to apply it.

Hover anywhere on the trace and the corner reports three figures for the sample under the pointer — for example 5.83 ms   2.00 m   −35.9 dB.

FigureWhat to make of it
MillisecondsA delay directly, because t = 0 is the arrival. Whatever sits at 5.83 ms arrived 5.83 ms after the direct sound.
MetresThe same figure as distance, at the 343 m/s the settings sheet assumes and prints — so a number read here and a number read there are the same number.
DecibelsLevel relative to the direct arrival. The linear trace makes this hard to judge: a reflection 3 dB down and one 30 dB down both look small near the zero line.

The direction of the arrival is worth a glance on its own. A spike that goes down before it goes up is a driver wired backwards — a fault that looks like a crossover problem on a magnitude curve and is unmistakable here.

6The microphone

There is one calibration for the whole program, because a calibration describes the microphone and not the route a measurement arrived by.

Loading it on the Import panel and loading it on the Measure panel are the same act. The correction is the measurement minus the microphone's own deviation: a file saying +6 dB at 15 kHz describes a microphone that reads 6 dB high there, so the true level is 6 dB lower. Values are interpolated in log frequency and held flat beyond the ends of the file, because a calibration only describes the range it was measured over.

An import and a capture want opposite defaults

For a file: Smaart and REW apply the microphone file themselves before exporting, so a calibration loaded on Import is held for the record and not applied — until you untick “The analyser already applied this calibration”. Get it backwards and the microphone is corrected twice: one that reads 6 dB hot at 15 kHz comes out 6 dB shy there, and every band fitted afterwards is built on that error.

For a capture: a sweep this program took is the microphone's raw output by definition, so the correction is always applied and that tick has no bearing on it. The two panels can therefore disagree about whether a correction is “in use” and both be right.

The microphone list carries metadata, not response curves — what a given model's calibration file looks like, where it comes from, and which traps it has. Almost every measurement microphone ships with an individual, serial-numbered file, and unit-to-unit variation is larger than a generic curve is worth. Some have separate files for on-axis and 90-degree incidence, and getting that wrong is worth several decibels in the top octave.

The cheapest accuracy you can buy

On an ordinary rig, an uncalibrated microphone is a larger error than everything else in the chain put together — larger than the interface, and far cheaper to remove. A calibration file for your specific unit costs a fraction of better hardware.

7Aligning a system

A three- or four-way box is not four responses to be corrected one at a time. What the audience hears is the complex sum of the ways.

Add a way per driver band and load each one's measurement, taken from the same microphone position. The Ways panel holds delay, gain and polarity for each; Match levels brings them to a common loudness so the sum is about time and polarity rather than about volume.

Align

Align finds the delay — and whether a polarity flip helps — that makes two ways sum best where they actually overlap. That last part matters: aligning on a band where one way is 30 dB down optimises noise.

Either way round works. If the way you chose to move would have to arrive earlier than it can — which happens whenever it is the later of the two, and a self-powered box is late by its own converters — every way is put back by the same amount instead. Only the gaps between them are audible, so the alignment is identical and every figure on the panel is one a processor will accept. The status line says when this has happened.

This is why a subwoofer and a self-powered array can be aligned in either order. A processor can hold a source back; it cannot advance one. Rather than showing you a negative delay, the program moves the whole set so the earliest way sits at zero.

How exact?

The How exact? report answers a question most tools leave to folklore: how wrong may this delay be before it costs something. It gives the tolerance in milliseconds and in metres of listener movement, which is the number that tells you whether an alignment survives an audience. A 2 cm tolerance at a 3 kHz crossover is true at the microphone and nowhere else.

What the impulse adds, and what it does not

You do not read a crossover delay off the impulse plot. Align above is a search over the measured complex responses, not a peak-picking exercise, and it never has to decide where a subwoofer “arrived”. That matters more than it sounds: a band-limited driver has a smeared impulse — a sub’s is spread over several milliseconds because it is low-passed — and picking the arrival of one by eye is genuinely imprecise in a way it is not for a mid or a horn. Align sidesteps that by optimising the thing you actually care about, which is how the two sum.

What the impulse is for is the work either side of that: checking the propagation delay against a tape measure before trusting anything downstream; seeing polarity at a glance, since an arrival that goes down before it goes up is a driver wired backwards; and seeing whether a reflection sits just inside the window, because if it does the correction will chase it.

It is also the method for sources too far apart to sum — a main against a distant delay tower, where there is no overlap band for Align to work in. There, measure each on its own from a microphone position you do not move and take the difference of the two propagation delays. The microphone distance is in both readings so it cancels, and so does the assumed speed of sound: the metres figure depends on temperature, but the delay difference is pure time and does not.

Arrival time is not the whole of a crossover either way. Two drivers can arrive together and still sum badly, because the filters have their own phase behaviour through the overlap. That is what Excess Phase, Group Delay and How exact? are for.

The alignment is correct where the microphone was. There is no multi-position impulse yet — a position stores its frequency response, not its impulse.

Crossover and filters

One FIR per way, carrying its band, its level, its polarity and its delay in the taps. The program pads the shorter legs so every way leaves the designer at the same latency — otherwise a sub arrives milliseconds ahead of the mid for no reason anyone can see on a magnitude plot.

8The target

The curve you are correcting towards. The auto fit works to this, not to flat.

Base shapeWhere it belongs
FlatStudio and measurement work. The usual starting point.
House curveGentle lift below 80 Hz and a downward tilt above 1 kHz — the shape most rooms are voiced toward.
Cinema X-curveFlat below 2 kHz, rolling off about 3 dB per octave above. The SMPTE standard.

Shaping applies on top: an overall tilt across 20 Hz to 20 kHz, a low shelf below 150 Hz and a high shelf above 6 kHz. Reset shaping returns to the base shape alone.

9Correcting

Three routes to the same place: fit it automatically, design the FIR directly, or place parametric bands by hand.

Auto Fit

Fits parametric bands to the gap between the measurement and the target. Band budget caps how many it may use, and Fit from / Fit to limit the range — which is how you stop the EQ undoing a crossover it was never meant to touch.

The fitter prefers few bands to many. Left alone, a least-squares optimiser will happily return a +11 dB and a −15 dB band 10 Hz apart that cancel each other and fit beautifully; the fit here penalises that and merges what it can. Residual is what is left, and Excluded counts the points the coherence gate refused to fit to.

Find peaks and dips marks what it considers worth correcting. Apply to band list hands the result to the IIR / PEQ stage, where you can adjust it.

FIR Design

Windowed-sinc synthesis, with no measurement needed. Taps, Window and Kaiser beta set the filter; the Tap estimator works the other way round, telling you how many taps a given transition width and stopband depth need — which is the honest answer to “how many taps is enough”.

The Linkwitz-Riley crossover section builds a real LR slope, −6 dB at the crossover, so the two legs sum flat.

IIR / PEQ

Parametric bands by hand, with Q and bandwidth in octaves shown side by side so you can work in whichever your processor asks for. On this stage the plot is a control surface rather than a report: each band gets a draggable handle. Revert to fitted result returns to what the auto fit produced.

10Verify

The reason the rest of it exists. A designer that predicts a result and is never checked against air is a calculator with opinions.

  1. Measure the system, and send the result on with Use this measurement.
  2. Fit a correction, on Auto Fit or by hand.
  3. Come back to Measure and press Keep prediction. This has to happen before you re-measure, because the second measurement replaces the one the prediction was made from.
  4. Load the filter into the processor.
  5. Measure again.

The worst deviation is named, with the frequency it sits at, and the typical deviation alongside it — because one bad point and a curve that is wrong everywhere are different problems and should not read the same.

Level is not the point

The two curves are aligned on their average level before they are compared. A system doing exactly what was predicted, one volume setting lower, reads as agreement rather than as a 12 dB error. What is reported is the difference in shape, and the offset that was removed is reported too — a large one usually means the wrong two things are being compared.

11Limiters

Per-way limiter and compressor settings, in the units a processor actually asks for.

Give each way its driver's power handling, its amplifier's power, and the impedance. The program works out the threshold and reports it in dBu, dBV and volts, because different processors ask in different units and converting by hand at two in the morning is where tweeters die.

It flags the cases that matter: when the amplifier, not the driver, is what limits you; when the impedance you entered does not match what the amplifier is rated into. Attack time is taken as one period of the way's lower corner — a limiter that reacts faster than the lowest frequency it passes is a distortion generator.

Why per way

A 1600 W sub and an 80 W compression driver do not share a threshold. Sub, low, mid and high each get their own, and the high one is usually the one that saves a repair bill.

12Exporting

Coefficients for the platform you use, presets that carry the whole design, and a page of numbers for everything else.

Processor formats

Generic, Behringer DCX2496, Biamp Tesira, BSS Soundweb, Lake, QSC Q-SYS, Symetrix SymNet and dbx. The Preview shows exactly what will be written before you write it, and the exporter reads from the same band list the plot draws — so what you export is always what is on screen.

The program refuses rather than truncates when a design will not fit the hardware: eight bands exported to a processor that has six is a preset that is quietly wrong on the far end.

The settings sheet

The part that needs no FIR at all. Crossover points, delays in milliseconds and samples and metres, polarity, gain, the band list and the limiter settings for every way, on one printable page. Available as text, Markdown, CSV or JSON.

Three units for every delay, always on the same line, because a processor asks in one of them and a tape measure answers in another.

Presets

A preset stores the filter, the bands and the target together, so a design comes back as it left rather than as three files that have to be reunited.

13Audition

Hear the correction on your own material before it goes anywhere near a rig.

Load a WAV — 16, 24 or 32-bit, mono or multichannel — or generate a sweep, pink noise or an impulse. Bypass swaps between source and filtered at the same instant, so you are comparing the filter rather than comparing two starting points.

Render to file writes the processed audio out. The level readouts show peak, RMS and crest, which is how you notice that a correction with a lot of boost has quietly cost you 6 dB of headroom.

14Batch mode

The whole measurement-to-preset pipeline without the window, for when the same thing has to happen to twenty files.

FlagWhat it sets
--fitThe measurement file to fit
--bandsBand budget
--target, --tiltTarget shape and tilt
--low-shelf, --high-shelfTarget shaping
--rangeFit range, low and high
--coherence, --no-gateCoherence threshold, or none
--mic, --cal, --apply-calMicrophone, its calibration, and whether to apply it
--mic-orientation0 or 90, for microphones with two files
--format, --list-formatsProcessor format, and what is available
--ignore-firFit without accounting for an existing FIR
--sample-rate, --out, --projectRate, output file, project to load

--help lists everything, and --list-mics prints the microphone table with each entry's calibration source.

15When it will not work

Sorted by how much time each one has cost somebody.

The measurement will not resolve, and the level looks fine

Check the sample rates first — recording and playback, both to the same figure. This is the one that wastes an evening, because every symptom points at a cable: the signal arrives at a healthy level, nothing clips, the meters move, and the sweep still will not resolve. Run Check signal path: if the click comes back clean and the sweep does not, it is a time-base problem, and the sample rate is where to look.

“The loopback reference on input 2 is not usable”

Nothing is arriving on the reference channel. The cable is out at one end, the gain for that input is down, or the loopback is plugged into a different input than the one selected. Note that the reference has to be present in every sweep of an average, not just the first.

“Almost nothing reached the input”

The recording peaked below −70 dBFS. Cable, gain, or the wrong input — the message reports the level it saw, so you can tell “a bit low” from “not connected”.

“The recording clipped”

Refused rather than warned about, because a clipped sweep still produces a plausible curve. Turn the input gain down, not the sweep level, if the microphone is the hot one.

“Something is processing the audio”

The click came back smeared. Windows audio enhancements on either endpoint, a plugin host or virtual audio driver holding the interface, or effects in the interface's own control panel. If the click came back clipping, the check says so instead and asks you to turn the gain down — a clipped click smears exactly like a processed one, and neither the program nor you can tell them apart from that.

The interface is not in the list

Only interfaces with both halves present are offered, because a measurement needs the microphone and the reference on one clock. If yours is missing, its input and output are not being recognised as the same device — press Refresh after connecting it, and note that Windows renames a device when it appears on a USB port it has not seen before.

The correction looks wrong above 10 kHz

Check whether a microphone calibration is loaded, and whether it is being applied once or twice. See section 6.

16The demo

Sixty days and three installs, with everything unlocked. Afterwards, measuring and aligning stay free permanently. No account, no telephone home.

When it runs out the program keeps measuring and aligning, for good. Import, measure, the System stage — delays, polarity, gains, crossovers — audition, saving and reopening your projects, and the settings sheet all carry on with no time limit and no cost.

What needs a licence is the correction: Target, Auto Fit, FIR Design, IIR / PEQ, the per-way limiter and compressor thresholds, and coefficient and preset export. Those four stages carry a padlock in the workflow strip from the first run, so nothing changes shape when the demo ends — the padlocks simply stop being decorative. Click one and it tells you what it is and offers the licence field.

Saving is free deliberately. It produces nothing anybody can ship, and a measurement tool that lets you spend an afternoon on a room and then refuses to keep it has not protected a sale — it has destroyed an afternoon.

USD 349, or PHP 19,900 within the Philippines. One edition, bought once, yours permanently. PayPal internationally or GCash within the Philippines — email masterpro0115@gmail.com with the name the licence should be issued to. There is no money-back guarantee, which is exactly why the free half has no time limit.

The counter sits in the top-left of the window next to the version. An update installed over the top, into the same folder, is not a new installation and does not count against the limit. A new folder, or a new machine, is.