Advanced Gtk+ Sequencer - News
Implementing ags-play-pattern recall and ags_input_next_active()
Item posted by Joël Krähemann <jkraehemann> on Fri 24 Mar 2017 08:30:02 PM UTC.
I think there can be much overhead reduced by replacing ags-copy-pattern recall with ags-play-pattern recall. In view of ags-copy-pattern what does decided to play a channel within ags_channel_play(). It comes with a heavy payload. It would make no sense to have ags_input_next_active().
Contrary ags-play-pattern does decide to play a channel within ags_audio_play(). This gives the advantage of being able to use ags_input_next_active() in ags_channel_recursive_play().
Like that entire parts of your audio processing tree can skip very early. Reducing much overhead doing actually nothing.
This is the prototype to skip not active channels:
AgsInput*
ags_input_next_active(AgsInput *input,
GObject *parent_recycling_context)
And shall be used by the recursive iteration function:
void
ags_channel_recursive_play(AgsChannel *channel,
AgsRecallID *recall_id, gint stage)
cheers,
Joël
Powered by Savane 3.14-8aba.
Corresponding source code