great that you got that working!
looks like a weird lib what are you using it for?
Compiling puredata externals
Remork I am implementing a Bela version of my Tangible Scores project (mostly concatenative synthesis): https://tamlab.ufg.at/projects/tangible-scores/ Thanks again for the tip!
oh wow! looks great!
giuliomoro git clone https://github.com/giuliomoro/pure-data &&\
cd pure-data &&\
scp src/*h root@192.168.7.2:/usr/local/include/libpd/
Hi and thanks so much for your help !
Sorry abut this issue, but it seems that this first command line doesn't work.
Link mentionne in it seems to fail.
Also, I have this error message in my terminal (mac 10.14.6)
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
I try to compile and install "ggee"
All the detailed procedure fail.
Also need to install "iemlib" and "moonlib"
Help needed please ?
All the best,
Damien
heliopolarthing Sorry abut this issue, but it seems that this first command line doesn't work.
Link mentionne in it seems to fail.
git clone https://github.com/giuliomoro/pure-data
should definitely work, the link is still active.
heliopolarthing Also, I have this error message in my terminal (mac 10.14.6)
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
What line do you execute that triggers this error? If you are trying to build an external on Bela, this error means that you ran some commands on your computer instead of Bela.
I follow this procedure >
Now I found some time to do it (Friday night, 2am, of course).
Preparation:
- get extra header files needed to compile Cyclone (and ggee, and others) on Bela:
- on your computer open a terminal and:
git clone https://github.com/giuliomoro/pure-data &&\
cd pure-data &&\
scp src/*h root@192.168.7.2:/usr/local/include/libpd/
I tried your simpler line >
git clone https://github.com/giuliomoro/pure-data
And it still don't work.
Follow your advices, I type these command lines from my Mac Os terminal
right you may have an issue with your xcode tools installation, which apparently Apple is really good at screwing up (this is unrelated to Bela). You may want to google for that and see if you find a way to fix it helps fixes it.
Alternatively, you can avoid the first line and instead download this zip archive and uncompress it.
- Edited
I had a further look: many libraries are already built for ARM (Bela's architecture, more precisely armv7) and are available via Deken. A possible Deken workflow to obtain pre-built libraries this way from Deken:
- open the most recent Pd on your desktop
- open the "Help -> Find Externals" dialog (aka Deken)
- at the bottom click "More -> Preferences"
- in the "Install externals to directory" section, check which one is the currently selected directory. Make a note of it somewhere else as you'll want to restore it later on. Click the
...
button. create a new folder in a convenient location (e.g.: Desktop), calledpd-externals-for-bela
, select this and close the file picker; make sure this stays selected in the radio button selection - in "platform settings" make sure "hide foreign architectures" is ticked
- in "platform settings" select "User-defined-platform" and enter (exactly)
Linux-armv7-32
- close the dialog with "OK"
- now search for libraries you need for Bela and if a result is produced, click on it and it will "install" it in the folder you selected above. You can do this for several libraries one after the other.
- once done, revert the settings in the "Install externals to directory" section and in "Platform settings" select "Default platform". Note that the above will not have installed those libraries in such a way that they are usable from Pd on the host. You can repeat the same procedure at the previous step to install them on the host (if you haven't already) now that you have restored the settings.
Now, you can install these libraries on Bela with a single command:
ssh root@bela.local mkdir -p Bela/projects/pd-externals # creates the pd-externals dummy project if needed
scp -r root@bela.local ~/Desktop/pd-externals-for-bela/* root@bela.local:Bela/projects/pd-externals/
(amend the path to the ~/Desktop/pd-externals-for-bela
folder if you used a different one ).
Note that you will need to use [declare -lib]
and/or [declare -path]
for the libraries and externals to become available on Bela. I recommend you do the same on the host (i.e.: remove any non-standard paths from Preferences->Paths and any libraries from Preferences->Startup).
In particular, iemlib
ships with a combination of abstractions and a single-file library, so you will need two declares, a -lib
for externals and a -path
for abstractions. If this is confusing, the official documentation tries to explain it.
In your case:
[declare -lib iemlib]
[declare -path iemlib]
[sparse_FIR~] // "external" verify it creates
[unsig~] // "abstraction" verify it creates
while moonlib
is a multi-file library so you should just need
[declare -path moonlib]
[char2f] // verify it creates
giuliomoro
hello, and thank you very much for your quick and precious help!
So I followed your advice by downloading the file directly. Then I used my terminal with this line:
cd /Users/MYUSERNAME/Desktop/pure-data-Bela-master
then
scp src/*h root@192.168.7.2:/usr/local/include/libpd/
install seems ok
Then, I compiled as indicated the external library ggee.
I attach here a part of the terminal return (impossible to attach a .txt or .pdf file including all of this terminal return) which contains a lot of "warning".
However, I continued until the end.
Do you think that these multiple "warnings" hinder the proper functioning of the operation? Or is this normal?
(sorry for my ignorance)
The test with the patch including the ggee/moog~ object seems ok insofar as the object appears well on the IDE and is well connected!
Thanks again,
Waiting for your confirmation concerning my doubt ("warnings")
I will now try to install the other two libraries (iemlib and moonlib)
heliopolarthing Do you think that these multiple "warnings" hinder the proper functioning of the operation? Or is this normal?
there's nothing of concern there.
heliopolarthing The test with the patch including the ggee/moog~ object seems ok insofar as the object appears well on the IDE and is well connected!
the fact that the object shows up in the IDE and has connections unfortunately does not mean it is recognised. Check the IDE's console for any "couldn't create" errors. If there are none, then you can assume it's all good.
Btw, also ggee seems to be available for Linux-armv7-32 from deken.
- Edited
giuliomoro
Sorry, I didn't refresh my web page before to answer you this morning.
Thanks again more
It's just perfect to download directly compiled armv7 versions from deken !
Download successful !
The installation seemed ok, but when I checked that the new objects were installed, the BELA IDE gave me the error
"couldn't create"
So I checked the contents of the >pd-externals folder by reconnecting to Bela via the terminal and via the line
ls ~/Bela/projects/pd-externals
The result is this
ggee pd-externals-for-bela
So I reinstalled with the correct addresses for each new isolated library
scp -r root@bela.local /Users/MYUSERNAME/Desktop/pd-externals-for-bela/iemlib root@bela.local:Bela/projects/pd -externals/
And so on.
I then checked for the presence of the files in pd-externals, then checked inside the folders. Everything is OK !
On the other hand, Impossible to create these new objects!
Only the ggee library works (the one I compiled myself following your first instructions)
- Edited
giuliomoro
This is what the IDE shows when I run the attached test patch
Running Pd 0.48-2
Audio channels in use: 2
Analog channels in use: 8
Digital channels in use: 16
No MIDI device enabled
bonk version 1.5
fiddle version 1.1 TEST4
pique 0.1 for PD version 23
sigmund~ version 0.07
error: ../pd-externals/iemlib/iemlib.l_arm: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.29' not found (required by ../pd-externals/iemlib/iemlib.l_arm)
sparse_FIR~
error: ... couldn't create
verbose(4): ... you might be able to track this down from the Find menu.
unsig~
error: ... couldn't create
char2f
error: ... couldn't create
have you tried prepending the library name?
so for example [iemlib/external_name~]
- Edited
The most worrying error there is
"version GLIBC_2.29 not found", thrown by iemlib. It means it may have been built against a more recent version of libm than what is currently on the board. I am confused though, because I don't have a iamlib.l_arm
file in my folder ... can you show the output of ls /root/Bela/projects/pd-externals/iemlib/iemlib*
? Either way, it would seem that the only way around this is to build it from source but I would expect that [unsig~]
should still work because it's an abstraction and in fact it works for me with the most recent version of the Bela code. I see you are using an old-ish version there with Pd 0.48-2, while we are now shipping 0.51.
lokki have you tried prepending the library name?
I think the -path
should take care of that. In fact it works for me with Bela's Pd 0.51: iemlib's library of externals is not loaded because of said error, which means that the spares_FIR~
external won't work , but the iemlib's abstraction [unsig~]
loads and so does moonlib's external [char2f]
.
@heliopolarthing I recommend you update your board's core code as explained here https://learn.bela.io/using-bela/bela-techniques/updating-bela/ and then try again and moonlib should work. Iemlib will need to be compiled. I can do that if you don't want to give it a try.
giuliomoro
Still perfect!
Thanks again
I did follow @lokki's advice.
And I made the same observation.
I then tried to compile iemlib with the same instructions as those detailed in post #100 (cyclone and ggee).
But still the same.
I then monitored the file contained in the bela via the terminal, and it appears a sparse_FIR~-help.pd and a sparse_FIR~.c
Then directly in the IDE folder manager, where there is only a sparse_FIR~-help.pd
Strangely, the [char2f] object started to work after turning the bela off and on again.
Oops, I'll go update it.
And check if the patch for which I am trying to install all these libraries works with the few iemlib objects that already work.
These efforts are to be able to use the AutoPreset library
https://github.com/MetaluNet/AutoPreset
It consists of a series of abstractions allowing to make presets of all the settings of the patch, and to be able to interpolate these values ​​(if float) from one preset to another.
All this to morph the presets of an i2c / midi / 8cv in / 2 audio in >>> i2c / midi / 8 cv out / 2 audio out matrix into my eurorack system + Digitakt + OTO Bam, with the Pepper.
- Edited
giuliomoro
It works !
I've finally find a mix between [declare WITH THE EXACT PATH] and importing abstractions directly in the project.
And I have 0 error message concerning librairies.
But.... I've a new one
I need to read and write a text file.
Please, is it possible to read and write a text file in Bela with pure data ?
Note, I since imported a float.txt in my project with the IDE.
I also simply changed the [apmasterfile $0-FloatPatterns p/float.txt] in my patch by [apmasterfile $0-FloatPatterns float.txt]
So 0 error now.
Just need to know if it is possible to store values in a text file ?
I'll test it tomorrow in my modular synth setup.
if p/float.txt
is a relative path, then it may assume that the folder p
already exists. The error you see can't open
suggests that it cannot create that file because the p/
folder doesn't exist. So the solution is to either create that folder in the project , or change the path from p/float.txt
to float.txt
just like you did for the [apmasterfile ...]
object.
heliopolarthing I've finally find a mix between [declare WITH THE EXACT PATH] and importing abstractions directly in the project.
Weeell if you copied the abstractions directly in the project, then the [declare -path]
does nothing to help ... have you updated your Bela code as recommended above? Did you manage to rebuild the iemlib
library of externals?
Hi giuliomoro
I've been trying to install some of the libraries you've built from : https://github.com/BelaPlatform/Bela/issues/621 on a bela mini running the latest install.
I got no errors when installing. But then it couldn't create the objects.
Running Pd 0.51-4
Audio channels in use: 2
Analog channels in use: 8
Digital channels in use: 16
No MIDI device enabled
pd 0.51.4
bonk version 1.5
fiddle version 1.1 TEST4
pique 0.1 for PD version 23
sigmund~ version 0.07
else/pmosc~ 200 1 1
error: ... couldn't create
verbose(4): ... you might be able to track this down from the Find menu.
else/pipe2
error: ... couldn't create
else/plate.rev~
error: ... couldn't create
root@bela ~/Bela#
I used the declare object as suggested, but it just said it couldn't create.
Any ideas?
Do I need to rebuild the libraries myself?
Can you show the output of executing the command find /root/Bela/projects/pd-externals
in the console at the bottom of the IDE?