Hey! Unfiltered Audio Volume 1 was updated to 2.0.3 last night. This fixes a nasty bug that I really wish I would have caught before release: all three of the delay modules were crashing on load on Linux. This was only reported to me by @ilambert21, so many thanks to him for his patience and testing of about a half dozen builds.
So, what happened?
Well, for someone who has been developing plugins now for a decade, this is a bit embarrassing: I’m not sure. I cleaned up our Windowed Delay class to remove a small handful of casting warnings (i.e. two spots where I forgot an
f at the end of a number, so it was a
double instead of an intended
float, a spot where two
sin calls were replaced with
std::sin for the same reason, things that are theoretically minor like that). I’ve never encountered a reproducible segfault related to non-explicit
float casting, but it’s the only thing that changed between the broken build and the working one.
How did this get released?
I don’t have a computer specifically dedicated to Linux. Since first releasing HetrickCV for Rack 0.5, I have only had one Linux-specific bug report, and that was because I compiled with Ubuntu 18 instead of 16. Other than that, it’s been 2+ years without any issue, so I had naively assumed that the 2.0 update (which, for the Unfiltered modules, was pretty much just a change of knobs and a version bump) would continue that trend. Additionally, HetrickCV and Nonlinear Circuits 2.0 were both in open beta for the last month or so and I didn’t receive any Linux reports there, so I assumed that the Unfiltered modules would be safe.
How will I prevent this in the future?
For my convenience, I had been compiling the Linux modules using the Windows Subsystem for Linux, which gives me a full Linux environment on my primary Windows machine. It does not let me open Rack, though (even on Windows 11 with the new graphical subsystem… ALSA is not supported). I’ve ordered a Chromebook that will be a dedicated Linux laptop. I intend to use it to double-check all Linux builds before commercial releases. Additionally, I’ve purchased a CLion license, as the CLion linting tools have already fixed some knowledge gaps (such as the aforementioned
sin always returning
std::sin is properly templated) and were ultimately responsible for fixing this crash.
Regardless, my apologies to any Linux users who were affected. Even though I only received one report, I figured that I should post all this because there may be other users who were having crashes when loading old patches and thinking that it was Rack 2.0’s fault. If you did have issues with the Unfiltered modules on your Linux setup, download the new update and let me know if those issues persist.