Due to our current focus on developing Aloha, Sushi development has been a bit delayed, we aimed to release this much earlier than today. To compensate it is a very sizable set of changes - we thank you for all the comments and bug reports that helped us make Sushi and the Elk platform better. And apologies to those of you waiting for bug fixes for a long time.
Given the time passed since 0.10.3, this is a pretty big release with ~400 commits and many new features.
The main feature this release adds is dynamic loading of tracks and plugins. You can now load, delete and move tracks and plugins with a running instance of Sushi without any audio interruption. To support this, the gRPC interface for remote control has been significantly expanded and also grouped into sub-controllers. Push-like notifications have also been added to the gRPC interface so that a controlling gui does not need to poll for parameter changes or audio graph changes any more, but can react to changes instead.
Note that this new gRPC api rework breaks compatibility with previous versions of Sushi. Though our goal is that future updates will only add to this API and not break backwards compatibility.
Elkpy - our python wrapper for easier use of the gRPC API has also been updated to match the new api.
You can also build from source from github. Build instructions are in the repo.
Please post any questions or bug reports here or on github.
- Dynamic loading/unloading of tracks & plugins
- Runtime control of audio & midi routing
- Expanded gRPC control interface to support runtime control
- Push-style notifications over gRPC for parameters and audio graph changes
- Configurable OSC parameter output
- New Wav writer plugin
- New Mono summing plugin
- Aftertouch messages not forwarded in Alsa midi frontend
- Ensuring silence when track gain is 0
- Audio routing bug for mono tracks
Timing notifications, transport notifications and dynamic cv/gate configuration is not fully implemented and will be added to the next release.
The Elk development team