newsAdvanced Gtk+ Sequencer - News

 
 

GSequencer v3.3.x replaced all recalls by ags-fx engine

Item posted by Joël Krähemann <jkraehemann> on Wed 20 May 2020 07:25:15 AM UTC.

The new release v3.3.3 provides a replacement for ags/audio/recall/ which is located in ags/audio/fx/. The new ags-fx engine relies on AgsRecall, too.

The improvement over the prior implementation is, that the new ags-fx engine only does AgsRecall::automate() and AgsRecall::run-inter() during playback. The initialization staging isn't changed. So the recalls get initialized as usual:


The staging program


AgsAudioLoop, AgsAudioThread and AgsChannelThread have got some additional functions, to control the staging program. It calls ags_channel_recursive_run_stage() as specified by:


The staging program uses AgsSoundStagingFlags from ags/audio/ags_sound_enums.h


typedef enum{
  AGS_SOUND_STAGING_CHECK_RT_DATA       = 1,
  AGS_SOUND_STAGING_RUN_INIT_PRE        = 1 <<  1,
  AGS_SOUND_STAGING_RUN_INIT_INTER      = 1 <<  2,
  AGS_SOUND_STAGING_RUN_INIT_POST       = 1 <<  3,
  AGS_SOUND_STAGING_FEED_INPUT_QUEUE    = 1 <<  4,
  AGS_SOUND_STAGING_AUTOMATE            = 1 <<  5,
  AGS_SOUND_STAGING_RUN_PRE             = 1 <<  6,
  AGS_SOUND_STAGING_RUN_INTER           = 1 <<  7,
  AGS_SOUND_STAGING_RUN_POST            = 1 <<  8,
  AGS_SOUND_STAGING_DO_FEEDBACK         = 1 <<  9,
  AGS_SOUND_STAGING_FEED_OUTPUT_QUEUE   = 1 << 10,
  AGS_SOUND_STAGING_FINI                = 1 << 11,
  AGS_SOUND_STAGING_CANCEL              = 1 << 12,
  AGS_SOUND_STAGING_DONE                = 1 << 13,
  AGS_SOUND_STAGING_REMOVE              = 1 << 14,
  AGS_SOUND_STAGING_RESET               = 1 << 15,
  AGS_SOUND_STAGING_FX                  = 1 << 16,
}AgsSoundStagingFlags;


Feature rich AgsRecall implementation


ags-fx-notation does everything related to AgsNotation like playback and recording from MIDI device. ags-fx-dssi and ags-fx-lv2 inherit it.

Another important thing is, the new fx recalls provide AgsRecall implementations for every context:


Further we don't use the run suffix anymore, but the processor suffix instead. Like AgsFxNotationAudioProcessor or AgsFxPatternAudioProcessor, which is basically your running AgsRecall.





by Joël

Back to the top

Powered by Savane 3.14-8aba.
Corresponding source code