newsAdvanced Gtk+ Sequencer - News: GSequencer v2.0.0 - forecast

 
 
Latest News
Advanced Gtk+ Sequencer v2.2.5 released posted by jkraehemann, Tue 25 Jun 2019 06:43:09 PM UTC - 0 replies
GSequencer v2.1.53 for debian buster posted by jkraehemann, Fri 08 Mar 2019 11:01:12 PM UTC - 0 replies
Get emotional as debian buster is going to be released posted by jkraehemann, Thu 07 Mar 2019 12:46:59 AM UTC - 0 replies
State of GSequencer in debian buster posted by jkraehemann, Sun 03 Mar 2019 07:08:32 PM UTC - 0 replies
[Submit News]
[81 news in archive]

GSequencer v2.0.0 - forecast

Item posted by Joël Krähemann <jkraehemann> on Tue 06 Feb 2018 03:04:57 PM UTC.

The Advanced Gtk+ Sequencer branch 2.0.x was just created, few days ago. First a big refactoring will take place. I have tried to figure out common enumerations and specify them in ags/audio/ags_sound_enums.h. It looks currently like:

typedef enum{
  AGS_SOUND_ABILITY_PLAYBACK            = 1,
  AGS_SOUND_ABILITY_NOTATION            = 1 <<  1,
  AGS_SOUND_ABILITY_SEQUENCER           = 1 <<  2,
  AGS_SOUND_ABILITY_WAVE                = 1 <<  3,
  AGS_SOUND_ABILITY_MIDI                = 1 <<  4,
}AgsSoundAbilityFlags;

typedef enum{
  AGS_SOUND_BEHAVIOUR_PATTERN_MODE           = 1,
  AGS_SOUND_BEHAVIOUR_BULK_MODE              = 1 <<  1,
  AGS_SOUND_BEHAVIOUR_REVERSE_MAPPING        = 1 <<  2,
  AGS_SOUND_BEHAVIOUR_DEFAULTS_TO_OUTPUT     = 1 <<  3,
  AGS_SOUND_BEHAVIOUR_DEFAULTS_TO_INPUT      = 1 <<  4,
  AGS_SOUND_BEHAVIOUR_CHAINED_TO_OUTPUT      = 1 <<  5,
  AGS_SOUND_BEHAVIOUR_CHAINED_TO_INPUT       = 1 <<  6,
  AGS_SOUND_BEHAVIOUR_PERSISTENT             = 1 <<  7,
  AGS_SOUND_BEHAVIOUR_PERSISTENT_PLAYBACK    = 1 <<  8,
  AGS_SOUND_BEHAVIOUR_PERSISTENT_NOTATION    = 1 <<  9,
  AGS_SOUND_BEHAVIOUR_PERSISTENT_SEQUENCER   = 1 << 10,
  AGS_SOUND_BEHAVIOUR_PERSISTENT_WAVE        = 1 << 11,
  AGS_SOUND_BEHAVIOUR_PERSISTENT_MIDI        = 1 << 12,
  AGS_SOUND_BEHAVIOUR_PROPAGATE_DONE         = 1 << 13,
}AgsSoundBehaviourFlags;

typedef enum{
  AGS_SOUND_SCOPE_PLAYBACK,
  AGS_SOUND_SCOPE_NOTATION,
  AGS_SOUND_SCOPE_SEQUENCER,
  AGS_SOUND_SCOPE_WAVE,
  AGS_SOUND_SCOPE_MIDI,
  AGS_SOUND_SCOPE_LAST,
}AgsSoundScope;

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                 = 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_CANCEL              = 1 << 11,
  AGS_SOUND_STAGING_DONE                = 1 << 12,
  AGS_SOUND_STAGING_REMOVE              = 1 << 13,
}AgsSoundStagingFlags;

tyepdef enum{
  AGS_SOUND_STATE_IS_WAITING                  = 1,
  AGS_SOUND_STATE_IS_ACTIVE                   = 1 <<  1,
  AGS_SOUND_STATE_IS_PROCESSING               = 1 <<  2,
  AGS_SOUND_STATE_IS_TERMINATING              = 1 <<  3,
}AgsSoundStateFlags;

Resources only per ability

To distinguish what an AgsAudio or alike can do and what no, the AgsSoundAbilityFlags was created.

Behaviour of processing

Processing audio data has got many flavors and are updated, too.

The 5 scopes

The highlight are definitively the specified scopes. 2 of them are completely new: AGS_SCOPE_WAVE and AGS_SCOPE_MIDI. A scope is usually processed by its own thread. AgsWave has yet been added to the source code and is yet ready for use. But the addition of AgsMidi is still missing. It shall be able to record raw MIDI data and store it as SMF.

Staging specification

Better semantics of what is processed seems to be necessary as extending the capabilities of GSequencer.

State handling

An other common enumeration is done to tell what state the scope currently is in.

No messages in GSequencer v2.0.0 - forecast

 

Back to the top


Powered by Savane 3.5