Sneak Preview: LV2 Create

Programming applications for making music on Linux.

Moderators: MattKingUSA, khz

j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: Sneak Preview: LV2 Create

Post by j_e_f_f_g »

Just uploaded an update. It now produces a fully compileable C (or C++ if you check that box) source code for your plugin. Just add your DSP code to the function dspRun() in dsp.c, and compile. That's it. LV2 Create even generates the Makefile for you. Just open a terminal, cd to your new plugin dir in Home, and type:

make

If it compiles ok, then type:

make install

Now your plugin is installed, and should showup in Ardour.

I've included a 64-bit exe of LV2 Create. Those running 32-bit will have to compile LV2 Create. Later I'll do a walkthrough tutorial to show how easy it is to make a LV2 plugin with LV2 Create.

Not yet implemented: The "State" button on the General page, and the "Extension" button on Make.

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: Sneak Preview: LV2 Create

Post by j_e_f_f_g »

Just uploaded another update with fixes.

Also there's the first of several upcoming tutorials showing how to use LV2 Create to make plugins. Consult readme.htm to see how to create a simple mono amp plugin.

More to come.

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: Sneak Preview: LV2 Create

Post by j_e_f_f_g »

Another update. It now does scalePoints and enumeration.

Also handles a longer plugin ID string.

Minor enhancements such as doubleclick support.

More to come.

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: Sneak Preview: LV2 Create

Post by j_e_f_f_g »

A major update.

I reworked the C\C++ code it produces to be more efficient, easier to modify, and with more detailed comments. The ReadMe tutorial is updated to reflect the changes. And now it discusses C++ development.

There are numerous bug fixes, including some minor fixes to the ttl files.

Ctrl-V now works for pasting text from another app.

State Load/Save support is now done, but not yet documented. (Lot of work!)

I'm picky about docs, so this weekend will be all about continuing the next section of the tutorial.

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: Sneak Preview: LV2 Create

Post by j_e_f_f_g »

An update.

You can now compile, install, and uninstall the plugin from LV2 Create. No terminal needed.

I also made a change to the C++ code generation to simplify it.

The Readme tutorial has been enhanced (but still more to do).

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

User avatar
GraysonPeddie
Established Member
Posts: 657
Joined: Sun Feb 12, 2012 11:12 pm
Location: Altha, FL
Been thanked: 6 times
Contact:

Re: Sneak Preview: LV2 Create

Post by GraysonPeddie »

Hi, it's nice that you have created an LV2 creator program, but it would be nice if I could name audio inputs and outputs to be more descriptive as I'm creating a bass redirection plugin. What it does is for right now, it passes 5 channels along intact but for the last audio output, I took 6 audio inputs, divide it by 6, and then send that signal to the subwoofer output. I do intend to create a low pass filter for that particular output but I intend to test the plugin as it is. I'm planning in starting a separate thread in asking how I could create a low/high pass filter, as I like to integrate a crossover frequency into my own plugin instead of creating one low pass and 5 high pass filters.

In Carla, I get this:

"Failed to find the requested plugin in the LV2 Bundle"

This is when I'm trying to add a plugin, but I understand that yours is only a preview right now, and so I can be patient.

Perhaps you would like to take a look at what is going on?
Bass_Redirection_5_1.tar.gz
(7.44 KiB) Downloaded 67 times
Also, you might want to create an input and output tab for audio, along with moving input and output tab inside a GUI tab. This can weed out some confusion without clicking the "Help" button.
--Grayson Peddie

Music Interest: New Age w/ a mix of modern smooth jazz, light techno/trance & downtempo -- something Epcot Future World/Tomorrowland-flavored.
j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: Sneak Preview: LV2 Create

Post by j_e_f_f_g »

GraysonPeddie wrote:would be nice if I could name audio inputs and outputs to be more descriptive
I wanted to keep things simple. The audio names aren't really used at all, and most plugins don't care about those names. You can safely change them in the ttl file, except LV2 Create overwrites it. Maybe write a batch/python script to do it. You could probably even run it in the Makefile's BUNDLE rule, and automate it.

But it seems to me what you really need are "port groups". I haven't yet worked out how I want to implement that.
In Carla, I get this:
Your ttl files look correct to me. Report this to filippe and let me know what he concludes.
how I could create a low/high pass filter
There are lots of filters in plugins. Almost all algo reverbs with have a low pass, like the mverb and zeta reverbs I did. Leslie simulators would be good for you. Check out this page for raw code: http://www.musicdsp.org/showmany.php

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

User avatar
GraysonPeddie
Established Member
Posts: 657
Joined: Sun Feb 12, 2012 11:12 pm
Location: Altha, FL
Been thanked: 6 times
Contact:

Re: Sneak Preview: LV2 Create

Post by GraysonPeddie »

Other than my DSP code in dsp.c, you might want to take a look at both the TTL files and Bass_Redirection_5_1.h. I have to change the URI, plus some errors in Bass_Redirection_5_1.ttl generated file and it worked.

This is the thread with the corrections from FalkTX: http://www.linuxmusicians.com/viewtopic ... 409#p44409
Bass_Redirection_5_1_modified.tar.gz
(7.13 KiB) Downloaded 66 times
By the way, the "ID" below the name, is confusing. You might want to change that to "URI." That way, I will know right away that I can enter the website address or a unique string. I really thought "bassredirection" is a unique string, but apparently, it did not work. Is it possible to provide a tooltip when you hover over a textbox with a text like "For example: http://yourdomainname.com/lv2/lv2name" (a URI can be fake, of course)?
--Grayson Peddie

Music Interest: New Age w/ a mix of modern smooth jazz, light techno/trance & downtempo -- something Epcot Future World/Tomorrowland-flavored.
ssj71
Established Member
Posts: 1294
Joined: Tue Sep 25, 2012 6:36 pm
Has thanked: 1 time

Re: Sneak Preview: LV2 Create

Post by ssj71 »

j_e_f_f_g wrote:By the way, the "ID" below the name, is confusing. You might want to change that to "URI." That way, I will know right away that I can enter the website address or a unique string. I really thought "bassredirection" is a unique string, but apparently, it did not work. Is it possible to provide a tooltip
Well, I personally don't find URI any more clear than ID. Perhaps I'm ignorant, but I've never heard the term outside of LV2. A tooltip that describes the spec'd requirements would probably be best.
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!
User avatar
GraysonPeddie
Established Member
Posts: 657
Joined: Sun Feb 12, 2012 11:12 pm
Location: Altha, FL
Been thanked: 6 times
Contact:

Re: Sneak Preview: LV2 Create

Post by GraysonPeddie »

ssj71 wrote:
GraysonPeddie wrote:By the way, the "ID" below the name, is confusing. You might want to change that to "URI." That way, I will know right away that I can enter the website address or a unique string. I really thought "bassredirection" is a unique string, but apparently, it did not work. Is it possible to provide a tooltip
Well, I personally don't find URI any more clear than ID. Perhaps I'm ignorant, but I've never heard the term outside of LV2. A tooltip that describes the spec'd requirements would probably be best.
Fixed.

Some devs may be less likely to click in the help button if a tooltip is provided.
--Grayson Peddie

Music Interest: New Age w/ a mix of modern smooth jazz, light techno/trance & downtempo -- something Epcot Future World/Tomorrowland-flavored.
j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: Sneak Preview: LV2 Create

Post by j_e_f_f_g »

This is the thread with the corrections from FalkTX
I corrected that "period instead of semicolon". (But Ardour didn't complain).
thought "bassredirection" is a unique string, but apparently, it did not work.
Unless there's another LV2 plug with this name, it should work. Maybe Carla somehow registered 2 instances of your plugin.

The newest update has an additional checkbox "ladspa". When you check this, LV2 Create generates both an LV2, and a LADSPA version of your plugin. The LADSPA version is always named "ladspa.so". You can manually rename it and copy it to wherever your distro stores LADSPA plugs.

Just be aware that LADSPA is more limited. If you enable this new feature, then you can't create your own GUI. (Must select "Host" GUI). You can't select "MIDI", "Latency", nor "Time Pos" options. And you can't have State variables. You can have scale points, but they work only in the LV2 version. Ditto with the "enumeration" option. Also Default value may be off in the LADSPA.

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: Sneak Preview: LV2 Create

Post by j_e_f_f_g »

falkTX wrote:When lilv scans that URI, it will interpret it as a local path "<file:///full/path/to/somenamehere>".
Well that;s just silly. If lilv is going to be essentially creating it's own URIs for plugins then:

1) It makes no sense to have a "unique" URI in the ttl file anyway.
2) lilv should assume responsibility for resolving the breakage it causes.

I'll make the change to accomodate lilv, but this is obviously a lilv design flaw.

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: Sneak Preview: LV2 Create

Post by j_e_f_f_g »

falkTX wrote:You can have latency in LADSPA, by using a control-output port named "latency" or "_latency".
(confirmed to work with Ardour)

You can also have scalepoints and proper default values by using LRDF.
Thanks for the info. Didn't see any of this documented on the LADSPA page.

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

User avatar
GraysonPeddie
Established Member
Posts: 657
Joined: Sun Feb 12, 2012 11:12 pm
Location: Altha, FL
Been thanked: 6 times
Contact:

Re: Sneak Preview: LV2 Create

Post by GraysonPeddie »

I wonder if Steinberg VST requires a URI. What about DSSI?

A URI is just stupid unless VST requires it.
--Grayson Peddie

Music Interest: New Age w/ a mix of modern smooth jazz, light techno/trance & downtempo -- something Epcot Future World/Tomorrowland-flavored.
j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: Sneak Preview: LV2 Create

Post by j_e_f_f_g »

falkTX wrote:This is absolutely NOT about lilv
Sure it is. Ardour doesn't monkey with the URI, and therefore loads/runs the plugin fine. lilv is broken by design. It's "interpreting" a URI when such an act can, and will in the case of a "local" URI, break the connection between the ttl and .so.

Ardour got it right. lilv got it wrong.

In any event, I just updated LV2 Create to work around this lilv bug.

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

Post Reply