mirror of
https://github.com/jhbruhn/eurorack.git
synced 2025-03-15 02:55:49 +00:00
56 lines
952 B
C++
56 lines
952 B
C++
#pragma once
|
|
#include "resources.h"
|
|
|
|
class Processor {
|
|
public:
|
|
Processor() {};
|
|
|
|
void Process(int16_t cvs[], uint16_t* outs);
|
|
|
|
inline void set_volume_offset(uint16_t volume_offset_)
|
|
{
|
|
vol_offset = volume_offset_;
|
|
}
|
|
|
|
inline void set_pan_offset(int16_t pan_offset_)
|
|
{
|
|
pan_offset = pan_offset_;
|
|
}
|
|
|
|
inline void set_volume_attenuverter(int16_t vol_att_) {
|
|
vol_att = vol_att_;
|
|
}
|
|
|
|
inline void set_pan_attenuverter(int16_t pan_att_) {
|
|
pan_att = pan_att_;
|
|
}
|
|
|
|
inline void set_muted(bool m)
|
|
{
|
|
mute = m;
|
|
}
|
|
|
|
inline bool is_muted() {
|
|
return mute;
|
|
}
|
|
|
|
uint16_t linear_volume() {
|
|
return linear_vol;
|
|
}
|
|
|
|
private:
|
|
uint16_t linear_vol;
|
|
|
|
int16_t cv_input_pan = 0;
|
|
int16_t cv_input_vol = 0;
|
|
|
|
uint16_t vol_offset = 0;
|
|
int16_t pan_offset = 0;
|
|
int16_t vol_att;
|
|
int16_t pan_att;
|
|
uint16_t log_exp_mix_cv = 32767; // -> linear
|
|
uint16_t log_exp_mix_pot = 0; // -> exp
|
|
|
|
|
|
bool mute = false;
|
|
};
|