AMEONUIY studio EN CZ
Studio

Remote EQ

shipped

A VST3 plugin with a 20-band graphic equaliser that serves its own web interface. Open a browser on a tablet anywhere on the local Wi-Fi and you are holding the desk.

The problem

The desk is in the wrong place

Live sound has an old problem: the mixing desk sits at the back of the room, but the room sounds different everywhere else. You tune what you hear from one corner and hope the rest of the room agrees.

Remote EQ moves the controls to wherever you are standing. The EQ itself stays inside the plugin, on the master bus, where it belongs — only the interface travels.

What it does

Features

  • 20 independent bands

    Peak/bell filters with low- and high-shelf at the edges, plus notch filters. 20 Hz to 20 kHz, ±15 dB of gain, Q from 0.1 to 10, and each band can be bypassed on its own.

  • Built for live, not for the studio

    The DSP reads parameters only from lock-free atomics, and the network layer runs on its own threads. Nothing blocking ever happens in the audio thread. Gain, frequency and Q are smoothed, and bypass crossfades, so nothing clicks while you are adjusting it mid-set.

  • The web interface ships inside the plugin

    An HTTP and WebSocket server is embedded in the plugin itself, and so are the static files it serves. There is nothing to install on the tablet and no second application to keep running — just a browser pointed at the plugin.

  • Every client stays in sync

    Change a band from the tablet, from a laptop, from the plugin's own window or from the host, and every other client sees it immediately. One shared state, broadcast on every change.

  • Presets

    Named configurations of all 20 bands, saved to disk. The full state also travels inside the plugin as ordinary VST parameters, so it survives a project reload or a restart.

Interface

Three views, on purpose

A live set and a soundcheck need different things from the same plugin, so the interface has three modes instead of one compromise.

Tuning The default. Twenty vertical faders for gain, with the EQ curve sketched behind them. Fast, coarse, hard to get wrong.
Quick fix One large on/off button per band and a small gain fader. For when something is ringing and you need it gone now.
Detail A draggable curve over a live spectrum. Drag a point up and down for gain, sideways for frequency, scroll or pinch for Q, double-click to switch the band off.

The Detail switch deliberately sits apart from the view tabs — different colour, different corner — so it cannot be hit by accident during a set.

Under the hood

How it holds together

The whole design comes down to one rule: the network must never be able to interrupt the audio.

            ┌──────────── Plugin (VirtualDJ host) ─────────────┐
audio in ─► │  EQProcessor ── 20× EQBand (biquad + smoothing)  │ ─► audio out
            │       ▲ reads atomics every 32 samples           │
            │       │                        ▼ post-EQ samples │
            │  AudioProcessorValueTreeState   SpectrumAnalyzer │
            │       ▲                          (FFT, lock-free)│
            │       │                                          │
            │  WebSocketServer (HTTP + WS, own threads)        │
            └───────────────┬─────────────────────────────────┘
                            │ ws:// JSON + http:// static UI
              ┌─────────────┼──────────────┐
          Tablet         Laptop      Embedded WebView
  • The audio thread only reads

    It pulls atomic parameter values and writes samples into a lock-free ring buffer for the analyser. It never waits on the network, on the GUI, or on a lock.

  • The network threads only talk

    Accept, per-client and broadcast threads handle parameter changes and push state back out. The spectrum streams at roughly 15 frames per second, and only to clients that actually have the Detail view open.

  • Losing the tablet costs nothing

    The connection is only a remote control. Drop it, walk out of range, let the battery die — the audio path is untouched and the plugin keeps doing exactly what it was doing.

C++JUCEVST3WebSocket JavaScriptDSPLock-free

Availability

Where it stands

Remote EQ is built and in use. It was written for VirtualDJ on a master bus, and it is a standard VST3, so other hosts should work — but that is not what it has been tested against.

There is no public download yet. If you run live sound and this sounds useful, write to me — I would rather hear what you need first.