Focused, realtime-safe audio processors for voice, vocal production, and fast stereo-mix cleanup.
VX Studio is an open-source collection of JUCE/VST3 audio effects built around a shared C++ framework, compact control surfaces, and product-specific DSP. Each plugin is meant to do one job clearly instead of acting like a broad channel strip.
The shared framework lives in Source/vxstudio/framework/. It handles parameter registration, the default editor shell, smoothing, status/help UI, listen-mode plumbing, and output safety so each product can stay focused on its DSP contract. See Source/vxstudio/framework/README.md for framework-level guidance.
This README and the in-plugin Help popup are a shared documentation contract. When a plugin's UI, selector behavior, DSP contract, or recommended usage changes, update both together.
| Plugin | Job | Main controls | Best for |
|---|---|---|---|
| VXDeepFilterNet | ML-powered voice isolation | Clean, Guard |
Heavy noise, traffic, complex non-steady interference |
| VXDenoiser | Broadband denoise | Clean, Guard |
Hiss, fan noise, HVAC, room tone |
| VXSubtract | Profile-guided subtractive denoise | Subtract, Protect, Learn |
Learnable noise beds, hum, machines |
| VXDeverb | LRSV dereverberation with RT60 tracking | Reduce, Blend |
Echoey rooms, distant speech, reverberant dialogue |
| VXSpeechClarity | Focused speech-artifact cleanup | Sibilance, Plosive, Breath, Click |
De-essing, pop control, breath cleanup, click repair |
| VXProximity | Directional proximity model with adaptive filtering | Closer, Air, Mud |
Intimacy, warmth, fullness, boom control after cleanup |
| VXTone | Bass, mid, and treble shaping | Bass, Treble, Mid |
Warmth, presence, brightness, tonal balance |
| VXToneRefine | Guided tonal correction | Mud, Harshness, Smooth |
Boxiness, brittleness, transparent smoothing |
| VXFinish | Final polish and level control | Finish, Body, Gain |
Compression, recovery lift, controlled loudness |
| VXOptoComp | Professional LA2A-style opto levelling | Peak Red., Body, Gain, Pro, Behavior, Stereo Link |
Smooth riding, gentle limiting, opto character, engineer-facing control |
| VXLeveler | Adaptive riding and programme levelling, with sidechain vocal riding | Level, Control, Target, Depth |
Speech riding, vocal-over-music riding, long-form consistency |
| VXRebalance | Confidence-driven source-family rebalance | Vocals, Drums, Bass, Guitar, Other, Strength |
Broad mix moves without stems |
| VXRepair | All-in-one guided voice repair | Noise, Speech Clarity, Clicks, Reverb |
Automatic problem detection and one-step correction |
| VXStudioAnalyser | Chain-aware dry-vs-wet analyser | Avg Time, Smoothing |
Inspecting stage impact and whole-chain tone |
| VXTune | Confidence-gated vocal pitch correction | Amount, Natural, Speed, Focus, Key, Scale |
Pitch correction with a live sung-vs-tuned trace |
| VXWidth | Stereo image and ADT doubling | Width, Double, Blend, Tightness, Focus |
Narrowing, mono-to-stereo widening, vocal/instrument doubling |
Framework and plugin DSP versions are tracked independently.
| Component | Version |
|---|---|
| VX Studio Framework | 0.2.2 |
| VXDeepFilterNet | 0.2.2 |
| VXDenoiser | 0.2.1 |
| VXSubtract | 0.2.1 |
| VXDeverb | 0.2.1 |
| VXSpeechClarity | 0.2.0 |
| VXProximity | 0.3.0 |
| VXTone | 0.2.0 |
| VXToneRefine | 0.1.0 |
| VXFinish | 0.3.0 |
| VXOptoComp | 0.3.0 |
| VXLeveler | 0.2.0 |
| VXRebalance | 0.2.2 |
| VXRepair | 0.1.1 |
| VXStudioAnalyser | 0.2.1 |
| VXTune | 0.1.1 |
| VXWidth | 1.0.0 |
16focused plugins are implemented and shipping in the shared VX Studio shell.- VXWidth is now a released stereo image and doubling plugin (build order tracked in
docs/Task Based/VXWIDTH_BUILD.md). Landed: a target-seeking Width engine (measures the source's actual stereo width and solves for the existing-Side gain needed to reach the requested target, rather than applying a fixed widening curve), the ADT doubling engine (now with a permanent, always-on subtle micro-pitch stage), Focus spectral placement, a live spatial-width visualiser, mono-in/stereo-out bus support, and CPU/allocation hardening (verified realtime-safe, no audio-thread allocations). Focus and Tightness are structurally Double-only controls - a dedicated audit (docs/Task Based/VX_ENGINE_AUDIT.md) traced every signal path and closed several found couplings (shared adaptive filters/restraints that let Double's own behaviour nudge Width's output) down to exact-bit-equality; neither control can move Width's output at all, even with Double active. Validated against real DAW playback (REAPER), not just automated/headless tests. Also landed: harmonic/residual/transient-aware decorrelation (a lightweight, block-rate autocorrelation-based weighting - tonal content decorrelates less, "protecting fundamentals"; noise-like content decorrelates more; zero added latency, no STFT), the full mono/phase-risk guardrail (per-band coherence, downmix spectral deviation, centre-image displacement, and sustained negative-correlation duration, on top of the existing broadband correlation restraints - all split per-source so Focus/Tightness still cannot move Width's own output), and a fifthBlendcontrol (docs/Task Based/VXWIDTH_BLEND.md) that balances the original signal against VXWidth's processed result - 50% (default) is exactly the pre-Blend VXWidth sound, extrapolating further past it toward a more effect-forward result on the way to 100%, with a headroom-limited split-gain solve (separate ceilings for existing vs. generated content) so it can't invert Side polarity or exceed the output ceiling. A follow-up "control ownership + effect authority" pass re-checked every internal restraint against the principle that user controls, not internal analysis, should determine effect strength: ADT's generated-double placement is now driven by Width itself (equal-power Mid/Side crossfade, centred at Width=0 rather than a fixed 50/50 split), several restraint constants that were found to be more conservative than necessary were loosened with measured evidence (direct-Side ceiling 12dB to 18dB, transient-protect floor lowered, harmonic decorrelation factor raised), and a redundant centre-confidence gate on Double was removed after the newer phase-risk/mono-downmix guardrails were shown to already cover the same failure mode. Full control-isolation regression suite (exact-bit-equality Width/Double independence) and Width/Double monotonicity checks (including the top half of each control's range) re-verified passing after these changes. - VXTune is a new confidence-gated vocal pitch correction plugin: performance decomposition separates sung centre pitch from expression (vibrato, bends, slides), a Bayesian target estimator picks the intended note, and a Signalsmith Stretch-based shifter renders the correction with a live sung-vs-tuned pitch trace. Round-trip latency is ~30-45ms, low enough to monitor through while tracking.
- VXSpeechClarity and VXToneRefine are live product-facing names; their current VST3 build targets remain
VXClarityandVXRefine. - VXProximity's
Closernow also drives a dereverberation pre-stage (shared with VXDeverb) so higher settings thin room tone, not just boost bass; this adds ~16ms of latency at 48kHz (compensated automatically by the host). - VXRepair is a new all-in-one guided repair assistant combining noise, clicks, clarity, and deverb in a single analysed workflow.
- VXCleanup has been removed from the active product set and replaced by VXSpeechClarity for speech artifacts plus VXToneRefine for tonal refinement.
- VxRebalanceAI exists as an experimental opt-in tool, but it is not a shipping VX Studio product yet.
- GR meters are now active on VXDenoiser and VXDeverb.
- VXDeepFilterNet now has an active Guard control with artifact-aware blending, and inference runs on a dedicated per-channel thread (audio thread is lock-free).
- VXSubtract now warns when a learned noise profile may be stale (> 20 min old).
- Domain binding falls back to all active domains when DAW plugin sandboxing prevents process ID matching.
- The full regression harness currently passes end-to-end, including Speech Clarity wet path and listen-delta coverage.
Latest verification:
cmake --build build --target VXStudioPluginRegressionTests --parallel
./build/VXStudioPluginRegressionTests
On the latest clean run, VXStudioPluginRegressionTests completed with exit code 0.
VX Studio is designed around composability. When a recording has multiple problems, this order is usually the best starting point:
VXDeepFilterNet / VXDenoiser / VXSubtract -> VXDeverb -> VXSpeechClarity -> VXTune -> VXProximity -> VXTone / VXToneRefine -> VXFinish / VXOptoComp -> VXStudioAnalyser
Why this order:
- Remove noise first so later stages do not react to or enhance the noise floor.
- Remove room tail before enhancement so proximity and tone moves do not lift reverberant smear.
- Do corrective cleanup (sibilance, plosive, breath) before additive shaping.
- Correct pitch before tonal and proximity shaping so those stages work on the final pitched signal.
- Add closeness after cleanup.
- Shape tone after proximity.
- Finish or compress last.
- Put VXStudioAnalyser at the end when you want to inspect the whole chain or an individual VX stage.
For a fully guided single-plugin workflow, use VXRepair - it analyses, selects, and applies noise, clarity, click, and reverb reduction automatically.
Example chains:
Heavy street noise, reflective room:
VXDeepFilterNet -> VXDeverb -> VXSpeechClarity -> VXFinish -> VXStudioAnalyser
HVAC noise, thin and distant vocal:
VXSubtract -> VXDeverb -> VXSpeechClarity -> VXProximity -> VXTone -> VXFinish
Levelling and polish after a clean recording:
VXToneRefine -> VXTone -> VXOptoComp
Quick single-plugin repair:
VXRepair
Denoiser choice:
| Situation | Recommended |
|---|---|
| Heavy or non-stationary noise | VXDeepFilterNet |
| Steady broadband noise | VXDenoiser |
| Noise with a learnable fingerprint | VXSubtract |
| Both present | Use ML isolation first, then target the remaining steady bed |
| Full guided repair | VXRepair |
Most VX Studio products use the shared Vocal / General selector when the DSP truly benefits from different tuning.
Vocalis speech-aware and more conservative around intelligibility.Generalallows broader full-range cleanup or shaping.
Important exceptions:
VXDeepFilterNetuses the main selector as a model selector:DeepFilterNet 3,DeepFilterNet 2, orRNNoise.VXLevelerusesVocal RiderandMix Leveler, plus anAnalysisselector withRealtime,Smart Realtime, andOffline(available in both modes). It also accepts an optional stereo sidechain input inVocal Ridermode.VXRebalancedoes not use the shared Vocal/General selector. It usesRecording TypewithStudio,Live, andPhone / Rough.VXStudioAnalyseris a custom analyser UI rather than a standard processing shell.
All processing plugins support Listen, but the audition signal depends on the product role.
- Removal and corrective tools audition what they remove.
- Additive and finishing tools audition what they add.
This is useful for checking whether a processor is targeting the right material and whether a setting has become too aggressive.
The framework runs block-rate analysis and exposes:
- speech presence and stability
- directness versus late-tail likelihood
- transient and artifact risk
- a composite voice-protection recommendation
ML-powered voice isolation for heavy or complex background noise. It is the strongest noise-removal tool in the suite when classic denoisers cannot separate the voice cleanly enough. Inference runs on a dedicated per-channel thread rather than the audio thread, so the model can never glitch or drop out the signal path.
How to use it:
- Start with
Cleanaround55%to70%. - Use
Guardto recover natural speech detail if the result starts to sound over-processed. - Choose the model that behaves best on the material from the model selector:
DeepFilterNet 3(usually the first choice),DeepFilterNet 2, orRNNoise(lighter-weight).
Example settings:
- Street or traffic noise:
Clean 75%,Guard 65% - Busy cafe or moving background:
Clean 65%,Guard 75% - Gentler isolation before other cleanup:
Clean 50%,Guard 80%
Practical scenarios:
- Phone or camera speech recorded in public spaces
- Dialogue with mixed non-stationary interference
- First stage before deverb, cleanup, and finishing processors
Broadband spectral denoiser for steady noise such as hiss, fans, HVAC, and room tone. It is designed to clean the bed without turning into a voice-isolation tool.
How to use it:
- Raise
Cleanuntil the steady noise floor drops to a useful level. - If the voice loses harmonics or consonants, increase
Guard. - Use it early in the chain, before deverb and finishing.
Example settings:
- Light hiss:
Clean 40%,Guard 75% - Fan or HVAC:
Clean 60%,Guard 70% - Safety-first spoken voice:
Clean 50%,Guard 85%
Practical scenarios:
- Podcast or narration with constant background air noise
- Camera audio with a steady room bed
- Follow-up cleanup after a stronger ML pass leaves residual steady noise
Profile-guided subtractive denoiser for noises with a learnable fingerprint. It goes further than a blind denoiser when you can capture representative noise safely.
How to use it:
- Enable
Learnand play the noise by itself for about one to two seconds. - Turn
Learnoff to lock the profile. - Raise
Subtractfor more removal and raiseProtectif the source becomes hollow or over-scooped. Modeswitches the learn-prompt wording and thresholds betweenVocalandGeneralmaterial.- Use
Listento hear only what is being removed. - If the status bar shows a stale-profile warning, re-learn to re-capture the current noise floor.
Example settings:
- Machine or room noise with a clean profile:
Subtract 65%,Protect 80% - More aggressive learned subtraction:
Subtract 80%,Protect 70% - Delicate speech preservation:
Subtract 55%,Protect 88%
Practical scenarios:
- Air conditioner, projector, or other repeatable tonal or broadband beds
- Noise-only intro or pause available for learning
- Pre-clean stage before deverb and tonal shaping
Research-grade dereverberation using LRSV (Late-Reverberant Spectral Variance) with RT60 room-decay estimation and optional WPE (Weighted Prediction Error) enhancement for voice. Reduces reverberant tail and ambience while preserving direct sound clarity.
How to use it:
- Increase
Reduceuntil the room tail pulls back without making the source papery. - Use
Blendto restore low-body weight if the dereverb pass gets too lean. - Place it before proximity, tone shaping, and final dynamics.
Example settings:
- Small reflective room:
Reduce 50%,Blend 40% - Distant voice in a live room:
Reduce 70%,Blend 35% - General ambience tidy-up:
Reduce 35%,Blend 50%
Practical scenarios:
- Phone or camera speech recorded far from the source
- Dialogue in an untreated room
- Recovering clarity before cleanup and finishing
Targeted speech-artifact cleanup for sibilance, plosives, breath noise, and clicks. It is the focused corrective stage for speech mechanics rather than broad tonal shaping. All four DSP bands are active.
How to use it:
- Raise
Sibilanceto soften harsh/s/and/z/bursts without dulling the whole take. - Raise
Plosiveto reduce low-frequency consonant thumps from close mics. - Raise
Breathto pull back obvious inhalations and wind-like noise between phrases. - Raise
Clickto catch mouth clicks, lip smacks, and other short impulse artifacts.
Example settings:
- Light de-essing only:
Sibilance 35%,Plosive 0%,Breath 0% - Close-mic spoken voice cleanup:
Sibilance 30%,Plosive 40%,Breath 25% - Podcast artifact control:
Sibilance 45%,Plosive 35%,Breath 30% - Impulse cleanup:
Click 30%, with the other bands at0%unless needed
Practical scenarios:
- Speech tracks with sharp consonants, close-mic pops, and mouth noise
- Dialogue cleanup before tone shaping and final compression
- Mechanical voice cleanup when
VXToneorVXFinishwould be too broad
Directional microphone proximity model with real-time spectral analysis and adaptive 4-stage cascaded filtering. Simulates the tonal character of moving a microphone closer to a source - adding weight, intimacy, and presence - without altering spatial location or introducing artifacts.
Closer also gently reduces room tone as it rises, via a dereverberation pre-stage shared with VXDeverb, so the source pulls forward the way it would if the mic were genuinely closer - not just a bass boost. This adds a small amount of latency (~16ms @ 48kHz), compensated automatically by the host.
How to use it:
- Raise
Closerto add weight and intimacy. - Use
Airto stop the sound becoming overly thick or shut in. - Use
Mudto balance bass depth versus low-mid boom, based on the source character. - Apply it after noise and room problems are already under control.
Example settings:
- Thin distant voice:
Closer 65%,Air 45%,Mud 50% - Warm spoken-word polish:
Closer 55%,Air 40%,Mud 55% - Subtle intimacy lift:
Closer 45%,Air 50%,Mud 48%
Practical scenarios:
- Phone or room mics that feel too far away
- Voice tracks that need warmth after cleanup
- Pre-tone-shaping enhancement before
VXTone
Bass, midrange, and treble shaping with mode-aware shelf and peak placement. It is the fast tonal balance stage after corrective cleanup.
How to use it:
- Start from the centre position and make small moves.
- Use
Bassfor weight and warmth,Treblefor brightness and openness. - Use
Midto shape the presence region: in Vocal mode at 2 kHz for speech intelligibility; in General mode at 1 kHz for warmth. - Prefer subtle shaping after cleanup and proximity, not before.
- Use
Listento hear only what this stage is changing.
Example settings:
- Need a little warmth:
Bass 58%,Treble 50%,Mid 50% - Dull voice lift:
Bass 50%,Treble 60%,Mid 55% - Balanced polish:
Bass 55%,Treble 56%,Mid 50%
Practical scenarios:
- Final tonal balance after cleanup
- Correcting a track that feels thin, dull, or lacks presence
- Subtle pre-finish shaping before
VXFinishorVXOptoComp
Automatic tonal correction for mud, harshness, and general roughness. It is for targeted subtractive refinement when a track needs cleanup in specific problem regions without manual EQ moves.
How to use it:
- Raise
Mudto reduce boxy low-mid buildup. - Raise
Harshnessto soften brittle presence-region peaks. - Raise
Smoothto apply transparent broad tonal calming after the main problems are under control. - Toggle the HPF icon to cut sub-rumble below the voice (80 Hz vocal / 40 Hz general).
- Toggle the Hi-shelf icon to gently tame extreme top-end harshness.
- Use
Listento hear only what this stage is changing.
Example settings:
- Boxy room voice:
Mud 45%,Harshness 20%,Smooth 10% - Brittle spoken voice:
Mud 15%,Harshness 45%,Smooth 20% - General refinement pass:
Mud 25%,Harshness 30%,Smooth 25%
Practical scenarios:
- Speech that feels muddy, brittle, or rough after basic cleanup
- Corrective refinement before finishing compression
- Faster guided tonal repair when manual EQ is too slow or fussy
Final polish and level control after cleanup and tone work. It combines finish compression, bounded body recovery, makeup, and a true-peak-aware limiter (2x minimum-phase oversampled) for a more produced result without inter-sample overshoot.
How to use it:
- Raise
Finishto increase compression, polish, and level control. - Use
Bodyto recover useful weight after cleanup. Gainis unity-centered: left is50%, centre is100%, right is150%.
Example settings:
- Light vocal polish:
Finish 35%,Body 55%,Gain 100% - Produced spoken voice:
Finish 60%,Body 58%,Gain 110% - Conservative final control after heavy cleanup:
Finish 45%,Body 52%,Gain 100%
Practical scenarios:
- Last stage on cleaned speech
- Recovery and polish after corrective processing
- Fast final level shaping when you want more than a plain compressor
Professional LA2A-style opto levelling and limiting with a visible Pro switch and slower, smoother programme-dependent gain reduction than VXFinish. It is for natural dynamic control with opto character when you want standalone engineer-facing control instead of guided finishing.
How to use it:
- Raise
Peak Red.to drive more opto gain reduction. - Use
Bodyfor light post-compressor weight shaping. Gainis unity-centered: left is50%, centre is100%, right is150%.- Leave
Prooff for the simple guided view:Autobehaviour and linked stereo tracking stay engaged. - Turn
Proon to revealBehaviorandStereo Link. BehavioronAutofollows the programme role. UseCompressfor classic levelling andLimitfor firmer containment.- Keep
Stereo Linkhigh for classic linked stereo tracking, or lower it for dual-mono style response.
Example settings:
- Simple vocal levelling:
Peak Red. 35%,Body 52%,Gain 100%,Pro Off - Firm vocal compression:
Peak Red. 55%,Body 54%,Gain 108%,Pro On,Behavior Compress,Stereo Link 100% - Limiter-style bus control:
Peak Red. 65%,Body 50%,Gain 100%,Pro On,Behavior Limit,Stereo Link 100% - Asymmetric stereo material:
Peak Red. 45%,Body 50%,Gain 100%,Pro On,Behavior Compress,Stereo Link 0-25%
Practical scenarios:
- Natural spoken-word levelling
- Opto-style smoothing after cleanup and tone shaping
- General dynamic control when
VXFinishfeels too guided or produced
Adaptive level control with two behaviours: Vocal Rider rides a voice toward a held reference level - freezing the fader in pauses instead of pumping room tone - and Mix Leveler smooths whole-programme level. Both modes share the same controls; it is meant to feel like automatic fader support, not static compression. The level trace shows the ride in action: the bright line is the fader (dimmed while parked), the dashed line is the level it is steering toward.
How to use it:
- Choose
Vocal Riderwhen speech intelligibility is the priority;Mix Levelerfor gentler whole-programme control. - Use
Levelfor how far the processor should even things out andControlfor how assertively it reacts. Targetrides the material hotter or quieter than its learned reference;Depthsets how far the ride reaches into pauses and quiet dips.- Route your music bus into the plugin's sidechain input and
Vocal Riderholds the vocal a set amount above the music -Targetthen sets how hot it sits. Remove the routing and it returns to riding the vocal against its own level. - In
Offlineanalysis mode, pressAnalyzewhile the track plays to learn its level map; the rider then steers toward the analyzed reference, locked to the DAW timeline inMix Levelermode.
Example settings:
Vocal Riderfor uneven dialogue:Level 65%,Control 60%,TargetandDepthcentred- Vocal against a backing track: music routed to the sidechain,
Level 70%,Target +2 dB Mix Levelerfor broad programme smoothing:Level 50%,Control 45%- Whole-song consistency:
Mix Leveler,Analysis Offline,Analyzea pass, thenLevel 60%
Practical scenarios:
- Speech riding in mixed or inconsistent recordings
- Holding a vocal at a set level above a changing arrangement (sidechain)
- Programme smoothing before final finish or limiting
- Long-form content where sections vary in level too much
Confidence-driven source-family rebalance for full mixes. It estimates source ownership in time-frequency regions and lets you push or pull vocals, drums, bass, guitar, and residual content without stems.
How to use it:
- Choose the
Recording Typethat best matches the source:Studio,Live, orPhone / Rough. - Start with small moves on the source lane you want to rebalance.
- Use
Strengthto scale the overall impact of all five source moves together. - Treat it as perceptual source rebalance, not perfect stem extraction.
Example settings:
- Bring vocals forward slightly:
Vocals 60%,Strength 70% - Tuck a boomy rhythm section:
Bass 42%,Drums 45%,Strength 75% - Open a busy rehearsal mix:
Vocals 58%,Guitar 47%,Other 46%,Strength 65%
Practical scenarios:
- Quick rebalance of a rough stereo mix
- Making speech or lead lines feel more present without remixing stems
- Light source-family shaping before final tone and dynamics
All-in-one guided voice repair assistant. Analyses the audio and automatically suggests which tools to enable and at what strength. Combines noise reduction, speech clarity cleanup, click repair, and dereverberation in a single workflow.
How to use it:
- Insert VXRepair and let it analyse for a few seconds. It detects problems and pre-sets each tool.
- Accept the suggestions, adjust each slider to taste, or toggle individual tools off.
- Use the
Noise,Speech Clarity,Clicks, andReverbsliders to scale each stage.
Example settings:
- Podcast with background hiss and slight room reverb: let Repair analyse and apply the relevant stages.
- Phone or camera speech with strong interference: Repair handles noise, clicks, clarity, and room reduction together.
- Mostly clean voice: Repair will leave inactive tools off and only apply what is needed.
Practical scenarios:
- Fast single-plugin repair when there is no time to build a chain manually
- First pass on unfamiliar material
- All-in-one correction for noisy remote recording
Chain-aware dry-vs-wet spectrum analyser for VX Studio. Insert it last to inspect either the whole chain or one specific VX stage at a time.
How to use it:
- Put the analyser at the end of the VX chain.
- Select
Full Chainto compare chain input against final output. - Click a stage in the left rail to inspect only that processor's dry-vs-wet spectrum.
Example settings:
- General readability:
Avg Time 500 ms,Smoothing 1/3 OCT - Fast transient inspection:
Avg Time 125 ms,Smoothing 1/12 OCT - Broad tonal overview:
Avg Time 1000 ms,Smoothing 1 OCT
Practical scenarios:
- Checking what one plugin in the chain is really changing
- Comparing whole-chain tone before and after processing
- Debugging over-bright, over-thin, or over-damped processing decisions
Intelligent vocal pitch correction that fixes pitch errors while leaving the performance - vibrato, bends, phrasing - untouched. It corrects the intended note only when it is confident the deviation is an error, and preserves expression by design: when unsure, it does nothing rather than risk a wrong or audible correction. A live sung-vs-tuned trace on a note grid shows the detected note, its offset, confidence, and whether the engine is intervening. Round-trip latency is ~30-45ms at 48kHz (host plugin-delay-compensated), low enough to monitor through while tracking without the timing confusion a longer delay would cause.
How to use it:
- Insert on a monophonic vocal.
Amountsets how much detected pitch error is removed.Naturalsets how readily movement counts as error rather than expression: left preserves everything human, right is tighter.Speedsets how quickly the correction glides toward the target once it engages.Focussets how assertively the engine commits to a correction versus holding back when uncertain.- Set
KeyandScaleto match the song, leave them onAutoto have VXTune detect the key itself from the sung notes (section-based evidence accumulation, not a first-note guess), or leave them onChromaticif the key is unknown/modulates and you don't want any note filtering. - Optionally route an instrumental into the sidechain input. VXTune extracts a chroma (pitch-class energy) profile from it every block and feeds that into the same Auto Key/Scale detector the vocal itself uses - full chord content resolves the key faster and more reliably than the vocal alone, and can even establish the key during an instrumental intro before the vocal enters. Detection-only: the sidechain audio is never mixed into the output. No new control - it activates automatically whenever a sidechain bus is connected with real signal.
- Start from the
Natural,Balanced,Tight, orHard Tunepresets and adjust from there.
Example settings:
- Transparent intonation cleanup:
Amount 35%,Naturallow,SpeedandFocuscentred - Studio vocal correction with preserved vibrato:
Amount 50%,Natural 65%,Speed 30%,Focus 60% - Hard-tune effect:
Amount 100%,Natural 100%,Speed 100%,Focus 100%
Practical scenarios:
- Transparent intonation cleanup on lead or backing vocals
- Checking vocal intonation while tracking or comping
- Creative hard-tune effect for stylized vocals
- Correcting against a known key/chord progression by feeding the instrumental bus into the sidechain, instead of manually picking (or guessing) Key/Scale
Stereo image and doubling processor with five controls. Narrows a stereo signal toward mono, widens an existing stereo image, or adds a synthetic ADT-style double - without needing to understand M/S processing, phase, delay, or detuning. Accepts both mono and stereo input buses; a mono source is duplicated internally before any processing, so mono-to-stereo widening and doubling work the same as on a stereo source.
How to use it:
Widthsets the size of the stereo image: left of centre narrows toward true mono at -100, right of centre widens. Width measures the source's actual current stereo width and solves for how much existing-Side gain is needed to reach the requested target, rather than applying a fixed widening curve - a narrow source gets more expansion than a source that's already wide at the same knob setting. Width is the only control that changes the stereo image; Double, Blend, Tightness, and Focus cannot move it, including when Double is active.Doubleintroduces a synthetic second performance (ADT-style: independent fractional delay, pitch drift from delay modulation, gain and spectral tilt movement per voice, plus a subtle always-on micro-pitch stage) alongside the original. Weighted toward centred, correlated content rather than doubling a whole stereo mix uniformly.Blendbalances the original performance against VXWidth's processed spatial/doubled result. 50% (the default) is the normal VXWidth sound; left leans toward the original signal, right pushes further in the same direction the effect already moved it. Blend only changes how much of the result you hear - it doesn't change the Width/Double/Tightness/Focus decisions themselves.Tightnesssets how closely the generated double follows the original: loose and separate toward 0%, tight and precise toward 100%. Only affects Double.Focussets where in the spectrum the generated doubled performance concentrates: Body, Full, or Air - shapes only Double's generated content, not the dry signal and not Width. Only affects Double.
Practical scenarios:
- Narrowing an overly wide stereo recording for mono compatibility
- Widening a mono or near-mono vocal, instrument, or backing track into real stereo
- Adding a believable double-take to a mono or centred vocal without a second take
- Dialing an aggressive Width/Double setting back toward the original with Blend, without re-tuning the other four controls
Known gaps (tracked in docs/Task Based/VXWIDTH_BUILD.md's build log): the harmonic/residual/transient decorrelation uses a lightweight, block-rate autocorrelation-based analysis rather than a full STFT-based harmonic-percussive mask (the spec explicitly allows this - "does not require source separation or machine learning").
The repo includes a REAPER-facing preset pack under assets/reaper/.
assets/reaper/RPL Files/contains one.RPLlibrary per VX effect.assets/reaper/FX Chains/contains full.RfxChainstarting chains for shared scenarios.tools/reaper/generate_vx_reaper_presets.luaregenerates both from the current VX Studio plugins inside REAPER.
Shared scenario names:
| Preset | Use case | Recommended chain |
|---|---|---|
Camera Review - Far Phone |
Slightly noisy review-to-camera audio from a phone a few meters from the presenter | VXSubtract -> VXSpeechClarity -> VXDenoiser -> VXDeepFilterNet -> VXDeverb -> VXProximity -> VXTone -> VXOptoComp -> VXFinish |
Live Music - Front Of Room |
Single-point live music or rehearsal capture where preserving the whole mix matters more than voice isolation | VXToneRefine -> VXTone -> VXOptoComp -> VXFinish |
Podcast Finishing - Clean Voice |
Already-decent spoken-word capture that mainly needs polish and density | VXSpeechClarity -> VXProximity -> VXTone -> VXOptoComp -> VXFinish |
Mixed Audio - Voice + Guitar |
One track containing both voice and live instrument, where aggressive speech-only denoise would damage the instrument | VXToneRefine -> VXTone -> VXOptoComp -> VXFinish |
The project uses CMake and JUCE. A JUCE submodule is included.
Prerequisites:
- Xcode Command Line Tools
- CMake 3.20+
- Rust, required only for VXDeepFilterNet
git clone --recurse-submodules <repo-url>
cd VxStudio
cmake -S . -B build
cmake --build build -j 4Build a single plugin:
cmake --build build --target VXRebalancePlugin --parallelBuilt .vst3 bundles are staged into Source/vxstudio/vst/.
VXDeepFilterNet also requires model files in assets/deepfilternet/models/. Without them the plugin still builds, but no model will be available at runtime.
VxRebalanceAI is experimental and disabled by default. To build it locally, configure with -DVXSTUDIO_ENABLE_REBALANCE_AI=ON and provide ONNX Runtime plus ThirdParty/stemgenrt/model/model.onnx and model.onnx.data.
Windows support is wired up and the GitHub Actions release workflow now builds and publishes Windows assets on hosted runners, but broader host validation is still pending.
Prerequisites:
- Visual Studio 2022 with Desktop development with C++
- CMake 3.20+
- Rust with the MSVC target
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --parallelmacOS:
- Copy the desired
.vst3bundles into/Library/Audio/Plug-Ins/VST3/for all users, or~/Library/Audio/Plug-Ins/VST3/for the current user. - Rescan plugins in the DAW after copying.
Windows:
- Copy the desired
.vst3bundles intoC:\Program Files\Common Files\VST3\. - Rescan plugins in the DAW after copying.
Useful plugin targets:
| Target | Description |
|---|---|
VXDeepFilterNet_VST3 |
DeepFilterNet isolation plugin |
VXDenoiser_VST3 |
Denoiser plugin |
VXSubtract_VST3 |
Subtract plugin |
VXDeverb_VST3 |
Deverb plugin |
VXProximity_VST3 |
Proximity plugin |
VXClarity_VST3 |
Speech Clarity plugin |
VXTone_VST3 |
Tone plugin |
VXRefine_VST3 |
ToneRefine plugin |
VXFinish_VST3 |
Finish plugin |
VXOptoComp_VST3 |
Opto compressor plugin |
VXLeveler_VST3 |
Leveler plugin |
VXRebalance_VST3 |
Rebalance plugin |
VXRepair_VST3 |
Repair plugin |
VXStudioAnalyser_VST3 |
Studio analyser plugin |
VXTune_VST3 |
Tune pitch correction plugin |
Experimental opt-in target:
| Target | Description |
|---|---|
VxRebalanceAIPlugin |
Experimental AI rebalance tool; not part of the shipping suite target |
Source/
vxstudio/
framework/ Shared processor, editor, parameters, help, analysis, safety
products/
deepfilternet/ VXDeepFilterNet processor and ML service
denoiser/ VXDenoiser processor and DSP
subtract/ VXSubtract processor and DSP
deverb/ VXDeverb processor and DSP
proximity/ VXProximity processor and DSP
speech_clarity/ VXSpeechClarity processor and DSP (built as VXClarity)
tone/ VXTone processor
tone_refine/ VXToneRefine processor and DSP (built as VXRefine)
finish/ VXFinish processor and DSP
OptoComp/ VXOptoComp processor
leveler/ VXLeveler processor and DSP
rebalance/ VXRebalance processor, DSP, and diagnostics UI
repair/ VXRepair processor (embeds denoiser/deverb/speech_clarity DSP)
analyser/ VXStudioAnalyser processor and custom analyser UI
tune/ VXTune processor and DSP (pitch detection, decomposition, correction, Signalsmith Stretch shifter)
tests/ Measurement and behaviour tests
tools/ Utility scripts and fixture builders
assets/ Models, REAPER presets, and related resources
docs/ Framework and product reference
tasks/ Working plans, reports, and lessons
- macOS VST3 builds are confirmed and staged.
- Windows build generation is present and the release workflow can publish Windows assets without a local Windows machine, but broader end-to-end host validation is still pending.
- All 17 plugins build on macOS from the current tree.
- VXDeepFilterNet is the only shipping plugin with extra runtime model dependencies. VxRebalanceAI has additional ONNX/model dependencies because it is experimental and opt-in.
- VXRepair embeds DSP from VXDenoiser, VXDeverb, and VXSpeechClarity - modifying those DSP files requires re-testing VXRepair.