great that you got that working!
looks like a weird lib 🙂 what are you using it for?

    oh wow! looks great!

    a year later

    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/

      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.

        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), called pd-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
        • max likes this.

        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)

        alt text

          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.

            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)

            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

            alt text

            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].

            alt text

            @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.

              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 😢

              alt text

              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?

                • CB1 replied to this.
                  22 days later

                  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?

                  alt text

                  Can you show the output of executing the command find /root/Bela/projects/pd-externals in the console at the bottom of the IDE?

                  • CB1 replied to this.