Compiling for Raspberry Pi 4

Okay, all good now! I’ll document my final setup here, in case someone tries to do the same.

First, since I have the 4GB RAM version of the Pi 4, I needed to dial in some swap so that the compilation could work, otherwise it would produce the fatal error right around trying to compile fluid_libmanipulation (see above). I added 4 GB to swap, but looking back probably 1 GB could have been enough.

Then I did everything according to the flucoma-pd docs & compile guide.

And it worked without errors (once I had enough RAM/swap). But somehow Pd v0.55 did NOT like it. And so somewhat hastily I did not test what @weefuzzy suggested above (sorry!), but just wiped the build folder and tried again, adding the flag (ARM version) mentioned here, which is -DCMAKE_CXX_FLAGS=-mcpu=native. My final build command looked like this:

cmake -DPD_PATH="/home/dietpi/pure-data" -DDOCS=OFF -DCMAKE_CXX_FLAGS=-mcpu=native ..

Now comes the extra-messy part: earlier, as a 0th step I actually just naively tried the pre-compiled linux distribution of flucoma-pd from here for lolz which did not work hence I tried to compile it locally. So I still had that FluidCorpusManipulation folder with all the abstractions, docs, data, and the incompatible externals. I noticed that this folder structure is slightly different from the one I got from the cloned repo (and not knowing whether Pd would be annoyed by that), notably that the externals do not live in the top-level folder, but under the pd_objects folder. So I decided to just copy over the contents of this pd_objects folder to that above-mentioned FluidCorpusManipulation folder to overwrite those incompatible externals with the freshly compiled ones like this:

cp -a /home/dietpi/flucoma-pd-rpi/flucoma-pd/pd_objects/. /home/dietpi/FluidCorpusManipulation/

Finally, as a test I wanted to load the overview patch and see if everything gets loaded successfully. From my /home/dietpi user folder:

pd -stderr -nogui -verbose -audiodev 0 -midiindev 2 -midioutdev 2 -path "./FluidCorpusManipulation" -lib "fluid_libmanipulation" ./FluidCorpusManipulation/FluidCorpusManipulationOverview.pd

This worked, but I haven’t tested anything else yet. But I guess this is a very good sign! :slight_smile:

If you do all this like I did, don’t panic in the end (like I did not), when you load the patch and seemingly get lots of failure logs like so:

EDIT: reached the comment character limit with this one, so will try to post it in the next comment.

As I have definitely noticed on the first try, you too can notice that Pd tries to load various extensions for the externals in a certain order and will fail until it tries the .pd_linux extension, or just the .pd one in case of an abstraction.

Another notable thing is that after it successfully loaded fluid.plotter and fluid.waveform, in both cases it printed out what looks like the source code for those? Curious. I don’t plan to try using GUI stuff on the RPI, so I can’t verify if this is anything to be afraid of, but it’s documented now.

Thanks for the help, I am super curious to see the potential of Flucoma on a small computer like this. :slight_smile:

Pd-0.55.0 ("") compiled for Debian (0.55.0+ds-1~bpo12+1) on 2024/06/18 at 07:11:57 UTC
float precision = 32 bits
verbose(4): input channels = 2, output channels = 2
verbose(4): tried ./fluid_libmanipulation.linux-arm64-32.so and failed
verbose(4): tried ./fluid_libmanipulation.linux-arm64-0.so and failed
verbose(4): tried ./fluid_libmanipulation.l_arm64 and failed
verbose(4): tried ./fluid_libmanipulation.pd_linux and failed
verbose(4): tried ./fluid_libmanipulation/fluid_libmanipulation.linux-arm64-32.so and failed
verbose(4): tried ./fluid_libmanipulation/fluid_libmanipulation.linux-arm64-0.so and failed
verbose(4): tried ./fluid_libmanipulation/fluid_libmanipulation.l_arm64 and failed
verbose(4): tried ./fluid_libmanipulation/fluid_libmanipulation.pd_linux and failed
verbose(4): tried ./fluid_libmanipulation.pd and failed
verbose(4): tried ./fluid_libmanipulation.pat and failed
verbose(4): tried ./fluid_libmanipulation/fluid_libmanipulation.pd and failed
verbose(4): tried ./FluidCorpusManipulation/fluid_libmanipulation.linux-arm64-32.so and failed
verbose(4): tried ./FluidCorpusManipulation/fluid_libmanipulation.linux-arm64-0.so and failed
verbose(4): tried ./FluidCorpusManipulation/fluid_libmanipulation.l_arm64 and failed
verbose(4): tried ./FluidCorpusManipulation/fluid_libmanipulation.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/FluidCorpusManipulationOverview.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ampslice~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ampslice~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ampslice~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ampslice~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.onsetslice~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.onsetslice~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.onsetslice~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.onsetslice~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.noveltyslice~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.noveltyslice~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.noveltyslice~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.noveltyslice~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.transientslice~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.transientslice~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.transientslice~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.transientslice~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufampslice.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufampslice.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufampslice.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufampslice.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufonsetslice.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufonsetslice.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufonsetslice.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufonsetslice.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnoveltyslice.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnoveltyslice.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnoveltyslice.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnoveltyslice.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.buftransientslice.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.buftransientslice.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.buftransientslice.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.buftransientslice.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ampgate~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ampgate~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ampgate~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ampgate~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufampgate.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufampgate.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufampgate.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufampgate.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.pitch~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.pitch~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.pitch~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.pitch~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufpitch.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufpitch.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufpitch.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufpitch.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.loudness~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.loudness~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.loudness~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.loudness~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufloudness.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufloudness.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufloudness.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufloudness.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.melbands~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.melbands~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.melbands~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.melbands~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufmelbands.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufmelbands.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufmelbands.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufmelbands.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.mfcc~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.mfcc~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.mfcc~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.mfcc~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufmfcc.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufmfcc.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufmfcc.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufmfcc.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.spectralshape~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.spectralshape~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.spectralshape~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.spectralshape~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufspectralshape.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufspectralshape.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufspectralshape.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufspectralshape.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.noveltyfeature~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.noveltyfeature~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.noveltyfeature~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.noveltyfeature~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.onsetfeature~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.onsetfeature~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.onsetfeature~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.onsetfeature~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ampfeature~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ampfeature~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ampfeature~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ampfeature~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.chroma~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.chroma~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.chroma~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.chroma~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnoveltyfeature.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnoveltyfeature.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnoveltyfeature.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnoveltyfeature.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufonsetfeature.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufonsetfeature.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufonsetfeature.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufonsetfeature.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufampfeature.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufampfeature.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufampfeature.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufampfeature.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufchroma.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufchroma.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufchroma.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufchroma.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.nmfmatch~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.nmfmatch~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.nmfmatch~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.nmfmatch~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufstft.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufstft.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufstft.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufstft.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnmfseed.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnmfseed.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnmfseed.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnmfseed.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.sines~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.sines~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.sines~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.sines~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufsines.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufsines.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufsines.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufsines.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.transients~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.transients~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.transients~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.transients~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.buftransients.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.buftransients.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.buftransients.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.buftransients.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.hpss~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.hpss~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.hpss~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.hpss~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufhpss.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufhpss.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufhpss.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufhpss.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnmf.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnmf.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnmf.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnmf.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.audiotransport~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.audiotransport~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.audiotransport~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.audiotransport~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufaudiotransport.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufaudiotransport.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufaudiotransport.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufaudiotransport.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.nmfmorph~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.nmfmorph~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.nmfmorph~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.nmfmorph~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.nmffilter~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.nmffilter~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.nmffilter~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.nmffilter~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnmfcross.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnmfcross.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnmfcross.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufnmfcross.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.stats.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.stats.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.stats.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.stats.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufstats.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufstats.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufstats.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufstats.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.concataudiofiles.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.concataudiofiles.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.concataudiofiles.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.concataudiofiles.pd_linux and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.concataudiofiles/fluid.concataudiofiles.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.concataudiofiles/fluid.concataudiofiles.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.concataudiofiles/fluid.concataudiofiles.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.concataudiofiles/fluid.concataudiofiles.pd_linux and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.concataudiofiles.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.concataudiofiles.pd and succeeded
warning: text delete ignoring extra argument:
 0
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.pd_linux and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray/fluid.multiarray.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray/fluid.multiarray.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray/fluid.multiarray.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray/fluid.multiarray.pd_linux and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufcompose.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufcompose.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufcompose.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufcompose.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufscale.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufscale.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufscale.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufscale.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufthresh.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufthresh.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufthresh.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufthresh.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufflatten.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufflatten.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufflatten.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufflatten.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufselect.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufselect.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufselect.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufselect.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufselectevery.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufselectevery.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufselectevery.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufselectevery.pd_linux and succeeded

(will continue below)

verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.plotter.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.plotter.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.plotter.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.plotter.pd_linux and succeeded
if {[catch {pd}]} {
    proc pd {args} {pdsend [join $args " "]}
}
proc fplot_ok {id} {
    set vid [string trimleft $id .]
    set var_width [concat var_width_$vid]
    set var_height [concat var_height_$vid]
    set var_outline [concat var_outline_$vid]
    set var_latch [concat var_latch_$vid]
    set var_snd [concat var_snd_$vid]
    set var_rcv [concat var_rcv_$vid]

    global $var_width
    global $var_height
    global $var_outline
    global $var_latch
    global $var_snd
    global $var_rcv

    set cmd [concat $id ok \
        [eval concat $$var_width] \
        [eval concat $$var_height] \
        [eval concat $$var_outline] \
        [eval concat $$var_latch] \
        [string map {"$" {\$} " " {\ } ";" "" "," "" "\\" "" "\{" "" "\}" ""} [eval concat $$var_snd]] \
        [string map {"$" {\$} " " {\ } ";" "" "," "" "\\" "" "\{" "" "\}" ""} [eval concat $$var_rcv]] \;]
    pd $cmd
    fplot_cancel $id
}
proc fplot_cancel {id} {
    set cmd [concat $id cancel \;]
    pd $cmd
}
proc fplot_properties {id width height outline latch snd rcv} {
    set vid [string trimleft $id .]
    set var_width [concat var_width_$vid]
    set var_height [concat var_height_$vid]
    set var_outline [concat var_outline_$vid]
    set var_latch [concat var_latch_$vid]
    set var_snd [concat var_snd_$vid]
    set var_rcv [concat var_rcv_$vid]

    global $var_width
    global $var_height
    global $var_outline
    global $var_latch
    global $var_snd
    global $var_rcv

    set $var_width $width
    set $var_height $height
    set $var_outline $outline
    set $var_latch $latch
    set $var_snd [string map {{\ } " "} $snd]
    set $var_rcv [string map {{\ } " "} $rcv]

    toplevel $id
    wm title $id {[fluid.plotter] Properties}
    wm protocol $id WM_DELETE_WINDOW [concat fplot_cancel $id]

    frame $id.size
    pack $id.size -side top
    label $id.size.lw -text "Width:"
    entry $id.size.w -textvariable $var_width -width 12
    label $id.size.lh -text "Height:"
    entry $id.size.h -textvariable $var_height -width 12
    pack $id.size.lw $id.size.w $id.size.lh $id.size.h -side left

    frame $id.tics
    pack $id.tics -side top
    label $id.tics.loutline -text "Outline:"
    checkbutton $id.tics.outline -variable $var_outline
    label $id.tics.llatch -text "                Latch Mode:"
    checkbutton $id.tics.latch -variable $var_latch
    pack $id.tics.loutline $id.tics.outline $id.tics.llatch $id.tics.latch -side left

    frame $id.snd_rcv
    pack $id.snd_rcv -side top
    label $id.snd_rcv.lsnd -text "Send symbol:"
    entry $id.snd_rcv.snd -textvariable $var_snd -width 12
    label $id.snd_rcv.lrcv -text "Receive symbol:"
    entry $id.snd_rcv.rcv -textvariable $var_rcv -width 12
    pack $id.snd_rcv.lsnd $id.snd_rcv.snd $id.snd_rcv.lrcv $id.snd_rcv.rcv -side left

    frame $id.buttonframe
    pack $id.buttonframe -side bottom -fill x -pady 2m
    button $id.buttonframe.cancel -text {Cancel} -command "fplot_cancel $id"
    button $id.buttonframe.ok -text {OK} -command "fplot_ok $id"
    pack $id.buttonframe.cancel -side left -expand 1
    pack $id.buttonframe.ok -side left -expand 1
}
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufinfo.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufinfo.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufinfo.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufinfo.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.waveform.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.waveform.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.waveform.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.waveform.pd_linux and succeeded
if {[catch {pd}]} {
    proc pd {args} {pdsend [join $args " "]}
}
proc fwf_ok {id} {
    set vid [string trimleft $id .]
    set var_width [concat var_width_$vid]
    set var_height [concat var_height_$vid]
    set var_outline [concat var_outline_$vid]
    set var_latch [concat var_latch_$vid]
    set var_snd [concat var_snd_$vid]
    set var_rcv [concat var_rcv_$vid]

    global $var_width
    global $var_height
    global $var_outline
    global $var_latch
    global $var_snd
    global $var_rcv

    set cmd [concat $id ok \
        [eval concat $$var_width] \
        [eval concat $$var_height] \
        [eval concat $$var_outline] \
        [eval concat $$var_latch] \
        [string map {"$" {\$} " " {\ } ";" "" "," "" "\\" "" "\{" "" "\}" ""} [eval concat $$var_snd]] \
        [string map {"$" {\$} " " {\ } ";" "" "," "" "\\" "" "\{" "" "\}" ""} [eval concat $$var_rcv]] \;]
    pd $cmd
    fwf_cancel $id
}
proc fwf_cancel {id} {
    set cmd [concat $id cancel \;]
    pd $cmd
}
proc fwf_properties {id width height outline latch snd rcv} {
    set vid [string trimleft $id .]
    set var_width [concat var_width_$vid]
    set var_height [concat var_height_$vid]
    set var_outline [concat var_outline_$vid]
    set var_latch [concat var_latch_$vid]
    set var_snd [concat var_snd_$vid]
    set var_rcv [concat var_rcv_$vid]

    global $var_width
    global $var_height
    global $var_outline
    global $var_latch
    global $var_snd
    global $var_rcv

    set $var_width $width
    set $var_height $height
    set $var_outline $outline
    set $var_latch $latch
    set $var_snd [string map {{\ } " "} $snd]
    set $var_rcv [string map {{\ } " "} $rcv]

    toplevel $id
    wm title $id {[fluid.waveform] Properties}
    wm protocol $id WM_DELETE_WINDOW [concat fwf_cancel $id]

    frame $id.size
    pack $id.size -side top
    label $id.size.lw -text "Width:"
    entry $id.size.w -textvariable $var_width -width 12
    label $id.size.lh -text "Height:"
    entry $id.size.h -textvariable $var_height -width 12
    pack $id.size.lw $id.size.w $id.size.lh $id.size.h -side left

    frame $id.tics
    pack $id.tics -side top
    label $id.tics.loutline -text "Outline:"
    checkbutton $id.tics.outline -variable $var_outline
    label $id.tics.llatch -text "                Latch Mode:"
    checkbutton $id.tics.latch -variable $var_latch
    pack $id.tics.loutline $id.tics.outline $id.tics.llatch $id.tics.latch -side left

    frame $id.snd_rcv
    pack $id.snd_rcv -side top
    label $id.snd_rcv.lsnd -text "Send symbol:"
    entry $id.snd_rcv.snd -textvariable $var_snd -width 12
    label $id.snd_rcv.lrcv -text "Receive symbol:"
    entry $id.snd_rcv.rcv -textvariable $var_rcv -width 12
    pack $id.snd_rcv.lsnd $id.snd_rcv.snd $id.snd_rcv.lrcv $id.snd_rcv.rcv -side left

    frame $id.buttonframe
    pack $id.buttonframe -side bottom -fill x -pady 2m
    button $id.buttonframe.cancel -text {Cancel} -command "fwf_cancel $id"
    button $id.buttonframe.ok -text {OK} -command "fwf_ok $id"
    pack $id.buttonframe.cancel -side left -expand 1
    pack $id.buttonframe.ok -side left -expand 1
}
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.s2f.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.s2f.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.s2f.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.s2f.pd_linux and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.s2f/fluid.s2f.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.s2f/fluid.s2f.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.s2f/fluid.s2f.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.s2f/fluid.s2f.pd_linux and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.s2f.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.s2f.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ds2text.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ds2text.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ds2text.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ds2text.pd_linux and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ds2text/fluid.ds2text.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ds2text/fluid.ds2text.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ds2text/fluid.ds2text.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ds2text/fluid.ds2text.pd_linux and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ds2text.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ds2text.pd and succeeded
warning: text delete ignoring extra argument:
 0
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ls2text.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ls2text.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ls2text.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ls2text.pd_linux and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ls2text/fluid.ls2text.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ls2text/fluid.ls2text.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ls2text/fluid.ls2text.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ls2text/fluid.ls2text.pd_linux and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ls2text.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.ls2text.pd and succeeded
warning: text delete ignoring extra argument:
 0
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.multiarray.pd and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.sinefeature~.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.sinefeature~.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.sinefeature~.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.sinefeature~.pd_linux and succeeded
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufsinefeature.linux-arm64-32.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufsinefeature.linux-arm64-0.so and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufsinefeature.l_arm64 and failed
verbose(4): tried /home/dietpi/./FluidCorpusManipulation/fluid.bufsinefeature.pd_linux and succeeded
verbose(4): priority 6 scheduling enabled.

verbose(4): running at normal (non-real-time) priority.

/usr/lib/puredata/bin/pd-watchdog
opened 0 MIDI input device(s) and 0 MIDI output device(s).

Cool, thanks for sticking with it @balintlaczko.

Weird that the plotter code should appear – although that’s how gui action in vanilla pd apparently works (by sending tcl code to the gui process). @tremblap, is the plotter code getting echoed to stdout or something? Or should we be looking for a way to tell when PD is running nogui?

1 Like

I literally copied the gui code from the very sparse documentation… and there are no native GUI code available to check what they do. My hunch is that the make code for the various nogui platform are dismissing the GUI targets altogether.