Closed apiel closed 1 year ago
Sorry, not really, no. That shared module is just an internal Jack client.
While theoretically possible to refactor Jalv, which is ultimately a program, to be some kind of reusable host library/framework, that's not what it is, and doing so would be much more work than simply modifying it in its current form. If you want to work on non-trivial C programs, dealing with a build system and dependencies is just the price of entry, c'est la vie. If Jalv was a library intended for host support, that would just be another/different dependency you'd need.
There shouldn't really be much need to mess with the build system to add basic features (in most cases, literally none). If you want to make an entirely different kind of application, just steal the code that's useful and go for it. I am slowly working on refactoring and restructuring things to make things more flexible and support more ambitious things people want to do with it, but ultimately Jalv is a simple LV2 host program and people trying to abuse it as a sort of framework to be embedded in other applications have generally had a bad time because that's just not what it is. Some day this may be more realistic when there's a more powerful control mechanism that can be used by other UIs and such, but that day is a long way away and isn't a priority for me, more of an idle direction to consider when refactoring things.
Thanks, for your reply. Very clear explanation ;-) I think the problem is that the lilv documentation is pointing to jalv as a simple example, but actually jalv is not that simple :p and lilv is also not the easiest to integrate. It would be great to have a very basic example to build a simple LV2 host plugin...
Sure, it's relatively "simple" as far as a host that supports most things modern fancy/graphical plugins need, but it's far from the simplest possible LV2 host, and there is always a struggle between keeping it simple and adding all of the features that people want. You can look at things like lv2apply or lv2file I suppose if you want an example of a much simpler LV2 host.
Hi, I would like to extend jalv to be able to assign midi command to lv2 parameters. After compiling jalv from the repo, i have seen that it generate a jalv.so so I wonder if I could re-use it to make my own application? The other options would be to fork jalv directly, but I get a bit intimidated by meson and all the dependencies... So in one way, I would rather prefer to don't have to dig into jalv and just add some feature on top of it.