LV2 a wyleu wander . .

I’ve always been wary of tags, and it appears we have one :smiley:

So what exactly are you getting when you put two tags, Zynthian and LV2 together?

And should we indeed start by stating that relationship in Turtle…?
( I suspect this will contain a fair few mentions of turtles . . . )

So the zynth will present and collect audio from an LV2 wrapper called Jalv . .
And handle them in a friendly fashion where they can be easily presented to a performing musician with some hope of actually making the right noise with it :smiley:

The Lv2 Primer is, therefore, where one starts.

There seems to be three places lv2 files hang out in zynthian . . . ( unless you know different)


Not sure where one should put what…

So we build some files in the /zynthian/zynthian-my-data/presets/lv2 directory.

The manifest file:
a lv2:Plugin ;
lv2:binary <wyleu-amp@LIB_EXT@> ;
rdfs:seeAlso <wyleu-amp.ttl> .

the newly renamed gm amp.c
& it’s ttl buddy.

so it’s visible in the webconf LV2 listing under software:

and it can be seen in the GUI Engine listing. ( this is audio Fx…)

and it loads …

But of course it doesn’t do anything for obvious reasons . . .

Now my first question is the reportsing of the None status a miss configure in my manifest.ttl or wyleu-amp.ttl or is it returned because the object code isn’t there and it’s reporting an error up in the name?

You may wish to continue with the low-level coding which gives you an understanding of what is going on below the surface then maybe try out a higher level framework like distrho. I am currently converting my multichord LV2 to use distrho, mostly because the UI might look prettier with minimal effort. Side effects include faster creation of subsequent plugins and creation of VST version which someone might find useful.

Yeah, it’s a tyre kicking session to see what I can get working, and gain understanding from a zynthian user perspective in the process.

Beware that parameters are always treated as float even if you define them as integers in the ttl. That took me a while to figure out. Also ensure you cast parameters to the correct data type as appropriate, e.g. assuming that 1.0f will actually be 1.00000000 is wrong - it may end up as 0.99999… and comparisons may fail.

DISTRHO framework is proving a bit challenging. Some elements that one might expect to be automated are not, e.g. initialising parameter range does not set the default value of the parameter. Also I am currently struggling to get parameter enumeration to use the right range of negative numbers (it is out by one). I will let you know when I have resolve these issues.

I repeat though, carry on working through the basic examples before moving on to a framework like DISTRHO. It is most advantageous to know what the framework is doing for you.

[ Edit] I figured out the issue I was having with negative enumeration of integer parameters and reported an issue upstream. I have also fixed it in a fork and am submitting a PR.

1 Like