Where are the externals located? If they are in the project folder or in /root/Bela/projects/pd-externals
then they should be detected automatically. If this is a single-file library, then you may have to manually load the library ( I think [declare]
is the right object
Compiling puredata externals
they are in pd_externals/hcs.
i guess i need to specify that subfolder as a path? and if so, how?
- Edited
ok, after much trial and error:
adding a [declare -path /root/Bela/projects/pd-externals/hcs] object gets it to work.
i tried just to [declare] relative paths instead of the full path but that wouldn't work for some reason.
/// edit: of course, simply using [hcs/folder_list] works just as well. NEED NEW EYEBALLS.
learning every day.
and here was me thinking running a Pd file on hardware would be a no-brainer :/
anyway, this is a relief. happy camper!
Remork adding a [declare -path /root/Bela/projects/pd-externals/hcs] object gets it to work.
Yeah that's normal for Pd too, however the "problem" is that in the desktop version you can set paths through the global options, so you don't need them in the patch itself
so i noticed
anyway, guess it should become a habit to declare used libs from within the patch.. can imagine that might come in handy when sharing or returning to patches anyway. seems good practice.
onwards!
I now decided to gather pre-built externals here. I won't rebuild old ones, but any I will build or rebuild in the future will go there.
- Edited
Hello!
I'm trying to install the ipoke~ external. I tried the above examples for ggee and cyclone, and also helmhotz~ (thank you for these step by step!), which were successful. I tried to apply the same process for ipoke~ with its specific makefile but i cannot find the way to make it work. I'm new using Bela, i'm good with puredata but the rest... Still a bit confusing with my poor coding skills...
I got the source code here: http://puredata.info/Members/ipoke/ipoke_v.3_test1.zip/view
I tried copying the pd_linux only on pd-externals (in the IDE) but didn't made my objects work. i don't find the right way to compile it. Here is what I get when I try the "cyclone" way in the src file.
I tried to replace the parameters with LINUXFLAGS like in the helmholtz~ example, but this became very complicated.. I'm gonna try again, in between, would you have any clue? or is there another way? Thank you so much for your help!
marylougarou I tried copying the pd_linux only on pd-externals (in the IDE) but didn't made my objects work
that wouldn't work: it's probably a .pd_linux
file for x86 architecture, not for ARM.
marylougarou Here is what I get when I try the "cyclone" way in the src file.
the issue here is that the -Wall
and -Werror
flags mean, respectively "show all warnings" and "treat all warnings as fatal errors". In turn this causes the compilation to fail. The easiest fix is to edit the Makefile
and remove -Werror
from LINUXCFLAGS
. I would also remove them_pd.h
that is in that folder and add to LINUXCFLAGS
: -I/usr/local/lib/include
: the PD_INCLUDE
variable you are passing at the command line is ignored in this Makefile
. At the end you'd have the following in LINUXCFLAGS:
LINUXCFLAGS = -DPD -DUNIX -DICECAST -O3 -funroll-loops -fomit-frame-pointer \
-Wall -W -Wshadow -Wstrict-prototypes -fno-strict-aliasing -I/usr/local/include/libpd \
-Wno-unused -Wno-parentheses -Wno-switch -fPIC
With this, it builds fine for me.
is it possible that you pasted all the lines in one line? Then you should remove the \
. like this:
LINUXCFLAGS = -DPD -DUNIX -DICECAST -O3 -funroll-loops -fomit-frame-pointer -Wall -W -Wshadow -Wstrict-prototypes -fno-strict-aliasing -I/usr/local/include/libpd -Wno-unused -Wno-parentheses -Wno-switch -fPIC
Thanks a lot! It works PERFECTLY !
giuliomoro yes actually it was that + some typo!
for future records, I am uploading here the externals I build, including all build instructions. If you don't find your favourite external there, hopefully the instructions I used to build the others will help you building the ones you are interested in.
- Edited
Hello giuliomoro! First of all, many thanks for your great support here!
Please, is there a way for you to share the compiled libpd with all the Pd-l2ork externals?
I'm pretty interested on the fluid~ object so I could play SF2 soundfonts on Bela.
I went here https://github.com/BelaPlatform/Bela/issues/621 but I'm not sure all the externals from l2ork are there.
Thank you in advance!
evilplaymobil but I'm not sure all the externals from l2ork are there.
No they are not there, only the ones I built manually.
evilplaymobil I'm pretty interested on the fluid~ object so I could play SF2 soundfonts on Bela.
Link to the source code for it?
[unknown] Link to the source code for it?
The source code is here:
https://github.com/pd-l2ork/pd/tree/master/externals
The object [fluid~] seems to be part of the folder:
[ pd/externals/footils/ ].
is that the most recent version? It's like 8 years old ...
giuliomoro Oooh man, so sorry!
This is the one pointed by their site:
https://git.purrdata.net/jwilkes/purr-data/-/tree/master/externals
Hey
Just bought a second hand Bela and look forward for it to arrive in a near future.
So now I am doing some research.
One thing I use a lot in pd is list-abs. But yeah not really externals, as they are all abstractions.
List-abs work fine for Bela, right, since it's abstractions?
Thanks!
as long as none of those abstractions use any non-vanilla objects, i guess you should be fine
never heard of that collection, looks interesting.
externals work as well, i just found it a bit more involved compiling libraries - abstractions are easier to use.
just load them into the same folder that _main.pd is in, if i recall correctly.
yes, you can put them in the project folder, or create a dummy project pd-externals and put them all there so that they are accessible from all projects without having to duplicate them.