Hi All,
I’ve been working on a SuperCollider extension wrapping the DSP code from the excellent Open303 project.
It builds and works absolutely fine on my (intel) MacBook Pro and an M1 iMac at work.
It builds for Windows and generic Linux machines via the GitHub action generated by the Cookiecutter SuperCollider plugin template (though I’ve not managed to test it on these platforms).
Unfortunately, though, I can’t get it working on my RPi-4-based Norns Shield. It compiles without errors, and seemingly runs without producing any errors in SuperCollider, but is sadly silent.
By commenting out parts of the code, I’ve managed to isolate the problem to the emulated TB-303 filter part (oscillator, envelopes and pre and post-“TeeBee” filter high-pass and all-pass filters all seem to work as intended).
Unfortunately, the main filter appears to be the most complicated part of the codebase, and depends on a number of other files.
Does anyone here have any experience building custom plugins for RPi? I’m afraid I’m not very experienced writing C++ (or with low-level programming in general, to be honest), so I’m not sure what my next move might be at this point, other than to throw myself on the mercy of some kind soul who might be able to spot something in the files below that might potentially cause problems on an ARM/Unix platform like the RPi.
Main “TeeBee” filter class:
Included one-pole filter:
This filter class is used in a couple of other places, and seems to work in those contexts (called at non-oversampled rate), so I’m thinking the problem probably doesn’t lie here.
My suspicions really lie with the files below, however, specifically the __asm
instructions contained in both. I’ve commented those out in my code completely, but perhaps the fallback non-assembly methods don’t work as intended or don’t fully replicate the functionality of the ASM code.
NumberManipulations.h (lines 27-31, 63-67)
RealFunctions.h (lines 129-134)
I know it’s a big ask to expect anyone to comb through all these files, but I’m a bit stuck, as sadly the DSP code goes way over my head. I’ve tried contacting the OG developer, but understandably (since this is an old project) he’s not responded.
It sounds great in SuperCollider on my Mac! I’d really love to be able to use it on my Norns script, too!