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