cleanup envelopeGenerator initialization

This commit is contained in:
2025-12-26 15:23:18 -06:00
parent c417801547
commit cbd60e2701
7 changed files with 79 additions and 52 deletions

View File

@@ -21,28 +21,16 @@ MainWindow::MainWindow(QWidget *parent) :
// synth business
audio_->start();
// connect envelopeGenerator
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);
// TODO: parameters()->setEnv(ENV_ID, a, d, s ,r)
});
// initialize to defaults
ui_->envelopeOsc1Volume->setRanges(
PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvA)].min, PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvA)].max,
PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvD)].min, PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvD)].max,
PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvS)].min, PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvS)].max,
PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvR)].min, PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvR)].max
);
ui_->envelopeOsc1Volume->setAttack(PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvA)].def);
ui_->envelopeOsc1Volume->setDecay(PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvD)].def);
ui_->envelopeOsc1Volume->setSustain(PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvS)].def);
ui_->envelopeOsc1Volume->setRelease(PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvR)].def);
// TODO: assign envelope widget a ParamID so that intialization and parameter bindings can be done from the envelope controller
// this should be easy enough to put into a for each envelopeGenerator loop
}
MainWindow::~MainWindow() {
@@ -60,14 +48,5 @@ void MainWindow::keyReleaseEvent(QKeyEvent* event) {
void MainWindow::onResetClicked() {
// initialize to defaults
ui_->envelopeOsc1Volume->setRanges(
PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvA)].min, PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvA)].max,
PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvD)].min, PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvD)].max,
PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvS)].min, PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvS)].max,
PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvR)].min, PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvR)].max
);
ui_->envelopeOsc1Volume->setAttack(PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvA)].def);
ui_->envelopeOsc1Volume->setDecay(PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvD)].def);
ui_->envelopeOsc1Volume->setSustain(PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvS)].def);
ui_->envelopeOsc1Volume->setRelease(PARAM_DEFS[static_cast<size_t>(ParamId::Osc1VolumeEnvR)].def);
ui_->envelopeOsc1Volume->init(EnvelopeId::Osc1Volume);
}