newsAdvanced Gtk+ Sequencer - News: Implementing ags-play-pattern recall and ags_input_next_active()

 
 
Latest News
GSequencer v3.6.x release goals posted by jkraehemann, Fri 31 Jul 2020 10:17:04 AM UTC - 0 replies
GSequencer v3.4.x release goals posted by jkraehemann, Thu 11 Jun 2020 06:58:14 PM UTC - 0 replies
GSequencer v3.3.x replaced all recalls by ags-fx engine posted by jkraehemann, Wed 20 May 2020 07:25:15 AM UTC - 0 replies
Refactor GSequencer's recalls - the ags-fx engine posted by jkraehemann, Sun 03 May 2020 12:08:19 AM UTC - 0 replies
GSequencer v3.3.x release goals posted by jkraehemann, Fri 17 Apr 2020 12:36:11 PM UTC - 0 replies
[Submit News]
[97 news in archive]

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

No messages in Implementing ags-play-pattern recall and ags_input_next_active()

 

Back to the top


Powered by Savane 3.5