Last Tuesday Beast 0.15.0 was released. This is most probably the last release that supports the Gtk+ Beast UI. We have most of the bits and pieces together to move towards the new EBeast UI and a new synthesis core in the upcoming months and will get rid of a lot of legacy code along the way.
For a bit of background, we started the migration to C++ some 10+ years ago, but really moving the code away from a GObject and GParamSpec type system and a GValue based IPC system proved to take much longer than originally anticipated. In addition, the Beast synthesis facilities (many of which were introduced ca 20 years ago) are far from state of the art by modern standards. In particular the way synthesis modules have to be manually connected and how basic synthesis devices still have to be created from scratch with Mono voice modules feels very inefficient.
And so, we have spent the last few months/year on laying the foundations for:
Re-modeling the synthesis core and modules, based on tracks with stereo device chains and supporting full automation at sample granularity for all module inputs and settings.
BeastSoundEngine and did away with all stability problems we had while linking Bse into Electron. As an additional bonus, with a bit of extra care, the UI can now also be run by Firefox 68, which hopefully might work as a separate UI client one day - once (or if) Servo Desktop Web Apps are implemented.
The changes to the synthesis core (B) are in the early stages, but important ground work has already been integrated, like the move of the
.bse file format to a new container format, and a lean layer to serialize the synthesis structures to XML. Stefan has several new synthesis module implementations up his sleeves, to be integrated once a modernized synthesis API is in place, that also supports full automation.