Re: [LAD] XUiDesigner -> create LV2 plugs from scratch

2021-03-24 Thread Hermann Meyer


Am 23.03.21 um 06:27 schrieb Hermann Meyer:

Hi

I've done some work on my XUiDesigner project, and it is now able to
generate a working LV2 plugin.

Still I would count it in a pre-alpha state, but, hey, it works.

The project settings window allow to setup the specs (like Author name,
URI, Audio/Midi ports, etc.) for your plugin The saved bundle contain a
working LV2 plugin with all needed resources (ttl files, converted C
files from used images, etc.) to build, install and run it. All you need
to do to finish your plug is, implement your DSP part.

https://github.com/brummer10/XUiDesigner


regards

hermann



Here is a plug made quick with XUiDesigner to show how it works.

https://github.com/brummer10/XMixer.lv2

regards

hermann
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] XUiDesigner -> create LV2 plugs from scratch

2021-03-23 Thread Robin Gareus
Hi Fons,

On 3/23/21 9:59 PM, Fons Adriaensen wrote:
> If by that you mean it can't use dynamic libs, then how do
> you arrive at that conclusion ?

It is motivated by running plugins in process to avoid context switches.

Say you have 2 plugins, one using aubio.so.2 the other aubio.so.3, or
different plugins using different versions of libavresample.so

Distros often bundle multiple major versions of libraries and that is
fine as long as a given ABI of that library is only used by different
processes. But when you want to load plugins into a host, they will
conflict.

Another example where this happened in the past was fftw. Then this also
extends to various GUI toolkit conflicts (gtk 2/3/4 cannot co-exist in
the same memory space, nor can QT 4/5/6).

Plugins should be self-contained and not depend on external libs (except
for ones with a client/server interface where the lib needs to match the
server e.g. X11, openGL -- but those have versioned symbols and a stable
ABI).

As added benefit, this increases reliability when distributing plugin
binaries: The plugin does not use some random library version found on
the target system.


Cheers!
robin

References:
 https://ardour.org/plugins-in-process.html
 https://gist.github.com/abique/4c1b9b40f3413f0df1591d2a7c760db4
 https://linuxmusicians.com/viewtopic.php?p=84986#p84986
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] XUiDesigner -> create LV2 plugs from scratch

2021-03-23 Thread Fons Adriaensen
On Tue, Mar 23, 2021 at 10:50:01AM -0700, Len Ovens wrote:

> Therefore the plugin must be built static.

If by that you mean it can't use dynamic libs, then how do
you arrive at that conclusion ?

-- 
FA

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] XUiDesigner -> create LV2 plugs from scratch

2021-03-23 Thread Len Ovens

On Mon, 22 Mar 2021, Yuri wrote:


Why do you need to design the UI editor from scratch?

There is a very mature and stable software in this field - QtDesigner: 
https://doc.qt.io/qt-5/qtdesigner-manual.html


Plugins are special, they share memory space and library symbol space both 
with the the plugin host as well as with any other plugin the host happens 
to be using. Therefore the plugin must be built static. While it is true 
that qt plugins can be built static, may distro repos do not want to do 
this and have a policies against doing such. In a word crash. Using a GUI 
that does not come as a lib, but as part of the plugin and must be 
staticly built is the best way to deal with this. So if any budding plugin 
author asks "which GUI should I use" the answer is generally "not GTK or 
QT."



--
Len Ovens
www.ovenwerks.net
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] XUiDesigner -> create LV2 plugs from scratch

2021-03-23 Thread Hermann Meyer


Am 23.03.21 um 07:52 schrieb Yuri:

Hi,


On 3/22/21 10:27 PM, Hermann Meyer wrote:

I've done some work on my XUiDesigner project, and it is now able to
generate a working LV2 plugin.

Still I would count it in a pre-alpha state, but, hey, it works.

The project settings window allow to setup the specs (like Author name,
URI, Audio/Midi ports, etc.) for your plugin The saved bundle contain a
working LV2 plugin with all needed resources (ttl files, converted C
files from used images, etc.) to build, install and run it. All you need
to do to finish your plug is, implement your DSP part.



Why do you need to design the UI editor from scratch?

There is a very mature and stable software in this field - QtDesigner:
https://doc.qt.io/qt-5/qtdesigner-manual.html

And Qt is a leading UI toolkit, currently the best in the industry.

If some audio widgets are missing - it should be easy to add them
through a custom widget library.

But rewriting the whole thing - redesigning interfaces, signals,
callbacks, sizing policies, etc, etc - doesn't seem reasonable.


Yuri




Hi Yuri

Yes, there is as well Glade for GTK.

And I used Glade a lot for building the guitarix interfaces, adding a
couple of audio related widgets to glade.

But, you wouldn't use QT or GTK for LV2 plugin interfaces, so both of
those tools wont be of any help when you would create a LV2 plugin
interface.

I've written XUiDesigner with LV2 plugins in mind, because, since I use
X11 for LV2 plugins, I find myself a way to often moving controls in a
interface by re-write, re-build and reinstall to find the position I
like for it.

Also, XUiDesigner did not only allow you to create a interface
graphically, it create as well all the needed files you need to build
the plugin, eg. it generate the complete bundle.

regards

hermann
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] XUiDesigner -> create LV2 plugs from scratch

2021-03-23 Thread Yuri

Hi,


On 3/22/21 10:27 PM, Hermann Meyer wrote:

I've done some work on my XUiDesigner project, and it is now able to
generate a working LV2 plugin.

Still I would count it in a pre-alpha state, but, hey, it works.

The project settings window allow to setup the specs (like Author name,
URI, Audio/Midi ports, etc.) for your plugin The saved bundle contain a
working LV2 plugin with all needed resources (ttl files, converted C
files from used images, etc.) to build, install and run it. All you need
to do to finish your plug is, implement your DSP part. 



Why do you need to design the UI editor from scratch?

There is a very mature and stable software in this field - QtDesigner: 
https://doc.qt.io/qt-5/qtdesigner-manual.html


And Qt is a leading UI toolkit, currently the best in the industry.

If some audio widgets are missing - it should be easy to add them 
through a custom widget library.


But rewriting the whole thing - redesigning interfaces, signals, 
callbacks, sizing policies, etc, etc - doesn't seem reasonable.



Yuri
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] XUiDesigner -> create LV2 plugs from scratch

2021-03-22 Thread Hermann Meyer

Hi

I've done some work on my XUiDesigner project, and it is now able to
generate a working LV2 plugin.

Still I would count it in a pre-alpha state, but, hey, it works.

The project settings window allow to setup the specs (like Author name,
URI, Audio/Midi ports, etc.) for your plugin The saved bundle contain a
working LV2 plugin with all needed resources (ttl files, converted C
files from used images, etc.) to build, install and run it. All you need
to do to finish your plug is, implement your DSP part.

https://github.com/brummer10/XUiDesigner


regards

hermann
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev