View Issue Details

IDProjectCategoryView StatusLast Update
0004332ardourbugspublic2015-09-18 15:11
Reportercolinf Assigned Tocth103  
PrioritynormalSeverityminorReproducibilitysometimes
Status closedResolutionunable to reproduce 
Target Version3.0-beta1 
Summary0004332: LADSPA enumerated parameters don't display lists of names in A3 built from source on Ubuntu 10.04
DescriptionI'm not totally sure that this is really a bug in A3 itself, but it has me mystified, so I thought I should post it here, just in case anyone has any bright ideas.

LAPSPA plugin parameters that used to display lists of values for enumerated parameters now only display the numbers. For example TAP Reverberator's 'Reverb Type', C* AmpVTS 'model', and so forth.

This only happens when I build A3 from source: packaged versions show these plugin parameters correctly. I would conclude from this that it's an issue with a library or libraries on my distribution, but a number of things make me conclude that it's not quite that simple:

 * I've built liblrdf from source, and the same thing still happens in A3.
 * A2 works fine for me when built from source, and as far as I can see makes exactly the same sequence of calls into liblrdf.
 * copying both liblrdf.so.* and libraptor.so.* from the A3 bundle over the top of the installed versions on my system did not make it work in A3 built from source.

So, I'm officially baffled.
Additional InformationI'm running Ubuntu 10.04: this happens for me on both the machines where I've built A3 from source.
TagsNo tags attached.

Activities

cth103

2011-09-25 14:03

administrator   ~0011566

I'm seeing similar on two different Debian machines. It works on wheezy, but not on squeeze. It appears to be because lrdf_get_scale_values in LadspaPlugins::get_scale_values() returns different things.

colinf

2011-09-26 11:05

updater   ~0011568

With a bit more digging, it looks to me like something rather odd is happening inside liblrdf.

Firstly, to make sure that liblrdf is called with exactly the same rdf files between A2 and A3, I've done this:

--- libs/ardour/audio_library.cc (revision 10123)
+++ libs/ardour/audio_library.cc (working copy)
@@ -55,9 +55,9 @@
     // workaround for possible bug in raptor that crashes when saving to a
     // non-existant file.
 
- touch_file(sfdb_file_path.to_string());
+ touch_file("/home/colinf/.ardour2//sfdb");
 
- lrdf_read_file(src.c_str());
+ lrdf_read_file("file:/home/colinf/.ardour2//sfdb");
 }

I've then added copious printf()s into liblrdf-0.4.0, and they show that lrdf_read_file_intl() is then called with exactly the same parameters in both A2 and A3.

However, when it's called on the rdf files in my "/usr/local/share/ladspa/rdf/" (such as "file:///usr/local/share/ladspa/rdf/swh-plugins.rdf"), the oddness begins.

lrdf_read_file_intl() does:
    raptor_set_statement_handler(parser, &source, lrdf_store);

lrdf_store is a callback function for raptor. This function gets called back by the subsequent call to raptor_parse_file() for each "thing" (sorry, this is where my lack of understanding of rdf becomes very clear) in the rdf file. This happens under both A2 and A3, except that under A2, the parameters with which lrdf_store() gets called back appear to be sensible and correct, but under A3, the subject, predicate and object members of the statement parameter of lrdf_store() are all blank.

I don't know if these observations are of any use: I guess the next thing to do might be to build libraptor from source and see what's going on in there, but I'm a little loath to do that just yet since uninstalling it from the package manager seems to want to remove half my system, and I don't know whether just installing from source over the top of the packaged version is such a bright idea...

colinf

2011-10-19 17:40

updater   ~0011714

If I build libraptor-1.4.21 from source (without installing, just export LD_LIBRARY_PATH=~/src/raptor-1.4.21/src/.libs/) everything works as expected. Hmm...

colinf

2011-11-02 11:42

updater   ~0011875

Well, bizarrely, this bug has mysteriously fixed itself for me.

After I made A3 work once by pointing LD_LIBRARY_PATH to the libraptor build directory, it then continued to work even after I unset LD_LIBRARY_PATH. It's still working (several reboots later) with the Ubuntu 10.04 packaged versions of libraptor-1.4.21-1ubuntu1 and liblrdf-0.4.0-1.2.

I very probably did something I thought was unrelated that made it work, but I have no idea what stupid or clever thing (it's a fine line) that was.

I wonder if it'll break again if I do a ./waf clean?

colinf

2011-11-02 13:07

updater   ~0011878

Even after ./waf clean, it still works for me now. Most mysterious...

Should I mark this as 'resolved, unable to reproduce', or is it worth leaving it open in case it happens again (for me or anyone else)?

cth103

2011-11-14 14:13

administrator   ~0011999

I'll mark it as resolved; we can always re-open if this surfaces again.

colinf

2015-09-18 15:11

updater   ~0017240

Closing old issues: these have long since been fixed.

Issue History

Date Modified Username Field Change
2011-09-23 18:18 colinf New Issue
2011-09-23 18:46 cth103 cost => 0.00
2011-09-23 18:46 cth103 Target Version => 3.0-beta1
2011-09-25 14:03 cth103 Note Added: 0011566
2011-09-26 11:05 colinf Note Added: 0011568
2011-10-19 17:41 colinf Note Added: 0011714
2011-11-02 11:42 colinf Note Added: 0011875
2011-11-02 13:07 colinf Note Added: 0011878
2011-11-14 14:13 cth103 Note Added: 0011999
2011-11-14 14:13 cth103 Status new => resolved
2011-11-14 14:13 cth103 Resolution open => unable to reproduce
2011-11-14 14:13 cth103 Assigned To => cth103
2015-09-18 15:11 colinf Note Added: 0017240
2015-09-18 15:11 colinf Status resolved => closed