All the changes are now merged, and provided a Rust and Haskell toolchain, running make && make install now produce the following standalone binaries:
[+] Installed STANDALONE: ~/.local/bin/pluguzu
[+] Installed CLAP: ~/.clap/pluguzu.clap
[+] Installed VST3: ~/.vst3/pluguzu.vst3
With the audio samples management and the events' highlight, I had to tweak the core logic to ensure a smooth audio callback, and based on a local benchmark, pluguzu seems to work fine up to 200k events per four bars, e.g. with such code:
stack [
fast "50000" $ n "c3",
s "tok*4"
]
… beyond that, the rendering may take too long and starve the cpu.
I think the implementation is accurate timing wise, but I'm still on the look out for synchronization issues with the external clock. For example, reading the bar position may have some (sub millisecond) micro jitters, and perhaps more work is needed to ensure perfect accuracy. When that happens, a warning is printed, and I'd love to gather more data when that occurs.
Also the code editor, provided by egui, is usable, but perhaps a different toolkit can be used, or even a terminal emulator to run vim/emacs might be possible...
Finally, I'd love to improve the dirt sampler by backporting the missing features from superdirt/superdough, and it would be nice to support the new mondo notation too. But that would be a story for another day!
Feel free to open an issue if pluguzu doesn't work for you!
Take care:)