Files
SeeSynth/inc/Adder.h
e1lama a445fc44b3 [refactor]: c++ implementation (#13)
implemented in c++ to improve readability and simplify maintenance

Co-authored-by: HiveBeats <e1lama@protonmail.com>
Reviewed-on: #13
2023-08-08 22:08:18 +03:00

31 lines
709 B
C++

#pragma once
#include <vector>
#include "Oscillator.h"
#include "Settings.h"
#include <numeric>
struct Adder
{
static std::vector<float> & SumOscillators(const std::vector<Oscillator*> & oscillators, float duration)
{
size_t sample_count = (size_t)(duration * SAMPLE_RATE);
std::vector<float>* output = new std::vector<float>();
output->reserve(sample_count);
for (size_t i = 0; i < sample_count; i++)
{
float sample = 0.0f;
for (Oscillator* osc : oscillators)
{
sample += osc->GenerateSample(duration);
}
output->push_back(sample);
}
return (*output);
}
};