## AgsChannel

AgsChannel — A channel is a node within the audio processing tree and does recycling

## Stability Level

Stable, unless otherwise indicated

## Functions

#define | AGS_CHANNEL_GET_OBJ_MUTEX()
#define | AGS_CHANNEL_GET_PLAY_MUTEX()
#define | AGS_CHANNEL_GET_RECALL_MUTEX()
GQuark | ags_channel_error_quark ()
GRecMutex * | ags_channel_get_obj_mutex ()
GRecMutex * | ags_channel_get_play_mutex ()
GRecMutex * | ags_channel_get_recall_mutex ()
gboolean | ags_channel_test_flags ()
void | ags_channel_set_flags ()
void | ags_channel_unset_flags ()
gboolean | ags_channel_test_ability_flags ()
void | ags_channel_set_ability_flags ()
void | ags_channel_unset_ability_flags ()
gboolean | ags_channel_test_behaviour_flags ()
void | ags_channel_set_behaviour_flags ()
void | ags_channel_unset_behaviour_flags ()
gboolean | ags_channel_test_staging_flags ()
void | ags_channel_set_staging_flags ()
void | ags_channel_unset_staging_flags ()
gboolean | ags_channel_test_staging_completed ()
void | ags_channel_set_staging_completed ()
void | ags_channel_unset_staging_completed ()
GObject * | ags_channel_get_audio ()
void | ags_channel_set_audio ()
AgsChannel * | ags_channel_next ()
AgsChannel * | ags_channel_prev ()
AgsChannel * | ags_channel_next_pad ()
AgsChannel * | ags_channel_prev_pad ()
AgsChannel * | ags_channel_first ()
AgsChannel * | ags_channel_last ()
AgsChannel * | ags_channel_nth ()
AgsChannel * | ags_channel_pad_first ()
AgsChannel * | ags_channel_pad_last ()
AgsChannel * | ags_channel_pad_nth ()
AgsChannel * | ags_channel_first_with_recycling ()
AgsChannel * | ags_channel_last_with_recycling ()
AgsChannel * | ags_channel_prev_with_recycling ()
AgsChannel * | ags_channel_next_with_recycling ()
AgsChannel * | ags_channel_get_link ()
void | ags_channel_set_link ()
void | ags_channel_reset_recycling ()
void | ags_channel_recycling_changed ()
GObject * | ags_channel_get_output_soundcard ()
void | ags_channel_set_output_soundcard ()
gint | ags_channel_get_output_soundcard_channel ()
void | ags_channel_set_output_soundcard_channel ()
GObject * | ags_channel_get_input_soundcard ()
void | ags_channel_set_input_soundcard ()
gint | ags_channel_get_input_soundcard_channel ()
void | ags_channel_set_input_soundcard_channel ()
GObject * | ags_channel_get_first_recycling ()
GObject * | ags_channel_get_last_recycling ()
guint | ags_channel_get_samplerate ()
void | ags_channel_set_samplerate ()
guint | ags_channel_get_buffer_size ()
void | ags_channel_set_buffer_size ()
AgsSoundcardFormat | ags_channel_get_format ()
void | ags_channel_set_format ()
guint | ags_channel_get_pad ()
void | ags_channel_set_pad ()
guint | ags_channel_get_audio_channel ()
void | ags_channel_set_audio_channel ()
guint | ags_channel_get_line ()
void | ags_channel_set_line ()
gint | ags_channel_get_octave ()
void | ags_channel_set_octave ()
guint | ags_channel_get_key ()
void | ags_channel_set_key ()
gint | ags_channel_get_absolute_key ()
void | ags_channel_set_absolute_key ()
GList * | ags_channel_get_pattern ()
void | ags_channel_set_pattern ()
void | ags_channel_add_pattern ()
void | ags_channel_remove_pattern ()
GObject * | ags_channel_get_playback ()
void | ags_channel_set_playback ()
GList * | ags_channel_get_recall_id ()
void | ags_channel_set_recall_id ()
void | ags_channel_add_recall_id ()
void | ags_channel_remove_recall_id ()
GList * | ags_channel_get_recall_container ()
void | ags_channel_set_recall_container ()
void | ags_channel_add_recall_container ()
void | ags_channel_remove_recall_container ()
GList * | ags_channel_get_play ()
void | ags_channel_set_play ()
GList * | ags_channel_get_recall ()
void | ags_channel_set_recall ()
void | ags_channel_add_recall ()
void | ags_channel_insert_recall ()
void | ags_channel_remove_recall ()
void | ags_channel_duplicate_recall ()
void | ags_channel_resolve_recall ()
void | ags_channel_init_recall ()
void | ags_channel_play_recall ()
void | ags_channel_done_recall ()
void | ags_channel_cancel_recall ()
void | ags_channel_cleanup_recall ()
GList * | ags_channel_start ()
void | ags_channel_stop ()
GList * | ags_channel_check_scope ()
GList * | ags_channel_collect_all_channel_ports ()
GList * | ags_channel_collect_all_channel_ports_by_specifier_and_context ()
AgsChannel * | ags_channel_get_level ()
void | ags_channel_recursive_set_property ()
void | ags_channel_recursive_run_stage ()
AgsChannel * | ags_channel_new ()

## Properties

int | absolute-key | Read / Write
AgsAudio * | audio | Read / Write
guint | audio-channel | Read
guint | buffer-size | Read / Write
AgsRecycling * | first-recycling | Read
guint | format | Read / Write
GObject * | input-soundcard | Read / Write
int | input-soundcard-channel | Read / Write
guint | key | Read / Write
AgsRecycling * | last-recycling | Read
guint | line | Read
AgsChannel * | link | Read / Write
guint | midi-note | Read / Write
AgsChannel * | next | Read
AgsChannel * | next-pad | Read
double | note-frequency | Read / Write
char * | note-key | Read / Write
int | octave | Read / Write
GObject * | output-soundcard | Read / Write
int | output-soundcard-channel | Read / Write
guint | pad | Read
gpointer | pattern | Read / Write
gpointer | play | Read / Write
AgsPlayback * | playback | Read / Write
AgsChannel * | prev | Read
AgsChannel * | prev-pad | Read
gpointer | recall | Read / Write
gpointer | recall-container | Read / Write
gpointer | recall-id | Read / Write
gpointer | recycling-context | Read / Write
guint | samplerate | 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 | recycling-changed | Run Last
void | resolve-recall | Run Last
gpointer | start | Run Last
void | stop | Run Last

## Types and Values

#define | AGS_CHANNEL_MINIMUM_OCTAVE
#define | AGS_CHANNEL_MAXIMUM_OCTAVE
#define | AGS_CHANNEL_DEFAULT_OCTAVE
#define | AGS_CHANNEL_MINIMUM_OCTAVE_SEMITONE
#define | AGS_CHANNEL_MAXIMUM_OCTAVE_SEMITONE
#define | AGS_CHANNEL_DEFAULT_OCTAVE_SEMITONE
#define | AGS_CHANNEL_MINIMUM_SEMITONE
#define | AGS_CHANNEL_MAXIMUM_SEMITONE
#define | AGS_CHANNEL_DEFAULT_SEMITONE
#define | AGS_CHANNEL_MINIMUM_NOTE_FREQUENCY
#define | AGS_CHANNEL_MAXIMUM_NOTE_FREQUENCY
#define | AGS_CHANNEL_DEFAULT_NOTE_FREQUENCY
#define | AGS_CHANNEL_MINIMUM_MIDI_NOTE
#define | AGS_CHANNEL_MAXIMUM_MIDI_NOTE
#define | AGS_CHANNEL_DEFAULT_MIDI_NOTE
enum | AgsChannelFlags
#define | AGS_CHANNEL_ERROR
enum | AgsChannelError

## Object Hierarchy

        GFlags
        ╰── AgsChannelFlags
        GObject
        ╰── AgsChannel
            ├── AgsInput
            ╰── AgsOutput

## Includes

    #include <ags/audio/ags_channel.h>

## Description

AgsChannel is the entry point to the entire audio tree and its nested recycling tree.

Every channel has its own AgsRecallID. As modifying link a new AgsRecyclingContext is indicated, since it acts as a kind of recall id tree context.

It hosts AgsPattern to implement step sequencers.

Make sure you have set the matching AgsSoundAbilityFlags flags using `ags_channel_set_ability_flags()`. This is going to setup threads per matching AgsSoundScope scope.

Multi-threaded processing per output line only applies if AGS_PLAYBACK_SUPER_THREADED_CHANNEL is set on matching AgsPlayback.

You might want to listen to changes in the nested recycling tree, too. `ags_channel_recycling_changed()` notifies about changes of processing structure in the deep audio tree.

The `first-recycling` and `last-recycling` property gives you the boundaries of processing structure in the audio tree.

If channel is an AgsOutput and is a signal source i.e. instrument or such `first-recycling` and `last-recycling` point to the very same AgsRecycling. In this case it is never altered.

On the other hand `ags_channel_set_link()` may alter your nested recycling tree. It may change the recycling context.

There are common functions to iterate channels.

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_CHANNEL_GET_OBJ_MUTEX()

    #define AGS_CHANNEL_GET_OBJ_MUTEX(obj) (&(((AgsChannel *) obj)->obj_mutex))

### AGS_CHANNEL_GET_PLAY_MUTEX()

    #define AGS_CHANNEL_GET_PLAY_MUTEX(obj) (&(((AgsChannel *) obj)->play_mutex))

### AGS_CHANNEL_GET_RECALL_MUTEX()

    #define AGS_CHANNEL_GET_RECALL_MUTEX(obj) (&(((AgsChannel *) obj)->recall_mutex))

### ags_channel_error_quark ()

    GQuark
    ags_channel_error_quark ();

### ags_channel_get_obj_mutex ()

    GRecMutex *
    ags_channel_get_obj_mutex (AgsChannel *channel);

Get object mutex.

#### Parameters

channel | the AgsChannel |

#### Returns

the GRecMutex to lock `channel`

Since: 3.1.0

### ags_channel_get_play_mutex ()

    GRecMutex *
    ags_channel_get_play_mutex (AgsChannel *channel);

Get play mutex.

#### Parameters

channel | the AgsChannel |

#### Returns

the GRecMutex to lock `channel` 's play property

Since: 3.1.0

### ags_channel_get_recall_mutex ()

    GRecMutex *
    ags_channel_get_recall_mutex (AgsChannel *channel);

Get recall mutex.

#### Parameters

channel | the AgsChannel |

#### Returns

the GRecMutex to lock `channel` 's recall property

Since: 3.1.0

### ags_channel_test_flags ()

    gboolean
    ags_channel_test_flags (AgsChannel *channel,
                            AgsChannelFlags flags);

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

#### Parameters

channel | the AgsChannel |
flags | the flags |

#### Returns

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

Since: 3.0.0

### ags_channel_set_flags ()

    void
    ags_channel_set_flags (AgsChannel *channel,
                           AgsChannelFlags flags);

Enable a feature of `channel` .

#### Parameters

channel | the AgsChannel |
flags | see AgsChannelFlags |

Since: 3.0.0

### ags_channel_unset_flags ()

    void
    ags_channel_unset_flags (AgsChannel *channel,
                             AgsChannelFlags flags);

Disable a feature of `channel` .

#### Parameters

channel | the AgsChannel |
flags | see AgsChannelFlags |

Since: 3.0.0

### ags_channel_test_ability_flags ()

    gboolean
    ags_channel_test_ability_flags (AgsChannel *channel,
                                    AgsSoundAbilityFlags ability_flags);

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

#### Parameters

channel | the AgsChannel |
ability_flags | the ability flags |

#### Returns

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

Since: 3.0.0

### ags_channel_set_ability_flags ()

    void
    ags_channel_set_ability_flags (AgsChannel *channel,
                                   AgsSoundAbilityFlags ability_flags);

Enable an ability of AgsChannel.

#### Parameters

channel | the AgsChannel |
ability_flags | see enum AgsSoundAbilityFlags |

Since: 3.0.0

### ags_channel_unset_ability_flags ()

    void
    ags_channel_unset_ability_flags (AgsChannel *channel,
                                     AgsSoundAbilityFlags ability_flags);

Disable an ability of AgsChannel.

#### Parameters

channel | the AgsChannel |
ability_flags | see enum AgsSoundAbilityFlags |

Since: 3.0.0

### ags_channel_test_behaviour_flags ()

    gboolean
    ags_channel_test_behaviour_flags (AgsChannel *channel,
                                      AgsSoundBehaviourFlags behaviour_flags);

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

#### Parameters

channel | the AgsChannel |
behaviour_flags | the behaviour flags |

#### Returns

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

Since: 3.0.0

### ags_channel_set_behaviour_flags ()

    void
    ags_channel_set_behaviour_flags (AgsChannel *channel,
                                     AgsSoundBehaviourFlags behaviour_flags);

Set behaviour flags.

#### Parameters

channel | the AgsChannel |
behaviour_flags | the behaviour flags |

Since: 3.0.0

### ags_channel_unset_behaviour_flags ()

    void
    ags_channel_unset_behaviour_flags (AgsChannel *channel,
                                       AgsSoundBehaviourFlags behaviour_flags);

Unset behaviour flags.

#### Parameters

channel | the AgsChannel |
behaviour_flags | the behaviour flags |

Since: 3.0.0

### ags_channel_test_staging_flags ()

    gboolean
    ags_channel_test_staging_flags (AgsChannel *channel,
                                    gint sound_scope,
                                    AgsSoundStagingFlags staging_flags);

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

#### Parameters

channel | the AgsChannel |
sound_scope | the AgsSoundScope to test |
staging_flags | the staging flags |

#### Returns

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

Since: 3.0.0

### ags_channel_set_staging_flags ()

    void
    ags_channel_set_staging_flags (AgsChannel *channel,
                                   gint sound_scope,
                                   AgsSoundStagingFlags staging_flags);

Set staging flags.

#### Parameters

channel | the AgsChannel |
sound_scope | the AgsSoundScope to apply, or -1 to apply to all |
staging_flags | the staging flags |

Since: 3.0.0

### ags_channel_unset_staging_flags ()

    void
    ags_channel_unset_staging_flags (AgsChannel *channel,
                                     gint sound_scope,
                                     AgsSoundStagingFlags staging_flags);

Unset staging flags.

#### Parameters

channel | the AgsChannel |
sound_scope | the AgsSoundScope to apply, or -1 to apply to all |
staging_flags | the staging flags |

Since: 3.0.0

### ags_channel_test_staging_completed ()

    gboolean
    ags_channel_test_staging_completed (AgsChannel *channel,
                                        gint sound_scope);

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

#### Parameters

channel | the AgsChannel |
sound_scope | the AgsSoundScope to test |

#### Returns

`TRUE` if completed, otherwise `FALSE`

Since: 3.3.0

### ags_channel_set_staging_completed ()

    void
    ags_channel_set_staging_completed (AgsChannel *channel,
                                       gint sound_scope);

Set `sound_scope` to be completed.

#### Parameters

channel | the AgsChannel |
sound_scope | the AgsSoundScope to apply, or -1 to apply to all |

Since: 3.3.0

### ags_channel_unset_staging_completed ()

    void
    ags_channel_unset_staging_completed (AgsChannel *channel,
                                         gint sound_scope);

Unset `sound_scope` to be completed.

#### Parameters

channel | the AgsChannel |
sound_scope | the AgsSoundScope to apply, or -1 to apply to all |

Since: 3.3.0

### ags_channel_get_audio ()

    GObject *
    ags_channel_get_audio (AgsChannel *channel);

Get audio.

#### Parameters

channel | the AgsChannel |

#### Returns

the AgsAudio.

[transfer full]

Since: 3.1.0

### ags_channel_set_audio ()

    void
    ags_channel_set_audio (AgsChannel *channel,
                           GObject *audio);

Set audio.

#### Parameters

channel | the AgsChannel |
audio | the AgsAudio |

Since: 3.1.0

### ags_channel_next ()

    AgsChannel *
    ags_channel_next (AgsChannel *channel);

Iterate `channel` .

#### Parameters

channel | the AgsChannel |

#### Returns

the next of AgsChannel if available, otherwise `NULL`.

[transfer full]

Since: 3.0.0

### ags_channel_prev ()

    AgsChannel *
    ags_channel_prev (AgsChannel *channel);

Iterate `channel` .

#### Parameters

channel | the AgsChannel |

#### Returns

the prev of AgsChannel if available, otherwise `NULL`.

[transfer full]

Since: 3.0.0

### ags_channel_next_pad ()

    AgsChannel *
    ags_channel_next_pad (AgsChannel *channel);

Iterate `channel` .

#### Parameters

channel | the AgsChannel |

#### Returns

the next pad of AgsChannel if available, otherwise `NULL`.

[transfer full]

Since: 3.0.0

### ags_channel_prev_pad ()

    AgsChannel *
    ags_channel_prev_pad (AgsChannel *channel);

Iterate `channel` .

#### Parameters

channel | the AgsChannel |

#### Returns

the prev pad of AgsChannel if available, otherwise `NULL`.

[transfer full]

Since: 3.0.0

### ags_channel_first ()

    AgsChannel *
    ags_channel_first (AgsChannel *channel);

Iterates until the first AgsChannel was found.

#### Parameters

channel | an AgsChannel |

#### Returns

the first AgsChannel.

[transfer full]

Since: 3.0.0

### ags_channel_last ()

    AgsChannel *
    ags_channel_last (AgsChannel *channel);

Iterates until the last AgsChannel was found.

#### Parameters

channel | an AgsChannel |

#### Returns

the last AgsChannel.

[transfer full]

Since: 3.0.0

### ags_channel_nth ()

    AgsChannel *
    ags_channel_nth (AgsChannel *channel,
                     guint nth);

Iterates `nth` times forward.

#### Parameters

channel | an AgsChannel |
nth | the count to iterate |

#### Returns

the nth AgsChannel.

[transfer full]

Since: 3.0.0

### ags_channel_pad_first ()

    AgsChannel *
    ags_channel_pad_first (AgsChannel *channel);

Iterates until the first pad has been reached.

#### Parameters

channel | an AgsChannel |

#### Returns

the first AgsChannel with the same audio channel as `channel` .

[transfer full]

Since: 3.0.0

### ags_channel_pad_last ()

    AgsChannel *
    ags_channel_pad_last (AgsChannel *channel);

Iterates until the last pad has been reached.

#### Parameters

channel | an AgsChannel |

#### Returns

the last AgsChannel with the same audio channel as `channel` .

[transfer full]

Since: 3.0.0

### ags_channel_pad_nth ()

    AgsChannel *
    ags_channel_pad_nth (AgsChannel *channel,
                         guint nth);

Iterates nth times.

#### Parameters

channel | an AgsChannel |
nth | the count of pads to step |

#### Returns

the nth pad.

[transfer full]

Since: 3.0.0

### ags_channel_first_with_recycling ()

    AgsChannel *
    ags_channel_first_with_recycling (AgsChannel *channel);

Find first recycling related to `channel` .

#### Parameters

channel | an AgsChannel |

#### Returns

the first channel with an AgsRecycling.

[transfer full]

Since: 3.0.0

### ags_channel_last_with_recycling ()

    AgsChannel *
    ags_channel_last_with_recycling (AgsChannel *channel);

Find last recycling related to `channel` .

#### Parameters

channel | an AgsChannel |

#### Returns

the last channel with an AgsRecycling.

[transfer full]

Since: 3.0.0

### ags_channel_prev_with_recycling ()

    AgsChannel *
    ags_channel_prev_with_recycling (AgsChannel *channel);

Find previous AgsRecycling of `channel` .

#### Parameters

channel | an AgsChannel |

#### Returns

the prev channel with an AgsRecycling.

[transfer full]

Since: 3.0.0

### ags_channel_next_with_recycling ()

    AgsChannel *
    ags_channel_next_with_recycling (AgsChannel *channel);

Find next AgsRecycling of `channel` .

#### Parameters

channel | an AgsChannel |

#### Returns

the next channel with an AgsRecycling.

[transfer full]

Since: 3.0.0

### ags_channel_get_link ()

    AgsChannel *
    ags_channel_get_link (AgsChannel *channel);

Ascend/descend `channel` .

#### Parameters

channel | the AgsChannel |

#### Returns

the link of AgsChannel if available, otherwise `NULL`.

[transfer full]

Since: 3.0.0

### ags_channel_set_link ()

    void
    ags_channel_set_link (AgsChannel *channel,
                          AgsChannel *link,
                          GError **error);

Change the linking of AgsChannel objects. Sets link, calls `ags_channel_reset_recycling()`. Further it does loop detection and makes your machine running.

#### Parameters

channel | an AgsChannel to link |
link | an other AgsChannel to link with |
error | you may retrieve a AGS_CHANNEL_ERROR_LOOP_IN_LINK error |

Since: 3.0.0

### ags_channel_reset_recycling ()

    void
    ags_channel_reset_recycling (AgsChannel *channel,
                                 AgsRecycling *first_recycling,
                                 AgsRecycling *last_recycling);

Called by `ags_channel_set_link()` to handle outdated AgsRecycling references. Invoke only by a task.

#### Parameters

channel | the channel to reset |
first_recycling | the recycling to set for channel->first_recycling |
last_recycling | the recycling to set for channel->last_recycling |

Since: 3.0.0

### ags_channel_recycling_changed ()

    void
    ags_channel_recycling_changed (AgsChannel *channel,
                                   AgsRecycling *old_start_region,
                                   AgsRecycling *old_end_region,
                                   AgsRecycling *new_start_region,
                                   AgsRecycling *new_end_region,
                                   AgsRecycling *old_start_changed_region,
                                   AgsRecycling *old_end_changed_region,
                                   AgsRecycling *new_start_changed_region,
                                   AgsRecycling *new_end_changed_region);

Modify recycling. Asynchronously only.

#### Parameters

channel | the object recycling changed |
old_start_region | first recycling |
old_end_region | last recycling |
new_start_region | new first recycling |
new_end_region | new last recycling |
old_start_changed_region | modified link recycling start |
old_end_changed_region | modified link recyclig end |
new_start_changed_region | replacing link recycling start |
new_end_changed_region | replacing link recycling end |

Since: 3.0.0

### ags_channel_get_output_soundcard ()

    GObject *
    ags_channel_get_output_soundcard (AgsChannel *channel);

Get the output soundcard object of `channel` .

#### Parameters

channel | the AgsChannel |

#### Returns

the output soundcard.

[transfer full]

Since: 3.1.0

### ags_channel_set_output_soundcard ()

    void
    ags_channel_set_output_soundcard (AgsChannel *channel,
                                      GObject *output_soundcard);

Set the output soundcard object of `channel` .

#### Parameters

channel | an AgsChannel |
output_soundcard | the GObject implementing AgsSoundcard |

Since: 3.0.0

### ags_channel_get_output_soundcard_channel ()

    gint
    ags_channel_get_output_soundcard_channel
                                   (AgsChannel *channel);

Get the output soundcard object of `channel` .

#### Parameters

channel | the AgsChannel |

#### Returns

the output soundcard

Since: 4.0.0

### ags_channel_set_output_soundcard_channel ()

    void
    ags_channel_set_output_soundcard_channel
                                   (AgsChannel *channel,
                                    gint output_soundcard_channel);

Set the output soundcard channel of `channel` .

#### Parameters

channel | an AgsChannel |
output_soundcard_channel | the output soundcard channel |

Since: 4.0.0

### ags_channel_get_input_soundcard ()

    GObject *
    ags_channel_get_input_soundcard (AgsChannel *channel);

Get the input soundcard object of `channel` .

#### Parameters

channel | the AgsChannel |

#### Returns

the input soundcard.

[transfer full]

Since: 3.1.0

### ags_channel_set_input_soundcard ()

    void
    ags_channel_set_input_soundcard (AgsChannel *channel,
                                     GObject *input_soundcard);

Set the input soundcard object of `channel` .

#### Parameters

channel | an AgsChannel |
input_soundcard | the GObject implementing AgsSoundcard |

Since: 3.0.0

### ags_channel_get_input_soundcard_channel ()

    gint
    ags_channel_get_input_soundcard_channel
                                   (AgsChannel *channel);

Get the input soundcard object of `channel` .

#### Parameters

channel | the AgsChannel |

#### Returns

the input soundcard

Since: 4.0.0

### ags_channel_set_input_soundcard_channel ()

    void
    ags_channel_set_input_soundcard_channel
                                   (AgsChannel *channel,
                                    gint input_soundcard_channel);

Set the input soundcard channel of `channel` .

#### Parameters

channel | an AgsChannel |
input_soundcard_channel | the input soundcard channel |

Since: 4.0.0

### ags_channel_get_first_recycling ()

    GObject *
    ags_channel_get_first_recycling (AgsChannel *channel);

Get the first recycling object of `channel` .

#### Parameters

channel | the AgsChannel |

#### Returns

the first recycling.

[transfer full]

Since: 7.0.7

### ags_channel_get_last_recycling ()

    GObject *
    ags_channel_get_last_recycling (AgsChannel *channel);

Get the last recycling object of `channel` .

#### Parameters

channel | the AgsChannel |

#### Returns

the last recycling.

[transfer full]

Since: 7.0.7

### ags_channel_get_samplerate ()

    guint
    ags_channel_get_samplerate (AgsChannel *channel);

Gets samplerate.

#### Parameters

channel | the AgsChannel |

#### Returns

the samplerate

Since: 3.1.0

### ags_channel_set_samplerate ()

    void
    ags_channel_set_samplerate (AgsChannel *channel,
                                guint samplerate);

Set samplerate.

#### Parameters

channel | the AgsChannel |
samplerate | the samplerate |

Since: 3.0.0

### ags_channel_get_buffer_size ()

    guint
    ags_channel_get_buffer_size (AgsChannel *channel);

Gets buffer size.

#### Parameters

channel | the AgsChannel |

#### Returns

the buffer size

Since: 3.1.0

### ags_channel_set_buffer_size ()

    void
    ags_channel_set_buffer_size (AgsChannel *channel,
                                 guint buffer_size);

Set buffer-size.

#### Parameters

channel | the AgsChannel |
buffer_size | the buffer_size |

Since: 3.0.0

### ags_channel_get_format ()

    AgsSoundcardFormat
    ags_channel_get_format (AgsChannel *channel);

Gets format.

#### Parameters

channel | the AgsChannel |

#### Returns

the format

Since: 3.1.0

### ags_channel_set_format ()

    void
    ags_channel_set_format (AgsChannel *channel,
                            AgsSoundcardFormat format);

Set format.

#### Parameters

channel | the AgsChannel |
format | the format |

Since: 3.0.0

### ags_channel_get_pad ()

    guint
    ags_channel_get_pad (AgsChannel *channel);

Gets pad.

#### Parameters

channel | the AgsChannel |

#### Returns

the pad

Since: 3.1.0

### ags_channel_set_pad ()

    void
    ags_channel_set_pad (AgsChannel *channel,
                         guint pad);

Set pad.

#### Parameters

channel | the AgsChannel |
pad | the pad |

Since: 3.0.0

### ags_channel_get_audio_channel ()

    guint
    ags_channel_get_audio_channel (AgsChannel *channel);

Gets audio_channel.

#### Parameters

channel | the AgsChannel |

#### Returns

the audio_channel

Since: 3.1.0

### ags_channel_set_audio_channel ()

    void
    ags_channel_set_audio_channel (AgsChannel *channel,
                                   guint audio_channel);

Set audio_channel.

#### Parameters

channel | the AgsChannel |
audio_channel | the audio_channel |

Since: 3.0.0

### ags_channel_get_line ()

    guint
    ags_channel_get_line (AgsChannel *channel);

Gets line.

#### Parameters

channel | the AgsChannel |

#### Returns

the line

Since: 3.1.0

### ags_channel_set_line ()

    void
    ags_channel_set_line (AgsChannel *channel,
                          guint line);

Set line.

#### Parameters

channel | the AgsChannel |
line | the line |

Since: 3.0.0

### ags_channel_get_octave ()

    gint
    ags_channel_get_octave (AgsChannel *channel);

Gets octave.

#### Parameters

channel | the AgsChannel |

#### Returns

the octave

Since: 3.1.0

### ags_channel_set_octave ()

    void
    ags_channel_set_octave (AgsChannel *channel,
                            gint octave);

Sets octave.

#### Parameters

channel | the AgsChannel |
octave | the octave |

Since: 3.1.0

### ags_channel_get_key ()

    guint
    ags_channel_get_key (AgsChannel *channel);

Gets key.

#### Parameters

channel | the AgsChannel |

#### Returns

the key

Since: 3.1.0

### ags_channel_set_key ()

    void
    ags_channel_set_key (AgsChannel *channel,
                         guint key);

Sets key.

#### Parameters

channel | the AgsChannel |
key | the key |

Since: 3.1.0

### ags_channel_get_absolute_key ()

    gint
    ags_channel_get_absolute_key (AgsChannel *channel);

Gets absolute key.

#### Parameters

channel | the AgsChannel |

#### Returns

the absolute key

Since: 3.1.0

### ags_channel_set_absolute_key ()

    void
    ags_channel_set_absolute_key (AgsChannel *channel,
                                  gint absolute_key);

Sets absolute key.

#### Parameters

channel | the AgsChannel |
absolute_key | the absolute key |

Since: 3.1.0

### ags_channel_get_pattern ()

    GList *
    ags_channel_get_pattern (AgsChannel *channel);

Get pattern.

#### Parameters

channel | the AgsChannel |

#### Returns

the GList containig AgsPattern.

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

Since: 3.1.0

### ags_channel_set_pattern ()

    void
    ags_channel_set_pattern (AgsChannel *channel,
                             GList *pattern);

Set pattern by replacing existing.

#### Parameters

channel | the AgsChannel |
pattern | the GList containing AgsPattern. | [element-type AgsAudio.Pattern][transfer full]

Since: 3.1.0

### ags_channel_add_pattern ()

    void
    ags_channel_add_pattern (AgsChannel *channel,
                             GObject *pattern);

Removes a pattern.

#### Parameters

channel | an AgsChannel |
pattern | the AgsPattern |

Since: 3.0.0

### ags_channel_remove_pattern ()

    void
    ags_channel_remove_pattern (AgsChannel *channel,
                                GObject *pattern);

Removes a pattern.

#### Parameters

channel | an AgsChannel |
pattern | the AgsPattern |

Since: 3.0.0

### ags_channel_get_playback ()

    GObject *
    ags_channel_get_playback (AgsChannel *channel);

Get playback.

#### Parameters

channel | the AgsChannel |

#### Returns

the AgsPlayback.

[transfer full]

Since: 3.1.0

### ags_channel_set_playback ()

    void
    ags_channel_set_playback (AgsChannel *channel,
                              GObject *playback);

Set playback.

#### Parameters

channel | the AgsChannel |
playback | the AgsPlayback |

Since: 3.1.0

### ags_channel_get_recall_id ()

    GList *
    ags_channel_get_recall_id (AgsChannel *channel);

Get recall id.

#### Parameters

channel | the AgsChannel |

#### Returns

the GList containig AgsRecallID.

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

Since: 3.1.0

### ags_channel_set_recall_id ()

    void
    ags_channel_set_recall_id (AgsChannel *channel,
                               GList *recall_id);

Set recall id by replacing existing.

#### Parameters

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

Since: 3.1.0

### ags_channel_add_recall_id ()

    void
    ags_channel_add_recall_id (AgsChannel *channel,
                               AgsRecallID *recall_id);

Adds a recall id.

#### Parameters

channel | an AgsChannel |
recall_id | the AgsRecallID |

Since: 3.0.0

### ags_channel_remove_recall_id ()

    void
    ags_channel_remove_recall_id (AgsChannel *channel,
                                  AgsRecallID *recall_id);

Removes a recall id.

#### Parameters

channel | an AgsChannel |
recall_id | the AgsRecallID |

Since: 3.0.0

### ags_channel_get_recall_container ()

    GList *
    ags_channel_get_recall_container (AgsChannel *channel);

Get recall_container.

#### Parameters

channel | the AgsChannel |

#### Returns

the GList containig AgsRecallContainer.

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

Since: 3.1.0

### ags_channel_set_recall_container ()

    void
    ags_channel_set_recall_container (AgsChannel *channel,
                                      GList *recall_container);

Set recall_container by replacing existing.

#### Parameters

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

Since: 3.1.0

### ags_channel_add_recall_container ()

    void
    ags_channel_add_recall_container (AgsChannel *channel,
                                      GObject *recall_container);

Adds a recall container.

#### Parameters

channel | an AgsChannel |
recall_container | the AgsRecallContainer |

Since: 3.0.0

### ags_channel_remove_recall_container ()

    void
    ags_channel_remove_recall_container (AgsChannel *channel,
                                         GObject *recall_container);

Removes a recall container.

#### Parameters

channel | an AgsChannel |
recall_container | the AgsRecallContainer |

Since: 3.0.0

### ags_channel_get_play ()

    GList *
    ags_channel_get_play (AgsChannel *channel);

Get play.

#### Parameters

channel | the AgsChannel |

#### Returns

the GList containig AgsRecall.

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

Since: 3.1.0

### ags_channel_set_play ()

    void
    ags_channel_set_play (AgsChannel *channel,
                          GList *play);

Set play by replacing existing.

#### Parameters

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

Since: 3.1.0

### ags_channel_get_recall ()

    GList *
    ags_channel_get_recall (AgsChannel *channel);

Get recall.

#### Parameters

channel | the AgsChannel |

#### Returns

the GList containig AgsRecall.

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

Since: 3.1.0

### ags_channel_set_recall ()

    void
    ags_channel_set_recall (AgsChannel *channel,
                            GList *recall);

Set recall by replacing existing.

#### Parameters

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

Since: 3.1.0

### ags_channel_add_recall ()

    void
    ags_channel_add_recall (AgsChannel *channel,
                            GObject *recall,
                            gboolean play_context);

Adds a recall.

#### Parameters

channel | an AgsChannel |
recall | the AgsRecall |
play_context | `TRUE` if play context, else if `FALSE` recall context |

Since: 3.0.0

### ags_channel_insert_recall ()

    void
    ags_channel_insert_recall (AgsChannel *channel,
                               GObject *recall,
                               gboolean play_context,
                               gint position);

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

#### Parameters

channel | an AgsChannel |
recall | the AgsRecall |
play_context | `TRUE` if play context, else if `FALSE` recall context |
position | the position |

Since: 3.3.0

### ags_channel_remove_recall ()

    void
    ags_channel_remove_recall (AgsChannel *channel,
                               GObject *recall,
                               gboolean play_context);

Removes a recall.

#### Parameters

channel | an AgsChannel |
recall | the AgsRecall |
play_context | `TRUE` if play context, else if `FALSE` recall context |

Since: 3.0.0

### ags_channel_duplicate_recall ()

    void
    ags_channel_duplicate_recall (AgsChannel *channel,
                                  AgsRecallID *recall_id);

Duplicate AgsRecall template and assign `recall_id` to it.

#### Parameters

channel | the AgsChannel |
recall_id | the AgsRecallID |

Since: 3.0.0

### ags_channel_resolve_recall ()

    void
    ags_channel_resolve_recall (AgsChannel *channel,
                                AgsRecallID *recall_id);

Resolve step of initialization.

#### Parameters

channel | an AgsChannel |
recall_id | appropriate AgsRecallID |

Since: 3.0.0

### ags_channel_init_recall ()

    void
    ags_channel_init_recall (AgsChannel *channel,
                             AgsRecallID *recall_id,
                             AgsSoundStagingFlags staging_flags);

Prepare AgsRecall objects and invoke “run-init-pre”, “run-init-inter” or “run-init-post” as specified by `staging_flags` .

#### Parameters

channel | the AgsChannel |
recall_id | the AgsRecallID |
staging_flags | the stages to invoke |

Since: 3.0.0

### ags_channel_play_recall ()

    void
    ags_channel_play_recall (AgsChannel *channel,
                             AgsRecallID *recall_id,
                             AgsSoundStagingFlags staging_flags);

Run the specified steps by `recall_id` of `channel` .

#### Parameters

channel | the AgsChannel |
recall_id | the AgsRecallID |
staging_flags | the stages to invoke |

Since: 3.0.0

### ags_channel_done_recall ()

    void
    ags_channel_done_recall (AgsChannel *channel,
                             AgsRecallID *recall_id);

Done processing specified by `recall_id` .

#### Parameters

channel | the AgsChannel |
recall_id | the AgsRecallID |

Since: 3.0.0

### ags_channel_cancel_recall ()

    void
    ags_channel_cancel_recall (AgsChannel *channel,
                               AgsRecallID *recall_id);

Cancel processing specified by `recall_id` .

#### Parameters

channel | the AgsChannel |
recall_id | the AgsRecallID |

Since: 3.0.0

### ags_channel_cleanup_recall ()

    void
    ags_channel_cleanup_recall (AgsChannel *channel,
                                AgsRecallID *recall_id);

Cleanup processing specified by `recall_id` .

#### Parameters

channel | the AgsChannel |
recall_id | the AgsRecallID |

Since: 3.0.0

### ags_channel_start ()

    GList *
    ags_channel_start (AgsChannel *channel,
                       gint sound_scope);

Start `channel` 's `sound_scope` to do playback.

#### Parameters

channel | the AgsChannel |
sound_scope | the sound scope |

#### Returns

the GList containing AgsRecallID.

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

Since: 3.0.0

### ags_channel_stop ()

    void
    ags_channel_stop (AgsChannel *channel,
                      GList *recall_id,
                      gint sound_scope);

Stop `channel` 's `sound_scope` playback specified by `recall_id` .

#### Parameters

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

Since: 3.0.0

### ags_channel_check_scope ()

    GList *
    ags_channel_check_scope (AgsChannel *channel,
                             gint sound_scope);

Check `channel` 's `sound_scope` .

#### Parameters

channel | the AgsChannel |
sound_scope | the sound scope |

#### Returns

the GList containing AgsRecallID or `NULL` if not playing.

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

Since: 3.0.0

### ags_channel_collect_all_channel_ports ()

    GList *
    ags_channel_collect_all_channel_ports (AgsChannel *channel);

Retrieve all ports of AgsChannel.

#### Parameters

channel | the AgsChannel |

#### Returns

a new GList containing AgsPort.

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

Since: 3.0.0

### ags_channel_collect_all_channel_ports_by_specifier_and_context ()

    GList *
    ags_channel_collect_all_channel_ports_by_specifier_and_context
                                   (AgsChannel *channel,
                                    gchar *specifier,
                                    gboolean play_context);

Retrieve specified port of AgsChannel

#### Parameters

channel | an AgsChannel |
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_channel_get_level ()

    AgsChannel *
    ags_channel_get_level (AgsChannel *channel);

Get level.

#### Parameters

channel | the AgsChannel |

#### Returns

the level of `channel` as AgsChannel or `NULL` if no parent recycling.

[transfer full]

Since: 3.0.0

### ags_channel_recursive_set_property ()

    void
    ags_channel_recursive_set_property (AgsChannel *channel,
                                        gint n_params,
                                        gchar **parameter_name,
                                        GValue *value);

Recursive set property for AgsChannel.

#### Parameters

channel | the AgsChannel |
n_params | the count of paramter name and value pairs |
parameter_name | a string vector containing parameter names |
value | the value array |

Since: 3.0.0

### ags_channel_recursive_run_stage ()

    void
    ags_channel_recursive_run_stage (AgsChannel *channel,
                                     gint sound_scope,
                                     AgsSoundStagingFlags staging_flags);

Recursive run stage specified by `staging_flags` for matching `sound_scope` .

#### Parameters

channel | the AgsChannel |
sound_scope | the sound scope |
staging_flags | the staging flags |

Since: 3.0.0

### ags_channel_new ()

    AgsChannel *
    ags_channel_new (GObject *audio);

Creates a new instance of AgsChannel, linking tree to `audio` .

#### Parameters

audio | the AgsAudio |

#### Returns

a new AgsChannel

Since: 3.0.0

## Types and Values

### AGS_CHANNEL_MINIMUM_OCTAVE

    #define AGS_CHANNEL_MINIMUM_OCTAVE (0)

### AGS_CHANNEL_MAXIMUM_OCTAVE

    #define AGS_CHANNEL_MAXIMUM_OCTAVE (10)

### AGS_CHANNEL_DEFAULT_OCTAVE

    #define AGS_CHANNEL_DEFAULT_OCTAVE (AGS_CHANNEL_MINIMUM_OCTAVE)

### AGS_CHANNEL_MINIMUM_OCTAVE_SEMITONE

    #define AGS_CHANNEL_MINIMUM_OCTAVE_SEMITONE (0)

### AGS_CHANNEL_MAXIMUM_OCTAVE_SEMITONE

    #define AGS_CHANNEL_MAXIMUM_OCTAVE_SEMITONE (12)

### AGS_CHANNEL_DEFAULT_OCTAVE_SEMITONE

    #define AGS_CHANNEL_DEFAULT_OCTAVE_SEMITONE (AGS_CHANNEL_MINIMUM_OCTAVE_SEMITONE)

### AGS_CHANNEL_MINIMUM_SEMITONE

    #define AGS_CHANNEL_MINIMUM_SEMITONE (0)

### AGS_CHANNEL_MAXIMUM_SEMITONE

    #define AGS_CHANNEL_MAXIMUM_SEMITONE (128)

### AGS_CHANNEL_DEFAULT_SEMITONE

    #define AGS_CHANNEL_DEFAULT_SEMITONE (AGS_CHANNEL_MINIMUM_SEMITONE)

### AGS_CHANNEL_MINIMUM_NOTE_FREQUENCY

    #define AGS_CHANNEL_MINIMUM_NOTE_FREQUENCY (440.0 * exp((-69.0 / 12.0) * log(2.0)))

### AGS_CHANNEL_MAXIMUM_NOTE_FREQUENCY

    #define AGS_CHANNEL_MAXIMUM_NOTE_FREQUENCY (440.0 * exp((58.0 / 12.0) * log(2.0)))

### AGS_CHANNEL_DEFAULT_NOTE_FREQUENCY

    #define AGS_CHANNEL_DEFAULT_NOTE_FREQUENCY (AGS_CHANNEL_MINIMUM_NOTE_FREQUENCY)

### AGS_CHANNEL_MINIMUM_MIDI_NOTE

    #define AGS_CHANNEL_MINIMUM_MIDI_NOTE (0)

### AGS_CHANNEL_MAXIMUM_MIDI_NOTE

    #define AGS_CHANNEL_MAXIMUM_MIDI_NOTE (127)

### AGS_CHANNEL_DEFAULT_MIDI_NOTE

    #define AGS_CHANNEL_DEFAULT_MIDI_NOTE (AGS_CHANNEL_MINIMUM_MIDI_NOTE)

### enum AgsChannelFlags

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

#### Members

AGS_CHANNEL_BYPASS | don't apply any data |

### AGS_CHANNEL_ERROR

    #define AGS_CHANNEL_ERROR (ags_channel_error_quark())

### enum AgsChannelError

#### Members

AGS_CHANNEL_ERROR_LOOP_IN_LINK |  |

## Property Details

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

      “absolute-key”             int

The nth absolute key.

Owner: AgsChannel

Flags: Read / Write

Allowed values: [0,128]

Default value: 0

Since: 3.0.0

### The `“audio”` property

      “audio”                    AgsAudio *

The assigned AgsAudio aligning channels.

Owner: AgsChannel

Flags: Read / Write

Since: 3.0.0

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

      “audio-channel”            guint

The nth audio channel.

Owner: AgsChannel

Flags: Read

Default value: 0

Since: 3.0.0

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

      “buffer-size”              guint

The buffer size.

Owner: AgsChannel

Flags: Read / Write

Default value: 0

Since: 3.0.0

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

      “first-recycling”          AgsRecycling *

The containing AgsRecycling it takes it AgsAudioSignal from.

Owner: AgsChannel

Flags: Read

Since: 3.0.0

### The `“format”` property

      “format”                   guint

The format.

Owner: AgsChannel

Flags: Read / Write

Default value: 0

Since: 3.0.0

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

      “input-soundcard”          GObject *

The assigned input AgsSoundcard.

Owner: AgsChannel

Flags: Read / Write

Since: 3.0.0

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

      “input-soundcard-channel”  int

The input soundcard channel.

Owner: AgsChannel

Flags: Read / Write

Allowed values: >= -1

Default value: 0

Since: 3.0.0

### The `“key”` property

      “key”                      guint

The nth key.

Owner: AgsChannel

Flags: Read / Write

Allowed values: <= 12

Default value: 0

Since: 3.0.0

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

      “last-recycling”           AgsRecycling *

The containing AgsRecycling it takes it AgsAudioSignal from.

Owner: AgsChannel

Flags: Read

Since: 3.0.0

### The `“line”` property

      “line”                     guint

The nth line.

Owner: AgsChannel

Flags: Read

Default value: 0

Since: 3.0.0

### The `“link”` property

      “link”                     AgsChannel *

The assigned link as AgsChannel.

Owner: AgsChannel

Flags: Read / Write

Since: 3.0.0

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

      “midi-note”                guint

The nth midi note.

Owner: AgsChannel

Flags: Read / Write

Allowed values: <= 127

Default value: 0

Since: 3.0.0

### The `“next”` property

      “next”                     AgsChannel *

The assigned next AgsChannel.

Owner: AgsChannel

Flags: Read

Since: 3.0.0

### The `“next-pad”` property

      “next-pad”                 AgsChannel *

The assigned next pad AgsChannel.

Owner: AgsChannel

Flags: Read

Since: 3.0.0

### The `“note-frequency”` property

      “note-frequency”           double

The note frequency.

Owner: AgsChannel

Flags: Read / Write

Allowed values: [8.1758,12543.9]

Default value: 8.1758

Since: 3.0.0

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

      “note-key”                 char *

The assigned note key representing this channel.

Owner: AgsChannel

Flags: Read / Write

Default value: NULL

Since: 3.0.0

### The `“octave”` property

      “octave”                   int

The nth octave.

Owner: AgsChannel

Flags: Read / Write

Allowed values: [0,10]

Default value: 0

Since: 3.0.0

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

      “output-soundcard”         GObject *

The assigned output AgsSoundcard.

Owner: AgsChannel

Flags: Read / Write

Since: 3.0.0

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

      “output-soundcard-channel” int

The output soundcard channel.

Owner: AgsChannel

Flags: Read / Write

Allowed values: >= -1

Default value: 0

Since: 3.0.0

### The `“pad”` property

      “pad”                      guint

The nth pad.

Owner: AgsChannel

Flags: Read

Default value: 0

Since: 3.0.0

### The `“pattern”` property

      “pattern”                  gpointer

The containing AgsPattern.

[transfer full]

Owner: AgsChannel

Flags: Read / Write

Since: 3.0.0

### The `“play”` property

      “play”                     gpointer

The containing AgsRecall in play-context.

[transfer full]

Owner: AgsChannel

Flags: Read / Write

Since: 3.0.0

### The `“playback”` property

      “playback”                 AgsPlayback *

The assigned AgsPlayback.

Owner: AgsChannel

Flags: Read / Write

Since: 3.0.0

### The `“prev”` property

      “prev”                     AgsChannel *

The assigned prev AgsChannel.

Owner: AgsChannel

Flags: Read

Since: 3.0.0

### The `“prev-pad”` property

      “prev-pad”                 AgsChannel *

The assigned prev pad AgsChannel.

Owner: AgsChannel

Flags: Read

Since: 3.0.0

### The `“recall”` property

      “recall”                   gpointer

The containing AgsRecall in recall-context.

[transfer full]

Owner: AgsChannel

Flags: Read / Write

Since: 3.0.0

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

      “recall-container”         gpointer

The containing AgsRecallContainer.

[transfer full]

Owner: AgsChannel

Flags: Read / Write

Since: 3.0.0

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

      “recall-id”                gpointer

The assigned AgsRecallID.

[transfer full]

Owner: AgsChannel

Flags: Read / Write

Since: 3.0.0

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

      “recycling-context”        gpointer

The containing AgsRecyclingContext.

[transfer full]

Owner: AgsChannel

Flags: Read / Write

Since: 3.0.0

### The `“samplerate”` property

      “samplerate”               guint

The samplerate.

Owner: AgsChannel

Flags: Read / Write

Default value: 0

Since: 3.0.0

## Signal Details

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

    void
    user_function (AgsChannel *channel,
                   GObject    *recall_id,
                   gpointer    user_data)

The ::cancel-recall signal is invoked during termination of playback.

#### Parameters

channel | the AgsChannel |
recall_id | the appropriate 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 (AgsChannel *channel,
                   int         sound_scope,
                   gpointer    user_data)

The ::check-scope signal gives you control of checking scope.

#### Parameters

channel | the AgsChannel |
sound_scope | the sound 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 (AgsChannel *channel,
                   GObject    *recall_id,
                   gpointer    user_data)

The ::cleanup-recall signal is invoked during termination of playback.

#### Parameters

channel | the AgsChannel |
recall_id | the appropriate 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 (AgsChannel *channel,
                   GObject    *recall_id,
                   gpointer    user_data)

The ::done-recall signal is invoked during termination of playback.

#### Parameters

channel | the AgsChannel |
recall_id | the appropriate 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 (AgsChannel *channel,
                   GObject    *recall_id,
                   gpointer    user_data)

The ::duplicate-recall signal is invoked during playback initialization.

#### Parameters

channel | the AgsChannel |
recall_id | the appropriate AgsRecallID |
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 (AgsChannel *channel,
                   GObject    *recall_id,
                   guint       staging_flags,
                   gpointer    user_data)

The ::init-recall signal is invoked during playback initialization.

#### Parameters

channel | the AgsChannel |
recall_id | the appropriate 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 (AgsChannel *channel,
                   GObject    *recall_id,
                   guint       staging_flags,
                   gpointer    user_data)

The ::play-recall signal is invoked during playback run.

#### Parameters

channel | the AgsChannel |
recall_id | the appropriate 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 (AgsChannel *channel,
                   int         sound_scope,
                   guint       staging_flags,
                   gpointer    user_data)

The ::recursive-run-stage signal gives you control of checking scope.

#### Parameters

channel | the AgsChannel |
sound_scope | the sound scope |
staging_flags | the staging flags |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“recycling-changed”` signal

    void
    user_function (AgsChannel *channel,
                   GObject    *old_start_region,
                   GObject    *old_end_region,
                   GObject    *new_start_region,
                   GObject    *new_end_region,
                   GObject    *old_start_changed_region,
                   GObject    *old_end_changed_region,
                   GObject    *new_start_changed_region,
                   GObject    *new_end_changed_region,
                   gpointer    user_data)

The ::recycling-changed signal is invoked to notify modified recycling tree.

#### Parameters

channel | the AgsChannel recycling changed |
old_start_region | first AgsRecycling |
old_end_region | last AgsRecycling |
new_start_region | new first AgsRecycling |
new_end_region | new last AgsRecycling |
old_start_changed_region | modified link AgsRecycling start |
old_end_changed_region | modified link AgsRecyclig end |
new_start_changed_region | replacing link AgsRecycling start |
new_end_changed_region | replacing link AgsRecycling end |
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 (AgsChannel *channel,
                   GObject    *recall_id,
                   gpointer    user_data)

The ::resolve-recall signal is invoked during playback initialization.

#### Parameters

channel | the AgsChannel |
recall_id | the appropriate AgsRecallID |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“start”` signal

    gpointer
    user_function (AgsChannel *channel,
                   int         sound_scope,
                   gpointer    user_data)

The ::start signal is invoked as playback starts.

#### Parameters

channel | the AgsChannel |
sound_scope | the sound scope |
user_data | user data set when the signal handler was connected. |

#### Returns

the GList containing AgsRecallID.

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

Flags: Run Last

Since: 3.0.0

### The `“stop”` signal

    void
    user_function (AgsChannel *channel,
                   gpointer    recall_id,
                   int         sound_scope,
                   gpointer    user_data)

The ::stop signal is invoked as playback stops.

#### Parameters

channel | the AgsChannel |
recall_id | the GList containing AgsRecallID |
sound_scope | the sound scope |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0