31 lines
611 B
C++
31 lines
611 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();
|
||
|
|
||
|
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
|