Skip to content

Commit

Permalink
Readable active voices for VST
Browse files Browse the repository at this point in the history
  • Loading branch information
jpcima committed Jul 26, 2020
1 parent d96b770 commit 1594eaa
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 0 deletions.
6 changes: 6 additions & 0 deletions vst/SfizzVstController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ tresult PLUGIN_API SfizzVstControllerNoUi::initialize(FUnknown* context)
Steinberg::String("Stretched tuning"), pid++, nullptr,
0, Vst::ParameterInfo::kCanAutomate, Vst::kRootUnitId));

// Output parameters
parameters.addParameter(
kParamActiveVoicesRange.createParameter(
Steinberg::String("Active voices"), pid++, nullptr,
0, Vst::ParameterInfo::kIsReadOnly, Vst::kRootUnitId));

// MIDI special controllers
parameters.addParameter(Steinberg::String("Aftertouch"), nullptr, 0, 0.5, 0, pid++, Vst::kRootUnitId);
parameters.addParameter(Steinberg::String("Pitch bend"), nullptr, 0, 0.5, 0, pid++, Vst::kRootUnitId);
Expand Down
8 changes: 8 additions & 0 deletions vst/SfizzVstProcessor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,14 @@ tresult PLUGIN_API SfizzVstProcessor::process(Vst::ProcessData& data)
_semaToWorker.post();
}

if (Vst::IParameterChanges* pc = data.outputParameterChanges) {
int32 index;
if (Vst::IParamValueQueue* vq = pc->addParameterData(kPidActiveVoices, index)) {
const unsigned activeVoices = synth.getNumActiveVoices();
vq->addPoint(0, kParamActiveVoicesRange.normalize(activeVoices), index);
}
}

return kResultTrue;
}

Expand Down
2 changes: 2 additions & 0 deletions vst/SfizzVstState.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ enum {
kPidScalaRootKey,
kPidTuningFrequency,
kPidStretchedTuning,
kPidActiveVoices,
kPidMidiAftertouch,
kPidMidiPitchBend,
kPidMidiCC0,
Expand Down Expand Up @@ -93,3 +94,4 @@ static constexpr SfizzParameterRange kParamPreloadSizeRange(8192.0, 1024.0, 6553
static constexpr SfizzParameterRange kParamScalaRootKey(60.0, 0.0, 127.0);
static constexpr SfizzParameterRange kParamTuningFrequency(440.0, 300.0, 500.0);
static constexpr SfizzParameterRange kParamStretchedTuning(0.0, 0.0, 1.0);
static constexpr SfizzParameterRange kParamActiveVoicesRange(0.0, 0.0, 256.0);

0 comments on commit 1594eaa

Please sign in to comment.