Ok, I'm keen in powering through with pd for now, and will document issues that I hit. Uploading and using the hello world patch was easy as, no issues there. Writing my own tremolo patch with limited vanilla pd objects ([osc~]) and it was all fine too. As mentioned above I'm a fan of the rjlib library (https://puredata.info/downloads/rjlib), but some of their patches expose holes in the Heavy compiler.
Issue 1: Heavy does not support [list] - equivalent found
I was using rjlib's [u_highpassq.pd], which used [list]. At first when the compilation failed all I saw was this:
mv: cannot stat ‘/tmp/owl/owl-build-lFETEP/c/*’: No such file or directory make: *** [/tmp/owl/owl-build-lFETEP/Source/Heavy_owl.h] Error 1 make: *** [heavy] Error 2 ERROR: Patch build failed.
But click on the Stdout tab to see the errors that caused the error
Building patch untitled-d51252a7ba6a 1) e[91mErrore[0m pd2hv: biquad6 ------- in "_main.pd/mosfez-trem-mono.pd/u_lowpassq.pd/biquad6 -------" @ (x:0, y:0): Don't know how to parse object "list". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
The solution for me was to replace [list] with something else. The super helpful people at pdpatchrepo.info responded with ideas, all of which worked (https://forum.pdpatchrepo.info/topic/12820/replacement-for-list/3)
Issue 2: Heavy does not support numbers in [unpack] - workaround found
Warninge[0m pd2hv: [unpack 0 0 0 0 0] in "_main.pd/mosfez-trem-mono.pd/e_beequad.pd/zeros" @ (x:208, y:103): Heavy only supports arguments 'f' and 's' to unpack.
My patch contained [unpack 0 0 0 0 0], I changed this to [unpack f f f f f]. As my patch doesn't appear to use the default values, this works fine. I assume that a [loadbang] into a [0 0 0 0 0( could always prime the unpack with a bunch of default values, if I'm understanding it right.
Issue 3: Heavy does not accept argument and control connections to [czero~]
Warninge[0m pd2hv: zeros in "_main.pd/mosfez-trem-mono.pd/e_beequad.pd/zeros" @ (x:386, y:79): [czero~] accepts only signal input. Arguments and control connections are ignored.
This one is odd. At first I had this:
I figured it was complaining about those control connections from [r $0-clear] to [czero~], and as I wasn't using the clear functionality I removed those lines. But even when the only connections to [czero~] are signal connections, I still get the error saying only signal inputs are allowed.
@jrp and @mars I feel like I've hit something similar to what you were talking about earlier in the thread. I'd like to use [czero~] rather than [rzero_rev~] like you jrp, but compilation is erroring out due to that same conditional branch during compilation:
What's odd is that I'm not wanting to use any arguments and I still get the error. Did either of you make any progress on this or find out anything new?