Faust patches built locally produce only noise

I followed https://github.com/RebelTechnology/OwlProgram to install everything locally on a Mac M1. I made sure that I had gcc-arm-none-eabi 12, not 13, as pointed out by @antisvin (thanks for that, would have cost me a lot of time if you didn’t mention this!).
Building Faust patches seems to work just fine, but if I load them on the Lich, then nothing but noise erupts from it. I don’t mean ‘the patch sounds noisy’. I mean: there is nothing even recognizable in the patch, it is only hard irregular noise. The same patches work just fine on the rebeltech.org online version btw, but since it is down I’m trying locally.

There is another thread about the online version using an older version of Faust (Faust anti-aliased library error?). Could that be the same issue? If so, any way to resolve this?

Here’s an example of the code I’m trying:

declare name "DubDelay";
declare description "Pitch shifting delay with filter";

import("stdfaust.lib");
import("owl.lib");
import("yrnlib.dsp");

minDelay = 436;
maxDelay = 96000;

timeCtrl = hslider("Time[OWL:A]", 12000, minDelay, maxDelay, 1) : si.smoo;
feedbackCtrl = hslider("Feedback[OWL:B]", 0.9, 0, 1.2, 0.0001);
filterCenterCtrl = hslider("EQCenter[OWL:C]", 4, 0, 9, 0.0001);
filterHalfWidthCtrl = hslider("EQWidth[OWL:D]", 4, 0.1, 4, 0.0001);

limiter = ma.tanh;

delay = de.fdelayltv(8, maxDelay, timeCtrl);

filterLowest = 65.41;
filterLow = filterLowest * 2^(filterCenterCtrl - filterHalfWidthCtrl) : min(15000) : max(filterLowest);
filterHigh = filterLowest * 2^(filterCenterCtrl + filterHalfWidthCtrl) : min(16000) : max(filterLowest + 30);
filter = fi.bandpass(1, filterLow, filterHigh);

filterdelay = (+ ~ (limiter : delay : filter : *(feedbackCtrl))) : *(0.9);

process = _,_ : filterdelay,filterdelay : _,_;

Could you check if you have the same problem with this branch ? I think upstream OwlProgram version won’t work with recent versions of FAUST.

Same result. With both the original and your fork, the Lich recognises the patch (it loads and the name can be queried), but it immediately starts spewing garbage. I tried some other patches: the ones that don’t use the adc do not spew noise, but other than that, they don’t work either. Don’t seem to respond to any kind of input.

Hi!

Maybe you want to also try 10.3 from here. I know it’s old, but recently I had a situation in which only this version worked. You might just try it out.

Hope that helps

Btw, which version of FAUST are you using to build this? You might have to install or build a recent version if you’re using something old.

Also, make sure that you run make realclean; make libs again when switching GCC. And probably make clean to make sure that patch gets rebuilt.

I’m running the latest Faust (version 2.69.3) and gcc-arm-none-eabi 12.2.rel1-1, currently offered by apt-get in a debian docker image (trying different things… I also tried Mac M1 native with similar version, docker arm, different versions of gcc-arm-eabi, older versions of Faust). I tried going back to older versions of Faust, but they stop being able to build due to old dependencies pretty fast and the oldest one still had the same noise output.

I indeed always do make realclean before switching anything and make clean before doing make FAUST=dubdelay clean patch. The patch.bin I then upload with a pre-built release version of FirmwareSender.

Thanks for any help or suggestions guys. Much appreciated!

Ok, your program versions sound reasonable. However, I think you wouldn’t be able to use recent version of FAUST with upstream OpenWare repository, you should most likely test with my fork. The problem is that there are some changes to memory allocator in generated code, so OpenWare is only compatible with older FAUST version that is used on their web server. I will check that my fork still works with latest FAUST again a bit later.

Also, you don’t have to manually send patches with FirmwareSender, instead of make patch you can run make load to load the patch in memory or make store SLOT=.. to store it in a particular slot on flash.

It tried your fork yesterday, but it was the same result. make load doesn’t work from within docker on mac, that’s why I run it separately, natively on the mac.