## AgsFxModularSynthAudio

AgsFxModularSynthAudio — fx modular synth audio

## Stability Level

Stable, unless otherwise indicated

## Functions

AgsFxModularSynthAudioScopeData * | ags_fx_modular_synth_audio_scope_data_alloc ()
void | ags_fx_modular_synth_audio_scope_data_free ()
AgsFxModularSynthAudioChannelData * | ags_fx_modular_synth_audio_channel_data_alloc ()
void | ags_fx_modular_synth_audio_channel_data_free ()
AgsFxModularSynthAudioInputData * | ags_fx_modular_synth_audio_input_data_alloc ()
void | ags_fx_modular_synth_audio_input_data_free ()
AgsFxModularSynthAudio * | ags_fx_modular_synth_audio_new ()

## Types and Values

#define | AGS_FX_MODULAR_SYNTH_AUDIO_DEFAULT_BUFFER_SIZE
struct | AgsFxModularSynthAudioScopeData
struct | AgsFxModularSynthAudioChannelData
struct | AgsFxModularSynthAudioInputData

## Includes

    #include <ags/audio/fx/ags_fx_modular_synth_audio.h>

## Description

The AgsFxModularSynthAudio class provides ports to the effect processor.

## Functions

### ags_fx_modular_synth_audio_scope_data_alloc ()

    AgsFxModularSynthAudioScopeData *
    ags_fx_modular_synth_audio_scope_data_alloc
                                   ();

Allocate AgsFxModularSynthAudioScopeData

#### Returns

the new AgsFxModularSynthAudioScopeData

Since: 8.2.0

### ags_fx_modular_synth_audio_scope_data_free ()

    void
    ags_fx_modular_synth_audio_scope_data_free
                                   (AgsFxModularSynthAudioScopeData *scope_data);

Free `scope_data` .

#### Parameters

scope_data | the AgsFxModularSynthAudioScopeData |

Since: 8.2.0

### ags_fx_modular_synth_audio_channel_data_alloc ()

    AgsFxModularSynthAudioChannelData *
    ags_fx_modular_synth_audio_channel_data_alloc
                                   ();

Allocate AgsFxModularSynthAudioChannelData

#### Returns

the new AgsFxModularSynthAudioChannelData

Since: 8.2.0

### ags_fx_modular_synth_audio_channel_data_free ()

    void
    ags_fx_modular_synth_audio_channel_data_free
                                   (AgsFxModularSynthAudioChannelData *channel_data);

Free `channel_data` .

#### Parameters

channel_data | the AgsFxModularSynthAudioChannelData |

Since: 8.2.0

### ags_fx_modular_synth_audio_input_data_alloc ()

    AgsFxModularSynthAudioInputData *
    ags_fx_modular_synth_audio_input_data_alloc
                                   ();

Allocate AgsFxModularSynthAudioInputData

#### Returns

the new AgsFxModularSynthAudioInputData

Since: 8.2.0

### ags_fx_modular_synth_audio_input_data_free ()

    void
    ags_fx_modular_synth_audio_input_data_free
                                   (AgsFxModularSynthAudioInputData *input_data);

Free `input_data` .

#### Parameters

input_data | the AgsFxModularSynthAudioInputData |

Since: 8.2.0

### ags_fx_modular_synth_audio_new ()

    AgsFxModularSynthAudio *
    ags_fx_modular_synth_audio_new (AgsAudio *audio);

Create a new instance of AgsFxModularSynthAudio

#### Parameters

audio | the AgsAudio |

#### Returns

the new AgsFxModularSynthAudio

Since: 8.2.0

## Types and Values

### AGS_FX_MODULAR_SYNTH_AUDIO_DEFAULT_BUFFER_SIZE

    #define AGS_FX_MODULAR_SYNTH_AUDIO_DEFAULT_BUFFER_SIZE (65536)

### struct AgsFxModularSynthAudioScopeData

    struct AgsFxModularSynthAudioScopeData {
      GRecMutex strct_mutex;

      gpointer parent;

      guint audio_channels;

      AgsFxModularSynthAudioChannelData **channel_data;
    };

### struct AgsFxModularSynthAudioChannelData

    struct AgsFxModularSynthAudioChannelData {
      GRecMutex strct_mutex;

      gpointer parent;

      gpointer synth_buffer_0;

      AgsModularSynthUtil *modular_synth_util_0;

      AgsLowPassFilterUtil *low_pass_filter_util_0;

      AgsAmplifierUtil *amplifier_util_0;

      AgsChorusUtil *chorus_util;

      AgsFxModularSynthAudioInputData* input_data[AGS_SEQUENCER_MAX_MIDI_KEYS];
    };

### struct AgsFxModularSynthAudioInputData

    struct AgsFxModularSynthAudioInputData {
      GRecMutex strct_mutex;

      gpointer parent;

      guint key_on;
    };