I got it for Organelle.

this one should work.

Otherwise, building it from source is straightforward. I added build instructions and a binary download here

    Thanks, I think I will start with the Organelle version for simplicity and go on from there 🙂

    3 months later

    giuliomoro Sorry for jumping on this old thread, I've been trying to get the helmholtz~ external on Bela but am having some issues with removing the -Wl option. What's the best way to access the Makefile? I'm opening it from the terminal, removing the -Wl option in my text editor, saving it, but still am getting the error.

    a month later

    Hi! Thanks giuliomoro for the detailed instructions about compiling externals. I have compiled and successfully used externals like zexy and cyclone in Bela. It was easy and I had no issues following the instructions.

    Yesterday I compiled the Pure Data external timbreID (source is here: https://github.com/wbrent/timbreID) in a Bela Mini which some other people (@lokki ) found interesting. I followed the same instructions. Compilation and installation took a couple of minutes maximum.

    However I am having a bad time: Pd does not create the objects. I thought it should be similar to zexy, but it doesnt work for me.

    This is what I did and how I am testing it :

    • I compiled and installed with

    make PDINCLUDEDIR=/usr/local/include/libpd/
    (some .h files like g_canvas.h were needed so I copied them to /usr/local/include/libpd/ from https://github.com/giuliomoro/pure-data)

    make PDINCLUDEDIR=/usr/local/include/libpd/ PDLIBDIR=/root/Bela/projects/pd-externals/ install

    alt text

    These are the first three lines of this _main.pd:
    #N canvas 381 151 391 472 10;
    #X declare -path ~/Bela/projects/pd-externals/timbreIDLib;
    #X obj 35 37 declare -path ~/Bela/projects/pd-externals/timbreIDLib
    ;

    When I try it, I only get in the infamous "error: ... couldn't create":
    - I tested it with the rPi binary: same result.

    - I copied timbreIDLib.pd_linux to ~/Bela/projects/pd-externals.
    - I tried with [zeroCrossing~] and [timbreIDLib/zeroCrossing~] as well as with various versions of the [declare]

    Is there anything I am not considering here?
    Thanks in advance!!

    are you 100% sure the path is [timbreIDLib/zeroCrossing~] and not something like [timbreID/zeroCrossing~]?
    just thinking out loud

    in the install.txt file included with the library, there's this line:

    C:/Users/Your Name/Documents/Pd/externals/timbreID/timbreIDLib

    and also:
    assuming timbreID is installed to the default Externals Install Directory, you can simply use the [declare] object like this:
    [declare -lib timbreID/timbreIDLib]

    which would imply that the lib object is created within a new timbreID folder.
    so you might be directing pd to a place that simply does not exist.

    maybe try [declare -lib ~/Bela/projects/pd-externals/timbreID/timbreIDLib], adding this extra folder level to the search path?

    Thanks @Remork !!
    it is weird how this had to be referenced but yes, as you suggested I had to add the /timbreID/ level in "~/Bela/projects/pd-externals" -> it worked!!

    For future people interested in timbreIDLib, this worked for me:

    • timbreIDLib.pd_linux has to be in ~/Bela/projects/pd-externals/timbreID/timbreIDLib and NOT in ~/Bela/projects/pd-externals/timbreIDLib
    • I used the following [declare] objects: [declare -path ~/Bela/projects/pd-externals/timbreID/timbreIDLib] and [declare -lib ~/Bela/projects/pd-externals/timbreID/timbreIDLib]
    • Using these [declare] objects the objects can be called directly without prefix e.g. [zeroCrossing~]

    this is the capture of the patch:

    alt text

    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