# NORMSONIC VOCAL PILOT — manual, version 0.1.0

Free compiled Windows x64 VST3 and standalone. Product: https://normsonic.com/plugins/vocal-pilot/. Support: info@normsonic.com. Published by MEGLENOV NORM računalništvo, k.d., https://normstudio.si/en. Source is private; permissions are in LICENSE.txt, with full component notices in licenses/.

## Signal path and honest meters

Sanitized main audio → smoothed Input trim → linked vocal ride → same-time wet/dry Mix → smoothed Output trim → smooth product/host bypass → output. In settled bypass, the exact untouched finite input is returned, including original host64 precision and in-place buffers. Nonfinite input becomes zero and extreme input is bounded at ±32; this is numerical sanitization, not an audio limiter. There is no lookahead, delay or audio tail and declared PDC is zero. Hardware, host and standalone driver buffering add their own latency.

Analysis uses first-order HPF then LPF on each channel. Stereo power is averaged for linked detection, never independently ridden. Separate one-pole power envelopes measure slow phrases, faster residuals, 15 ms activity and the external reference. Detector filters affect analysis only and do not directly equalize audio. Target is filtered RMS in dBFS, not LUFS. Input/output/reference meters and graph traces report actual signal measurements. Output RMS has its own 80 ms envelope after the complete output path, including trims, Mix and bypass; input RMS uses Fast Time, so envelopes may settle at different speeds. Peak indicators are actual block peaks; output clipping is indicated at |sample|≥1 and is not prevented by a limiter.

The slow request is target minus slow measured RMS. The fast request is the residual slow RMS minus fast RMS, scaled by Fast Amount; Transient Protect restrains negative fast requests when fast RMS exceeds the slow envelope. Ride Amount scales both contributions. ONE requested gain budget [-Max Cut,+Max Boost] applies to their sum, followed by Max Gain Slew on the actual ride. Slow/Fast traces show genuine computed requests; Applied ride shows the actual budgeted/slewed correction. They are not three separate audio gains. During bypass they continue to describe the underlying rider state; the BYPASSED label indicates that output follows untouched input.

Scalar meters/status remain active with Analyzer Off; only new graph-history publication stops. A coherent atomic snapshot protects graph reads without a lock in the audio callback. Histories are chronological, 256 points at 25 Hz (approximately 10.24 seconds), showing only valid collected points. Reset/rate changes intentionally clear histories. No random/decorative signal graph is used.

## Activity, gaps and budgets

Inactive→active occurs at filtered 15 ms RMS ≥ Activity Floor. Active→inactive occurs strictly below Floor−Hysteresis. Activity decisions run on a continuous approximately 1 ms counter, independent of block boundaries. This is an amplitude threshold, not reliable vocal, breath or noise recognition.

On becoming inactive, Pause Hold freezes the LAST ACTUAL correction; it does not continue rising toward an earlier high request or chase a new positive correction. After hold, Pause Return exponentially returns the requested gain to zero and Max Gain Slew bounds applied movement. A previously applied boost can remain briefly and therefore lift background in the configured hold/recovery period. Initially neutral subfloor noise is not newly boosted; long gaps return toward unity. Lowering Hold/Return shortens recovery. Set Floor and Hysteresis for your particular recording and check breaths/noise by ear.

On budget reductions or preset/automation changes, the new request obeys the new common budget immediately. Previously applied correction may briefly lie outside that NEW limit while slewing toward it, avoiding a discontinuous level step. It remains within the prior globally valid gain range [-24,+18] dB. Input/Output trims, Mix and bypass use their own 10 ms smoothing; settled bypass is exact.

## Solo and real Mix Reference

Solo mode targets the chosen filtered vocal RMS. In Mix Reference mode, the target is the actual smoothed filtered instrumental reference RMS plus Mix Offset. The optional VST3 aux bus accepts mono or stereo. Reference is taken from that bus, never from the main vocal or an invented constant. The reference shares analysis-filter settings and is not audible in plugin outputs.

In REAPER, make the vocal track four-channel, keep main vocal on channels 1/2, route a separate instrumental send to channels 3/4, and check the plugin's optional input pins. Mono reference is duplicated for linked analysis. Prevent the reference send from accidentally summing into your audible vocal output. Consult the DAW's routing/pin controls; different hosts expose aux buses differently.

SOLO, REFERENCE ACTIVE, MISSING and SILENT states describe actual mode/bus connectivity/reference-floor validity. Missing, host-inactive or subfloor reference returns from the actual current gain toward unity, with smooth return/slew. An unavailable target is shown as unavailable, not Solo Target. It does not silently switch to a guessed solo reference. If the host explicitly flags the ENTIRE aux bus silent (mono mask 1; stereo mask 3), connected remains true but SILENT/unavailable target is reported immediately and the ride starts returning from its actual current gain. Known mode, connectivity and full-silence changes force an immediate control decision. Partial silence flags zero only the flagged reference channel. Raw quiet audio without explicit whole-bus silence retains the Reference Smooth envelope and Reference Floor decision delay. Silence flags supplied by the host are respected. Standalone exposes two main inputs and no external reference, so use Solo there.

## All 24 automatable controls

|ID|Control|Range; default|Function|
|---|---|---|---|
|0|Mode|Solo/Mix Reference; Solo|Fixed vocal target or genuine external relative target.|
|1|Bypass|Off/On; Off|Smooth transition to exact untouched input.|
|2|Input|−24…+24 dB; 0|Pre-detector/audio trim.|
|3|Output|−24…+24 dB; 0|Post-ride/Mix trim; maintain headroom.|
|4|Solo Target|−36…−6 dBFS; −18|Filtered RMS target in Solo.|
|5|Ride Amount|0…100%; 100|Scale slow and fast correction.|
|6|Max Boost|0…18 dB; 6|Shared maximum requested boost.|
|7|Max Cut|0…24 dB; 12|Shared maximum requested attenuation.|
|8|Slow Time|300…5000 ms; 1000|Slow phrase RMS time constant.|
|9|Fast Time|10…500 ms; 80|Fast RMS residual time constant.|
|10|Fast Amount|0…100%; 35|Fast residual contribution.|
|11|Activity Floor|−90…−20 dBFS; −48|Amplitude activity entry threshold.|
|12|Activity Hysteresis|0…12 dB; 6|Lower activity exit threshold offset.|
|13|Pause Hold|0…2000 ms; 200|Retain last actual correction in short inactive gaps.|
|14|Pause Return|100…5000 ms; 800|Return request toward unity after hold/lost reference.|
|15|Detector HPF|40…400 Hz; 100|Analysis-only low-frequency rejection.|
|16|Detector LPF|2000…18000 Hz; 10000|Analysis-only upper rolloff, bounded below Nyquist.|
|17|Mix Offset|−18…+18 dB; 3|Vocal target relative to valid reference RMS.|
|18|Reference Smooth|100…3000 ms; 600|External reference power time constant.|
|19|Transient Protect|0…100%; 50|Restrain fast negative requests on detected level accents.|
|20|Max Gain Slew|1…24 dB/s; 6|Maximum ordinary applied ride change per sample.|
|21|Mix|0…100%; 100|Same-time pre-ride trimmed dry/processed blend.|
|22|Analyzer|Off/On; On|History/graph service only; audio unchanged.|
|23|Reference Floor|−90…−20 dBFS; −50|Minimum valid actual reference RMS.|

All controls are exposed to host automation. The pinned wrapper applies the last normalized point per parameter queue per block, then its DSP smoothing; it is block-accurate, not advertised as sample-offset-exact automation. Nonfinite final points are ignored. Gain moves remain slew-bounded through changes; no source or network activity is performed in audio processing.

## Presets, comparison and UI

Sixteen original presets provide natural, gentle, intimate, pop, dynamic, interview, podcast, narration, backing, conservative live, ballad, transient-friendly, three external-reference starting points and Unity Audit. Presets are starting points, not promises of appropriate levels for every recording. Reference presets require real DAW routing. They never enable hidden test audio.

Hover for help; knobs support precise typed values and reset. Use Activity, Timing and Reference pages for advanced controls. A/B swaps the current parameter bank with its comparison bank; Copy stores the current settings in the alternate bank. State preserves both complete 24-value banks, selected bank and preset metadata with strict version validation. Invalid/truncated state is rejected before any parameter changes. Audio detector history is deliberately not persisted; playback rebuilds it causally.

Click the NORMSONIC logo to open https://normsonic.com. Website and publisher links in Help use https://normstudio.si/en for company information. Email support at info@normsonic.com.

## Installation and practical limits

Extract the whole ZIP. Install.ps1 defaults to your user common VST3 path and preserves previous versions; Uninstall.ps1 removes only this named bundle from the scan path into a backup. Re-scan in your DAW. VOCAL PILOT.exe is portable and uses DirectSound device/buffer settings in File > Preferences. This release is Windows x64 only. Source/PDBs, Mac and JUCE are not included.

Tests include direct-core numeric/allocation/concurrency checks and actual-DLL SDK lifecycle/state/preset/automation/mono/stereo/reference/float/double tests. Strict pluginval and independent REAPER/media gates are tracked privately against exact release hashes. Finite CPU measurements cannot guarantee deadlines on every machine or with other plugins. Keep headroom and project backups; report reproducible issues with host/version/rate/block/routing details. No universal compatibility, voice recognition, peak limiting or crash-proof claim is made.
