2020-04-26 14:48:47 +00:00
|
|
|
#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_)
|
|
|
|
{
|
2020-05-10 12:54:25 +00:00
|
|
|
vol_offset = volume_offset_;
|
2020-04-26 14:48:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
inline void set_pan_offset(int16_t pan_offset_)
|
|
|
|
{
|
|
|
|
pan_offset = pan_offset_;
|
|
|
|
}
|
|
|
|
|
2020-05-10 12:54:25 +00:00
|
|
|
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_;
|
|
|
|
}
|
|
|
|
|
2020-04-26 14:48:47 +00:00
|
|
|
inline void set_muted(bool m)
|
|
|
|
{
|
|
|
|
mute = m;
|
|
|
|
}
|
|
|
|
|
2020-07-16 18:47:55 +00:00
|
|
|
inline bool is_muted() {
|
|
|
|
return mute;
|
|
|
|
}
|
|
|
|
|
2020-04-28 20:07:34 +00:00
|
|
|
uint16_t linear_volume() {
|
|
|
|
return linear_vol;
|
2020-04-26 16:29:22 +00:00
|
|
|
}
|
|
|
|
|
2020-04-26 14:48:47 +00:00
|
|
|
private:
|
2020-04-28 20:07:34 +00:00
|
|
|
uint16_t linear_vol;
|
|
|
|
|
2020-05-10 23:08:50 +00:00
|
|
|
int16_t cv_input_pan = 0;
|
|
|
|
int16_t cv_input_vol = 0;
|
|
|
|
|
2020-05-10 12:54:25 +00:00
|
|
|
uint16_t vol_offset = 0;
|
|
|
|
int16_t pan_offset = 0;
|
|
|
|
int16_t vol_att;
|
|
|
|
int16_t pan_att;
|
2020-07-16 18:47:55 +00:00
|
|
|
uint16_t log_exp_mix_cv = 32767; // -> linear
|
2020-05-10 12:54:25 +00:00
|
|
|
uint16_t log_exp_mix_pot = 0; // -> exp
|
|
|
|
|
2020-04-28 20:07:34 +00:00
|
|
|
|
2020-04-26 14:48:47 +00:00
|
|
|
bool mute = false;
|
|
|
|
};
|