newsAdvanced Gtk+ Sequencer - News: GSequencer v3.3.x replaced all recalls by ags-fx engine

 
 
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]

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:

  • AgsRecall::duplicate()
  • AgsRecall::resolve-dependency()
  • AgsRecall::run-init-pre()
  • AgsRecall::run-init-inter()
  • AgsRecall::run-init-post()

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:

  • ags_audio_loop_set_staging_program()
  • ags_audio_thread_set_staging_program()
  • ags_channel_thread_set_staging_program()

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:

  • AgsRecallAudio
  • AgsRecallAudioRun
  • AgsRecallChannel
  • AgsRecallChannelRun
  • AgsRecallRecycling
  • AgsRecallAudioSignal

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

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

 

Back to the top


Powered by Savane 3.6