Class fx_effect

Inheritance Relationships

Derived Types

Class Documentation

class fx_effect

Subclassed by fx_adsr_envelope, fx_allpass_filter, fx_amplitude_mod, fx_arpeggiator, fx_biquad_filter, fx_compressor, fx_delay, fx_destructor, fx_envelope_tracker, fx_gain, fx_impulse_response, fx_instrument_synth, fx_looper, fx_mixer_2, fx_mixer_3, fx_mixer_4, fx_multitap_delay, fx_oscillator, fx_phase_shifter, fx_pitch_shift, fx_pitch_shift_fd, fx_ring_mod, fx_slicer, fx_variable_delay

Public Functions

fx_effect()
bool service(void)
void print_params(void)
const char *get_name()
EFFECT_TYPE get_type()
void enable(void)

Enables this effect.

void bypass(void)

Bypasses this effect (just passes audio through)

void print_ctrl_node_status(fx_control_node *t)
void print_audio_node_status(fx_audio_node *t)
void print_parameter(void *val, char *name, PARAM_TYPES type)

Public Members

char effect_name[32]

Protected Functions

bool get_audio_node_index(fx_audio_node *node, uint8_t *local_node_index)

Looks up the index of a given node in the node stack for this effect.

Return

True if found, false if not

Parameters
  • node: The node to look up

  • node_index: The node index that was looked up (output)

bool get_control_node_index(fx_control_node *node, uint8_t *local_node_index)
uint16_t *serialize_params(uint16_t *serialized_params, uint16_t *size)
bool float_param_updated(float *param, float *param_last, float threshold)

Checks to see if a float parameter has been updated.

This function also applies hysteresis

Return

True if updated, false if not

Parameters
  • param: The parameter

  • param_last: The parameter last

bool bool_param_updated(bool *param, bool *param_last)

Checks to see if a bool parameter has been updated.

Return

True if updated, false if not

Parameters
  • param: The parameter

  • param_last: The parameter last

Protected Attributes

friend fx_effect::fx_pedal
EFFECT_TYPE type
fx_audio_node *audio_node_stack[MAX_NODES_PER_FX]
int total_audio_nodes
fx_control_node *control_node_stack[MAX_NODES_PER_FX]
int total_control_nodes
void *param_stack[MAX_PARMS_PER_FX]
PARAM_TYPES param_stack_types[MAX_PARMS_PER_FX]
int total_params
bool param_enabled
fx_audio_node node_input
fx_audio_node node_output
fx_control_node node_enabled
int node_index
fx_pedal *parent_canvas
uint8_t instance_id
bool updated_parameters

Friends

friend fx_effect::fx_pedal