stripped samplerate from constructors

This commit is contained in:
Christopher Herb
2023-07-08 07:25:13 +02:00
parent eaf72afdab
commit 8cd0a2a7df
6 changed files with 11 additions and 26 deletions

View File

@@ -10,17 +10,13 @@ namespace trnr {
template <typename t_voice>
class midi_synth : public voice_allocator<t_voice> {
public:
midi_synth(int _n_voices, double _samplerate, int _block_size)
: voice_allocator<t_voice> { _samplerate }
, m_samplerate { _samplerate }
, m_block_size { _block_size }
, m_voices_active { false }
midi_synth(int _n_voices)
: m_voices_active { false }
{
}
void set_samplerate(double _samplerate, int _block_size)
void set_samplerate_blocksize(double _samplerate, int _block_size)
{
m_samplerate = _samplerate;
m_block_size = _block_size;
voice_allocator::set_samplerate(_samplerate);
}
@@ -87,7 +83,6 @@ public:
private:
std::vector<note_event> m_event_queue;
double m_samplerate;
int m_block_size;
bool m_voices_active;
};

View File

@@ -30,8 +30,8 @@ public:
float release1_level;
float release2_rate;
tx_envelope(double _samplerate)
: samplerate { _samplerate }
tx_envelope()
: samplerate { 44100. }
, attack1_rate { 0 }
, attack1_level { 0 }
, attack2_rate { 0 }

View File

@@ -5,11 +5,9 @@
namespace trnr {
class tx_operator {
public:
tx_operator(double samplerate)
tx_operator()
: ratio { 1 }
, amplitude { 1.0f }
, envelope(samplerate)
, oscillator(samplerate)
{
}

View File

@@ -7,8 +7,8 @@ class tx_sineosc {
public:
bool phase_reset;
tx_sineosc(double _samplerate)
: samplerate { _samplerate }
tx_sineosc()
: samplerate { 44100 }
, phase_resolution { 16.f }
, phase { 0. }
, history { 0. }

View File

@@ -8,15 +8,10 @@ namespace trnr {
class tx_voice {
public:
tx_voice(double samplerate)
tx_voice()
: algorithm { 0 }
, pitch_env_amt { 0.f }
, feedback_amt { 0.f }
, pitch_env(samplerate)
, feedback_osc(samplerate)
, op1(samplerate)
, op2(samplerate)
, op3(samplerate)
, bit_resolution(12.f)
{
}

View File

@@ -9,9 +9,8 @@ class voice_allocator {
public:
std::vector<t_voice> voices;
voice_allocator(const double& _samplerate)
: samplerate { _samplerate }
, voices(8, t_voice(_samplerate))
voice_allocator()
: voices(8, t_voice())
{
}
@@ -83,14 +82,12 @@ public:
void set_samplerate(double _samplerate)
{
this->samplerate = _samplerate;
for (int i = 0; i < voices.size(); i++) {
voices.at(i).set_samplerate(_samplerate);
}
}
private:
double samplerate;
std::vector<note_event> input_queue;
t_voice* get_free_voice(float frequency)