Class thl::modulation::ModulationSource#

class ModulationSource#

Inheritance diagram for thl::modulation::ModulationSource:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "2" [label="thl::modulation::LFOSourceImpl" tooltip="thl::modulation::LFOSourceImpl"] "1" [label="thl::modulation::ModulationSource" tooltip="thl::modulation::ModulationSource" fillcolor="#BFBFBF"] "2" -> "1" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for thl::modulation::ModulationSource:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "1" [label="thl::modulation::ModulationSource" tooltip="thl::modulation::ModulationSource" fillcolor="#BFBFBF"] "2" [label="std::vector< float >" tooltip="std::vector< float >"] "4" [label="std::vector< std::vector< uint32_t > >" tooltip="std::vector< std::vector< uint32_t > >"] "3" [label="std::vector< uint32_t >" tooltip="std::vector< uint32_t >"] "1" -> "2" [dir=forward tooltip="usage"] "1" -> "3" [dir=forward tooltip="usage"] "1" -> "4" [dir=forward tooltip="usage"] "4" -> "3" [dir=forward tooltip="usage"] }

Subclassed by thl::modulation::LFOSourceImpl

Public Functions

inline explicit ModulationSource(ModulationScope scope, bool fully_active = true)#
virtual ~ModulationSource() = default#
virtual void prepare(double sample_rate, size_t samples_per_block, uint32_t voice_count) = 0#
inline virtual void clear_per_block()#
inline virtual void pre_process_block()#
inline virtual void process(size_t, size_t = 0)#
inline virtual void process_voice(uint32_t, size_t, size_t = 0)#
inline virtual std::vector<std::string> parameter_keys() const#
inline ModulationScope scope() const#
inline bool is_global() const#
inline uint32_t num_voices() const#
inline bool is_fully_active() const#
inline size_t block_size() const#
inline float last_output() const#
inline const std::vector<uint32_t> &get_change_points() const#
inline void clear_change_points()#
inline const std::vector<float> &get_output_buffer() const#
inline float get_output_at(uint32_t index) const#
inline float *voice_output(uint32_t v)#
inline const float *voice_output(uint32_t v) const#
inline const std::vector<uint32_t> &get_voice_change_points(uint32_t v) const#
inline void clear_voice_change_points()#
inline const std::vector<uint8_t> &get_output_active() const#
inline std::vector<uint8_t> &get_output_active()#
inline uint8_t get_output_active_at(uint32_t index) const#
inline const uint8_t *voice_output_active(uint32_t v) const#
inline uint8_t *voice_output_active(uint32_t v)#
inline void clear_output_active()#
inline void clear_voice_output_active()#

Protected Functions

inline void resize_buffers(size_t block_size, uint32_t voice_count)#
inline void record_change_point(uint32_t sample_index)#
inline void record_voice_change_point(uint32_t voice_index, uint32_t sample_index)#
inline void set_output_active(uint32_t sample_index)#
inline void set_voice_output_active(uint32_t voice_index, uint32_t sample_index)#

Protected Attributes

std::vector<float> m_output_buffer#
std::vector<uint32_t> m_change_points#
float m_last_output = 0.0f#
std::vector<float> m_voice_output_storage#
std::vector<std::vector<uint32_t>> m_voice_change_points#