View Issue Details

IDProjectCategoryView StatusLast Update
0000586ardourbugspublic2004-12-20 14:45
Reporterv2 Assigned Totaybin  
PriorityurgentSeverityminorReproducibilitysometimes
Status closedResolutionfixed 
Summary0000586: Strange values in plugin preset selectbox
DescriptionI have a session where I see "Hall (Large)" in the preset selectbox of Steve Harris's AM pitchshifter. I have no "Hall (Large)" described in my ~/.ladspa/rdf/ardour-presets.n3

The "Hall (Large)" could be from the TAP Reverb, but I haven't used that plugin in this session or anywhere near the running ardour where I saw this behaviour.

If I reload the session, the 'preset' is still there. Selecting it doesn't do anything.

Ardour/GTK 0.521.0 running with libardour 0.821.0
TagsNo tags attached.

Relationships

has duplicate 0000783 closedtaybin Pull Down selection widgets on plugins not working correctly 

Activities

taybin

2004-07-16 19:56

administrator   ~0001235

What version of lrdf are you running? I've committed a fix to ardour's CVS. Could you check if this has fixed it for you?

v2

2004-07-17 12:49

developer   ~0001242

0.3.7 (Debian version 0.3.7-1). The problem still exists, but I cannot be sure that I had your fix in the tarball I got.

The cvs tarball I used is dated "17-Jul-2004 04:13" (tarball is 1534145 bytes), version:

Ardour/GTK 0.524.0 running with libardour 0.823.0

tszilagyi

2004-08-17 19:11

reporter   ~0001413

I also see a similar (or at least related) problem, present in the 0.9beta19 release.

It seems to me that the parsing of RDF files of plugins on startup does something wrong. It's related to Scale definitions of port value ranges, which causes the nice drop-down lists in the plugin windows. Haven't looked at the corresponding Ardour code, but when I open TAP DeEsser in Ardour, in the drop-down windows of the two scale'd inputs I see texts that should be seen in the Reverb Type combo box of TAP Reverberator. These two plugins have their RDF data in two files, tap-plugins.rdf and tap_reverb.rdf (because the latter is automatically generated by the reverb patch editor program). Now if I merge these two RDF files together, (not simple cat'ing since XML headers should be taken care of), then it works perfectly. No RDF code was changed, only splitting into two files causes a problem. May be a bug that causes multiple RDF file's data to "step on" each other? (Not incrementing/updating something when parsing new RDF files...?)

This was the case until I recently installed the latest swh-plugins, which finally also comes with some Scale definitions in its RDF description. That completely messed these drop-down lists up; Steve's plugins' scale names (like "none", "sawtooth", "squarewave" etc) appear in the Reverb Type selector of my Reverb... ungood.

Not 100% sure if it's Ardour, liblrdf, or the RDF files themselves...

It seems that if everything is in *one* RDF file, it works OK.

tszilagyi

2004-08-17 19:15

reporter   ~0001414

Forgot to say, I use liblrdf-0.3.7.
The issue I described has been along for a while now; at least since beta17, and still (beta19) unchanged. I don't run the latest CVS yet, but i don't remember seeing any ladspa/lrdf-related commits on ardour-cvs.

Glad to provide any more details and/or do some testing if I can.

taybin

2004-08-18 13:03

administrator   ~0001419

Last edited: 2004-08-18 14:21

Could you try renaming the files so they load in the opposite order?

edited on: 08-18-04 06:52

Actually, what version of libraptor do you have installed?

edited on: 08-18-04 07:21

tszilagyi

2004-08-18 18:51

reporter   ~0001420

Reversing the names of the files (so they are in opposite order) doesn't seem to make any difference.

libraptor: I installed raptor-0.9.12 from source way back when I started using Ardour. That version might be quite outdated, since now I just downloaded 1.3.2 (that's the latest). I will rebuild the whole thing with that now, but it will take some time. I will post my results when I'm done.

tszilagyi

2004-08-18 20:04

reporter   ~0001422

OK, compiled raptor-1.3.2, upon that lrdf-0.3.7, upon that ardour 0.9beta19 (all from source).

Not much difference, if any. I tried to arrange the rdf files by means of renaming them, in all sorts of ways, but that didn't ever make any difference, at least I haven't noticed.

The only thing I saw was that before, with all SWH and TAP rdf loaded, my Reverb had all sorts of garbage in the Reverb Type combo. Now there appears the correct list, but unfortunately I can't select all of them. Approximately every second entry (not that systematically) selects one of the first two entries (Afterburn, Afterburn (Long)). Other entries let selecting them. It's very strange, certain items can always be selected, while others always jump back to the top of the list. The pattern of these (eg. exactly which does what) doesn't make any sense to me -- should I document it?

tszilagyi

2004-08-20 18:38

reporter   ~0001426

As a follow-up, I wrote a tiny C program that uses liblrdf, parses all RDF files it can find, and lists some scale values of some plugin's ports.

The output of this program is broken in the exact same way as the drop-down combos are in Ardour LADSPA windows, so I'm pretty sure this is a liblrdf bug, or something that it depends upon (eg. raptor).

I know this has been pretty obvious to you, but the proggy may be useful to verify broken/fixed status of the library.

2004-08-20 18:39

 

plugin.c (2,354 bytes)   
/* Compile with:
 * gcc -Wall -o plugin plugin.c -llrdf
 */


#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <lrdf.h>

#define MAXLEN 1024

static int
rdf_filter(const struct dirent * de) {

	if (de->d_type != DT_REG)
		return 0;

	if (de->d_name[0] == '.')
		return 0;

	return (((strlen(de->d_name) >= 4) && (strcmp(de->d_name + strlen(de->d_name) - 3, ".n3") == 0)) ||
		((strlen(de->d_name) >= 5) && (strcmp(de->d_name + strlen(de->d_name) - 4, ".rdf") == 0)) ||
		((strlen(de->d_name) >= 6) && (strcmp(de->d_name + strlen(de->d_name) - 5, ".rdfs") == 0)));
}

void
parse_lrdf_data(void) {


	char * lrdf_path = NULL;
	char rdf_path[MAXLEN];
	char fileuri[MAXLEN];
	int i, j = 0;
	struct dirent ** de;
	int n;

	if (!(lrdf_path = getenv("LADSPA_RDF_PATH"))) {
                lrdf_path = strdup("/usr/local/share/ladspa/rdf:/usr/share/ladspa/rdf");
        }

	printf("lrdf_path = %s\n", lrdf_path);


	strcat(lrdf_path, ":");
	for (i = 0; lrdf_path[i] != '\0'; i++) {
		if (lrdf_path[i] == ':') {
			rdf_path[j] = '\0';
			j = 0;
			printf("rdf_path = %s\n", rdf_path);

			n = scandir(rdf_path, &de, rdf_filter, alphasort);
			if (n >= 0) {
				int c;
				
				for (c = 0; c < n; ++c) {
					snprintf(fileuri, MAXLEN-1, "file://%s/%s", rdf_path, de[c]->d_name);
					if (lrdf_read_file(fileuri)) {
						printf("warning: could not parse RDF file: %s\n", fileuri);
					} else
						printf("parsed RDF: %s\n", fileuri);
				}
			}
		} else {
			rdf_path[j++] = lrdf_path[i];
		}
	}
}

void
list_scale_info(int id, int port) {

	int i;
	lrdf_defaults * defs;

	printf("\nPlugin ID: %d, port %d\n", id, port);

	defs = lrdf_get_scale_values(id, port);
	for (i = 0; defs && i < defs->count; i++) {
		printf("%f = '%s'\n", defs->items[i].value, defs->items[i].label);
	}
	lrdf_free_setting_values(defs);
}

int main(int argc, char ** argv) {

	lrdf_init();

	parse_lrdf_data();

	/* Reverb Types of TAP Reverberator */
	list_scale_info(2142, 8);

	/* Sidechain filter chooser of TAP DeEsser */
	/* Should return {"Highpass", "Bandpass"} !!! */
	list_scale_info(2147, 3);

	/* Monitor chooser of TAP DeEsser */
	/* Should return {"Audio", "Sidechain"} !!! */
	list_scale_info(2147, 4);

	/* SWH Diode processor */
	/* Should return {"none", "half wave", "full wave"} !!! */
	list_scale_info(1185, 0);

	lrdf_cleanup();

	return 0;
}
plugin.c (2,354 bytes)   

taybin

2004-08-20 18:41

administrator   ~0001427

Is it broken in that it shows inappropriate values? Or does it show the selection bug you were mentioning?

Steve has a fix for the first problem. libraptor changed some semantics that liblrdf was depending on.

tszilagyi

2004-08-20 20:01

reporter   ~0001429

Shows inappropriate values (strings from other plugin's drop-down combos).

taybin

2004-10-27 02:10

administrator   ~0001540

Is this still a problem?

tszilagyi

2004-10-27 13:00

reporter   ~0001541

Due to excessive RealLife involvements, I was not able to keep up with the most recent Ardour developments. If time permits, I will try to roll a new CVS version this weekend, and report what I see.

irp

2004-10-27 14:15

reporter   ~0001542

Last edited: 2004-10-27 14:16

While my issue is not identical, it was very very similiar, sympton wise,
it still exists [At least with ardour 0.9beta19, swh-plugins 0.47,
libraptor 1.3.3, and lrdf 0.3.7 - Are they still the latest, or do
I need to go grab some updates and/or ask the debian maintainer nicely
to upgrade the sid packages ?:)]

(See the thread "Problem with Gate Plugin & Ardour" if anyone wants my exact
symptons)

I did see a note on the -devel list saying Steve Harris was working on it,
a couple of weeks ago, so I was really just watching for any updates to the
ardour, swh-plugins, libraptor, and lrdf, and monitoring mantis, but hadn't
seen any up to now.

edited on: 10-27-04 07:16

tszilagyi

2004-11-01 18:37

reporter   ~0001557

All the same, just tried with 0.9beta20.
No suprise, since this is actually a liblrdf bug AFAIK.

irp

2004-11-02 17:27

reporter   ~0001565

Just noticed debian/sid had, what claims to be librdf0 0.9.18 in it,
so tried that with ardour 0.9beta19, and swh-plugins 0.4.7, still
have exactly the same problem.

Haven't tried beta20|21, or the very latest swh-plugins yet(0.4.11),
as they aren't in debian/sid yet.

irp

2004-11-03 20:40

reporter   ~0001571

Just tried beta21, with librdf 0.9.18. Same symptons.
Still waiting for swh-plugins 0.4.11 to appear in debian
sid.

I might try to compile swh-plugins 0.4.11 myself this
weekend if I get a chance, and its not in by then

schrotie

2004-11-14 10:50

reporter   ~0001590

At some point the gui changed (I don't know, maybe before ardour beta19). Before that point such choices in ladspa plugins were presented as radio buttons and then it worked. After the switch to the drop down list the interface was mostly broken. Still broken in beta21.

schrotie

2004-11-14 23:28

reporter   ~0001593

Look at the TAP Reverberator plugin. It has a long list of choices - every nth choice is correct (ambience, cathedral, gymnasium ...).

taybin

2004-11-30 02:46

administrator   ~0001653

Please try upgrading to the latest libraptor. (1.4.2 as of now)

schrotie

2004-12-02 21:23

reporter   ~0001666

I have that version, but I don't know since when. Do I have to recompile ardour?

schrotie

2004-12-03 20:04

reporter   ~0001670

I recompiled but without making clean - should work though if the dependencies are computed automatically which I suppose in a project the size of ardour ...
I also saw that 0.9beta21 is in my distro - Debian Sarge.
I tried it whith my build and with the Debian build, same result:

The problem is still there (seemingly identical but I did not check option by option) BUT there is also another problem: editing plugin parameters does not work from the mixer anymore, it only works from the routing windows. The obvious difference is that the parameter preferences have to pop up their own window from the mixer but are embedded in the routing windows.

v2

2004-12-06 21:44

developer   ~0001676

Same here. I have liblrdf 0.37-3 and libraptor 1.4.2-1 (both debian testing). After upgrading to libraptor1 and libraptor1-dev to 1.4.2-1 , I recompiled ardour and alas, no change.

At the moment I'm stuck with Ardour/GTK 0.536.0 running with libardour 0.837.0

taybin

2004-12-19 23:34

administrator   ~0001745

Last edited: 2004-12-20 03:01

Fixed with the latest lrdf-0.4.0, now available at http://sf.net/projects/lrdf/.

v2

2004-12-20 14:45

developer   ~0001753

Yes. The issue is fixed!

Issue History

Date Modified Username Field Change
2004-07-02 22:03 v2 New Issue
2004-07-07 13:29 taybin Status new => assigned
2004-07-07 13:29 taybin Assigned To => taybin
2004-07-16 19:56 taybin Note Added: 0001235
2004-07-17 12:49 v2 Note Added: 0001242
2004-08-17 19:11 tszilagyi Note Added: 0001413
2004-08-17 19:15 tszilagyi Note Added: 0001414
2004-08-18 13:03 taybin Note Added: 0001419
2004-08-18 13:52 taybin Note Edited: 0001419
2004-08-18 13:54 taybin Reproducibility have not tried => sometimes
2004-08-18 14:21 taybin Note Edited: 0001419
2004-08-18 18:51 tszilagyi Note Added: 0001420
2004-08-18 20:04 tszilagyi Note Added: 0001422
2004-08-20 18:38 tszilagyi Note Added: 0001426
2004-08-20 18:39 tszilagyi File Added: plugin.c
2004-08-20 18:41 taybin Note Added: 0001427
2004-08-20 20:01 tszilagyi Note Added: 0001429
2004-10-27 02:10 taybin Note Added: 0001540
2004-10-27 13:00 tszilagyi Note Added: 0001541
2004-10-27 14:15 irp Note Added: 0001542
2004-10-27 14:16 irp Note Edited: 0001542
2004-11-01 18:37 tszilagyi Note Added: 0001557
2004-11-02 17:27 irp Note Added: 0001565
2004-11-03 20:40 irp Note Added: 0001571
2004-11-14 10:50 schrotie Note Added: 0001590
2004-11-14 23:28 schrotie Note Added: 0001593
2004-11-30 02:46 taybin Note Added: 0001653
2004-12-01 16:50 taybin Relationship added has duplicate 0000783
2004-12-02 21:23 schrotie Note Added: 0001666
2004-12-03 20:04 schrotie Note Added: 0001670
2004-12-06 21:44 v2 Note Added: 0001676
2004-12-19 23:34 taybin Status assigned => resolved
2004-12-19 23:34 taybin Resolution open => fixed
2004-12-19 23:34 taybin Note Added: 0001745
2004-12-20 03:01 taybin Note Edited: 0001745
2004-12-20 14:45 v2 Status resolved => closed
2004-12-20 14:45 v2 Note Added: 0001753