Re: [LAD] XUiDesigner -> create LV2 plugs from scratch
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
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
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
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
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
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
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