muzgen/lib/Sine.hpp

31 lines
611 B
C++
Raw Normal View History

#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();
std::vector<float> next() override;
private:
AudioConf const& m_conf;
std::unique_ptr<Signal> m_freq;
std::unique_ptr<Signal> m_amplitude;
std::vector<float> m_phases;
};
}
#endif