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

 
 
Latest News
Advanced Gtk+ Sequencer version 6.5.x posted by jkraehemann, Sun 11 Feb 2024 05:06:15 PM UTC
Advanced Gtk+ Sequencer version 6.3.5 posted by jkraehemann, Fri 19 Jan 2024 11:53:24 AM UTC
Advanced Gtk+ Sequencer v6.1.0 released posted by jkraehemann, Thu 28 Sep 2023 04:55:19 AM UTC
Advanced Gtk+ Sequencer v6.0.0 released posted by jkraehemann, Mon 21 Aug 2023 11:48:52 AM UTC
Advanced Gtk+ Sequencer v5.5.0 released posted by jkraehemann, Sat 05 Aug 2023 10:21:52 AM UTC

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



 

Back to the top

Powered by Savane 3.13-3230.
Corresponding source code