31 lines
572 B
C++
31 lines
572 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 of 1 at a given frequency.
|
|
**/
|
|
class Sine: public Signal
|
|
{
|
|
public:
|
|
explicit Sine(AudioConf const& conf,
|
|
std::unique_ptr<Signal> freq);
|
|
virtual ~Sine();
|
|
|
|
void next(std::vector<float>& out) override;
|
|
private:
|
|
AudioConf const& m_conf;
|
|
std::vector<float> m_out_freq;
|
|
|
|
std::unique_ptr<Signal> m_freq;
|
|
std::vector<float> m_phases;
|
|
};
|
|
}
|
|
|
|
#endif
|