There a well know set of recalls described here. Additionally you might
want to take advantage of recalls interfacing plugin APIs like LADSPA, DSSI
or LV2. You can instantiate them simply with
GList* ags_fx_factory_create(AgsAudio*, AgsRecallContainer*, AgsRecallContainer*, gchar*, gchar *, gchar *, guint, guint, guint, guint, gint, guint, guint)
Example 10.1. Using ags_fx_factory_create()
#include <glib.h> #include <glib-object.h> #include <ags/libags.h> #include <ags/libags-audio.h> AgsAudio *audio; AgsRecallContainer *play_container, *recall_container; AgsApplicationContext *application_context; GObject *current_soundcard; GList *start_soundcard; GList *start_recall; guint audio_channels; guint output_pads, input_pads; ags_audio_application_context_new(); /* get application context and soundcard */ application_context = ags_application_context_get_instance(); start_soundcard = ags_sound_provider_get_soundcard(AGS_SOUND_PROVIDER(application_context)); current_soundcard = start_soundcard->data; /* creat audio and resize channels */ audio_channels = 2; output_pads = 1; input_pads = 88; audio = ags_audio_new(current_soundcard); ags_audio_set_audio_channels(audio, audio_channels); ags_audio_set_pads(audio, AGS_TYPE_OUTPUT, output_pads); ags_audio_set_pads(audio, AGS_TYPE_INPUT, input_pads); /* add ags-fx-notation */ play_container = ags_recall_container_new(); recall_container = ags_recall_container_new(); start_recall = ags_fx_factory_create(audio, play_container, recall_container, "ags-fx-notation", NULL, NULL, 0, 0, 0, 0, 0, (AGS_FX_FACTORY_ADD | AGS_FX_FACTORY_INPUT), 0); g_list_free_full(start_recall, (GDestroyNotify) g_object_unref); /* add ags-fx-volume */ play_container = ags_recall_container_new(); recall_container = ags_recall_container_new(); start_recall = ags_fx_factory_create(audio, play_container, recall_container, "ags-fx-volume", NULL, NULL, 0, audio_channels, 0, input_pads, 0, (AGS_FX_FACTORY_ADD | AGS_FX_FACTORY_INPUT), 0); g_list_free_full(start_recall, (GDestroyNotify) g_object_unref); g_list_free_full(start_soundcard, (GDestroyNotify) g_object_unref);
ags-fx-buffer
Buffer audio data, produces new destination as on source occurs AgsRecycling::add_audio_signal().
ags-fx-playback
Play or capture audio data and store it in wave objects.
ags-fx-volume
Adjust volume of audio data.
ags-fx-peak
Calculate peak of audio data.
ags-fx-eq10
Adjust 10 band equalizer.
ags-fx-analyse
Get frequency hints using FFTW3.
ags-fx-envelope
Apply envelope data per piano roll note or pattern note.
ags-fx-pattern
Play audio data based on boolean patterns.
ags-fx-notation
Play, capture and feed audio data based on notation.
ags-fx-ladspa
Interface LADSPA plugins.
ags-fx-dssi
Interface DSSI plugins.
ags-fx-lv2
Interface LV2 plugins.
ags-fx-vst3
Interface VST3 plugins - requires libags-vst.so to be available.