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

 
 
Latest News
GSequencer version 3.10.5 released posted by jkraehemann, Sun 29 Aug 2021 07:41:14 AM UTC - 0 replies
implement VST3 C API Wrapper posted by jkraehemann, Tue 10 Aug 2021 12:53:03 PM UTC - 0 replies
refactored utility functions posted by jkraehemann, Tue 03 Aug 2021 06:26:38 AM UTC - 0 replies
GSequencer version 3.9.1 released posted by jkraehemann, Wed 30 Jun 2021 06:07:07 AM UTC - 0 replies
preparation for migration to Gtk4 posted by jkraehemann, Thu 18 Feb 2021 10:38:40 AM UTC - 0 replies
[Submit News]
[103 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.7