basic profile loading
This commit is contained in:
@@ -8,7 +8,8 @@
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
ui_(new Ui::MainWindow),
|
||||
audio_(new AudioEngine(&config_)),
|
||||
config_(ConfigInterface(¶ms_)),
|
||||
audio_(new AudioEngine(&config_, ¶ms_)),
|
||||
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));
|
||||
|
||||
|
||||
@@ -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_;
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user