muzgen/lib/Sine.hpp

34 lines
690 B
C++

#ifndef muz_SINE_HPP
#define muz_SINE_HPP
#include "commons.hpp"
#include "Signal.hpp"
#include "AudioConf.hpp"
namespace muz
{
/**
* Sinusoid signal with an amplitude and a frequency.
**/
class Sine: public Signal
{
public:
explicit Sine(AudioConf const& conf,
std::unique_ptr<Signal> freq,
std::unique_ptr<Signal> amplitude);
virtual ~Sine();
void next(std::vector<float>& out) override;
private:
AudioConf const& m_conf;
std::vector<float> m_out_freq;
std::vector<float> m_out_amp;
std::unique_ptr<Signal> m_freq;
std::unique_ptr<Signal> m_amplitude;
std::vector<float> m_phases;
};
}
#endif