ok, that worked! thank you. i now have the example working. looking at it, i don't quite get, where i would put the plugin name in to test if mine works, all i see in render.cpp (and some of the other files i checked) is a URL mention of the plugins that it loads. so not sure where i would put in my plugin there.

but, first things first, here is the GitHub of the autotune plugin:

https://github.com/x42/fat1.lv2

when i try to compile it on the BELA it drops a lot of missing library errors. i was able to install quite a few but i need a libpango-dev as well, i guess this is named differently on the BBB/Bela. any ideas?

also, actually i would not need to compile all the graphics stuff of the plugin, but for the moment i am not sure how to do that...

    lokki URL mention of the plugins that it loads. so not sure where i would put in my plugin there.

    That's how it works with lv2: use lv2ls from the command line to retrieve the URI of the plugin and put it in there.

    lokki guess this is named differently on the BBB/Bela. any ideas

    The Bela distro is just regular Debian Stretch, nothing special about it. I don't know about this particular library though.

    lokki , actually i would not need to compile all the graphics stuff of the plugin, but for the moment i am not sure how to do that...

    That's usually the best solution. The plugin developer may have made available a flag to pass to the build system to avoid building the GUI. If reading the docs doesn't help then maybe inspecting the Makefile will

    ok, got that sorted out, compiles fine now and i have also found a arm-hf version on the x42-plugins site that should work :-)

    on to the next question, where do i set my plugin to be inserted into the lv2host? those URLs can't be it...

      sorry x-post. will try your advice, thanks!

      lokki ok, got that sorted out, compiles fine now and i have also found a arm-hf version on the x42-plugins site that should work :-)

      Good. Looking at the Makefile it looks like you can pass MOD=1 to make to disable the gui and standalone jack app.

      lokki those URLs can't be it...

      Yes! See above

      hmm, i get this:

      Port 0 has unsupported type
      Fat1.lv2 error: Host does not support urid:map
      error: Unable to instantiate plugin `http://gareus.org/oss/lv2/fat1'
      Segmentation fault

      Missing feature of the host. I will need to have a look. It seems that it is only used for performance reason, so maybe it is optional and there is a way to disable it in the plugin?

      no it doesn't look like it can be disabled, and it is required. Maybe some simple changes to the code of the plugin would fix that. But it's definitely easier and better to implement the feature on the host!

        giuliomoro
        maybe the host on the modduo devices could be used? that seems to support it.

        the sysmap.c file they have is where the mapping is implemented. This, in turn, is taken from jalv. I will see how to include it in our stuff.

          giuliomoro is the plan to amend the missing features to the new host or will you try to revive your jalv-port since that would probably be easier to integrate there? let me know if/when i can test something. thanks!

          I will try to have a look at adding the feature to our host next week. jalv should still build, although maybe it needs a couple of paths changed. The downside with jalv is that it is a single-plugin host.

            giuliomoro i see. thanks for the heads up! the modduo version is multi plugin as well, ir they load several instances...

            4 days later

            ok i have a go at compiling jalv on current bela. i could try then the plugin and see if it does even run on BELA. if not, no need to work on the new LV2host...

            as you said some libraries are missing but i think i fixed the paths. (i had to manually include Midi_c.h in the src directory, because it was not found otherwise.) i now get this error on ./waf build:

            [ 1/11] Compiling src/bela.c
            ../src/bela.c:41:1: error: unknown type name 'Midi'
             Midi* midi;
             ^~~~
            ../src/bela.c: In function 'render':
            ../src/bela.c:110:31: warning: implicit declaration of function 'Midi_availableMessages' [-Wimplicit-function-declaration]
               if((availableMidiMessages = Midi_availableMessages(midi)) > 0)
                                           ^~~~~~~~~~~~~~~~~~~~~~
            ../src/bela.c:136:27: warning: implicit declaration of function 'Midi_getMessage' [-Wimplicit-function-declaration]
                  unsigned char size = Midi_getMessage(midi, buf);
                                       ^~~~~~~~~~~~~~~
            ../src/bela.c: In function 'setup':
            ../src/bela.c:227:10: warning: implicit declaration of function 'Midi_new' [-Wimplicit-function-declaration]
               midi = Midi_new(gMidiPort0);
                      ^~~~~~~~
            ../src/bela.c:227:8: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
               midi = Midi_new(gMidiPort0);
                    ^
            ../src/bela.c: In function 'cleanup':
            ../src/bela.c:260:3: warning: implicit declaration of function 'Midi_delete' [-Wimplicit-function-declaration]
               Midi_delete(midi);
               ^~~~~~~~~~~

              lokki that's a weird failure, as if Midi_c.h was empty. Is the #include still in place in src/bela.c ?

                giuliomoro i think so. playing a concert now, will check later. can i include a Midi_c.h from within the BELA image? i couldn't find it and included one from the bela doc wiki (found via google)

                  lokki . can i include a Midi_c.h from within the BELA image? i couldn't find it and included one from the bela doc wiki (found via google)

                  it's in Bela/libraries/Midi/Midi_c.h. Not sure where you find it on the wiki? You mean this one ? It' the same ...

                  ok, got it too compile... as you said, it was commented, stupid me.

                  when i run the plugin i get:

                  root@bela:~/Bela/projects/jalv-Bela/build# ./jalv http://gareus.org/oss/lv2/fat1
                  Plugin:       http://gareus.org/oss/lv2/fat1
                  UI:           None
                  Plugin requires 1 inputs and 1 outputs
                  Sample rate:  44100 Hz
                  Block length: 64 frames
                  MIDI buffers: 4096 bytes
                  Comm buffers: 65536 bytes
                  Update rate:  25.0 Hz
                  Illegal instruction

                  and it aborts. not sure if the binary i installed is the reason for this. will try to compile the fat1.lv2 from source to see if it makes a difference

                    lokki not sure if the binary i installed is the reason for this. will try to compile the fat1.lv2 from source to see if it makes a difference

                    SIGILL (ILLEGAL INSTRUCTION) could happen if the binary was built for a different architecture, e.g.: an armv8 32bit binary will load but may fail on an instruction not present in armv7 (e.g.: NEON divide). If the binary is for armv7 then you could get a SIGILL because of some weird pointer error where you are trying to execute a portion of memory that does not contain executable data. I thought you had tried to compile the plugin yourself earlier? Where is the release from? Cannot see it on their github. You can try and run jalv inside gdb ( you'd do gdb jalv and then once you are in dorun < command line options> then when it fails you can see where (what function or even what line perhaps) it failed. You can also do disass to see the assembly and individuate the culprit instruction.