Advanced Gtk+ Sequencer - News
Advanced Gtk+ Sequencer v2.2.x - ambiguity of the C language regarding concurrency
Item posted by Joël Krähemann <jkraehemann> on Tue 28 May 2019 02:33:42 AM UTC.
After some development break, I will be back with full power. It was a time make some thoughts and talk on IRC. The ANSI C language doesn't cover all aspects of computing. Especially, as regarding the hardware details. This situation is going to shape the next release 2.2.x.
I learned about the cache-coherency protocol. Finally, came to the conclusion under certain circumstances we can omit the read-read and read-write locks. Yes exactly, read-write locks can be disabled if the document I read is right. This is related to the design of GSequencer.
However, only the deterministic engine mode is aware of race-conditions.
Note, the C language doesn't tell how HW behaves during concurrent access.
Grained mutex control during compilation
There won't any mutex removed but rather controlled by conditional compilation. Thus I want to add 2 new macros:
#define AGS_NO_READ_READ_LOCK
#define AGS_NO_READ_WRITE_LOCK
These macros should be used by AgsRecall and AgsAudioSignal.
Better plugin experience
There are going to be additional command line option, to control if plugins shall be loaded during launch of the application.
- --load-ladspa
- --load-dssi
- --load-lv2
- --load-vst3
- --load-all
The UI shall be capable of adding plugins at runtime.
VST3 ANSI C wrapper
Few days ago, I started to write a C wrapper of VST3 SDK. I am unsure how far I get with the support, until release.
by Joël
Powered by Savane 3.13-54b4.
Corresponding source code