oh. so there is no worker thread, or it's doing very little (it would be the 0.3% CPU one) ...
great!

lokki primitive UI :-)

primitive? It's text-based, so it's very evolved, to the point where all the pointless frills have been removed.

    giuliomoro -mfpu=neon-vfpv4 should be -mfpu=neon

    yep, that was it. it runs with all optimisations now...

    Great. vfpv4 is for armv8. armv7 has the vfpv3.

    with all the optimisations in place it looks even better:

    Every 0.5s: cat /proc/xenomai/sched/stat                                                                                 bela: Tue Dec 17 23:53:27 2019
    
    CPU  PID    MSW        CSW        XSC        PF    STAT       %CPU  NAME
      0  0      0          1061315    0          0     00018000   85.3  [ROOT]
      0  8067   3          4          13         0     000600c0    0.0  jalv
      0  8073   2          3          4          0     000480c0    0.0  bela-midiIn_hw:0,0,0
      0  8077   1          88810      88813      0     00048046   14.4  bela-audio
      0  0      0          405345     0          0     00000000    0.0  [IRQ16: [timer]]
      0  0      0          88819      0          0     00000000    0.2  [IRQ180: rtdm_pruss_irq_irq]

    great!

    is there a way to change the PGA gain settings from the command line when running jalv?

    giuliomoro primitive? It's text-based, so it's very evolved

    of course.

      so by tomorrow morning i want that LV2host with all added features :-) and with a nice primitive UI

        lokki is there a way to change the PGA gain settings from the command line when running jalv?

        no they are not exposed. An easy way to do change these is to hardcode them within jalv where the settings are set:
        https://github.com/giuliomoro/jalv/blob/Bela/src/bela.c#L274-L286

        add

        settings.pgaGain[0] = 20;

        lokki so by tomorrow morning i want that LV2host with all added features :-) and with a nice primitive UI

        @adanlbenito had an automatic nexus-UI (or p5.hjs?) GUI generator for this host, not sure where that is gone ...

        I have indeed. The most recent commit is from March 2019 while previously it was from December 2018

          giuliomoro ah, did not realize GitHub actually keeps the date of your local machine, thought it was by upload date, silly me..

          will see if this changes any of my port problems!

          still the same.

          Running /root/Bela/projects/lv2host/lv2host 
          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

          but that was to be expected. i am still happy for the momen that it runs on BELA at all and at such little CPU cost

          @giuliomoro i have a question that i need some clarification on.

          let's for a moment assume the autotune port features would be available in the LV2host you wrote. so the plugin would run alongside 2 or 3 other plugins in a chain. now as i understand your host is a standard BELA app, since it includes a render.cpp. could i theoretically make a render.cpp that can switch between my voice synth (that is a heavy program) and the LV2host plugin section? so that i can use my voice-synth and at the press of a button it would take the heavy part out of the signal chain and insert the lv2 plugins?

          EDIT: i would not mind a couple of underruns when i do the switching, i don't need a smooth transition.

          so, pseudocode:

          if(button_lv2) {
          lv2host_running;
          } else {
          heavy_inline_running;
          }

          this would be super great as a final fx.

          i guess the other way would be to have two separate BELA programs that i can switch completely (as mentioned elsewhere on the forum, and i have asked about that already once) but that would interrupt audio for a couple of 100ms if i remember correctly.

          Yes. As you see the project is "an lv2 host with a Bela example". You can even have several lv2 chains if you have several instances of Lv2Host and then you'll only call the render()method only on the one that you want to process.

          that is great news. the consequences are not very clear for me, but i will look into it when needed. in the meantime i rebuilt jalv with a blocksize of 32 and i get many underruns with the autotune plugin, so i guess 64 is the block size to go for. that is fine with me for this plugin. the cpu usage is only slightly higher at 16 %, so not sure what the underruns are caused by.

          would i be limited to only run at the same block size if i process different audio processes within one render? (heavy at 16 and lv2host presumably at 64, though i am not sure, the 64 block size limit will apply to lv2host as well.) i would assume so...

            @lokki are you using any of the midi features of fat1.lv2?

            lokki would i be limited to only run at the same block size if i process different audio processes within one render? (heavy at 16 and lv2host presumably at 64, though i am not sure, the 64 block size limit will apply to lv2host as well.) i would assume so...

            That's the easiest solution yes. You could consider using a BelaContextFifo to change the block size for the lv2 host, but that comes with some overhead.

              giuliomoro yes, the plan is to use the midi input for on the fly scale changes and pitchshifting via pitchbend messages. i tried it all in jalv on BELA yesterday and it works very well.

              regarding blocksize i definitely want 16 for my heavy project, so will look into the BelaContextFifo. but first i need to run the plugin in the lv2host 🙂 running multiple plugins in a chain and the more integrated workflow just sound too promising

                lokki btw, if you want me to post the compiled fat1.so just drop me a message, but i guess it is easy enough for you...

                another "hacky" way might be to combine several lv2 plugins into one, as for example ingen is able to do. this combined lv2 could then be run as single lv2 in jalv. i would still need a way to integrate jalv into my setup (that is switching between heavy program and jalv)