oh. so there is no worker thread, or it's doing very little (it would be the 0.3% CPU one) ...
great!
LV2/LADSPA Plugins
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 ...
incidentally I just pushed some updates to https://github.com/giuliomoro/Lv2Host that had been sitting in a private repo
giuliomoro I don't think you have...at least i cannot see it here.
- Edited
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!
- Edited
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
- Edited
@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.
- Edited
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.
- Edited
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
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)