42 Sine(
float frequency = 440,
double amplitude = 1,
float offset = 0);
54 Sine(
const std::shared_ptr<Node>& frequency_modulator,
float frequency = 440,
double amplitude = 1,
float offset = 0);
66 Sine(
float frequency,
const std::shared_ptr<Node>& amplitude_modulator,
double amplitude = 1,
float offset = 0);
79 Sine(
const std::shared_ptr<Node>& frequency_modulator,
const std::shared_ptr<Node>& amplitude_modulator,
80 float frequency = 440,
double amplitude = 1,
float offset = 0);
95 double process_sample(
double input = 0.)
override;
105 std::vector<double> process_batch(
unsigned int num_samples)
override;
113 void printGraph()
override;
121 void printCurrent()
override;
130 void set_frequency(
float frequency)
override;
147 inline void set_params(
float frequency,
double amplitude,
float offset)
149 m_amplitude = amplitude;
151 set_frequency(frequency);
161 void set_frequency_modulator(
const std::shared_ptr<Node>& modulator);
170 void set_amplitude_modulator(
const std::shared_ptr<Node>& modulator);
178 void clear_modulators();
189 void reset(
float frequency = 440,
double amplitude = 0.5,
float offset = 0);
191 void save_state()
override;
192 void restore_state()
override;
203 void notify_tick(
double value)
override;
212 double m_phase_inc {};
236 void update_phase_increment(
double frequency);
238 double m_saved_phase {};
239 float m_saved_frequency {};
240 float m_saved_offset {};
241 double m_saved_phase_inc {};
242 double m_saved_last_output {};
244 bool m_state_saved {};
Base class for all signal and pattern generators in Maya Flux.
std::shared_ptr< Node > m_frequency_modulator
Node that modulates the frequency.
void set_params(float frequency, double amplitude, float offset)
Sets all basic parameters at once.
float get_frequency() const
Gets the current base frequency.
~Sine() override=default
Virtual destructor.
std::shared_ptr< Node > m_amplitude_modulator
Node that modulates the amplitude.
Sinusoidal oscillator generator node.