Service both VST3 parameter channels, and promote pitch key-track and Trigger length so all 44 ids issue
The SDK's own single-component sample drains inputParameterChanges in process() and implements setParamNormalized; automation was reading the GUI channel alone. The audio thread now patches a block it solely owns.
This commit is contained in:
@@ -48,6 +48,17 @@ PlainRange plainRangeFor(DeckParam deck);
|
||||
double toPlain(DeckParam deck, double normalized);
|
||||
double toNormalized(DeckParam deck, double plain);
|
||||
|
||||
// WHERE a control's value actually lives. The host's read and write paths branch on this, and
|
||||
// the exposed set is asserted against it: a control promoted into the list with no home would
|
||||
// otherwise no-op silently in BOTH directions, with nothing to catch it at compile time.
|
||||
enum class ValueHome {
|
||||
None, // not a scalar control at all — a toggle, a radio, a curve-popup cell
|
||||
ParamSetNorm, // the filter's four: the stored double IS the normalized position
|
||||
ParamSet, // every other knob the parameter set carries
|
||||
InstanceScalar, // beside the parameter set: master gain, and the pitch key-track scalar
|
||||
};
|
||||
ValueHome valueHomeFor(DeckParam deck);
|
||||
|
||||
// The filter's four tone controls STORE their normalized position (payload v9), so their default
|
||||
// normalized value is that stored double verbatim and no taper participates in a host's
|
||||
// reset-to-default. Reporting Hz / Q / drive depth for them means CALLING their frozen laws, not
|
||||
|
||||
Reference in New Issue
Block a user