Report the instrument's automatable parameters to the host under a frozen id table, in signal-flow order, with real units
42 of 44 ids issued: pitch key-track and Trigger length stay reserved pending a live path. Master gain reclassified Live — it never reloaded.
This commit is contained in:
@@ -256,6 +256,13 @@ private:
|
||||
// liveCommitFor (deck_groups.h) for why.
|
||||
bool dragCommitsLive(DragKind kind, int paramId = -1) const;
|
||||
|
||||
// The deck knobs whose value lives on the processor or on the editor rather than in the
|
||||
// parameter set: the preview-velocity sentinel, voice count, master gain. applyDeckKnob
|
||||
// writes each straight through, so params_ is not a rollback target for them and
|
||||
// commitLive has nothing of theirs to push. Every drag path that ends a gesture — release,
|
||||
// reset, capture-lost, per-move — asks this same question.
|
||||
static bool deckKnobIsProcessorSide(int paramId);
|
||||
|
||||
// Commits `id` as the loaded capture. The one parameter set carries over — it governs
|
||||
// whatever is loaded, so a load swaps the sound, not the settings.
|
||||
void loadSelection(const std::string& id);
|
||||
@@ -398,8 +405,12 @@ private:
|
||||
// params edit, no reload).
|
||||
void applyDeckKnob(int id, double norm);
|
||||
|
||||
// The knob's live value label shown during hover/drag: milliseconds, percents, Hz, signed
|
||||
// semitones, a curve exponent, a voice count, or the master-gain dB.
|
||||
// The knob's value in the REAL unit the host is told about (core/instrument/param).
|
||||
double deckPlainValue(int id) const;
|
||||
|
||||
// The knob's live value label shown during hover/drag: the ONE per-category formatter's
|
||||
// digits plus this surface's own static chrome (the unit suffix, a curve dial's caret).
|
||||
// Empty for a control with no plain-value layer.
|
||||
std::string deckValueLabel(int id) const;
|
||||
|
||||
ReaSamplerProcessor* processor_ = nullptr;
|
||||
|
||||
Reference in New Issue
Block a user