Hi Adam,
Sounds like you've done some great troubleshooting so far, and I'm glad
you emailed me when you did. I totally forgot that we "disabled" the
LADSPA tab in the main Mixxx UI as we were preparing for the 1.7
release. Sorry about this!
I've attached a patch that re-enables the LADSPA tab, and you should
apply this to your local copy of Mixxx. However, before you do that, now
is probably a good time to create a LADSPA branch with BZR for yourself.
The 1.7 branch you're working on is the correct place to start, and
that's what you want to branch from for your new LADSPA branch.
In order to turn your local "checkout" of the 1.7 branch into a new
branch, all you'll need to do is run "bzr unbind" in the checkout's
directory. This will turn your local directory into a new branch. Once
you've done that, try applying my patch, commit your changes ("bzr
commit"), and then "push" your branch to Launchpad to make it public by
running:
bzr push lp:~userid/mixxx/features_ladspa2
I hope this helps! Creating a public LADSPA branch will help others
contribute easier hopefully. :)
I should also mention that I've just given my LADSPA-enabled Mixxx build
a shot on Linux, and it doesn't detect the LADSPA plugins either. It
sounds like the plugin search path problem probably happens on all
platforms.
Regarding the LADSPA libraries on OS X, I would check to see what
compiler flags are being passed to GCC when we're building the plugins.
It's possible that we're missing some magic flags that would make it
work. (We might need -fPIC, off the top of my head? Maybe try editing
the SConscript files in the lib/ladspa/cmt and caps dirs to add that as
a CCFLAG.)
Anyways, if you get stuck with BZR, SCONS, or anything really, feel free
to ask more questions or hop onto #mixxx on Freenode. There's usually at
least one person around to help. :)
Thanks,
Albert
On Thu, 2009-05-21 at 23:43 +0100, Adam Davis wrote:
> Hi Albert and Garth,
>
> I've been looking at the LADSPA issue in my spare time over the last
> few days. It looks to me like both of Albert's suggestions ended up
> being culprits: near as I can tell, there is a problem with paths in
> the LADSPA loader (there are none) and when I force a path in and it
> finds the plugin, it says the file isn't a valid LADSPA plugin.
>
> The constructor for LADSPA loader declares QStringList plugin_paths on
> the 2nd line and then immediately tries to iterate over the members of
> plugin_paths which is (of course) empty. Presumably the plugin_paths
> that is meant to be referenced is the global one declared in main.
>
> To test that the LADSPALoader was at least functioning, I hard-coded
> the path to caps, at which point Mixxx said:
>
> Debug: [Main]: "The file [...]* caps.dylib is not a LADSPA plugin"
>
> The first problem (no paths in LADSPA loader) seems very strange to
> me, as presumably it would affect all platforms, but I had understood
> LADSPA functions on (at least) Linux from a standard build. Have I
> grabbed the wrong version of mixxx for testing LADSPA (1.7 from bzr as
> recommended here:
> http://www.mixxx.org/wiki/doku.php/compiling_on_os_x)? Should I be
> looking in svn?
>
> It's perhaps worth noting that not only do the plugins not get loaded,
> but none of the GUI (menus, tab, etc) associated with LADSPA show up
> when I launch Mixxx. I'm not sure if Q just doesn't bother creating
> the view if it doesn't find any plugins or if this, too, is strange
> behavior.
>
> Any guidance would be appreciated.
>
> Thanks,
>
> -Adam
>
> *Path changed to protect the innocent
>
> On Tue, May 19, 2009 at 5:41 PM, Albert Santoni <[email protected]>
> wrote:
> Hi Adam,
>
> What Garth just said is not quite up to date. The "cmt" and
> "caps"
> LADSPA plugin collections get compiled when Mixxx is built,
> and you'll
> find their source in the "lib/ladspa" directory in our source
> tree.
> They get compiled on Linux and OS X. Getting them to compile
> on a
> non-POSIX system (Windows) looked like it was going to be a
> bit of
> work, so the plan is to just steal Audacity's precompiled
> LADSPA
> plugins and bundle those on win32 (rather than compiling them
> ourselves).
>
> Let's only worry about caps and cmt for now. I don't know if
> there was
> a reason I didn't roll swh-plugins into our tree or not, but
> we can
> try playing with those plugins later.
>
> With the caps and cmt libraries, the important thing to note
> is that
> multiple plugins are rolled into a single dynamic linking
> library
> (.dylib on OS X). For example, the wiki mentions that both the
> Compressor plugin and PlateReverb live inside
> caps.so/caps.dylib.
>
> So to half-answer Adam's original question - I don't know
> whether its
> a path issue or a compile issue with the plugins. The plugins
> originally used a nasty Makefile, so I rolled my own
> SConscript to
> compile each plugin collection. It's quite possible that I
> messed up
> something there, although I'm pretty sure I had this working
> at some
> point. My gut feeling is that it's a path issue since I don't
> remember
> copying the libraries over into the Mixxx.app bundle at any
> point.
>
> A place I would suggest starting is by putting some qDebug()'s
> around
> where the code that spits out:
> >> Debug: [Main]: LADSPA: Plugin "Compress" not found
> (required by preset "Compressor" )
>
>
> (qDebug() is Qt's equivalent to printf(), but a bit more
> powerful.) We
> should figure out what path our code is actually looking in
> for those
> plugins....
>
> Thanks, and great to hear you're interested in working on
> LADSPA. We
> need your help!
> Albert
>
>
>
> On Tue, May 19, 2009 at 5:17 AM, Garth Dahlstrom
> <[email protected]> wrote:
> > Hi Adam,
> >
> > Unfortunately, I've not yet had a chance to play with it
> myself on OSX, so I
> > can't say for how it works, but I can tell you how it works
> on Windows and
> > Linux...
> >
> > Mixxx only comes with the plug-in mappings for a handful of
> LADSPA plugins
> > (see http://www.mixxx.org/wiki/doku.php/ladspa), we don't
> actually
> > distribute the actual plugins with Mixxx, they must be
> either built or
> > downloaded separately. I've had success using the Audacity
> prebuilt
> > plug-ins for Windows and Ubuntu LADSPA packages (seen on the
> wiki page), so
> > there is a good chance prebuilt ones for OSX will work too
> (if we haven't
> > messed up the paths).
> >
> > 2 of the 5 (DJFlanger and karoke) we have plug-in mappings
> come from "swh",
> > it looks like there is a Mac package available from SWH from
> here:
> > http://audacity.sourceforge.net/download/plugins... So it
> might be easiest
> > to start there.
> >
> > Let me know how it goes.
> >
> > Cheers,
> >
> > -G
> > __
> > --- == __/ t.O ==--
> > http://stacktrace.org/
> >
> >
> > On Tue, May 19, 2009 at 4:54 AM, Adam Davis
> <[email protected]> wrote:
> >>
> >> I've just built Mixxx on Mac OS X (without any issues,
> really -- kudos for
> >> the good documentation here:
> >> http://www.mixxx.org/wiki/doku.php/compiling_on_os_x).
> >>
> >> Well, ok, there's one issue: I tried to get the LADSPA
> plugins working (in
> >> hopes of seeing whether I might not be in over my head
> trying to contribute
> >> patches to get LADSPA closer to release).
> >>
> >> To summarize what I can see: ladspa support is enabled when
> I build:
> >>
> >> LADSPA support... enabled
> >>
> >> But Mixxx fails to load the plugins on startup:
> >>
> >> Debug: [Main]: LADSPA: file
> "../res/skins/outline/../../ladspa_presets/."
> >> Debug: [Main]: LADSPA: file
> >> "../res/skins/outline/../../ladspa_presets/.."
> >> Debug: [Main]: LADSPA: file
> >> "../res/skins/outline/../../ladspa_presets/compressor.xml"
> >> Debug: [Main]: LADSPA: Plugin "Compress" not found
> (required by preset
> >> "Compressor" )
> >>
> >> It's not clear to me whether this is simply a path issue
> (the ladspa
> >> plugins are appropriately built and just not being found by
> Mixxx) or
> >> whether the plugins aren't properly built for OSX. I see
> that one of the
> >> TODO's here http://www.mixxx.org/wiki/doku.php/ladspa
> suggests the plugins
> >> need to be built for OS X. Any suggestions as to how to
> proceed?
> >>
> >> Thanks.
> >>
> >> -Adam
> >>
> >>
> >>
>
> ------------------------------------------------------------------------------
> >> Crystal Reports - New Free Runtime and 30 Day Trial
> >> Check out the new simplified licensing option that enables
> >> unlimited royalty-free distribution of the report engine
> >> for externally facing server and web deployment.
> >> http://p.sf.net/sfu/businessobjects
> >> _______________________________________________
> >> Mixxx-devel mailing list
> >> [email protected]
> >> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
> >>
> >
> >
> >
>
> ------------------------------------------------------------------------------
> > Crystal Reports - New Free Runtime and 30 Day Trial
> > Check out the new simplified licensing option that enables
> > unlimited royalty-free distribution of the report engine
> > for externally facing server and web deployment.
> > http://p.sf.net/sfu/businessobjects
> > _______________________________________________
> > Mixxx-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/mixxx-devel
> >
> >
>
>
=== modified file 'mixxx/src/mixxxview.cpp'
--- mixxx/src/mixxxview.cpp 2009-05-03 02:34:18 +0000
+++ mixxx/src/mixxxview.cpp 2009-05-22 03:42:53 +0000
@@ -740,7 +740,7 @@
if (m_pTabWidget == 0) {
//Create the tab widget to store the various panes in (library, effects, etc.)
- m_pTabWidget = new QStackedWidget(this);
+ m_pTabWidget = new QTabWidget(this);
//Create the pages that go in the tab widget
m_pTabWidgetLibraryPage = new QWidget();
@@ -768,19 +768,10 @@
0); //Default alignment
//Add the library page to the tab widget.
- m_pTabWidget->addWidget(m_pTabWidgetLibraryPage);//, tr("Library"));
-
- //Add the effects page to the tab widget.
- m_pTabWidget->addWidget(m_pTabWidgetEffectsPage);//, tr("Effects"));
-
- /*
- //XXX: Re-enable this to get the tab widget back, post 1.7.0 release.
- //Add the library page to the tab widget.
- m_pTabWidget->addWidget(m_pTabWidgetLibraryPage, tr("Library"));
-
- //Add the effects page to the tab widget.
- m_pTabWidget->addWidget(m_pTabWidgetEffectsPage, tr("Effects"));
- */
+ m_pTabWidget->addTab(m_pTabWidgetLibraryPage, tr("Library"));
+
+ //Add the effects page to the tab widget.
+ m_pTabWidget->addTab(m_pTabWidgetEffectsPage, tr("Effects"));
}
//Move the tab widget into position and size it properly.
=== modified file 'mixxx/src/mixxxview.h'
--- mixxx/src/mixxxview.h 2009-04-18 16:32:23 +0000
+++ mixxx/src/mixxxview.h 2009-05-22 03:33:01 +0000
@@ -118,7 +118,7 @@
ConfigObject<ConfigValue> *m_pconfig;
/** Tab widget, which contains several "pages" for different views */
- QStackedWidget* m_pTabWidget; //XXX: Temporarily turned this into a QStackedWidget instead of a QTabWidget to disable the tabs for 1.7.0 since LADSPA effects isn't finished.
+ QTabWidget* m_pTabWidget;
/** The widget containing the library/tracktable page */
QWidget* m_pTabWidgetLibraryPage;
/** The widget containing the effects/LADSPA page */
------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, &
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel