Audacity Bug Summary
••• Introduction •••
••• Keywords •••
    Audacity 3.0.3 development began 19th April 2021

Audacity Bugzilla



Bug 365 - LV2 support unfinished
LV2 support unfinished
Status: RESOLVED FIXED
Product: Audacity
Classification: Unclassified
Component: Other
unspecified
Per OS All
: P4 Repeatable
Assigned To: Default Assignee for New Bugs
http://forum.audacityteam.org/viewtop...
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-04-14 13:57 UTC by Ed Musgrove
Modified: 2018-08-20 11:51 UTC (History)
5 users (show)

See Also:
Steps To Reproduce:
Release Note:
First Git SHA:
Group: ---
Workaround:
Closed: 2018-08-20 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Musgrove 2011-04-14 13:57:00 UTC
see URL for bug 55 which seems never to be fixed

since it appears this lib is not needed and does not compile:
remove it from SVN
remove it from MS VC++ SLN solution (and any makes)
Comment 1 Gale Andrews 2011-04-15 23:46:15 UTC
Vaughan and Ed have been in touch with me about this, and Vaughan has suggested we might add Ed's ideas to bug 55. I should have given some explanation, but was trying to save time/words.

The reason I dismissed this rather summarily was that this bug as worded contradicts bug 55, so the two bugs can't really coexist together. LV2 was a significant part of GSoC 2008 even though the work was left unfinished:
http://wiki.audacityteam.org/wiki/LV2_Support

So I presume some effort will eventually be put into making it compile.  

Also although Ed has told me that every time he compiles SVN HEAD on Windows he has to remove all four slv2 solutions before Audacity will compile, building slv2 seems to be disabled by default on Windows, so it shouldn't be a practical issue. The issue is release noted (for Windows). If we removed slv2 then fix bug 55, it just seems to make work to add it back. 

Looking at Linux, r8487 removed the following from configure back in 2009, which I hadn't realised: 
 --with-redland          use Redland for reading RDF data
 --with-slv2             use SLV2 for loading LV2 plugins
 --with-liblrdf          use liblrdf for categorisation of LADSPA plugins

However libslv2 is in /mac/Audacity.xcodeproj/project.pbxproj so I assume it actually builds there?  

So in summary, removing slv2 from SVN doesn't seem appropriate to me, action on Windows doesn't seem vital and I'm not clear whether any action is needed on Mac or not. Comments more than welcome.
Comment 2 Ed Musgrove 2011-04-16 01:21:59 UTC
then how about removing it from sln only--leave it in SVN
Comment 3 Leland Lucius 2011-04-16 01:38:29 UTC
(In reply to comment #2)
> then how about removing it from sln only--leave it in SVN

Ed, when you build Audacity, do you happen to do a "Build -> Batch build", click "Select All", then then click "Build"?

Leland
Comment 4 Leland Lucius 2011-04-16 01:57:35 UTC
(In reply to comment #1)
> However libslv2 is in /mac/Audacity.xcodeproj/project.pbxproj so I assume it
> actually builds there?  
> 
> So in summary, removing slv2 from SVN doesn't seem appropriate to me, action on
> Windows doesn't seem vital and I'm not clear whether any action is needed on
> Mac or not. Comments more than welcome.

The library is part of the Xcode project, but it is not built.

If it matters, I would agree with removing the use of the 3 libraries in question from the project/solution files and from SVN.  Last time I tried getting it to work on Windows (during the GSoC), I stopped a ways into it since it was getting out of hand.

I'd leave the Audacity specific SLV2 code in "src" as a "reminder".  I'd also suggest that, if SLV2 support is desired, then it be readdressed as an external effect module in the post-2.0 releases.

But, that's just my opinion...
Comment 5 Leland Lucius 2011-04-16 02:04:53 UTC
(In reply to comment #4)
> If it matters, I would agree with removing the use of the 3 libraries in
> question from the project/solution files and from SVN.  Last time I tried
> getting it to work on Windows (during the GSoC), I stopped a ways into it since
> it was getting out of hand.
> 
It's over 70MB of unused source code...
Comment 6 Leland Lucius 2011-04-16 02:35:32 UTC
(In reply to comment #1)
> Looking at Linux, r8487 removed the following from configure back in 2009,
> which I hadn't realised: 
>  --with-redland          use Redland for reading RDF data
>  --with-slv2             use SLV2 for loading LV2 plugins
>  --with-liblrdf          use liblrdf for categorisation of LADSPA plugins
> 
> However libslv2 is in /mac/Audacity.xcodeproj/project.pbxproj so I assume it
> actually builds there?  
> 
I've just removed them from the Xcode project as well since they depended on the configure stuff, so they would not longer build anyway.
Comment 7 Ed Musgrove 2011-04-16 11:07:34 UTC
(In reply to comment #3)
Leland asked "...do you happen to do a "Build -> Batch build",
click "Select All", then then click "Build"?"

Yes, but...

Once a day (but only if there has been a commit) I grab a new SVN HEAD and "test build" all four configurations. I do find "does not compile" problems this way and generally go straight to the author of the offending commit if I can pinpoint the problem.

When I am working on something specific I grab a new SVN HEAD then I load the solution (change from the default (non-Unicode) Debug config to Unicode Debug) and build just that solution.

I see today it has been removed from the Mac stuff (XCode is Mac right?). Its been gone from Linux for years. Why do the Windows folks need to was bandwidth & compile time on this.

Please consider re-evaluating the "Invalid" designation! Zip the slv2 source code up and hide it on the server with some note in the readme for historical purposes.
Comment 8 Gale Andrews 2011-04-16 14:39:18 UTC
(In reply to comment #7)

I had just marked bug 55 as "(Windows and OS X) The slv2 library needed for LV2 support is included in the project files but will not compile" but now it's been removed from the Mac project, it reads "The slv2 library needed for LV2 support will not compile on any platforms but is currently included in the Windows project files and in the source code."

@Ed, out of interest, I would still assume when you batch build that you could select the projects to build, then until you do a fresh checkout, that build selection persists?
 
I think the issue was the description in Bug 55 which suggested it was a Windows only problem. DanH had reported that he had got slv2 to build on Linux and no-one had contradicted that or updated the bug to reflect that the three libs had actually been removed from configure. 

Clearly now Mac has the libs removed from the project they should be removed from Windows too for consistency.     

Again the reason for the "Invalid" was the somewhat presumptuous "un-needed" title in the bug. I've reopened this as "remove slv2, redland and liblrdf from source code?" but we should decide what we aim to do with LV2 post 2.0. I'd be disappointed with just ditching something that was thought worthy of GSoC and actually believed it was a P3 (bug 55) that we didn't have LV2 support working.         

If other developers agree with Leland's idea of removing the three libs from lib-src, leaving the Audacity-specific alv2 code in "src" and readdressing it as an external effect module post-2.0, that's OK with me. Where does that leave the previous need of translating much of the slv2 lib to C++ - would that still have to be done?
Comment 9 Leland Lucius 2011-04-16 14:48:02 UTC
(In reply to comment #8)
> If other developers agree with Leland's idea of removing the three libs from
> lib-src, leaving the Audacity-specific alv2 code in "src" and readdressing it
> as an external effect module post-2.0, that's OK with me. Where does that leave
> the previous need of translating much of the slv2 lib to C++ - would that still
> have to be done?

The reason I'd mentioned an "external module" kind of thing is that it could then be built within an MSYS environment so that gcc could be used.

Another possibility may be to simply use MSYS to build the libraries and then dynamically load those from within the existing SLV2 code.  That might be an easy solution as well...though I haven't looked into it.
Comment 10 Ed Musgrove 2011-04-16 15:26:06 UTC
(In reply to comment #8)
Gale said "@Ed, out of interest, I would still assume when you batch build that you could select the projects to build, then until you do a fresh checkout, that build selection persists?"

Yes, and when I am working on something I do this. Unfortunately, SVN Update is unreliable for me so I always do SVN Checkout which forces a retooling of Batch Build. I like to use Batch Build as it does everything unattended.
Comment 11 Gale Andrews 2011-04-16 18:05:17 UTC
OK so I think the developer discussion about this ought to go somewhere else so this "issue" just reflects what action was finally agreed on or implemented? I've cleared the URL field. 

And when we remove the libs from the Windows project, close bug 55? I don't think anything would be release notable once that's done.
Comment 12 Leland Lucius 2011-04-17 06:01:47 UTC
I've removed the libs related to SLV2 and the taglib project from the Windows solution.  The projects are still available in win/Projects, so adding them back to the solution would be easy.
Comment 13 Vaughan Johnson 2011-04-17 22:13:27 UTC
Wow, this thread has gotten long. 

> 
> Gale Andrews <gale@audacityteam.org> changed:
> 
> The reason I dismissed this rather summarily was that this bug as worded
> contradicts bug 55, so the two bugs can't really coexist together. LV2 was a
> significant part of GSoC 2008 even though the work was left unfinished:
> http://wiki.audacityteam.org/wiki/LV2_Support

Thanks for the reminder. That is something that probably will be useful in future, so I now think we should keep it in. (And undo any removal that has occurred.)


Ed, I was going to ask the same question Leland's did, about whether you "select all". IMO, you simply should not do that. If it's not clear in compile.txt, we should make it so. 

The right way to batch build is just select Audacity projects, and let the dependencies build only the libraries we actually use. I think there are several libraries we include in lib-src and the SLN file, but don't build -- mostly projects that are alternative builds (with #USE_*) or incomplete projects we might return to. I guess the others compile, but there's no reason for you to build them, which you are doing with "select all" -- so your batch build times are probably significantly longer than they need to be. 

Anyway, we should document this anywhere lib-src is documented, and in compile.txt rather than throwing away previous work that might be implemented in future.

As to the size of slv2, 70MB is tiny these days.

Just my opinion.
Comment 14 Leland Lucius 2011-04-17 22:46:11 UTC
(In reply to comment #13)
> 
> Thanks for the reminder. That is something that probably will be useful in
> future, so I now think we should keep it in. (And undo any removal that has
> occurred.)
> 
Just to clarify...none of the real work was removed.  It all still remains in the Audacity source.  The only thing that was removed was he ability to build the supporting libraries.

As far as the LV2 plugin support, I do not believe trying to build the SLV2 library as part of the Audacity Windows solution would ever have worked without quite a bit of patching.

The EFFECT_CATEGORIES feature could have been made to work, but that's been possible since it was put in and it has never been utilized.
Comment 15 Gale Andrews 2011-04-18 13:42:56 UTC
(In reply to comment #14)
> none of the real work was removed.  It all still remains in
> the Audacity source.  The only thing that was removed was he ability
> to build the supporting libraries.
>
> As far as the LV2 plugin support, I do not believe trying to build the SLV2
> library as part of the Audacity Windows solution would ever have worked without
> quite a bit of patching.

I think at least it's consistent now cross-platform, and could be left like that for now. It seems like bringing LV2 support in could have a number of solutions, but we don't need to burn our bridges by removing the libs from lib-src.        

I've changed the bug title (again) to "LV2 support unfinished". 

> The EFFECT_CATEGORIES feature could have been made to work, but that's been
> possible since it was put in and it has never been utilized.
It was actually in one or more Betas, and functional, but we pulled it because it was unpopular (largely because we let heavily used effects be hidden too far inside the structure). I think the correct approach as the code comment states would be to give the user a way to turn it on/off then bring it back. And sometime maybe give user the ability to move the effects around in the groupings as they want.
Comment 16 Vaughan Johnson 2011-04-18 16:29:51 UTC
(In reply to comment #15)

 
> Gale Andrews <gale@audacityteam.org> changed:
>[...]
> I think at least it's consistent now cross-platform, and could be left like
> that for now. 

Fine by me. Thanks for the clarification, Leland.
Comment 17 Gale Andrews 2012-11-30 03:06:19 UTC
As the below might assist with completing LV2 support, promoted to P4. 

SLV2 has been superseded by LILV (http://drobilla.net/software/lilv/). LILV is said to compile easily on Windows, Mac and Linux and has minimal dependencies e.g. Redland not required. 

In the Forum topic in the URL, Harrison Consoles plan to release cross-platform LV2 plug-ins for Ardour and Mixbus and are interested in helping to bring them into Audacity. There is also an unreplied-to devel topic http://audacity.238276.n2.nabble.com/Good-news-for-LV2-support-td7556402.html .
Comment 18 Gale Andrews 2013-12-03 02:12:40 UTC
(In reply to comment #17)
Reworked LV2 support (using LILV for Windows was committed in http://code.google.com/p/audacity/source/detail?r=12781 .  

This removes the old supporting libraries (liblrdf, libraptor, redland, and slv2) and enables all platforms to use LV2 plug-ins in non-GUI mode.  There is
still some work to do, like subgroup handling and better scalepoint
handling. 

Marking it as "DEVEL - FIX MADE" to track that the current major improvement is working correctly.   

If someone has a view on whether the remaining issues should be separate P4's or P5's or keep this as a summary bug for remaining LV2 issues, please comment. 

I think there is more we can do to support LV2 GUI (on Linux) without losing the textual interface. See:
http://audacity.238276.n2.nabble.com/Width-of-LV2-plug-ins-td7560252.html#a7560276 .    

However the consensus seems to be that it will be hard to support LV2 GUI properly other than on Linux.
Comment 19 Gale Andrews 2014-09-12 13:30:59 UTC
Textual interface works which is probably all this bug was supposed to address.