basic profile loading

This commit is contained in:
2026-01-25 14:11:03 -06:00
parent a6ef39bb11
commit 21bf285aff
12 changed files with 134 additions and 67 deletions

View File

@@ -8,7 +8,8 @@
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui_(new Ui::MainWindow),
audio_(new AudioEngine(&config_)),
config_(ConfigInterface(&params_)),
audio_(new AudioEngine(&config_, &params_)),
keyboard_(audio_->noteQueue()),
midi_(audio_->noteQueue()) {
@@ -74,12 +75,13 @@ void MainWindow::onResetClicked() {
// initialize to defaults
// envelopeGenerators
ui_->envelopeOsc1Volume->init(EnvelopeId::Osc1Volume);
ui_->envelopeFilterCutoff->init(EnvelopeId::FilterCutoff);
ui_->envelopeFilterResonance->init(EnvelopeId::FilterResonance);
config_.loadProfile("default");
// update ui from the paramstore
ui_->envelopeOsc1Volume->init(EnvelopeId::Osc1Volume, config_.loadEnvProfile("default", "Osc1Volume"));
ui_->envelopeFilterCutoff->init(EnvelopeId::FilterCutoff, config_.loadEnvProfile("default", "FilterCutoff"));
ui_->envelopeFilterResonance->init(EnvelopeId::FilterResonance, config_.loadEnvProfile("default", "FilterResonance"));
// comboBoxes
ui_->comboOsc1WaveSelector1->setCurrentIndex(static_cast<int>(PARAM_DEFS[static_cast<size_t>(ParamId::Osc1WaveSelector1)].def));
ui_->comboOsc1WaveSelector2->setCurrentIndex(static_cast<int>(PARAM_DEFS[static_cast<size_t>(ParamId::Osc1WaveSelector2)].def));

View File

@@ -4,9 +4,9 @@
#include <QMainWindow>
#include <QKeyEvent>
#include "../ConfigInterface.h"
#include "../synth/AudioEngine.h"
#include "../MidiController.h"
#include "../ConfigInterface.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
@@ -28,8 +28,10 @@ private slots:
void onResetClicked();
private:
Ui::MainWindow *ui_;
ParameterStore params_;
ConfigInterface config_;
AudioEngine* audio_ = nullptr;
KeyboardController keyboard_;

View File

@@ -92,3 +92,21 @@ void EnvelopeGenerator::init(EnvelopeId id) {
setRelease(PARAM_DEFS[static_cast<size_t>(params.r)].def);
}
void EnvelopeGenerator::init(EnvelopeId id, std::array<ParamDefault, 5> profile) {
EnvelopeParam params = ENV_PARAMS[static_cast<size_t>(id)];
ui_->sliderDepth->setRange(profile[0].min, profile[0].max);
ui_->sliderAttack->setRange(profile[1].min, profile[1].max);
ui_->sliderDecay->setRange(profile[2].min, profile[2].max);
ui_->sliderSustain->setRange(profile[3].min, profile[3].max);
ui_->sliderRelease->setRange(profile[4].min, profile[4].max);
setDepth(profile[0].def);
setAttack(profile[1].def);
setDecay(profile[2].def);
setSustain(profile[3].def);
setRelease(profile[4].def);
}

View File

@@ -18,6 +18,7 @@ public:
// connects signals, sets parameters to the defaults defined in paramStore
void init(EnvelopeId id);
void init(EnvelopeId id, std::array<ParamDefault, 5> profile);
// setters
void setDepth(float v);