# Your audio data in AgsAudioSignal

AgsAudioSignal is the object orientated representation of your audio data. It has a GList with data pointer to audio buffers. There convenience functions to resize the stream.

- `void ags_audio_signal_stream_resize(AgsAudioSignal*, guint)`
- `void ags_audio_signal_stream_safe_resize(AgsAudioSignal*, guint)`
- `void ags_audio_signal_add_stream(AgsAudioSignal*)`

There exists a safe resize function because the audio signal might be in use and it doesn't allow to shrink beyond used entries. This could be fatal if an effect processor is using the stream and it gets freed as it uses it.

`void ags_audio_signal_duplicate_stream(AgsAudioSignal*, AgsAudioSignal*)` can be used to blue-print one audio signals buffer to an other audio signal. Or you might call `AgsAudioSignal* ags_audio_signal_get_template(GList*)` from your AgsRecycling internal GList of audio signals to get the template.