Class thl::modulation::ModulationMatrix#

class ModulationMatrix#

Public Types

using ConfigRCU = thl::RCU<ProcessingConfig>#
using ReadScope = typename ConfigRCU::ReadScope#

Public Functions

explicit ModulationMatrix(thl::State &state)#
~ModulationMatrix()#
ModulationMatrix(const ModulationMatrix&) = delete#
ModulationMatrix &operator=(const ModulationMatrix&) = delete#
inline thl::State &state()#
inline const thl::State &state() const#
void prepare(double sample_rate, size_t samples_per_block)#
inline void ensure_thread_registered() const#
inline ReadScope read_scope() const#
void process(size_t num_samples)#
void process_with_scope(const ProcessingConfig &config, size_t num_samples)#
inline uint64_t get_num_processed_samples() const#
ModulationScope register_scope(std::string_view name, uint32_t voice_count)#
std::optional<ModulationScope> find_scope(std::string_view name) const#
uint32_t voice_count(ModulationScope scope) const#
std::string_view scope_name(ModulationScope scope) const#
void set_voice_count(ModulationScope scope, uint32_t voice_count)#
void add_source(const std::string_view id, ModulationSource *source)#
void remove_source(const std::string_view id)#
template<typename T>
SmartHandle<T> get_smart_handle(std::string_view param_key)#
uint32_t add_routing(const ModulationRouting &routing)#
void remove_routing(std::string_view source_id, std::string_view target_id)#
void remove_routing(uint32_t routing_id)#
bool update_routing_depth(std::string_view source_id, std::string_view target_id, float new_depth)#
bool update_routing_depth(uint32_t routing_id, float new_depth)#
bool update_routing_replace_range(std::string_view source_id, std::string_view target_id, float range_min, float range_max)#
bool update_routing_replace_range(uint32_t routing_id, float range_min, float range_max)#
bool update_routing_replace_range_normalized(std::string_view source_id, std::string_view target_id, float norm_min, float norm_max)#
bool clear_routing_replace_range(std::string_view source_id, std::string_view target_id)#
bool clear_routing_replace_range(uint32_t routing_id)#
const ResolvedTarget *get_target(const std::string_view id) const#
ResolvedTarget *get_target(const std::string_view id)#
std::vector<ScheduleStep> get_schedule() const#
void rebuild_schedule()#
nlohmann::json to_json(bool include_state = true)#
void from_json(const nlohmann::json &json)#