Class Vst3Parameter
A single VST 3® parameter exposed by the plug-in's Parameters
collection. Static metadata (id, title, units, step count) is captured at construction;
the value getters / setters round-trip through the plug-in's IEditController on every
call.
public sealed class Vst3Parameter
- Inheritance
-
Vst3Parameter
- Inherited Members
Remarks
VST 3 parameters live in two value spaces that the plug-in maps between non-linearly:
- NormalizedValue — always
[0.0, 1.0], uniform across every parameter. This is what automation lanes record and what the plug-in stores internally. - PlainValue / SetPlainValue(double) — the value in the
plug-in's chosen units (Hz, dB, %, etc.). The mapping is owned by the plug-in; the only
authoritative conversion is via
IEditController, which this property delegates to.
For UI display use DisplayValue or FormatValue(double) — the plug-in
formats the value with its own units ("8.4 kHz", "+3.2 dB") and that's almost
always more useful than the raw PlainValue double.
Threading: this API is single-threaded — drive it from one thread (typically the UI
thread), as the VST 3 edit-controller contract requires. A write updates the controller
immediately (so a subsequent read reflects it) and is also queued for the plug-in's DSP at
offset 0 of the next Process(ReadOnlySpan<float>, Span<float>, int) block via IParameterChanges.
Properties
CanAutomate
true if the parameter declared CanAutomate.
public bool CanAutomate { get; }
Property Value
DefaultNormalizedValue
Plug-in's default value in normalised [0, 1] form.
public double DefaultNormalizedValue { get; }
Property Value
DisplayValue
Formatted current value — convenience for FormatValue(NormalizedValue).
public string DisplayValue { get; }
Property Value
Flags
Combined flag bitmask.
public Vst3ParameterFlags Flags { get; }
Property Value
Id
The plug-in's unique identifier for this parameter (Vst::ParamID).
public uint Id { get; }
Property Value
IsBypass
true for the bypass parameter (also surfaced as
BypassParameter).
public bool IsBypass { get; }
Property Value
IsDiscrete
true if StepCount is non-zero (toggle or discrete list).
public bool IsDiscrete { get; }
Property Value
IsHidden
true if the parameter is hidden from generic parameter lists.
public bool IsHidden { get; }
Property Value
IsProgramChange
true if the parameter selects the active program for its owning unit
(the target a MIDI program-change message drives).
public bool IsProgramChange { get; }
Property Value
IsReadOnly
true if the parameter is read-only.
public bool IsReadOnly { get; }
Property Value
NormalizedValue
Current value in normalised [0, 1] form. Reads via
IEditController::getParamNormalized; writes are queued and applied to the DSP
on the next Process(ReadOnlySpan<float>, Span<float>, int) call.
public double NormalizedValue { get; set; }
Property Value
PlainValue
Current value converted to the plug-in's plain units (Hz, dB, %, etc.). Returns a raw double with no unit attached — DisplayValue is usually what you want for display.
public double PlainValue { get; }
Property Value
ShortTitle
Short title for tight UI surfaces; falls back to Title when empty.
public string ShortTitle { get; }
Property Value
StepCount
0 = continuous; 1 = toggle (two states); >1 = discrete steps (the
normalised range is split into StepCount + 1 values).
public int StepCount { get; }
Property Value
Title
UTF-16 title displayed in a host parameter list (e.g. "Cutoff").
public string Title { get; }
Property Value
UnitId
Owning unit id (Vst::UnitID); 0 = root unit.
public int UnitId { get; }
Property Value
Units
Units string (e.g. "Hz", "dB"); empty for unitless parameters.
public string Units { get; }
Property Value
Methods
FormatValue(double)
Formats normalized as the display string the plug-in's own UI would
show (e.g. "8.4 kHz", "+3.2 dB", "Lowpass").
public string FormatValue(double normalized)
Parameters
normalizeddouble
Returns
SetPlainValue(double)
Sets the parameter from a value in the plug-in's plain units.
public void SetPlainValue(double plain)
Parameters
plaindouble
ToString()
Returns a string that represents the current object.
public override string ToString()
Returns
- string
A string that represents the current object.