add helper function for binding smart-sliders
This commit is contained in:
@@ -5,9 +5,9 @@
|
||||
#include <stdint.h>
|
||||
#include <atomic>
|
||||
|
||||
#include "../ConfigInterface.h"
|
||||
#include "ConfigInterface.h"
|
||||
#include "Synth.h"
|
||||
#include "../KeyboardController.h"
|
||||
#include "KeyboardController.h"
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define AUDIO_API RtAudio::WINDOWS_WASAPI
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../ParameterStore.h"
|
||||
#include "../NoteQueue.h"
|
||||
#include "ParameterStore.h"
|
||||
#include "NoteQueue.h"
|
||||
#include "Envelope.h"
|
||||
#include "ScopeBuffer.h"
|
||||
#include "Filter.h"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "Oscillator.h"
|
||||
#include "Envelope.h"
|
||||
#include "Filter.h"
|
||||
#include "../ParameterStore.h"
|
||||
#include "ParameterStore.h"
|
||||
|
||||
#ifndef M_PI // I hate my stupid chungus life
|
||||
#define M_PI 3.14159265358979323846
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
#include "MainWindow.h"
|
||||
#include "ui_MainWindow.h"
|
||||
|
||||
#include "SmartSlider/SmartSlider.h"
|
||||
#include "../ParameterStore.h"
|
||||
#include "ParameterStore.h"
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
@@ -60,65 +59,18 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
}
|
||||
|
||||
// rogue sliders, TODO: clean these up in a package
|
||||
connect(ui_->sliderMasterOctave, &SmartSlider::valueChanged,
|
||||
this, [this](float value) {
|
||||
audio_->parameters()->set(ParamId::MasterOctaveOffset, value);
|
||||
ui_->sliderMasterOctave->setResolution();
|
||||
});
|
||||
connect(ui_->sliderMasterSemitone, &SmartSlider::valueChanged,
|
||||
this, [this](float value) {
|
||||
audio_->parameters()->set(ParamId::MasterSemitoneOffset, value);
|
||||
ui_->sliderMasterSemitone->setResolution();
|
||||
});
|
||||
connect(ui_->sliderMasterPitch, &SmartSlider::valueChanged,
|
||||
this, [this](float value) {
|
||||
audio_->parameters()->set(ParamId::MasterPitchOffset, value);
|
||||
});
|
||||
|
||||
connect(ui_->sliderOsc1Octave, &SmartSlider::valueChanged,
|
||||
this, [this](float value) {
|
||||
audio_->parameters()->set(ParamId::Osc1OctaveOffset, value);
|
||||
ui_->sliderOsc1Octave->setResolution();
|
||||
});
|
||||
connect(ui_->sliderOsc1Semitone, &SmartSlider::valueChanged,
|
||||
this, [this](float value) {
|
||||
audio_->parameters()->set(ParamId::Osc1SemitoneOffset, value);
|
||||
ui_->sliderOsc1Semitone->setResolution();
|
||||
});
|
||||
connect(ui_->sliderOsc1Pitch, &SmartSlider::valueChanged,
|
||||
this, [this](float value) {
|
||||
audio_->parameters()->set(ParamId::Osc1PitchOffset, value);
|
||||
});
|
||||
|
||||
connect(ui_->sliderOsc2Octave, &SmartSlider::valueChanged,
|
||||
this, [this](float value) {
|
||||
audio_->parameters()->set(ParamId::Osc2OctaveOffset, value);
|
||||
ui_->sliderOsc2Octave->setResolution();
|
||||
});
|
||||
connect(ui_->sliderOsc2Semitone, &SmartSlider::valueChanged,
|
||||
this, [this](float value) {
|
||||
audio_->parameters()->set(ParamId::Osc2SemitoneOffset, value);
|
||||
ui_->sliderOsc2Semitone->setResolution();
|
||||
});
|
||||
connect(ui_->sliderOsc2Pitch, &SmartSlider::valueChanged,
|
||||
this, [this](float value) {
|
||||
audio_->parameters()->set(ParamId::Osc2PitchOffset, value);
|
||||
});
|
||||
|
||||
connect(ui_->sliderOsc3Octave, &SmartSlider::valueChanged,
|
||||
this, [this](float value) {
|
||||
audio_->parameters()->set(ParamId::Osc3OctaveOffset, value);
|
||||
ui_->sliderOsc3Octave->setResolution();
|
||||
});
|
||||
connect(ui_->sliderOsc3Semitone, &SmartSlider::valueChanged,
|
||||
this, [this](float value) {
|
||||
audio_->parameters()->set(ParamId::Osc3SemitoneOffset, value);
|
||||
ui_->sliderOsc3Semitone->setResolution();
|
||||
});
|
||||
connect(ui_->sliderOsc3Pitch, &SmartSlider::valueChanged,
|
||||
this, [this](float value) {
|
||||
audio_->parameters()->set(ParamId::Osc3PitchOffset, value);
|
||||
});
|
||||
bindSlider(ui_->sliderMasterOctave, ParamId::MasterOctaveOffset, true);
|
||||
bindSlider(ui_->sliderMasterSemitone, ParamId::MasterSemitoneOffset, true);
|
||||
bindSlider(ui_->sliderMasterPitch, ParamId::MasterPitchOffset);
|
||||
bindSlider(ui_->sliderOsc1Octave, ParamId::Osc1OctaveOffset, true);
|
||||
bindSlider(ui_->sliderOsc1Semitone, ParamId::Osc1SemitoneOffset, true);
|
||||
bindSlider(ui_->sliderOsc1Pitch, ParamId::Osc1PitchOffset);
|
||||
bindSlider(ui_->sliderOsc2Octave, ParamId::Osc2OctaveOffset, true);
|
||||
bindSlider(ui_->sliderOsc2Semitone, ParamId::Osc2SemitoneOffset, true);
|
||||
bindSlider(ui_->sliderOsc2Pitch, ParamId::Osc2PitchOffset);
|
||||
bindSlider(ui_->sliderOsc3Octave, ParamId::Osc3OctaveOffset, true);
|
||||
bindSlider(ui_->sliderOsc3Semitone, ParamId::Osc3SemitoneOffset, true);
|
||||
bindSlider(ui_->sliderOsc3Pitch, ParamId::Osc3PitchOffset);
|
||||
|
||||
// synth business
|
||||
audio_->start();
|
||||
@@ -209,3 +161,12 @@ void MainWindow::onResetClicked() {
|
||||
ui_->comboOsc1WaveSelector2->setCurrentIndex(configRoot["OscWaveSelector2"].as<int>());
|
||||
|
||||
}
|
||||
|
||||
void MainWindow::bindSlider(SmartSlider* slider, ParamId param, bool updateResolution)
|
||||
{
|
||||
connect(slider, &SmartSlider::valueChanged, this,
|
||||
[this](float value, ParamId param, SmartSlider* slider, bool updateResolution) {
|
||||
audio_->parameters()->set(param, value);
|
||||
if (updateResolution) slider->setResolution();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "ConfigInterface.h"
|
||||
#include "synth/AudioEngine.h"
|
||||
#include "MidiController.h"
|
||||
#include "SmartSlider/SmartSlider.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace Ui { class MainWindow; }
|
||||
@@ -29,6 +30,8 @@ private slots:
|
||||
|
||||
private:
|
||||
|
||||
void bindSlider(SmartSlider* slider, ParamId param, bool updateResolution = false);
|
||||
|
||||
Ui::MainWindow *ui_;
|
||||
|
||||
ParameterStore params_;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
#include "../../ParameterStore.h"
|
||||
#include "ParameterStore.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace Ui { class EnvelopeGenerator; }
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "ui_Scope.h"
|
||||
|
||||
// TODO: fix include directories because what is this
|
||||
#include "../../../synth/ScopeBuffer.h"
|
||||
#include "synth/ScopeBuffer.h"
|
||||
|
||||
#include <QPainter>
|
||||
#include <iostream>
|
||||
|
||||
Reference in New Issue
Block a user