cleanup envelope parameter mappings
This commit is contained in:
@@ -9,6 +9,15 @@ void ParameterStore::set(ParamId id, float value) {
|
||||
values_[static_cast<size_t>(id)].store(value, std::memory_order_relaxed);
|
||||
}
|
||||
|
||||
void ParameterStore::set(EnvelopeId id, float a, float d, float s, float r) {
|
||||
|
||||
EnvelopeParam params = ENV_PARAMS[static_cast<size_t>(id)];
|
||||
set(params.a, a);
|
||||
set(params.d, d);
|
||||
set(params.s, s);
|
||||
set(params.r, r);
|
||||
}
|
||||
|
||||
float ParameterStore::get(ParamId id) const {
|
||||
return values_[static_cast<size_t>(id)].load(std::memory_order_relaxed);
|
||||
}
|
||||
|
||||
@@ -42,9 +42,9 @@ struct EnvelopeParam {
|
||||
};
|
||||
|
||||
constexpr std::array<EnvelopeParam, static_cast<size_t>(EnvelopeId::Count)> ENV_PARAMS {{
|
||||
{ ParamId::Osc1VolumeEnvA, ParamId::Osc1VolumeEnvR, ParamId::Osc1VolumeEnvS, ParamId::Osc1VolumeEnvR }, // Osc1Volume
|
||||
{ ParamId::Osc1VolumeEnvA, ParamId::Osc1VolumeEnvR, ParamId::Osc1VolumeEnvS, ParamId::Osc1VolumeEnvR }, // Osc2Volume (not implemented)
|
||||
{ ParamId::Osc1VolumeEnvA, ParamId::Osc1VolumeEnvR, ParamId::Osc1VolumeEnvS, ParamId::Osc1VolumeEnvR }, // Osc3Volume (not implemented)
|
||||
{ ParamId::Osc1VolumeEnvA, ParamId::Osc1VolumeEnvD, ParamId::Osc1VolumeEnvS, ParamId::Osc1VolumeEnvR }, // Osc1Volume
|
||||
{ ParamId::Osc1VolumeEnvA, ParamId::Osc1VolumeEnvD, ParamId::Osc1VolumeEnvS, ParamId::Osc1VolumeEnvR }, // Osc2Volume (not implemented)
|
||||
{ ParamId::Osc1VolumeEnvA, ParamId::Osc1VolumeEnvD, ParamId::Osc1VolumeEnvS, ParamId::Osc1VolumeEnvR }, // Osc3Volume (not implemented)
|
||||
{ ParamId::FilterCutoffEnvA, ParamId::FilterCutoffEnvR, ParamId::FilterCutoffEnvS, ParamId::FilterCutoffEnvR }, // FilterCutoff
|
||||
{ ParamId::FilterResonanceEnvA, ParamId::FilterResonanceEnvR, ParamId::FilterResonanceEnvS, ParamId::FilterResonanceEnvR }, // FilterResonance
|
||||
|
||||
@@ -85,6 +85,7 @@ public:
|
||||
~ParameterStore() = default;
|
||||
|
||||
void set(ParamId id, float value);
|
||||
void set(EnvelopeId, float a, float d, float s, float r);
|
||||
float get(ParamId id) const;
|
||||
void resetToDefaults();
|
||||
|
||||
|
||||
@@ -25,10 +25,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
ui_->envelopeOsc1Volume->init(EnvelopeId::Osc1Volume);
|
||||
connect(ui_->envelopeOsc1Volume, &EnvelopeGenerator::envelopeChanged,
|
||||
this, [this](float a, float d, float s, float r) {
|
||||
audio_->parameters()->set(ParamId::Osc1VolumeEnvA, a);
|
||||
audio_->parameters()->set(ParamId::Osc1VolumeEnvD, d);
|
||||
audio_->parameters()->set(ParamId::Osc1VolumeEnvS, s);
|
||||
audio_->parameters()->set(ParamId::Osc1VolumeEnvR, r);
|
||||
audio_->parameters()->set(EnvelopeId::Osc1Volume, a, d, s, r);
|
||||
});
|
||||
// this should be easy enough to put into a for each envelopeGenerator loop
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user