LV2 with JUCE GUI

Programming applications for making music on Linux.

Moderators: khz, MattKingUSA

thorgal
Established Member
Posts: 739
Joined: Mon Apr 07, 2008 6:04 pm

Re: LV2 with JUCE GUI

Postby thorgal » Thu Jul 07, 2011 12:51 pm

@Scary Hallo

just read the short description in the Juce homepage:

http://www.rawmaterialsoftware.com/juce.php


JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software.

It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound.

User avatar
studio32
Established Member
Posts: 2370
Joined: Mon Apr 07, 2008 5:09 pm

Re: LV2 with JUCE GUI

Postby studio32 » Thu Jul 07, 2011 8:03 pm

falkTX wrote:
studio32 wrote:Iirc LinuxDSP has (or is working) on a LV2 plugin with JUCE GUI to... not sure though

Nope, linuxDSP uses Gtk or Xlib, not JUCE.

or is working on... how could you be so sure that I am wrong here?


studio32 wrote:Not sure why people doesn't use QT or GTK, but: http://drobilla.net/software/suil/

And forget about Suil, it doesn't work.

A simple solution to this toolkits problem is using the External UI, but drobilla is too stubborn to accept it... :(
.

Where you are a new guy on front (which is cool!), Drobilla has been around for a while and is a respected developer... You're using big words, a bit too easy and too fast maybe...

User avatar
studio32
Established Member
Posts: 2370
Joined: Mon Apr 07, 2008 5:09 pm

Re: LV2 with JUCE GUI

Postby studio32 » Fri Jul 08, 2011 8:35 am

Anyway, good luck with JUCE and LV2! :) All though it might be preferable to have GTK and QT based plugins... it would be a good step if those JUCE plugins could be ported to LV2 :)

User avatar
linuxdsp
Established Member
Posts: 147
Joined: Sun Mar 01, 2009 12:40 pm
Location: Oxford, England
Contact:

Re: LV2 with JUCE GUI

Postby linuxdsp » Thu Jul 14, 2011 10:09 pm

For what its worth: I've never used JUCE for my UIs, and I don't think it will be necessary (for me), that's nothing against JUCE as a UI toolkit, but I think last time I checked there was a license fee for commercial use and I had already developed a minimal UI toolkit which used XLib to provide the UIs.

Reasons for using XLib:

1) As mentioned by other people, one of the problems with plugin UIs is that you don't know which toolkit the host will use, so by hooking into X at the most basic level I could get a UI that would work regardless of the host UI toolkit.

2) External UI is used because it allows the plugin to create its own UI with minimal interference from the host. I believe there is a feeling from some developers that external UI is not the way to go, but now that its in most hosts, there seems to me to be no harm in leaving it be.

3) One of the reasons (I believe) for some developers disliking external UI is that it needs some kind of IPC (if you really run the UI in another process, but as noted, I just run the UI in the same process, using external UI to provide the (one) function that was missing from the original LADSPA spec that would have made it possible to do UIs even in LADSPA e.g. the ability for the plugin to write back parameter changes to the host.
Also, external UI doesn't provide for the host UI to embed the plugin UI - from my point of view, my plugins don't need this (and would prefer not to be 'swallowed' into the host UI - so it works ok for me)

4) The problem with using XLib for UIs is that you need some knowledge of GUI toolkits at a very low level to be able to code a UI using it, but personally I think if that makes writing plugins a bit difficult then.. well it's just that writing high quality plugins (and software) is not easy despite what some people assume. The toolkit I have devised has also now been succesfully ported to work on windows GDI as well as XLib with minimal effort.

I'm not sure how well suil functions, I've not stressed it that much - I did experiment with wrapping my XLib UI as a 'fake' GTK plugin UI - which worked, and this is the kind of thing suil is doing at a low (XLib) level (I think, although obviously the developer would be a better person to say) - I think there may be a suil extension eventually that handles XLib UIs which would be useful (as this could work for JUCE too).

It will be interesting to see suil develop, my only doubts are that if it has to support a lot of toolkits then it may mean rapidly growing complexity - e.g. GTK to Qt is only 4 (host - plugin) combinations, but add e.g. XLib, SDL, JUCE, FLTK etc etc... But again this may be an incorrect assumption to make. Its an interesting approach to solving a complex problem.

User avatar
linuxdsp
Established Member
Posts: 147
Joined: Sun Mar 01, 2009 12:40 pm
Location: Oxford, England
Contact:

Re: LV2 with JUCE GUI

Postby linuxdsp » Fri Sep 23, 2011 12:44 pm

@falktx: I have submitted a patch for Ardour3 which provides the basic support for native linuxVSTs via Vestige - 32 and 64Bit (JUCE GUI's or whichever toolkit the plugin uses), which has recently been committed to SVN. There are a few more fixes to come, but most linux VSTs I have tried work fine (subject to ardour's rules about plugin I/O compatibility - which I hope will eventually become more flexible with regard to MIDI / audio combinations)

User avatar
linuxdsp
Established Member
Posts: 147
Joined: Sun Mar 01, 2009 12:40 pm
Location: Oxford, England
Contact:

Re: LV2 with JUCE GUI

Postby linuxdsp » Fri Sep 23, 2011 2:17 pm

I noticed a few issues with vst midi input though, but the rest seems to work ok.


It's not entirely complete yet, so there will be a few things that need to be fixed / improved, but it was intended mainly just to get things going. Anyone who wants to add to it or fix it up is welcome to do so. I've just submitted another small correction which may address the MIDI issues - it was something which relates to 64Bit. My guess is that that won't have been committed to SVN at the present time.


Return to “Developer's Section”

Who is online

Users browsing this forum: No registered users and 1 guest