add parameter store

This commit is contained in:
2025-12-23 23:15:32 -06:00
parent 7e771f2f28
commit 4d5cb4974b
8 changed files with 165 additions and 173 deletions

View File

@@ -5,6 +5,8 @@
#include <stdint.h>
#include <atomic>
#include "Synth.h"
class AudioEngine {
public:
@@ -13,19 +15,19 @@ public:
bool start();
void stop();
void setFrequency(float freq);
ParameterStore* parameters() { return &params_; }
private:
static int32_t audioCallback(void* outputBuffer, void* inputBuffer, uint32_t nFrames, double streamTime, RtAudioStreamStatus status, void* userData);
int32_t process(float* out, uint32_t nFrames);
ParameterStore params_;
Synth synth_;
// TODO: id like a yml config file or something for these
RtAudio audio_;
uint32_t sampleRate_ = 44100;
uint32_t bufferFrames_ = 256;
std::atomic<float> targetFreq_{ 400.0f };
float currentFreq_ = 440.0f;
float phase_ = 0.0f;
uint32_t bufferFrames_ = 256; // time per buffer = BF/SR (256/44100 = 5.8ms)
uint32_t channels_ = 2; // stereo
};