## AgsAudio

AgsAudio — A container of channels organizing them as input or output

## Stability Level

Stable, unless otherwise indicated

## Functions

#define | AGS_AUDIO_GET_OBJ_MUTEX()
#define | AGS_AUDIO_GET_PLAY_MUTEX()
#define | AGS_AUDIO_GET_RECALL_MUTEX()
GRecMutex * | ags_audio_get_obj_mutex ()
GRecMutex * | ags_audio_get_play_mutex ()
GRecMutex * | ags_audio_get_recall_mutex ()
gboolean | ags_audio_test_flags ()
void | ags_audio_set_flags ()
void | ags_audio_unset_flags ()
gboolean | ags_audio_test_ability_flags ()
void | ags_audio_set_ability_flags ()
void | ags_audio_unset_ability_flags ()
gboolean | ags_audio_test_behaviour_flags ()
void | ags_audio_set_behaviour_flags ()
void | ags_audio_unset_behaviour_flags ()
gboolean | ags_audio_test_staging_flags ()
void | ags_audio_set_staging_flags ()
void | ags_audio_unset_staging_flags ()
gboolean | ags_audio_test_staging_completed ()
void | ags_audio_set_staging_completed ()
void | ags_audio_unset_staging_completed ()
gchar * | ags_audio_get_audio_name ()
void | ags_audio_set_audio_name ()
GList * | ags_audio_find_name ()
guint | ags_audio_get_max_audio_channels ()
void | ags_audio_set_max_audio_channels ()
guint | ags_audio_get_max_output_pads ()
void | ags_audio_set_max_output_pads ()
guint | ags_audio_get_max_input_pads ()
void | ags_audio_set_max_input_pads ()
void | ags_audio_set_max_pads ()
guint | ags_audio_get_audio_channels ()
void | ags_audio_set_audio_channels ()
guint | ags_audio_get_output_pads ()
void | ags_audio_set_output_pads ()
guint | ags_audio_get_input_pads ()
void | ags_audio_set_input_pads ()
void | ags_audio_set_pads ()
guint | ags_audio_get_output_lines ()
guint | ags_audio_get_input_lines ()
AgsChannel * | ags_audio_get_output ()
AgsChannel * | ags_audio_get_input ()
GObject * | ags_audio_get_output_soundcard ()
void | ags_audio_set_output_soundcard ()
GObject * | ags_audio_get_input_soundcard ()
void | ags_audio_set_input_soundcard ()
GObject * | ags_audio_get_output_sequencer ()
void | ags_audio_set_output_sequencer ()
GObject * | ags_audio_get_input_sequencer ()
void | ags_audio_set_input_sequencer ()
guint | ags_audio_get_samplerate ()
void | ags_audio_set_samplerate ()
guint | ags_audio_get_buffer_size ()
void | ags_audio_set_buffer_size ()
AgsSoundcardFormat | ags_audio_get_format ()
void | ags_audio_set_format ()
gdouble | ags_audio_get_bpm ()
void | ags_audio_set_bpm ()
guint | ags_audio_get_audio_start_mapping ()
void | ags_audio_set_audio_start_mapping ()
guint | ags_audio_get_midi_start_mapping ()
void | ags_audio_set_midi_start_mapping ()
guint | ags_audio_get_midi_group ()
void | ags_audio_set_midi_group ()
guint | ags_audio_get_midi_channel ()
void | ags_audio_set_midi_channel ()
guint | ags_audio_get_numerator ()
void | ags_audio_set_numerator ()
guint | ags_audio_get_denominator ()
void | ags_audio_set_denominator ()
gchar * | ags_audio_get_time_signature ()
void | ags_audio_set_time_signature ()
gboolean | ags_audio_get_is_minor ()
void | ags_audio_set_is_minor ()
guint | ags_audio_get_sharp_flats ()
void | ags_audio_set_sharp_flats ()
gint | ags_audio_get_octave ()
void | ags_audio_set_octave ()
guint | ags_audio_get_key ()
void | ags_audio_set_key ()
gint | ags_audio_get_absolute_key ()
void | ags_audio_set_absolute_key ()
GList * | ags_audio_get_preset ()
void | ags_audio_set_preset ()
void | ags_audio_add_preset ()
void | ags_audio_remove_preset ()
GObject * | ags_audio_get_playback_domain ()
void | ags_audio_set_playback_domain ()
GList * | ags_audio_get_synth_generator ()
void | ags_audio_set_synth_generator ()
void | ags_audio_add_synth_generator ()
void | ags_audio_remove_synth_generator ()
GList * | ags_audio_get_sf2_synth_generator ()
void | ags_audio_set_sf2_synth_generator ()
void | ags_audio_add_sf2_synth_generator ()
void | ags_audio_remove_sf2_synth_generator ()
GList * | ags_audio_get_sfz_synth_generator ()
void | ags_audio_set_sfz_synth_generator ()
void | ags_audio_add_sfz_synth_generator ()
void | ags_audio_remove_sfz_synth_generator ()
GList * | ags_audio_get_cursor ()
void | ags_audio_set_cursor ()
void | ags_audio_add_cursor ()
void | ags_audio_remove_cursor ()
GList * | ags_audio_get_notation ()
void | ags_audio_set_notation ()
void | ags_audio_add_notation ()
void | ags_audio_remove_notation ()
gchar ** | ags_audio_get_automation_port ()
void | ags_audio_set_automation_port ()
void | ags_audio_add_automation_port ()
void | ags_audio_remove_automation_port ()
void | ags_audio_remove_all_empty_automation ()
GList * | ags_audio_get_automation ()
void | ags_audio_set_automation ()
void | ags_audio_add_automation ()
void | ags_audio_remove_automation ()
GList * | ags_audio_get_wave ()
void | ags_audio_set_wave ()
void | ags_audio_add_wave ()
void | ags_audio_remove_wave ()
GObject * | ags_audio_get_output_audio_file ()
void | ags_audio_set_output_audio_file ()
GObject * | ags_audio_get_input_audio_file ()
void | ags_audio_set_input_audio_file ()
gchar * | ags_audio_get_instrument_name ()
void | ags_audio_set_instrument_name ()
gchar * | ags_audio_get_track_name ()
void | ags_audio_set_track_name ()
GList * | ags_audio_get_midi ()
void | ags_audio_set_midi ()
void | ags_audio_add_midi ()
void | ags_audio_remove_midi ()
GObject * | ags_audio_get_output_midi_file ()
void | ags_audio_set_output_midi_file ()
GObject * | ags_audio_get_input_midi_file ()
void | ags_audio_set_input_midi_file ()
GList * | ags_audio_get_recall_id ()
void | ags_audio_set_recall_id ()
void | ags_audio_add_recall_id ()
void | ags_audio_remove_recall_id ()
GList * | ags_audio_get_recycling_context ()
void | ags_audio_set_recycling_context ()
void | ags_audio_add_recycling_context ()
void | ags_audio_remove_recycling_context ()
GList * | ags_audio_get_recall_container ()
void | ags_audio_set_recall_container ()
void | ags_audio_add_recall_container ()
void | ags_audio_remove_recall_container ()
GList * | ags_audio_get_play ()
void | ags_audio_set_play ()
GList * | ags_audio_get_recall ()
void | ags_audio_set_recall ()
void | ags_audio_add_recall ()
void | ags_audio_insert_recall ()
void | ags_audio_remove_recall ()
void | ags_audio_duplicate_recall ()
void | ags_audio_resolve_recall ()
void | ags_audio_init_recall ()
void | ags_audio_play_recall ()
void | ags_audio_done_recall ()
void | ags_audio_cancel_recall ()
void | ags_audio_cleanup_recall ()
GList * | ags_audio_start ()
void | ags_audio_stop ()
GList * | ags_audio_check_scope ()
GList * | ags_audio_collect_all_audio_ports ()
GList * | ags_audio_collect_all_audio_ports_by_specifier_and_context ()
void | ags_audio_open_audio_file_as_channel ()
void | ags_audio_open_audio_file_as_wave ()
void | ags_audio_open_midi_file_as_midi ()
void | ags_audio_open_midi_file_as_notation ()
void | ags_audio_recursive_set_property ()
void | ags_audio_recursive_run_stage ()
AgsAudio * | ags_audio_new ()

## Properties

int | absolute-key | Read / Write
guint | audio-channels | Read / Write
guint | audio-end-mapping | Read / Write
char * | audio-name | Read / Write
guint | audio-start-mapping | Read / Write
gpointer | automation | Read / Write
double | bpm | Read / Write
guint | buffer-size | Read / Write
gpointer | cursor | Read / Write
guint | denominator | Read / Write
guint | format | Read / Write
AgsInput * | input | Read
GObject * | input-audio-file | Read / Write
guint | input-lines | Read
GObject * | input-midi-file | Read / Write
guint | input-pads | Read / Write
GObject * | input-sequencer | Read / Write
GObject * | input-soundcard | Read / Write
gboolean | is-minor | Read / Write
guint | key | Read / Write
guint64 | loop-end | Read / Write
guint64 | loop-start | Read / Write
guint | max-audio-channels | Read / Write
guint | max-input-pads | Read / Write
guint | max-output-pads | Read / Write
gpointer | midi | Read / Write
guint | midi-channel | Read / Write
guint | midi-end-mapping | Read / Write
guint | midi-group | Read / Write
guint | midi-start-mapping | Read / Write
guint | min-audio-channels | Read / Write
guint | min-input-pads | Read / Write
guint | min-output-pads | Read / Write
gpointer | notation | Read / Write
guint | numerator | Read / Write
int | octave | Read / Write
guint64 | offset | Read / Write
AgsOutput * | output | Read
GObject * | output-audio-file | Read / Write
guint | output-lines | Read
GObject * | output-midi-file | Read / Write
guint | output-pads | Read / Write
GObject * | output-sequencer | Read / Write
GObject * | output-soundcard | Read / Write
gpointer | play | Read / Write
AgsPlaybackDomain * | playback-domain | Read / Write
gpointer | preset | Read / Write
gpointer | recall | Read / Write
gpointer | recall-container | Read / Write
gpointer | recall-id | Read / Write
gpointer | recycling-context | Read / Write
guint | samplerate | Read / Write
gpointer | sf2-synth-generator | Read / Write
gpointer | sfz-synth-generator | Read / Write
guint | sharp-flats | Read / Write
gpointer | synth-generator | Read / Write
char * | time-signature | Read
gpointer | wave | Read / Write

## Signals

void | cancel-recall | Run Last
gpointer | check-scope | Run Last
void | cleanup-recall | Run Last
void | done-recall | Run Last
void | duplicate-recall | Run Last
void | init-recall | Run Last
void | play-recall | Run Last
void | recursive-run-stage | Run Last
void | resolve-recall | Run Last
void | set-audio-channels | Run Last
void | set-pads | Run Last
gpointer | start | Run Last
void | stop | Run Last

## Types and Values

enum | AgsAudioFlags

## Object Hierarchy

        GFlags
        ╰── AgsAudioFlags
        GObject
        ╰── AgsAudio

## Includes

    #include <ags/audio/ags_audio.h>

## Description

AgsAudio organizes AgsChannel objects either as input or output and is responsible of their alignment. The class can contain AgsRecall objects in order to perform computation on all channels or in audio context. Therefor exists AgsRecyclingContext acting as tree context.

At least one AgsRecallID is assigned to it and has one more if `AGS_AUDIO_OUTPUT_HAS_RECYCLING` is set as flag.

It hosts common storage objects like AgsNotation, AgsAutomation and AgsWave. In order to make use of AgsNotation or AgsWave you have to set `AGS_AUDIO_OUTPUT_HAS_RECYCLING`.

Make sure you have set the matching AgsSoundAbilityFlags flags using `ags_audio_set_ability_flags()`. This is going to setup threads per matching AgsSoundScope scope. See AgsPlaybackDomain and AgsPlayback.

Threads are usually run per AgsAudio with `AGS_AUDIO_OUTPUT_HAS_RECYCLING`. This are instruments, samplers, synthesizer, step sequencers or wave players. In other words the producer of your AgsAudioSignal.

The dispatcher function `ags_audio_recursive_run_stage()` is invoked as per AgsSoundScope threads, hosted by AgsAudio. The staging program can be modified. It calls then `ags_channel_recursive_run_stage()` per output channel.

AgsSoundStagingFlags is used to build your staging program for AgsAudioThread. The audio threads are created per AgsSoundScope and are provided by AgsAudio `playback-domain` property.

You have in general one AgsPlaybackDomain referring one AgsAudio and one AgsPlayback referring one AgsChannel.

`AGS_AUDIO_SYNC` and `AGS_AUDIO_ASYNC` AgsAudioFlags affect channel alignment. There 3 possible combinations available.

`AGS_AUDIO_SYNC` means channels go straight from input line to matching output line.

`AGS_AUDIO_ASYNC` means input channels are bundled in output i.e. many inputs of the same audio channel arrive at one output channel of the same audio channel.

`AGS_AUDIO_SYNC` and `AGS_AUDIO_ASYNC` combined is only available if `AGS_AUDIO_OUTPUT_HAS_RECYCLING` is set. It is actually the same behaviour as `AGS_AUDIO_ASYNC` except you can have more than one output pad.

`output-soundcard` and `input-soundcard` properties are AgsSoundcard implementations to read or write to a soundcard backend.

`output-sequencer` and `input-sequencer` properties are AgsSequencer implementations to read or write to a sequencer backend.

You may add AgsNotation objects using `ags_audio_add_notation()`. Make sure the AgsNotation timestamp offset occurs only once per audio channel and is correct padded using `AGS_NOTATION_DEFAULT_OFFSET`.

You may add AgsWave objects using `ags_audio_add_wave()`. Make sure the AgsWave timestamp offset occurs only once per line and is correct padded using relative offset. The relative offset is calculated as following:

relative_offset = `AGS_WAVE_DEFAULT_BUFFER_LENGTH` * samplerate;

You may add AgsAutomation objects using `ags_audio_add_automation()`. Make sure AgsAutomation timestamp offset occurs only once per channel type and line. If the context of the automation is AgsAudio `channel-type` is G_TYPE_NONE and `line` is 0.

To modify the alignment of output or input channels use `ags_audio_set_audio_channels()` and to increase pads `ags_audio_set_pads()`.

There is a playback and recall context for hosting AgsRecall implementations. Usually you instantiate a recall for both contices. See `play` and `recall` properties.

## Functions

### AGS_AUDIO_GET_OBJ_MUTEX()

    #define AGS_AUDIO_GET_OBJ_MUTEX(obj) (&(((AgsAudio *) obj)->obj_mutex))

### AGS_AUDIO_GET_PLAY_MUTEX()

    #define AGS_AUDIO_GET_PLAY_MUTEX(obj) (&(((AgsAudio *) obj)->play_mutex))

### AGS_AUDIO_GET_RECALL_MUTEX()

    #define AGS_AUDIO_GET_RECALL_MUTEX(obj) (&(((AgsAudio *) obj)->recall_mutex))

### ags_audio_get_obj_mutex ()

    GRecMutex *
    ags_audio_get_obj_mutex (AgsAudio *audio);

Get object mutex.

#### Parameters

audio | the AgsAudio |

#### Returns

the GRecMutex to lock `audio`

Since: 3.1.0

### ags_audio_get_play_mutex ()

    GRecMutex *
    ags_audio_get_play_mutex (AgsAudio *audio);

Get play mutex.

#### Parameters

audio | the AgsAudio |

#### Returns

the GRecMutex to lock `audio` 's play property

Since: 3.1.0

### ags_audio_get_recall_mutex ()

    GRecMutex *
    ags_audio_get_recall_mutex (AgsAudio *audio);

Get recall mutex.

#### Parameters

audio | the AgsAudio |

#### Returns

the GRecMutex to lock `audio` 's recall property

Since: 3.1.0

### ags_audio_test_flags ()

    gboolean
    ags_audio_test_flags (AgsAudio *audio,
                          AgsAudioFlags flags);

Test `flags` to be set on `audio` .

#### Parameters

audio | the AgsAudio |
flags | the flags |

#### Returns

`TRUE` if flags are set, else `FALSE`

Since: 3.0.0

### ags_audio_set_flags ()

    void
    ags_audio_set_flags (AgsAudio *audio,
                         AgsAudioFlags flags);

Enable a feature of AgsAudio.

#### Parameters

audio | the AgsAudio |
flags | see enum AgsAudioFlags |

Since: 3.0.0

### ags_audio_unset_flags ()

    void
    ags_audio_unset_flags (AgsAudio *audio,
                           AgsAudioFlags flags);

Disable a feature of AgsAudio.

#### Parameters

audio | the AgsAudio |
flags | see enum AgsAudioFlags |

Since: 3.0.0

### ags_audio_test_ability_flags ()

    gboolean
    ags_audio_test_ability_flags (AgsAudio *audio,
                                  AgsSoundAbilityFlags ability_flags);

Test `ability_flags` to be set on `audio` .

#### Parameters

audio | the AgsAudio |
ability_flags | the ability flags |

#### Returns

`TRUE` if flags are set, else `FALSE`

Since: 3.0.0

### ags_audio_set_ability_flags ()

    void
    ags_audio_set_ability_flags (AgsAudio *audio,
                                 AgsSoundAbilityFlags ability_flags);

Enable an ability of AgsAudio.

#### Parameters

audio | the AgsAudio |
ability_flags | see enum AgsSoundAbilityFlags |

Since: 3.0.0

### ags_audio_unset_ability_flags ()

    void
    ags_audio_unset_ability_flags (AgsAudio *audio,
                                   AgsSoundAbilityFlags ability_flags);

Disable an ability of AgsAudio.

#### Parameters

audio | the AgsAudio |
ability_flags | see enum AgsSoundAbilityFlags |

Since: 3.0.0

### ags_audio_test_behaviour_flags ()

    gboolean
    ags_audio_test_behaviour_flags (AgsAudio *audio,
                                    AgsSoundBehaviourFlags behaviour_flags);

Test `behaviour_flags` to be set on `audio` .

#### Parameters

audio | the AgsAudio |
behaviour_flags | the behaviour flags |

#### Returns

`TRUE` if flags are set, else `FALSE`

Since: 3.0.0

### ags_audio_set_behaviour_flags ()

    void
    ags_audio_set_behaviour_flags (AgsAudio *audio,
                                   AgsSoundBehaviourFlags behaviour_flags);

Set behaviour flags.

#### Parameters

audio | the AgsAudio |
behaviour_flags | the behaviour flags |

Since: 3.0.0

### ags_audio_unset_behaviour_flags ()

    void
    ags_audio_unset_behaviour_flags (AgsAudio *audio,
                                     AgsSoundBehaviourFlags behaviour_flags);

Unset behaviour flags.

#### Parameters

audio | the AgsAudio |
behaviour_flags | the behaviour flags |

Since: 3.0.0

### ags_audio_test_staging_flags ()

    gboolean
    ags_audio_test_staging_flags (AgsAudio *audio,
                                  gint sound_scope,
                                  AgsSoundStagingFlags staging_flags);

Test `staging_flags` to be set on `audio` .

#### Parameters

audio | the AgsAudio |
sound_scope | the AgsSoundScope to test |
staging_flags | the staging flags |

#### Returns

`TRUE` if flags are set, else `FALSE`

Since: 3.0.0

### ags_audio_set_staging_flags ()

    void
    ags_audio_set_staging_flags (AgsAudio *audio,
                                 gint sound_scope,
                                 AgsSoundStagingFlags staging_flags);

Set staging flags.

#### Parameters

audio | the AgsAudio |
sound_scope | the AgsSoundScope to apply, or -1 to apply to all |
staging_flags | the staging flags |

Since: 3.0.0

### ags_audio_unset_staging_flags ()

    void
    ags_audio_unset_staging_flags (AgsAudio *audio,
                                   gint sound_scope,
                                   AgsSoundStagingFlags staging_flags);

Unset staging flags.

#### Parameters

audio | the AgsAudio |
sound_scope | the AgsSoundScope to apply, or -1 to apply to all |
staging_flags | the staging flags |

Since: 3.0.0

### ags_audio_test_staging_completed ()

    gboolean
    ags_audio_test_staging_completed (AgsAudio *audio,
                                      gint sound_scope);

Test `sound_scope` to be completed on `audio` .

#### Parameters

audio | the AgsAudio |
sound_scope | the AgsSoundScope to test |

#### Returns

`TRUE` if completed, otherwise `FALSE`

Since: 3.3.0

### ags_audio_set_staging_completed ()

    void
    ags_audio_set_staging_completed (AgsAudio *audio,
                                     gint sound_scope);

Set `sound_scope` to be completed.

#### Parameters

audio | the AgsAudio |
sound_scope | the AgsSoundScope to apply, or -1 to apply to all |

Since: 3.3.0

### ags_audio_unset_staging_completed ()

    void
    ags_audio_unset_staging_completed (AgsAudio *audio,
                                       gint sound_scope);

Unset `sound_scope` to be completed.

#### Parameters

audio | the AgsAudio |
sound_scope | the AgsSoundScope to apply, or -1 to apply to all |

Since: 3.3.0

### ags_audio_get_audio_name ()

    gchar *
    ags_audio_get_audio_name (AgsAudio *audio);

Get audio name of `audio` .

#### Parameters

audio | the AgsAudio |

#### Returns

the audio name

Since: 3.1.0

### ags_audio_set_audio_name ()

    void
    ags_audio_set_audio_name (AgsAudio *audio,
                              gchar *audio_name);

Set audio name of `audio` .

#### Parameters

audio | the AgsAudio |
audio_name | the audio name |

Since: 3.1.0

### ags_audio_find_name ()

    GList *
    ags_audio_find_name (GList *audio,
                         gchar *audio_name);

Find `audio_name` in `audio` .

#### Parameters

audio | the GList containing AgsAudio. | [element-type AgsAudio.Audio][transfer none]
audio_name | the audio name to find |

#### Returns

the next matching GList containing AgsAudio.

[element-type AgsAudio.Audio][transfer none]

Since: 3.0.0

### ags_audio_get_max_audio_channels ()

    guint
    ags_audio_get_max_audio_channels (AgsAudio *audio);

Get maximum audio channels.

#### Parameters

audio | the AgsAudio |

#### Returns

the maximum audio channels

Since: 3.1.0

### ags_audio_set_max_audio_channels ()

    void
    ags_audio_set_max_audio_channels (AgsAudio *audio,
                                      guint max_audio_channels);

Set maximum audio channels.

#### Parameters

audio | the AgsAudio |
max_audio_channels | maximum of audio channels |

Since: 3.0.0

### ags_audio_get_max_output_pads ()

    guint
    ags_audio_get_max_output_pads (AgsAudio *audio);

Get maximum output pads.

#### Parameters

audio | the AgsAudio |

#### Returns

the maximum output pads

Since: 3.1.0

### ags_audio_set_max_output_pads ()

    void
    ags_audio_set_max_output_pads (AgsAudio *audio,
                                   guint max_output_pads);

Set maximum output pads.

#### Parameters

audio | the AgsAudio |
max_output_pads | maximum of output pads |

Since: 3.1.0

### ags_audio_get_max_input_pads ()

    guint
    ags_audio_get_max_input_pads (AgsAudio *audio);

Get maximum input pads.

#### Parameters

audio | the AgsAudio |

#### Returns

the maximum input pads

Since: 3.1.0

### ags_audio_set_max_input_pads ()

    void
    ags_audio_set_max_input_pads (AgsAudio *audio,
                                  guint max_input_pads);

Set maximum input pads.

#### Parameters

audio | the AgsAudio |
max_input_pads | maximum of input pads |

Since: 3.1.0

### ags_audio_set_max_pads ()

    void
    ags_audio_set_max_pads (AgsAudio *audio,
                            GType channel_type,
                            guint max_pads);

Set maximum pads of `channel_type` .

#### Parameters

audio | the AgsAudio |
channel_type | the GType of channel, either AGS_TYPE_OUTPUT or AGS_TYPE_INPUT |
max_pads | maximum of pads |

Since: 3.0.0

### ags_audio_get_audio_channels ()

    guint
    ags_audio_get_audio_channels (AgsAudio *audio);

Get audio channels.

#### Parameters

audio | the AgsAudio |

#### Returns

the audio channels

Since: 3.1.0

### ags_audio_set_audio_channels ()

    void
    ags_audio_set_audio_channels (AgsAudio *audio,
                                  guint audio_channels,
                                  guint audio_channels_old);

Resize audio channels AgsInput will be allocated first.

#### Parameters

audio | the AgsAudio |
audio_channels | new audio channels |
audio_channels_old | old audio channels |

Since: 3.0.0

### ags_audio_get_output_pads ()

    guint
    ags_audio_get_output_pads (AgsAudio *audio);

Get output pads.

#### Parameters

audio | the AgsAudio |

#### Returns

the output pads

Since: 3.1.0

### ags_audio_set_output_pads ()

    void
    ags_audio_set_output_pads (AgsAudio *audio,
                               guint output_pads);

Set output pads.

#### Parameters

audio | the AgsAudio |
output_pads | output pads |

Since: 3.1.0

### ags_audio_get_input_pads ()

    guint
    ags_audio_get_input_pads (AgsAudio *audio);

Get input pads.

#### Parameters

audio | the AgsAudio |

#### Returns

the input pads

Since: 3.1.0

### ags_audio_set_input_pads ()

    void
    ags_audio_set_input_pads (AgsAudio *audio,
                              guint input_pads);

Set input pads.

#### Parameters

audio | the AgsAudio |
input_pads | input pads |

Since: 3.1.0

### ags_audio_set_pads ()

    void
    ags_audio_set_pads (AgsAudio *audio,
                        GType channel_type,
                        guint pads,
                        guint pads_old);

Set pad count for the apropriate `channel_type`

#### Parameters

audio | the AgsAudio |
channel_type | AGS_TYPE_INPUT or AGS_TYPE_OUTPUT |
pads | new pad count |
pads_old | old pad count |

Since: 3.0.0

### ags_audio_get_output_lines ()

    guint
    ags_audio_get_output_lines (AgsAudio *audio);

Get output lines.

#### Parameters

audio | the AgsAudio |

#### Returns

the output lines

Since: 3.1.0

### ags_audio_get_input_lines ()

    guint
    ags_audio_get_input_lines (AgsAudio *audio);

Get input lines.

#### Parameters

audio | the AgsAudio |

#### Returns

the input lines

Since: 3.1.0

### ags_audio_get_output ()

    AgsChannel *
    ags_audio_get_output (AgsAudio *audio);

Get the output object of `audio` .

#### Parameters

audio | the AgsAudio |

#### Returns

the output.

[transfer full]

Since: 3.1.0

### ags_audio_get_input ()

    AgsChannel *
    ags_audio_get_input (AgsAudio *audio);

Get the input object of `audio` .

#### Parameters

audio | the AgsAudio |

#### Returns

the input.

[transfer full]

Since: 3.1.0

### ags_audio_get_output_soundcard ()

    GObject *
    ags_audio_get_output_soundcard (AgsAudio *audio);

Get the output soundcard object of `audio` .

#### Parameters

audio | the AgsAudio |

#### Returns

the output soundcard.

[transfer full]

Since: 3.1.0

### ags_audio_set_output_soundcard ()

    void
    ags_audio_set_output_soundcard (AgsAudio *audio,
                                    GObject *output_soundcard);

Set the output soundcard object of `audio` .

#### Parameters

audio | the AgsAudio |
output_soundcard | the GObject implementing AgsSoundcard |

Since: 3.0.0

### ags_audio_get_input_soundcard ()

    GObject *
    ags_audio_get_input_soundcard (AgsAudio *audio);

Get the input soundcard object of `audio` .

#### Parameters

audio | the AgsAudio |

#### Returns

the input soundcard.

[transfer full]

Since: 3.1.0

### ags_audio_set_input_soundcard ()

    void
    ags_audio_set_input_soundcard (AgsAudio *audio,
                                   GObject *input_soundcard);

Set the input soundcard object of `audio` .

#### Parameters

audio | an AgsAudio |
input_soundcard | the GObject implementing AgsSoundcard |

Since: 3.0.0

### ags_audio_get_output_sequencer ()

    GObject *
    ags_audio_get_output_sequencer (AgsAudio *audio);

Get the output sequencer object of `audio` .

#### Parameters

audio | the AgsAudio |

#### Returns

the output sequencer.

[transfer full]

Since: 3.1.0

### ags_audio_set_output_sequencer ()

    void
    ags_audio_set_output_sequencer (AgsAudio *audio,
                                    GObject *output_sequencer);

Set the output sequencer object of `audio` .

#### Parameters

audio | an AgsAudio |
output_sequencer | the GObject implementing AgsSequencer |

Since: 3.0.0

### ags_audio_get_input_sequencer ()

    GObject *
    ags_audio_get_input_sequencer (AgsAudio *audio);

Get the input sequencer object of `audio` .

#### Parameters

audio | the AgsAudio |

#### Returns

the input sequencer.

[transfer full]

Since: 3.1.0

### ags_audio_set_input_sequencer ()

    void
    ags_audio_set_input_sequencer (AgsAudio *audio,
                                   GObject *input_sequencer);

Set the input sequencer object of `audio` .

#### Parameters

audio | an AgsAudio |
input_sequencer | the GObject implementing AgsSequencer |

Since: 3.0.0

### ags_audio_get_samplerate ()

    guint
    ags_audio_get_samplerate (AgsAudio *audio);

Gets samplerate.

#### Parameters

audio | the AgsAudio |

#### Returns

the samplerate

Since: 3.1.0

### ags_audio_set_samplerate ()

    void
    ags_audio_set_samplerate (AgsAudio *audio,
                              guint samplerate);

Sets samplerate.

#### Parameters

audio | the AgsAudio |
samplerate | the samplerate |

Since: 3.0.0

### ags_audio_get_buffer_size ()

    guint
    ags_audio_get_buffer_size (AgsAudio *audio);

Gets buffer size.

#### Parameters

audio | the AgsAudio |

#### Returns

the buffer size

Since: 3.1.0

### ags_audio_set_buffer_size ()

    void
    ags_audio_set_buffer_size (AgsAudio *audio,
                               guint buffer_size);

Sets buffer length.

#### Parameters

audio | the AgsAudio |
buffer_size | the buffer length |

Since: 3.0.0

### ags_audio_get_format ()

    AgsSoundcardFormat
    ags_audio_get_format (AgsAudio *audio);

Gets format.

#### Parameters

audio | the AgsAudio |

#### Returns

the format

Since: 3.1.0

### ags_audio_set_format ()

    void
    ags_audio_set_format (AgsAudio *audio,
                          AgsSoundcardFormat format);

Sets buffer length.

#### Parameters

audio | the AgsAudio |
format | the format |

Since: 3.0.0

### ags_audio_get_bpm ()

    gdouble
    ags_audio_get_bpm (AgsAudio *audio);

Gets bpm.

#### Parameters

audio | the AgsAudio |

#### Returns

the bpm

Since: 3.1.0

### ags_audio_set_bpm ()

    void
    ags_audio_set_bpm (AgsAudio *audio,
                       gdouble bpm);

Sets bpm.

#### Parameters

audio | the AgsAudio |
bpm | the bpm |

Since: 3.1.0

### ags_audio_get_audio_start_mapping ()

    guint
    ags_audio_get_audio_start_mapping (AgsAudio *audio);

Gets audio start mapping.

#### Parameters

audio | the AgsAudio |

#### Returns

the audio start mapping

Since: 3.1.0

### ags_audio_set_audio_start_mapping ()

    void
    ags_audio_set_audio_start_mapping (AgsAudio *audio,
                                       guint audio_start_mapping);

Sets audio start mapping.

#### Parameters

audio | the AgsAudio |
audio_start_mapping | the audio start mapping |

Since: 3.1.0

### ags_audio_get_midi_start_mapping ()

    guint
    ags_audio_get_midi_start_mapping (AgsAudio *audio);

Gets MIDI start mapping.

#### Parameters

audio | the AgsAudio |

#### Returns

the MIDI start mapping

Since: 3.1.0

### ags_audio_set_midi_start_mapping ()

    void
    ags_audio_set_midi_start_mapping (AgsAudio *audio,
                                      guint midi_start_mapping);

Sets MIDI start mapping.

#### Parameters

audio | the AgsAudio |
midi_start_mapping | the MIDI start mapping |

Since: 3.1.0

### ags_audio_get_midi_group ()

    guint
    ags_audio_get_midi_group (AgsAudio *audio);

Gets MIDI group.

#### Parameters

audio | the AgsAudio |

#### Returns

the MIDI group

Since: 7.0.0

### ags_audio_set_midi_group ()

    void
    ags_audio_set_midi_group (AgsAudio *audio,
                              guint midi_group);

Sets MIDI group.

#### Parameters

audio | the AgsAudio |
midi_group | the MIDI group |

Since: 7.0.0

### ags_audio_get_midi_channel ()

    guint
    ags_audio_get_midi_channel (AgsAudio *audio);

Gets MIDI channel.

#### Parameters

audio | the AgsAudio |

#### Returns

the MIDI channel

Since: 3.1.0

### ags_audio_set_midi_channel ()

    void
    ags_audio_set_midi_channel (AgsAudio *audio,
                                guint midi_channel);

Sets MIDI channel.

#### Parameters

audio | the AgsAudio |
midi_channel | the MIDI channel |

Since: 3.1.0

### ags_audio_get_numerator ()

    guint
    ags_audio_get_numerator (AgsAudio *audio);

Gets numerator.

#### Parameters

audio | the AgsAudio |

#### Returns

the numerator

Since: 3.1.0

### ags_audio_set_numerator ()

    void
    ags_audio_set_numerator (AgsAudio *audio,
                             guint numerator);

Sets numerator.

#### Parameters

audio | the AgsAudio |
numerator | the numerator |

Since: 3.1.0

### ags_audio_get_denominator ()

    guint
    ags_audio_get_denominator (AgsAudio *audio);

Gets denominator.

#### Parameters

audio | the AgsAudio |

#### Returns

the denominator

Since: 3.1.0

### ags_audio_set_denominator ()

    void
    ags_audio_set_denominator (AgsAudio *audio,
                               guint denominator);

Sets denominator.

#### Parameters

audio | the AgsAudio |
denominator | the denominator |

Since: 3.1.0

### ags_audio_get_time_signature ()

    gchar *
    ags_audio_get_time_signature (AgsAudio *audio);

Gets time signature.

#### Parameters

audio | the AgsAudio |

#### Returns

the time signature

Since: 3.1.0

### ags_audio_set_time_signature ()

    void
    ags_audio_set_time_signature (AgsAudio *audio,
                                  gchar *time_signature);

Sets time signature.

#### Parameters

audio | the AgsAudio |
time_signature | the time signature |

Since: 3.1.0

### ags_audio_get_is_minor ()

    gboolean
    ags_audio_get_is_minor (AgsAudio *audio);

Gets is minor.

#### Parameters

audio | the AgsAudio |

#### Returns

is minor

Since: 3.1.0

### ags_audio_set_is_minor ()

    void
    ags_audio_set_is_minor (AgsAudio *audio,
                            gboolean is_minor);

Sets is minor.

#### Parameters

audio | the AgsAudio |
is_minor | is minor |

Since: 3.1.0

### ags_audio_get_sharp_flats ()

    guint
    ags_audio_get_sharp_flats (AgsAudio *audio);

Gets sharp flats.

#### Parameters

audio | the AgsAudio |

#### Returns

the sharp flats

Since: 3.1.0

### ags_audio_set_sharp_flats ()

    void
    ags_audio_set_sharp_flats (AgsAudio *audio,
                               guint sharp_flats);

Sets sharp flats.

#### Parameters

audio | the AgsAudio |
sharp_flats | the sharp flats |

Since: 3.1.0

### ags_audio_get_octave ()

    gint
    ags_audio_get_octave (AgsAudio *audio);

Gets octave.

#### Parameters

audio | the AgsAudio |

#### Returns

the octave

Since: 3.1.0

### ags_audio_set_octave ()

    void
    ags_audio_set_octave (AgsAudio *audio,
                          gint octave);

Sets octave.

#### Parameters

audio | the AgsAudio |
octave | the octave |

Since: 3.1.0

### ags_audio_get_key ()

    guint
    ags_audio_get_key (AgsAudio *audio);

Gets key.

#### Parameters

audio | the AgsAudio |

#### Returns

the key

Since: 3.1.0

### ags_audio_set_key ()

    void
    ags_audio_set_key (AgsAudio *audio,
                       guint key);

Sets key.

#### Parameters

audio | the AgsAudio |
key | the key |

Since: 3.1.0

### ags_audio_get_absolute_key ()

    gint
    ags_audio_get_absolute_key (AgsAudio *audio);

Gets absolute key.

#### Parameters

audio | the AgsAudio |

#### Returns

the absolute key

Since: 3.1.0

### ags_audio_set_absolute_key ()

    void
    ags_audio_set_absolute_key (AgsAudio *audio,
                                gint absolute_key);

Sets absolute key.

#### Parameters

audio | the AgsAudio |
absolute_key | the absolute key |

Since: 3.1.0

### ags_audio_get_preset ()

    GList *
    ags_audio_get_preset (AgsAudio *audio);

Get preset.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containig AgsPreset.

[element-type AgsAudio.Preset][transfer full]

Since: 3.1.0

### ags_audio_set_preset ()

    void
    ags_audio_set_preset (AgsAudio *audio,
                          GList *preset);

Set preset by replacing existing.

#### Parameters

audio | the AgsAudio |
preset | the GList containing AgsPreset. | [element-type AgsAudio.Preset][transfer full]

Since: 3.1.0

### ags_audio_add_preset ()

    void
    ags_audio_add_preset (AgsAudio *audio,
                          GObject *preset);

Adds a preset.

#### Parameters

audio | the AgsAudio |
preset | an AgsPreset |

Since: 3.0.0

### ags_audio_remove_preset ()

    void
    ags_audio_remove_preset (AgsAudio *audio,
                             GObject *preset);

Removes a preset.

#### Parameters

audio | the AgsAudio |
preset | an AgsPreset |

Since: 3.0.0

### ags_audio_get_playback_domain ()

    GObject *
    ags_audio_get_playback_domain (AgsAudio *audio);

Get playback domain.

#### Parameters

audio | the AgsAudio |

#### Returns

the AgsPlaybackDomain.

[transfer full]

Since: 3.1.0

### ags_audio_set_playback_domain ()

    void
    ags_audio_set_playback_domain (AgsAudio *audio,
                                   GObject *playback_domain);

Set playback domain.

#### Parameters

audio | the AgsAudio |
playback_domain | the AgsPlaybackDomain |

Since: 3.1.0

### ags_audio_get_synth_generator ()

    GList *
    ags_audio_get_synth_generator (AgsAudio *audio);

Get synth generator.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containing AgsSynthGenerator.

[element-type AgsAudio.SynthGenerator][transfer full]

Since: 3.1.0

### ags_audio_set_synth_generator ()

    void
    ags_audio_set_synth_generator (AgsAudio *audio,
                                   GList *synth_generator);

Set synth generator by replacing existing.

#### Parameters

audio | the AgsAudio |
synth_generator | the GList containing AgsSynthGenerator. | [element-type AgsAudio.SynthGenerator][transfer full]

Since: 3.1.0

### ags_audio_add_synth_generator ()

    void
    ags_audio_add_synth_generator (AgsAudio *audio,
                                   GObject *synth_generator);

Adds a synth generator.

#### Parameters

audio | the AgsAudio |
synth_generator | an AgsSynthGenerator |

Since: 3.0.0

### ags_audio_remove_synth_generator ()

    void
    ags_audio_remove_synth_generator (AgsAudio *audio,
                                      GObject *synth_generator);

Removes a synth generator.

#### Parameters

audio | the AgsAudio |
synth_generator | an AgsSynthGenerator |

Since: 3.0.0

### ags_audio_get_sf2_synth_generator ()

    GList *
    ags_audio_get_sf2_synth_generator (AgsAudio *audio);

Get SF2 synth generator.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containing AgsSF2SynthGenerator.

[element-type AgsAudio.SF2SynthGenerator][transfer full]

Since: 3.4.0

### ags_audio_set_sf2_synth_generator ()

    void
    ags_audio_set_sf2_synth_generator (AgsAudio *audio,
                                       GList *sf2_synth_generator);

Set SF2 synth generator by replacing existing.

#### Parameters

audio | the AgsAudio |
sf2_synth_generator | the GList containing AgsSF2SynthGenerator. | [element-type AgsAudio.SF2SynthGenerator][transfer full]

Since: 3.4.0

### ags_audio_add_sf2_synth_generator ()

    void
    ags_audio_add_sf2_synth_generator (AgsAudio *audio,
                                       GObject *sf2_synth_generator);

Adds a SF2 synth generator.

#### Parameters

audio | the AgsAudio |
sf2_synth_generator | an AgsSF2SynthGenerator |

Since: 3.4.0

### ags_audio_remove_sf2_synth_generator ()

    void
    ags_audio_remove_sf2_synth_generator (AgsAudio *audio,
                                          GObject *sf2_synth_generator);

Removes a SF2 synth generator.

#### Parameters

audio | the AgsAudio |
sf2_synth_generator | an AgsSF2SynthGenerator |

Since: 3.4.0

### ags_audio_get_sfz_synth_generator ()

    GList *
    ags_audio_get_sfz_synth_generator (AgsAudio *audio);

Get SFZ synth generator.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containing AgsSFZSynthGenerator.

[element-type AgsAudio.SFZSynthGenerator][transfer full]

Since: 3.4.0

### ags_audio_set_sfz_synth_generator ()

    void
    ags_audio_set_sfz_synth_generator (AgsAudio *audio,
                                       GList *sfz_synth_generator);

Set SFZ synth generator by replacing existing.

#### Parameters

audio | the AgsAudio |
sfz_synth_generator | the GList containing AgsSFZSynthGenerator. | [element-type AgsAudio.SFZSynthGenerator][transfer full]

Since: 3.4.0

### ags_audio_add_sfz_synth_generator ()

    void
    ags_audio_add_sfz_synth_generator (AgsAudio *audio,
                                       GObject *sfz_synth_generator);

Adds a SFZ synth generator.

#### Parameters

audio | the AgsAudio |
sfz_synth_generator | an AgsSFZSynthGenerator |

Since: 3.4.0

### ags_audio_remove_sfz_synth_generator ()

    void
    ags_audio_remove_sfz_synth_generator (AgsAudio *audio,
                                          GObject *sfz_synth_generator);

Removes a SFZ synth generator.

#### Parameters

audio | the AgsAudio |
sfz_synth_generator | an AgsSFZSynthGenerator |

Since: 3.4.0

### ags_audio_get_cursor ()

    GList *
    ags_audio_get_cursor (AgsAudio *audio);

Get cursor.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containig GObject implementing AgsCursor.

[element-type GObject][transfer full]

Since: 3.1.0

### ags_audio_set_cursor ()

    void
    ags_audio_set_cursor (AgsAudio *audio,
                          GList *cursor);

Set cursor by replacing existing.

#### Parameters

audio | the AgsAudio |
cursor | the GList containing AgsCursor. | [element-type GObject][transfer full]

Since: 3.1.0

### ags_audio_add_cursor ()

    void
    ags_audio_add_cursor (AgsAudio *audio,
                          GObject *cursor);

Adds a cursor.

#### Parameters

audio | the AgsAudio |
cursor | the GObject implementing AgsCursor |

Since: 3.0.0

### ags_audio_remove_cursor ()

    void
    ags_audio_remove_cursor (AgsAudio *audio,
                             GObject *cursor);

Removes a cursor.

#### Parameters

audio | the AgsAudio |
cursor | the GObject implementing AgsCursor |

Since: 3.0.0

### ags_audio_get_notation ()

    GList *
    ags_audio_get_notation (AgsAudio *audio);

Get notation.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containig AgsNotation.

[element-type AgsAudio.Notation][transfer full]

Since: 3.1.0

### ags_audio_set_notation ()

    void
    ags_audio_set_notation (AgsAudio *audio,
                            GList *notation);

Set notation by replacing existing.

#### Parameters

audio | the AgsAudio |
notation | the GList containing AgsNotation. | [element-type AgsAudio.Notation][transfer full]

Since: 3.1.0

### ags_audio_add_notation ()

    void
    ags_audio_add_notation (AgsAudio *audio,
                            GObject *notation);

Adds a notation.

#### Parameters

audio | the AgsAudio |
notation | the AgsNotation |

Since: 3.0.0

### ags_audio_remove_notation ()

    void
    ags_audio_remove_notation (AgsAudio *audio,
                               GObject *notation);

Removes a notation.

#### Parameters

audio | the AgsAudio |
notation | the AgsNotation |

Since: 3.0.0

### ags_audio_get_automation_port ()

    gchar **
    ags_audio_get_automation_port (AgsAudio *audio);

Get automation port.

#### Parameters

audio | the AgsAudio |

#### Returns

the string vector containing automation ports.

[transfer full]

Since: 3.1.0

### ags_audio_set_automation_port ()

    void
    ags_audio_set_automation_port (AgsAudio *audio,
                                   gchar **automation_port);

Get automation port.

#### Parameters

audio | the AgsAudio |
automation_port | the string vector containing automation ports. | [transfer full]

Since: 3.1.0

### ags_audio_add_automation_port ()

    void
    ags_audio_add_automation_port (AgsAudio *audio,
                                   gchar *control_name);

Adds an automation port.

#### Parameters

audio | the AgsAudio |
control_name | the control name |

Since: 3.0.0

### ags_audio_remove_automation_port ()

    void
    ags_audio_remove_automation_port (AgsAudio *audio,
                                      gchar *control_name);

Removes an automation port.

#### Parameters

audio | the AgsAudio |
control_name | the control name |

Since: 3.0.0

### ags_audio_remove_all_empty_automation ()

    void
    ags_audio_remove_all_empty_automation (AgsAudio *audio,
                                           guint line,
                                           GType channel_type,
                                           gchar *control_name);

Remove all empty automation.

#### Parameters

audio | the AgsAudio |
line | the line |
channel_type | channel type |
control_name | the control name |

Since: 5.4.0

### ags_audio_get_automation ()

    GList *
    ags_audio_get_automation (AgsAudio *audio);

Get automation.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containig AgsAutomation.

[element-type AgsAudio.Automation][transfer full]

Since: 3.1.0

### ags_audio_set_automation ()

    void
    ags_audio_set_automation (AgsAudio *audio,
                              GList *automation);

Set automation by replacing existing.

#### Parameters

audio | the AgsAudio |
automation | the GList containing AgsAutomation. | [element-type AgsAudio.Automation][transfer full]

Since: 3.1.0

### ags_audio_add_automation ()

    void
    ags_audio_add_automation (AgsAudio *audio,
                              GObject *automation);

Adds an automation.

#### Parameters

audio | the AgsAudio |
automation | the AgsAutomation |

Since: 3.0.0

### ags_audio_remove_automation ()

    void
    ags_audio_remove_automation (AgsAudio *audio,
                                 GObject *automation);

Removes an automation.

#### Parameters

audio | the AgsAudio |
automation | the AgsAutomation |

Since: 3.0.0

### ags_audio_get_wave ()

    GList *
    ags_audio_get_wave (AgsAudio *audio);

Get wave.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containig AgsWave.

[element-type AgsAudio.Wave][transfer full]

Since: 3.1.0

### ags_audio_set_wave ()

    void
    ags_audio_set_wave (AgsAudio *audio,
                        GList *wave);

Set wave by replacing existing.

#### Parameters

audio | the AgsAudio |
wave | the GList containing AgsWave. | [element-type AgsAudio.Wave][transfer full]

Since: 3.1.0

### ags_audio_add_wave ()

    void
    ags_audio_add_wave (AgsAudio *audio,
                        GObject *wave);

Adds a wave.

#### Parameters

audio | the AgsAudio |
wave | the AgsWave |

Since: 3.0.0

### ags_audio_remove_wave ()

    void
    ags_audio_remove_wave (AgsAudio *audio,
                           GObject *wave);

Removes a wave.

#### Parameters

audio | the AgsAudio |
wave | the AgsWave |

Since: 3.0.0

### ags_audio_get_output_audio_file ()

    GObject *
    ags_audio_get_output_audio_file (AgsAudio *audio);

Get output audio file.

#### Parameters

audio | the AgsAudio |

#### Returns

the GObject.

[transfer full]

Since: 3.1.0

### ags_audio_set_output_audio_file ()

    void
    ags_audio_set_output_audio_file (AgsAudio *audio,
                                     GObject *output_audio_file);

Set output audio file.

#### Parameters

audio | the AgsAudio |
output_audio_file | the GObject |

Since: 3.1.0

### ags_audio_get_input_audio_file ()

    GObject *
    ags_audio_get_input_audio_file (AgsAudio *audio);

Get input audio file.

#### Parameters

audio | the AgsAudio |

#### Returns

the GObject.

[transfer full]

Since: 3.1.0

### ags_audio_set_input_audio_file ()

    void
    ags_audio_set_input_audio_file (AgsAudio *audio,
                                    GObject *input_audio_file);

Set input audio file.

#### Parameters

audio | the AgsAudio |
input_audio_file | the GObject |

Since: 3.1.0

### ags_audio_get_instrument_name ()

    gchar *
    ags_audio_get_instrument_name (AgsAudio *audio);

Gets instrument name.

#### Parameters

audio | the AgsAudio |

#### Returns

the instrument name

Since: 3.1.0

### ags_audio_set_instrument_name ()

    void
    ags_audio_set_instrument_name (AgsAudio *audio,
                                   gchar *instrument_name);

Sets instrument name.

#### Parameters

audio | the AgsAudio |
instrument_name | the instrument name |

Since: 3.1.0

### ags_audio_get_track_name ()

    gchar *
    ags_audio_get_track_name (AgsAudio *audio);

Gets track name.

#### Parameters

audio | the AgsAudio |

#### Returns

the track name

Since: 3.1.0

### ags_audio_set_track_name ()

    void
    ags_audio_set_track_name (AgsAudio *audio,
                              gchar *track_name);

Sets track name.

#### Parameters

audio | the AgsAudio |
track_name | the track name |

Since: 3.1.0

### ags_audio_get_midi ()

    GList *
    ags_audio_get_midi (AgsAudio *audio);

Get midi.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containig AgsMidi.

[element-type AgsAudio.Midi][transfer full]

Since: 3.1.0

### ags_audio_set_midi ()

    void
    ags_audio_set_midi (AgsAudio *audio,
                        GList *midi);

Set MIDI by replacing existing.

#### Parameters

audio | the AgsAudio |
midi | the GList containing AgsMidi. | [element-type AgsAudio.Midi][transfer full]

Since: 3.1.0

### ags_audio_add_midi ()

    void
    ags_audio_add_midi (AgsAudio *audio,
                        GObject *midi);

Adds a midi.

#### Parameters

audio | the AgsAudio |
midi | the AgsMidi |

Since: 3.0.0

### ags_audio_remove_midi ()

    void
    ags_audio_remove_midi (AgsAudio *audio,
                           GObject *midi);

Removes a midi.

#### Parameters

audio | the AgsAudio |
midi | the AgsMidi |

Since: 3.0.0

### ags_audio_get_output_midi_file ()

    GObject *
    ags_audio_get_output_midi_file (AgsAudio *audio);

Get output MIDI file.

#### Parameters

audio | the AgsAudio |

#### Returns

the GObject.

[transfer full]

Since: 3.1.0

### ags_audio_set_output_midi_file ()

    void
    ags_audio_set_output_midi_file (AgsAudio *audio,
                                    GObject *output_midi_file);

Set output MIDI file.

#### Parameters

audio | the AgsAudio |
output_midi_file | the GObject |

Since: 3.1.0

### ags_audio_get_input_midi_file ()

    GObject *
    ags_audio_get_input_midi_file (AgsAudio *audio);

Get input MIDI file.

#### Parameters

audio | the AgsAudio |

#### Returns

the GObject.

[transfer full]

Since: 3.1.0

### ags_audio_set_input_midi_file ()

    void
    ags_audio_set_input_midi_file (AgsAudio *audio,
                                   GObject *input_midi_file);

Set input MIDI file.

#### Parameters

audio | the AgsAudio |
input_midi_file | the GObject |

Since: 3.1.0

### ags_audio_get_recall_id ()

    GList *
    ags_audio_get_recall_id (AgsAudio *audio);

Get recall id.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containig AgsRecallID.

[element-type AgsAudio.RecallID][transfer full]

Since: 3.1.0

### ags_audio_set_recall_id ()

    void
    ags_audio_set_recall_id (AgsAudio *audio,
                             GList *recall_id);

Set recall id by replacing existing.

#### Parameters

audio | the AgsAudio |
recall_id | the GList containing AgsRecallID. | [element-type AgsAudio.RecallID][transfer full]

Since: 3.1.0

### ags_audio_add_recall_id ()

    void
    ags_audio_add_recall_id (AgsAudio *audio,
                             GObject *recall_id);

Adds a recall id.

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID |

Since: 3.0.0

### ags_audio_remove_recall_id ()

    void
    ags_audio_remove_recall_id (AgsAudio *audio,
                                GObject *recall_id);

Removes a recall id.

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID |

Since: 3.0.0

### ags_audio_get_recycling_context ()

    GList *
    ags_audio_get_recycling_context (AgsAudio *audio);

Get recycling_context.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containig AgsRecyclingContext.

[element-type AgsAudio.RecyclingContext][transfer full]

Since: 3.1.0

### ags_audio_set_recycling_context ()

    void
    ags_audio_set_recycling_context (AgsAudio *audio,
                                     GList *recycling_context);

Set recycling_context by replacing existing.

#### Parameters

audio | the AgsAudio |
recycling_context | the GList containing AgsRecyclingContext. | [element-type AgsAudio.RecyclingContext][transfer full]

Since: 3.1.0

### ags_audio_add_recycling_context ()

    void
    ags_audio_add_recycling_context (AgsAudio *audio,
                                     GObject *recycling_context);

Adds a recycling context.

#### Parameters

audio | the AgsAudio |
recycling_context | the AgsRecyclingContext |

Since: 3.0.0

### ags_audio_remove_recycling_context ()

    void
    ags_audio_remove_recycling_context (AgsAudio *audio,
                                        GObject *recycling_context);

Removes a recycling context.

#### Parameters

audio | the AgsAudio |
recycling_context | the AgsRecyclingContext |

Since: 3.0.0

### ags_audio_get_recall_container ()

    GList *
    ags_audio_get_recall_container (AgsAudio *audio);

Get recall_container.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containig AgsRecallContainer.

[element-type AgsAudio.RecallContainer][transfer full]

Since: 3.1.0

### ags_audio_set_recall_container ()

    void
    ags_audio_set_recall_container (AgsAudio *audio,
                                    GList *recall_container);

Set recall_container by replacing existing.

#### Parameters

audio | the AgsAudio |
recall_container | the GList containing AgsRecallContainer. | [element-type AgsAudio.RecallContainer][transfer full]

Since: 3.1.0

### ags_audio_add_recall_container ()

    void
    ags_audio_add_recall_container (AgsAudio *audio,
                                    GObject *recall_container);

Adds a recall container.

#### Parameters

audio | the AgsAudio |
recall_container | the AgsRecallContainer |

Since: 3.0.0

### ags_audio_remove_recall_container ()

    void
    ags_audio_remove_recall_container (AgsAudio *audio,
                                       GObject *recall_container);

Removes a recall container.

#### Parameters

audio | the AgsAudio |
recall_container | the AgsRecallContainer |

Since: 3.0.0

### ags_audio_get_play ()

    GList *
    ags_audio_get_play (AgsAudio *audio);

Get play.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containig AgsRecall.

[element-type AgsAudio.Recall][transfer full]

Since: 3.1.0

### ags_audio_set_play ()

    void
    ags_audio_set_play (AgsAudio *audio,
                        GList *play);

Set play by replacing existing.

#### Parameters

audio | the AgsAudio |
play | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer full]

Since: 3.1.0

### ags_audio_get_recall ()

    GList *
    ags_audio_get_recall (AgsAudio *audio);

Get recall.

#### Parameters

audio | the AgsAudio |

#### Returns

the GList containig AgsRecall.

[element-type AgsAudio.Recall][transfer full]

Since: 3.1.0

### ags_audio_set_recall ()

    void
    ags_audio_set_recall (AgsAudio *audio,
                          GList *recall);

Set recall by replacing existing.

#### Parameters

audio | the AgsAudio |
recall | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer full]

Since: 3.1.0

### ags_audio_add_recall ()

    void
    ags_audio_add_recall (AgsAudio *audio,
                          GObject *recall,
                          gboolean play_context);

Adds a recall to `audio` .

#### Parameters

audio | the AgsAudio |
recall | the AgsRecall |
play_context | if `TRUE` play context, else if `FALSE` recall context |

Since: 3.0.0

### ags_audio_insert_recall ()

    void
    ags_audio_insert_recall (AgsAudio *audio,
                             GObject *recall,
                             gboolean play_context,
                             gint position);

Insert `recall` at `position` in `audio` 's `play_context` .

#### Parameters

audio | the AgsAudio |
recall | the AgsRecall |
play_context | if `TRUE` play context, else if `FALSE` recall context |
position | the position |

Since: 3.3.0

### ags_audio_remove_recall ()

    void
    ags_audio_remove_recall (AgsAudio *audio,
                             GObject *recall,
                             gboolean play_context);

Removes a recall from `audio` .

#### Parameters

audio | the AgsAudio |
recall | the AgsRecall |
play_context | if `TRUE` play context, else if `FALSE` recall context |

Since: 3.0.0

### ags_audio_duplicate_recall ()

    void
    ags_audio_duplicate_recall (AgsAudio *audio,
                                AgsRecallID *recall_id,
                                guint pad,
                                guint audio_channel,
                                guint line);

Duplicate all AgsRecall templates of `audio` .

#### Parameters

audio | the AgsAudio |
recall_id | an AgsRecallID |
pad | the pad |
audio_channel | the audio channel |
line | the line |

Since: 3.0.0

### ags_audio_resolve_recall ()

    void
    ags_audio_resolve_recall (AgsAudio *audio,
                              AgsRecallID *recall_id);

Performs resolving of recalls.

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID to use |

Since: 3.0.0

### ags_audio_init_recall ()

    void
    ags_audio_init_recall (AgsAudio *audio,
                           AgsRecallID *recall_id,
                           AgsSoundStagingFlags staging_flags);

Initializes the recalls of `audio`

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID to use or NULL |
staging_flags | staging flags, see AgsSoundStagingFlags |

Since: 3.0.0

### ags_audio_play_recall ()

    void
    ags_audio_play_recall (AgsAudio *audio,
                           AgsRecallID *recall_id,
                           AgsSoundStagingFlags staging_flags);

Performs play for the specified `staging_flags` .

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID to apply to |
staging_flags | staging flags, see AgsSoundStagingFlags |

Since: 3.0.0

### ags_audio_done_recall ()

    void
    ags_audio_done_recall (AgsAudio *audio,
                           AgsRecallID *recall_id);

Done processing audio data.

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID to apply to |

Since: 3.0.0

### ags_audio_cancel_recall ()

    void
    ags_audio_cancel_recall (AgsAudio *audio,
                             AgsRecallID *recall_id);

Cancel processing audio data.

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID to apply to |

Since: 3.0.0

### ags_audio_cleanup_recall ()

    void
    ags_audio_cleanup_recall (AgsAudio *audio,
                              AgsRecallID *recall_id);

Cleanup processing audio data.

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID to apply to |

Since: 3.0.0

### ags_audio_start ()

    GList *
    ags_audio_start (AgsAudio *audio,
                     gint sound_scope);

Is emitted as audio is started.

#### Parameters

audio | the AgsAudio |
sound_scope | the scope |

#### Returns

the GList containing AgsRecallID.

[element-type AgsAudio.RecallID][transfer full]

Since: 3.0.0

### ags_audio_stop ()

    void
    ags_audio_stop (AgsAudio *audio,
                    GList *recall_id,
                    gint sound_scope);

Is emitted as playing audio is stopped.

#### Parameters

audio | the AgsAudio |
recall_id | the GList containing AgsRecallID. | [element-type AgsAudio.RecallID][transfer none]
sound_scope | the scope |

Since: 3.0.0

### ags_audio_check_scope ()

    GList *
    ags_audio_check_scope (AgsAudio *audio,
                           gint sound_scope);

Check scope's recall id.

#### Parameters

audio | the AgsAudio |
sound_scope | the scope |

#### Returns

the scope's recall id of `audio` .

[element-type AgsAudio.RecallID][transfer full]

Since: 3.0.0

### ags_audio_collect_all_audio_ports ()

    GList *
    ags_audio_collect_all_audio_ports (AgsAudio *audio);

Retrieve all ports of AgsAudio.

#### Parameters

audio | the AgsAudio |

#### Returns

a new GList containing AgsPort.

[element-type AgsAudio.Port][transfer full]

Since: 3.0.0

### ags_audio_collect_all_audio_ports_by_specifier_and_context ()

    GList *
    ags_audio_collect_all_audio_ports_by_specifier_and_context
                                   (AgsAudio *audio,
                                    gchar *specifier,
                                    gboolean play_context);

Retrieve specified port of AgsAudio

#### Parameters

audio | an AgsAudio |
specifier | the port's name |
play_context | either `TRUE` for play or `FALSE` for recall |

#### Returns

a GList of AgsPort if found, otherwise `NULL`.

[element-type AgsAudio.Port][transfer full]

Since: 3.0.0

### ags_audio_open_audio_file_as_channel ()

    void
    ags_audio_open_audio_file_as_channel (AgsAudio *audio,
                                          GSList *filename,
                                          gboolean overwrite_channels,
                                          gboolean create_channels);

Open some files.

#### Parameters

audio | the AgsAudio |
filename | the files to open. | [element-type utf8][transfer none]
overwrite_channels | if existing channels should be assigned |
create_channels | if new channels should be created as not fitting if combined with `overwrite_channels` |

Since: 3.0.0

### ags_audio_open_audio_file_as_wave ()

    void
    ags_audio_open_audio_file_as_wave (AgsAudio *audio,
                                       const gchar *filename,
                                       gboolean overwrite_channels,
                                       gboolean create_channels);

### ags_audio_open_midi_file_as_midi ()

    void
    ags_audio_open_midi_file_as_midi (AgsAudio *audio,
                                      const gchar *filename,
                                      const gchar *instrument,
                                      const gchar *track_name,
                                      guint midi_channel);

### ags_audio_open_midi_file_as_notation ()

    void
    ags_audio_open_midi_file_as_notation (AgsAudio *audio,
                                          const gchar *filename,
                                          const gchar *instrument,
                                          const gchar *track_name,
                                          guint midi_channel);

### ags_audio_recursive_set_property ()

    void
    ags_audio_recursive_set_property (AgsAudio *audio,
                                      gint n_params,
                                      const gchar *parameter_name[],
                                      const GValue value[]);

Recursive set property for AgsAudio.

#### Parameters

audio | the AgsAudio |
n_params | the count of elements in following arrays |
parameter_name | the parameter's name array |
value | the value array |

Since: 3.0.0

### ags_audio_recursive_run_stage ()

    void
    ags_audio_recursive_run_stage (AgsAudio *audio,
                                   gint sound_scope,
                                   AgsSoundStagingFlags staging_flags);

Resets `audio` 's `sound_scope` specified by `staging_flags` .

#### Parameters

audio | the AgsAudio object |
sound_scope | the scope to reset |
staging_flags | the stage to enable |

Since: 3.0.0

### ags_audio_new ()

    AgsAudio *
    ags_audio_new (GObject *output_soundcard);

Creates an AgsAudio, with defaults of `output_soundcard` .

#### Parameters

output_soundcard | the AgsSoundcard to use for output |

#### Returns

a new AgsAudio

Since: 3.0.0

## Types and Values

### enum AgsAudioFlags

Enum values to control the behavior or indicate internal state of AgsAudio by enable/disable as flags.

#### Members

AGS_AUDIO_NO_OUTPUT | no output provided |
AGS_AUDIO_NO_INPUT | no input provided |
AGS_AUDIO_SYNC | input/output is mapped synchronously |
AGS_AUDIO_ASYNC | input/output is mapped asynchronously |
AGS_AUDIO_OUTPUT_HAS_RECYCLING | output has recycling |
AGS_AUDIO_OUTPUT_HAS_SYNTH | output has synth |
AGS_AUDIO_INPUT_HAS_RECYCLING | input has recycling |
AGS_AUDIO_INPUT_HAS_SYNTH | input has synth |
AGS_AUDIO_INPUT_HAS_FILE | input takes file |
AGS_AUDIO_CAN_NEXT_ACTIVE | dispatch can next active |
AGS_AUDIO_SKIP_OUTPUT | skip output as processing audio data |
AGS_AUDIO_SKIP_INPUT | skip input as processing audio data |
AGS_AUDIO_BYPASS | don't apply any data |

## Property Details

### The `“absolute-key”` property

      “absolute-key”             int

The absolute key lower.

Owner: AgsAudio

Flags: Read / Write

Allowed values: [0,128]

Default value: 0

Since: 3.0.0

### The `“audio-channels”` property

      “audio-channels”           guint

The audio channels count.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“audio-end-mapping”` property

      “audio-end-mapping”        guint

The audio end mapping.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“audio-name”` property

      “audio-name”               char *

The name of audio object.

Owner: AgsAudio

Flags: Read / Write

Default value: NULL

Since: 3.0.0

### The `“audio-start-mapping”` property

      “audio-start-mapping”      guint

The audio start mapping.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“automation”` property

      “automation”               gpointer

The AgsAutomation it contains.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“bpm”` property

      “bpm”                      double

The bpm.

Owner: AgsAudio

Flags: Read / Write

Allowed values: >= 0

Default value: 120

Since: 3.0.0

### The `“buffer-size”` property

      “buffer-size”              guint

The buffer length.

Owner: AgsAudio

Flags: Read / Write

Default value: 2048

Since: 3.0.0

### The `“cursor”` property

      “cursor”                   gpointer

The GObject implementing AgsCursor interface.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“denominator”` property

      “denominator”              guint

The denominator of time signature.

Owner: AgsAudio

Flags: Read / Write

Allowed values: <= 32

Default value: 4

Since: 3.0.0

### The `“format”` property

      “format”                   guint

The format.

Owner: AgsAudio

Flags: Read / Write

Default value: 16

Since: 3.0.0

### The `“input”` property

      “input”                    AgsInput *

The AgsInput it contains.

Owner: AgsAudio

Flags: Read

Since: 3.0.0

### The `“input-audio-file”` property

      “input-audio-file”         GObject *

The assigned AgsAudioFile acting as default sink.

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“input-lines”` property

      “input-lines”              guint

The input lines count.

Owner: AgsAudio

Flags: Read

Default value: 0

Since: 3.0.0

### The `“input-midi-file”` property

      “input-midi-file”          GObject *

The assigned AgsMidiFile acting as default sink.

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“input-pads”` property

      “input-pads”               guint

The input pads count.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“input-sequencer”` property

      “input-sequencer”          GObject *

The assigned AgsSequencer acting as default source.

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“input-soundcard”` property

      “input-soundcard”          GObject *

The assigned AgsSoundcard acting as default source.

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“is-minor”` property

      “is-minor”                 gboolean

Is minor.

Owner: AgsAudio

Flags: Read / Write

Default value: FALSE

Since: 3.0.0

### The `“key”` property

      “key”                      guint

The key relative to octave.

Owner: AgsAudio

Flags: Read / Write

Allowed values: <= 12

Default value: 0

Since: 3.0.0

### The `“loop-end”` property

      “loop-end”                 guint64

The audio's loop end.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“loop-start”` property

      “loop-start”               guint64

The audio's loop start.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“max-audio-channels”` property

      “max-audio-channels”       guint

The maximum audio channels count.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“max-input-pads”` property

      “max-input-pads”           guint

The maximum input pads count.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“max-output-pads”` property

      “max-output-pads”          guint

The maximum output pads count.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“midi”` property

      “midi”                     gpointer

The AgsMidi it contains.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“midi-channel”` property

      “midi-channel”             guint

The MIDI channel.

Owner: AgsAudio

Flags: Read / Write

Allowed values: <= 16

Default value: 0

Since: 3.0.0

### The `“midi-end-mapping”` property

      “midi-end-mapping”         guint

The MIDI end mapping.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“midi-group”` property

      “midi-group”               guint

The MIDI group.

Owner: AgsAudio

Flags: Read / Write

Allowed values: <= 16

Default value: 0

Since: 7.0.0

### The `“midi-start-mapping”` property

      “midi-start-mapping”       guint

The MIDI start mapping.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“min-audio-channels”` property

      “min-audio-channels”       guint

The minimum audio channels count.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“min-input-pads”` property

      “min-input-pads”           guint

The minimum input pads count.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“min-output-pads”` property

      “min-output-pads”          guint

The minimum output pads count.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“notation”` property

      “notation”                 gpointer

The AgsNotation it contains.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“numerator”` property

      “numerator”                guint

The numerator of time signature.

Owner: AgsAudio

Flags: Read / Write

Allowed values: <= 32

Default value: 4

Since: 3.0.0

### The `“octave”` property

      “octave”                   int

The octave lower.

Owner: AgsAudio

Flags: Read / Write

Allowed values: [0,10]

Default value: 0

Since: 3.0.0

### The `“offset”` property

      “offset”                   guint64

The audio's offset.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“output”` property

      “output”                   AgsOutput *

The AgsOutput it contains.

Owner: AgsAudio

Flags: Read

Since: 3.0.0

### The `“output-audio-file”` property

      “output-audio-file”        GObject *

The assigned AgsAudioFile acting as default sink.

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“output-lines”` property

      “output-lines”             guint

The output lines count.

Owner: AgsAudio

Flags: Read

Default value: 0

Since: 3.0.0

### The `“output-midi-file”` property

      “output-midi-file”         GObject *

The assigned AgsMidiFile acting as default sink.

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“output-pads”` property

      “output-pads”              guint

The output pads count.

Owner: AgsAudio

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“output-sequencer”` property

      “output-sequencer”         GObject *

The assigned AgsSequencer acting as default source.

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“output-soundcard”` property

      “output-soundcard”         GObject *

The assigned AgsSoundcard acting as default sink.

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“play”` property

      “play”                     gpointer

The AgsRecall it contains in play-context.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“playback-domain”` property

      “playback-domain”          AgsPlaybackDomain *

The assigned AgsPlaybackDomain.

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“preset”` property

      “preset”                   gpointer

The assigned GList containing AgsPreset information.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“recall”` property

      “recall”                   gpointer

The AgsRecall it contains in recall-context.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“recall-container”` property

      “recall-container”         gpointer

The AgsRecallContainer it contains in container-context.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“recall-id”` property

      “recall-id”                gpointer

The assigned AgsRecallID.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“recycling-context”` property

      “recycling-context”        gpointer

The assigned AgsRecyclingContext.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“samplerate”` property

      “samplerate”               guint

The samplerate.

Owner: AgsAudio

Flags: Read / Write

Default value: 44100

Since: 3.0.0

### The `“sf2-synth-generator”` property

      “sf2-synth-generator”      gpointer

The assigned GList containing AgsSF2SynthGenerator information.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.4.0

### The `“sfz-synth-generator”` property

      “sfz-synth-generator”      gpointer

The assigned GList containing AgsSFZSynthGenerator information.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.4.0

### The `“sharp-flats”` property

      “sharp-flats”              guint

The sharp/flats count.

Owner: AgsAudio

Flags: Read / Write

Allowed values: <= 12

Default value: 0

Since: 3.0.0

### The `“synth-generator”` property

      “synth-generator”          gpointer

The assigned GList containing AgsSynthGenerator information.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

### The `“time-signature”` property

      “time-signature”           char *

The time signature.

Owner: AgsAudio

Flags: Read

Default value: "4/4"

Since: 3.0.0

### The `“wave”` property

      “wave”                     gpointer

The AgsWave it contains.

[transfer full]

Owner: AgsAudio

Flags: Read / Write

Since: 3.0.0

## Signal Details

### The `“cancel-recall”` signal

    void
    user_function (AgsAudio *audio,
                   GObject  *recall_id,
                   gpointer  user_data)

The ::cancel-recall signal notifies about canceld recalls.

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“check-scope”` signal

    gpointer
    user_function (AgsAudio *audio,
                   int       sound_scope,
                   gpointer  user_data)

The ::check-scope method returns the appropriate recall id of `sound_scope` .

#### Parameters

audio | the AgsAudio to check the scopes |
sound_scope | the affected scope |
user_data | user data set when the signal handler was connected. |

#### Returns

the GList containing AgsRecallID

Flags: Run Last

Since: 3.0.0

### The `“cleanup-recall”` signal

    void
    user_function (AgsAudio *audio,
                   GObject  *recall_id,
                   gpointer  user_data)

The ::cleanup-recall signal notifies about cleanup recalls.

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“done-recall”` signal

    void
    user_function (AgsAudio *audio,
                   GObject  *recall_id,
                   gpointer  user_data)

The ::done-recall signal notifies about doned recalls.

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“duplicate-recall”` signal

    void
    user_function (AgsAudio *audio,
                   GObject  *recall_id,
                   guint     pad,
                   guint     audio_channel,
                   guint     line,
                   gpointer  user_data)

The ::duplicate-recall signal notifies about duplicated recalls.

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID |
pad | the pad |
audio_channel | the audio channel |
line | the line |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“init-recall”` signal

    void
    user_function (AgsAudio *audio,
                   GObject  *recall_id,
                   guint     staging_flags,
                   gpointer  user_data)

The ::init-recall signal notifies about initd recalls.

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID |
staging_flags | the staging flags |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“play-recall”` signal

    void
    user_function (AgsAudio *audio,
                   GObject  *recall_id,
                   guint     staging_flags,
                   gpointer  user_data)

The ::play-recall signal notifies about playd recalls.

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID |
staging_flags | the staging flags |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“recursive-run-stage”` signal

    void
    user_function (AgsAudio *audio,
                   int       sound_scope,
                   guint     staging_flags,
                   gpointer  user_data)

The ::recursive-run-stage signal is invoked while run staging of `audio` for `sound_scope` .

#### Parameters

audio | the AgsAudio to run |
sound_scope | the affected scope |
staging_flags | the flags to set |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“resolve-recall”` signal

    void
    user_function (AgsAudio *audio,
                   GObject  *recall_id,
                   gpointer  user_data)

The ::resolve-recall signal notifies about resolved recalls.

#### Parameters

audio | the AgsAudio |
recall_id | the AgsRecallID |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“set-audio-channels”` signal

    void
    user_function (AgsAudio *audio,
                   guint     audio_channels_new,
                   guint     audio_channels_old,
                   gpointer  user_data)

The ::set-audio-channels signal notifies about changes in channel alignment.

#### Parameters

audio | the object to adjust the channels. |
audio_channels_new | new audio channel count |
audio_channels_old | old audio channel count |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“set-pads”` signal

    void
    user_function (AgsAudio *audio,
                   gpointer  channel_type,
                   guint     pads_new,
                   guint     pads_old,
                   gpointer  user_data)

The ::set-pads signal notifies about changes in channel alignment.

#### Parameters

audio | the object to adjust pads. |
channel_type | either AGS_TYPE_INPUT or AGS_TYPE_OUTPUT |
pads_new | new pad count |
pads_old | old pad count |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“start”` signal

    gpointer
    user_function (AgsAudio *audio,
                   int       sound_scope,
                   gpointer  user_data)

The ::start signal is invoked while starting playback of `audio` .

#### Parameters

audio | the AgsAudio starts playing |
sound_scope | the affected scope |
user_data | user data set when the signal handler was connected. |

#### Returns

the GList containing AgsRecallID

Flags: Run Last

Since: 3.0.0

### The `“stop”` signal

    void
    user_function (AgsAudio *audio,
                   gpointer  recall_id,
                   int       sound_scope,
                   gpointer  user_data)

The ::stop signal is invoked while stoping playback of `audio` .

#### Parameters

audio | the AgsAudio stops playing |
recall_id | a GList containing AgsRecallID |
sound_scope | the affected scope |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0