// MANUAL · VERSION 1.3
Themis

Themis

PA correction from one pink-noise recording per side,
running live with zero latency.

VST3/WIN · LINUX x64 · ARM64/1 – 64 CH/0 LATENCY
// CONTENTS
  1. Overview
  2. Quick Start
  3. Making the Recording
  4. Mic Calibration Files
  5. Controls
  6. Left & Right
  7. The Graph & Status
  8. Exporting the PEQ
  9. Saving, Recall & Refits
  10. Specifications
  11. FAQ & Troubleshooting
§01

Overview

Themis corrects a PA — or any loudspeaker system — from one pink-noise recording per side. You play pink noise through each side of the system, record it at the listening position with whatever recorder you have (a measurement mic, an iPhone, an iPad …), and load the WAVs into Themis — or one WAV for both sides of a mono system. Themis compares the recording with an ideal pink-noise spectrum and fits a parametric EQ — up to 20 peaking bands plus two target shelves — that brings the system to your target curve. Then it runs that EQ on the live signal, with zero latency.

Exporting the EQ as text is optional. Themis is designed to sit in the signal chain as an insert and do the correction itself.

The fit is deliberately asymmetric. Peaks are excess energy and are cut at the resolution you choose. Dips are usually cancellations that a boost cannot fix, so Themis fills only the broad ones, keeps every boost gentle, and never lets a boost lift a nearby peak above where it was.

Themis interface: header with Load Left, Load Right, Load Cal, Clear Cal, Export PEQ and Bypass; response graph with measured, target, correction and predicted curves, band markers and the Left/Right view switch; Correction, Target, Analysis and Output control groups; three-line status area
§02

Quick Start

Until you load a recording, Themis passes audio through unchanged. A side without a recording passes its channels unchanged.

Why odd channels Left, even channels Right? Each side's recording measures that side as a whole — everything that reaches the mic. The same correction on all of a side's channels is therefore right even if Themis sits after a crossover that has already split the signal into driver feeds, and odd/even matches the usual stereo pair per way (1/2 woofers, 3/4 mids, 5/6 tweeters).

§03

Making the Recording

Length

60 seconds is the minimum. 5 minutes gives the most precise result.

A 60-second recording is enough for a dependable correction from 200 Hz up. Every extra minute cleans up the low end; at 5 minutes the measurement is accurate to about ±0.3 dB (±0.4 dB worst case) right down to 20 Hz. If correction below 60 Hz matters to you — subwoofers, room modes — record the full 5 minutes.

Themis discards the first and last second of the file, to drop handling noise and the generator starting and stopping. The reason length matters is resolution: Themis resolves the spectrum to 0.37 Hz so that it can see narrow room modes down to 20 Hz, and at that resolution only a few frequency bins cover each 1/6 octave in the deep bass, so the random nature of the noise shows. Longer recordings average it away. The table shows the largest deviation, at 1/6-octave smoothing, of a perfectly flat system's measured response from 20 Hz to 20 kHz:

RecordingTypical worst-case deviationWorst seen
60 s (minimum)±0.8 dB±1.1 dB
2 min±0.5 dB±0.6 dB
3 min±0.36 dB±0.53 dB
5 min (most precise)±0.29 dB±0.39 dB

The deviation is almost entirely below 60 Hz; above 200 Hz even a 60-second recording is within ±0.5 dB.

Recorder settings

Phones, tablets and many recording apps "help" by processing the microphone signal. Every one of these processes changes the spectrum Themis measures, so turn them off:

Themis checks for two symptoms of a misconfigured recorder:

Themis still analyses a file that triggers either warning, but treat the result with suspicion.

Pink noise

Themis compares the recording with ideal pink noise, whose power falls by 3 dB per octave over the whole audio band, and assumes your generator really produces that, down to at least the lower correction limit (30 Hz by default). Some generators band-limit their pink noise (with a 20 Hz or 40 Hz high-pass, say), and some produce noise that is only approximately pink. Themis cannot tell the generator's shortfall from your speakers' shortfall, and will try to correct both.

Use true full-range pink noise. If your generator band-limits, set LOW LIMIT above its cut-off. Any random pink noise works: Themis needs no reference file and no time alignment.

Placement

Themis works from one position. Put the mic where the audience or the listener is, away from walls and reflective surfaces where you can, and point it as its calibration file assumes (usually at the source, 0°).

For PA work, consider a ground-plane measurement: lay the mic on the floor at the listening position, pointing at the source. At normal mic height the floor reflection adds a comb of peaks and notches between roughly 100 Hz and 2 kHz. That pattern belongs to that exact spot, and Themis would otherwise try to correct it. On the floor the reflection arrives in phase with the direct sound and the comb disappears; the overall level rises by about 6 dB at all frequencies, which Themis's normalisation ignores.

§04

Mic Calibration Files

LOAD CAL accepts plain text with one point per line: frequency in Hz, then the level in dB, optionally followed by a phase column, which is ignored. Spaces, tabs, commas and semicolons all work as separators. Lines that do not start with a number are skipped, so comments, * lines and UMIK-style headers such as "Sens Factor = …" are fine.

The cal file describes the mic's own deviation, and Themis subtracts it from the measurement. Between points it interpolates linearly in dB against log frequency. Outside the file's range it holds the end values, and the status area tells you that the file does not cover the full 10 Hz – 20 kHz analysis range.

The cal file applies to both sides (one mic). Loading or clearing it (CLEAR CAL) re-runs the analysis from the stored spectra; the WAVs are not read again.

§05

Controls

Correction

Max Fill
0 – 12 dB · default 3 dB

The largest boost the correction may apply. The summed correction, shelves included, never exceeds it by more than 0.2 dB, even where several bands overlap.

Max Cut
0 – 20 dB · default 12 dB

The largest cut the correction may apply, with the same 0.2 dB guarantee.

Low Limit · High Limit
15 – 200 Hz · default 30 Hz  /  2 – 20 kHz · default 16 kHz

The edges of the correction range. Outside it the correction fades to 0 dB over 1/3 octave, and the graph shades those regions. The EQ bands never boost beyond the limits: there the boost they may apply falls from Max Fill to 0.3 dB over a third of an octave and stays there, so a band's skirt cannot push subwoofers into excursion below their working range. The target shelves are exempt — they do what you set.

Set LOW LIMIT at or above the system's real low-frequency limit (its −3 dB point), not below it.

Bands
1 – 20 · default 10

The maximum number of peaking bands. The two target shelves are extra. Themis uses fewer when fewer do the job — on an already-flat system it may use almost none.

Why fill is capped. A dip in a measured response is usually not a lack of energy. It is a cancellation, where the direct sound and a reflection arrive out of phase at the mic. Boosting into a cancellation feeds both paths equally: the dip barely moves while the amplifiers and drivers work much harder, and since the cancellation moves as soon as you move the mic, filling it can make the response worse everywhere else. Peaks are excess energy — room modes, driver resonances — and cutting them is safe. Hence up to 12 dB of cut but only 3 dB of fill by default.

Raise MAX FILL only for broad, genuine deficits, such as a gentle HF roll-off, or together with LF DIP FILL for dips in the bass. AUTO MAKEUP lowers the output by the largest boost, so every extra dB of fill costs a dB of level. Above about 6 dB, check that your amplifiers and drivers have that headroom.

How Themis decides what to boost and what to cut:

Target

LF Freq · LF Gain
40 – 300 Hz · default 100 Hz  /  −6 to +12 dB · default 0 dB

A second-order low shelf (Q 0.707) on the otherwise flat target — for a bass lift, say.

HF Freq · HF Gain
2 – 16 kHz · default 8 kHz  /  −12 to +6 dB · default 0 dB

A second-order high shelf (Q 0.707), typically for a gentle treble roll-off.

Both shelves are realised as two dedicated filters in the correction, so the target is always exactly achievable — but MAX FILL and MAX CUT cap them too. A +6 dB LF shelf with MAX FILL at 3 dB cannot be met, and the status area reports by how much it falls short.

Analysis

Smoothing
1/3 · 1/6 · 1/12 oct · Variable · default 1/6

Smooths the measured response before the fit. 1/6 octave is a good general choice. Use 1/12 octave to resolve closely spaced low-frequency modes (two modes 10 Hz apart around 40 Hz, for example), and 1/3 octave for a gentler, broader correction.

Variable uses 1/12 octave below 200 Hz and widens gradually to 1/3 octave above 2 kHz. Room modes in the bass are narrow and need fine smoothing; above a few hundred hertz, much of the fine detail in a single-position measurement comes from reflections that change a few centimetres away, and correcting it helps the mic but not the audience. In simulations of a PA in a room with floor and wall reflections, Variable gave the best overall result for the audience: it corrected a narrow 45 Hz room mode to within about 1.7 dB, where 1/3 octave left about 3.9 dB. Its cost is that narrow problems in the treble are treated as broadly as at 1/3 octave.

Whatever the smoothing, a correction from one position also picks up that position's reflections, especially the floor bounce between roughly 100 Hz and 2 kHz. If the system already sounds right, correcting from one position can make it slightly worse for the audience. Keep MAX FILL low, and consider a ground-plane measurement.

LF Dip Fill
toggle · default off

Lets Themis fill narrow dips in the bass. Below about 300 Hz — the room-mode region — a narrow dip can be a room or boundary effect that a boost really does fix; higher up, narrow dips are almost always reflection combs that move with the mic. With LF DIP FILL on, fill is judged at 1/6 octave up to 300 Hz, widening to the normal 1/3 octave by 500 Hz, so narrow bass dips are filled up to MAX FILL while the mids and treble are treated exactly as before. A boost still never lifts the peak next to a dip.

It only shows its effect when MAX FILL leaves room: most bass dips are deeper than 3 dB, so try MAX FILL 6 dB or more. On a test measurement at MAX FILL 6 dB it raised four bass dips (52, 90, 120 and 200 Hz) by 3 to 4 dB each, and the narrow bass peaks between them were corrected better too.

It costs headroom — the largest boost becomes the makeup gain, often 6 dB or more. Not every bass dip is fixable: a cancellation between a sub and a wall does not move when you boost it. And with a high MAX FILL, Themis can boost right down to LOW LIMIT to fill the subwoofers' roll-off, so set LOW LIMIT carefully.

Zoom ±6 dB
toggle · display only

Switches the graph's level axis from ±18 dB to ±6 dB. Saved with the session, along with the window size.

Output

Auto Makeup
toggle · default on

Lowers the output by the largest boost of either side's correction, so the system never gets louder because of the correction. Both sides get the same makeup, so the Left/Right balance never changes.

Output Trim
−12 to +12 dB · default 0 dB · automatable

Applied after auto makeup.

Bypass
header button · host bypass · automatable

Crossfades over 20 ms, click-free.

Only Output Trim and Bypass are automatable. Every parameter that shapes the fit is deliberately non-automatable, so host automation can never make a live system refit.

§06

Left & Right

Each side has its own recording and its own correction, fitted with the same controls: Max Fill, the target, the range, the bands and the rest apply to both. The mic calibration file is shared too.

§07

The Graph & Status

LEFT / RIGHT (top right of the graph) chooses which side the graph and the status area show. Loading a recording switches the view to that side.

The status area below the controls shows the viewed side's file information and the other side's file name, the warnings for both sides (marked L: and R:), and the viewed side's number of bands in use, plus two figures for the viewed side:

§08

Exporting the PEQ

EXPORT PEQ writes one UTF-8 text file, with a section per side, that you can copy into a console or DSP:

# Themis PEQ export — Pataki Audio
# Left:  stage_left.wav (48000 Hz, 64.0 s, mono)
# Right: stage_right.wav (48000 Hz, 64.0 s, mono)
# Cal: umik_test.txt
# Smoothing 1/6 oct | Range 30–16000 Hz | Max fill 3.0 dB | Max cut 15.0 dB
# Q convention: RBJ Audio EQ Cookbook
# Channels: Left = 1, 3, 5, ...  Right = 2, 4, 6, ...

[Left]
Preamp  -4.6 dB
Type  Freq_Hz    Gain_dB   Q
PK        45.0     -9.2    6.12
PK       112.2     +2.1    4.00
PK       396.0     -1.1    0.66
…

[Right]
Preamp  -4.6 dB
Type  Freq_Hz    Gain_dB   Q
PK        80.0     -7.6    4.88
PK       547.8     +2.3    3.89
PK       661.1     +2.4    3.25
…

Preamp is the gain Themis applies: auto makeup plus output trim. It is the same in both sections, because the makeup is common. Shelves appear as LS / HS lines when they are in use. A side without a recording is listed in the header as passing audio unchanged and gets no section.

Q values use the RBJ Audio EQ Cookbook convention: for a peaking band, Q is measured between the points where the boost or cut is half its dB value. Consoles and DSPs that define Q differently may need conversion:

§09

Saving, Recall & Refits

When the fit runs

A change to any fit-related control refits the EQ 150 ms after you stop moving it. When a new EQ is ready, Themis crossfades from the old one to the new one over 50 ms, so even a refit during a show is click-free.

Recall

The host session stores everything Themis needs: the analysed spectrum, the recording's details, the cal curve and its file name, all parameters, and the fitted EQ. When a session is reloaded, Themis uses the stored EQ exactly as it was. It does not refit, and it needs neither the WAV nor the cal file — you can delete them. A new fit runs only after you change something.

A session saved with Themis 1.0 – 1.2 (one recording) opens in 1.3 with that recording and its EQ on both sides, so it sounds exactly as before.

§10

Specifications

Plugin format
VST3 (category Fx · EQ)
OS support
Windows 10+ (64-bit), no runtime install needed · Linux x64 (glibc 2.34+: Ubuntu 22.04+, Debian 12+, Fedora 35+, RHEL 9+; fontconfig and FreeType) · Linux ARM64 with glibc 2.28+ (Raspberry Pi OS 64-bit on Pi 4/5, Ubuntu 20.04+ arm64)
Channels
1 – 64, equal in and out; odd channels run the Left correction, even channels the Right (a mono bus runs Left)
Latency
0 samples
Filters
Up to 20 peaking bands + 2 target shelves; double-precision biquad cascade (transposed direct form II); matched digital design within 0.17 dB of the analog prototype to 15 kHz at 44.1 kHz
Sample rates
44.1 – 192 kHz. The fit is rate-independent: a recording at one rate drives the correction at any host rate
Recording input
One WAV per side (the same file for both on a mono system), 16/24/32-bit PCM or 32-bit float, 44.1 – 192 kHz, mono or multichannel (summed to mono)
Recording length
60 s minimum · 5 min for the most precise result
Analysis
Welch PSD, Hann, 50% overlap, 0.37 Hz resolution; 96 points per octave from 10 Hz to 20 kHz
Cal files
Plain-text frequency / dB (phase ignored), UMIK-style headers accepted
Parameters
14; only Output Trim and Bypass are automatable
Validation
pluginval (strictness 10) and the Steinberg VST3 validator pass on Windows and Linux
Trace log
%LOCALAPPDATA%\PatakiAudio\Themis\trace.log · ~/.config/PatakiAudio/Themis/trace.log
License
Donationware — pay what you want, including €0
§11

FAQ & Troubleshooting

"Recording too short"

Themis discards one second at each end and refuses files with less than 30 seconds left. Record at least 60 seconds — and 5 minutes for the most precise result.

"Level unstable"

Turn off AGC, compression and noise suppression on the recorder. On iOS, use an app with Measurement mode (see Making the Recording).

"Clipping in the recording"

Lower the playback level or the recorder gain and record again.

"Cal file does not cover …"

The cal file stops short of 10 Hz or 20 kHz, and its end values are used beyond that. Usually harmless.

"Caps not met"

The target shelves need more boost or cut than MAX FILL / MAX CUT allow. Raise the cap or reduce the shelf.

One side is not corrected.

It has no recording: load it with LOAD LEFT or LOAD RIGHT. The status line says which side passes unchanged. For a mono system, load the same file on both.

Narrow dips stay in the predicted curve.

Intended: narrow dips are usually cancellations that boosting cannot fix. Use a ground-plane measurement or move the mic. For dips below about 300 Hz, try LF DIP FILL with MAX FILL at 6 dB or more.

The correction looks odd below about 40 Hz.

Check that your generator's pink noise is truly full range, and that the recording is long enough — the deep bass is where a short recording shows its noise. Five minutes settles it.

Does it work in JRiver Media Center?

Yes. JRiver runs its whole DSP chain at the output's channel count — twelve channels on a 7.1.4 system — and Themis accepts any count from 1 to 64, with the same number in and out, applying the Left correction to the odd channels (1, 3, 5 …) and the Right correction to the even ones. Until a recording is loaded it passes audio through unchanged.

What does Themis deliberately not do?

Version 1 has no multi-position or spatial averaging, no Left/Right level matching, no swept-sine, impulse-response or transfer-function measurement, no phase correction or FIR, no ambient-noise capture and no console-specific export formats. One position and one recording per side, one minimum-phase parametric EQ per side.

Something misbehaved.

Themis records any internal error in %LOCALAPPDATA%\PatakiAudio\Themis\trace.log (Windows) or ~/.config/PatakiAudio/Themis/trace.log (Linux). Please send that file with your report to info@patakiaudio.com.