Class fx_instrument_synth

Inheritance Relationships

Base Type

Class Documentation

class fx_instrument_synth : public fx_effect

Effect: Polyphonic instrument synth.

The instrument synth is capable of reading polyphonic notes from a stringed instrument and playing synth notes in their place.

The instrument synth does not have an input. It is hard-wired into the instrument in jack of the pedal.

Public Functions

fx_instrument_synth(OSC_TYPES osc_type, float attack_ms, float filter_resonance, float filter_response)

Constructs a new instance of the instrument synth (basic constructor)

Parameters
  • [in] osc_type: The type of oscillator

  • [in] attack_ms: The attack milliseconds

  • [in] filter_resonance: The filter resonance (1.0 is normal, > 1 increases resonance)

  • [in] filter_response: How much the filter sweeps (0.0 to 1.0)

fx_instrument_synth(OSC_TYPES osc_type, OSC_TYPES fm_mod_osc_type, float fm_mod_depth, float freq_ratio, float freq_ratio_fm_mod, float attack_ms, float filter_resonance, float filter_response)

Constructs a new instance of the instrument synth (advanced constructor)

Parameters
  • [in] osc_type: The type of oscillator

  • [in] fm_mod: The type of oscillator used for fm synthesis

  • [in] fm_mod_depth: The depth of the fm synthesis (0.0 to 1.0)

  • [in] freq_ratio: The frequency ratio of played note to synth note (e.g. 1.0 is same, 0.5 is octave down, 2.0 is octave up)

  • [in] freq_ratio_fm_mod: The frequency ratio of the fm modulation to synthesized note

  • [in] attack_ms: The attack milliseconds

  • [in] filter_resonance: The filter resonance (1.0 is normal, > 1 increases resonance)

  • [in] filter_response: How much the filter sweeps

void enable()

Enable the instrument synth (it is enabled by default)

void bypass()

Bypass the instrument synth (will just pass zero audio through)

void set_freq_ratio(float ratio)

Sets the frequency ratio of the synth.

Parameters
  • [in] ratio: Ratio of synthesized frequency to note playing. For example, a value of 1.0 would play the same note. A value of 0.5 would play a note an octave below. A value of 2.0 would play a note an octave above.

void set_fm_mod_ratio(float fm_mod_ratio)

Sets the fm modifier ratio.

Parameters
  • [in] fm_mod_ratio: The fm modifier ratio relative to the frequency of the tone being played

void set_fm_mod_depth(float depth)

Sets the fm modifier depth.

Parameters
  • [in] depth: The FM mod depth (0.0 -> 1.0)

void set_attack_ms(float attack_ms)

Sets the attack milliseconds.

Parameters
  • [in] attack_ms: The attack milliseconds

void set_filter_resonance(float resonance)

Sets the filter resonance.

Parameters
  • [in] resonance: The resonance of the filter

void set_filter_response(float response)

Sets the filter responsiveness.

Parameters
  • [in] response: The response (0.0 is not responsive / static filter, 1.0 is very dynamic filter)

void set_oscillator_type(OSC_TYPES new_type)

Sets the the type of oscillator used as the primary synth.

Parameters
  • [in] new_type: The new type of LFO (OSC_TYPES)

void set_oscillator_type_fm_mod(OSC_TYPES new_type)

Sets the the type of oscillator used as the primary synth.

Parameters
  • [in] new_type: The new type of LFO (OSC_TYPES)

void print_params(void)

Prints the parameters for the instrument synth.

Public Members

fx_audio_node *output

Audio routing node: primary audio output

fx_control_node *attack_ms

Control routing node: Attack (ms) - attack rate of the synth in milliseconds

fx_control_node *freq_ratio

Control routing node: Frequency ratio - Ratio of synthesized frequency to note playing. For example, a value of 1.0 would play the same note. A value of 0.5 would play a note an octave below. A value of 2.0 would play a note an octave above.

fx_control_node *fm_mod_freq_ratio

Control routing node: Frequency ratio of fm modulator - Ratio of fm modulator frequency to synth frequency. A value of 1.0 would do fm mod at same frequency as note being synthesized.

fx_control_node *fm_mod_depth

Control routing node: Frequency mod depth

fx_control_node *resonance

Control routing node: Filter resonance - The resonance of the filter applied each synth voice. A value of 1.0 is no resonance, value higher than 1.0 increases resonance. Values below 1.0 (but higher than 0.0) further smooth out the filter.

fx_control_node *response

Control routing node: Filter response - How far the filter sweeps with each played note