Package: audacity
Version: 2.1.2-1+b1
Severity: minor

Dear Maintainer,

In the settings window for LADSPA effects, the sliders do not move to
negative integers. If, for example, an integer option ranges from -3 to
3 (inclusive), the slider will only move within one half of the bar.

What is interesting is that negative values can still be entered
manually, and the slider will even move to the appropriate position in
the negative part! But trying to adjust the slider will cause it to jump
back to the 0 position.

Also, the lower-bound label for the slider is incorrect when negative
integers are involved: It is one greater than the true lower bound. So,
if the range were from -3 to 3, the lower-bound label would be -2.
However, the slider seems to behave as if the lower bound is correct.

I first discovered these issues while using Tom Baran's Autotalent
plugin (packaged as "autotalent"), so that may be used to reproduce
these issues. I have also attached a test plugin which may help.

Thank you for your consideration.

Kyanos

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (500, 'testing'), (300, 'oldstable-updates'), (300,
'oldstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.6.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages audacity depends on:
ii  audacity-data       2.1.2-1
ii  libasound2          1.1.1-2
ii  libavcodec57        7:3.0.2-4
ii  libavformat57       7:3.0.2-4
ii  libavutil55         7:3.0.2-4
ii  libc6               2.23-1
ii  libexpat1           2.2.0-1
ii  libflac++6v5        1.3.1-4
ii  libflac8            1.3.1-4
ii  libgcc1             1:6.1.1-9
ii  libgdk-pixbuf2.0-0  2.34.0-1
ii  libglib2.0-0        2.48.1-1
ii  libgtk2.0-0         2.24.30-2
ii  libid3tag0          0.15.1b-11
ii  liblilv-0-0         0.22.0~dfsg0-1
ii  libmad0             0.15.1b-8
ii  libmp3lame0         3.99.5+repack1-9+b1
ii  libogg0             1.3.2-1
ii  libportaudio2       19+svn20140130-1
ii  libportsmf0         0.1~svn20101010-4
ii  libsbsms10          2.0.2-1
ii  libsndfile1         1.0.25-10
ii  libsoundtouch1      1.9.2-2
ii  libsoxr0            0.1.2-1
ii  libstdc++6          6.1.1-9
ii  libsuil-0-0         0.8.2~dfsg0-1
ii  libtwolame0         0.3.13-1.2
ii  libvamp-hostsdk3v5  2.6~repack0-2
ii  libvorbis0a         1.3.5-3
ii  libvorbisenc2       1.3.5-3
ii  libvorbisfile3      1.3.5-3
ii  libwxbase3.0-0v5    3.0.2+dfsg-1.4
ii  libwxgtk3.0-0v5     3.0.2+dfsg-1.4

audacity recommends no packages.

Versions of packages audacity suggests:
ii  autotalent [ladspa-plugin]   0.2-5
ii  caps [ladspa-plugin]         0.9.24-2
ii  ladspa-sdk [ladspa-plugin]   1.13-2+b1
ii  swh-plugins [ladspa-plugin]  0.4.16+git20160602~repack1-2
ii  tap-plugins [ladspa-plugin]  0.7.3-1

-- no debconf information
#include <ladspa.h>
#include <stdlib.h>
#include <stddef.h>

/*
 * This is a LADSPA plugin that merely copies the audio input to the output.
 * The primary purpose of this plugin is to test hosts' handling of control
 * inputs.
 *
 * To the extent possible under law, Kyanos has waived all copyright and
 * related or neighboring rights to this work, using Creative Commons
 * CC0 1.0 Universal. For more information, please visit:
 * https://creativecommons.org/publicdomain/zero/1.0/
 */

/* Port count (1 audio in, 1 audio out, 1 control in) */
#define LT_PORTS_COUNT 3

/* Port numbers */
#define LT_PORT_AUDIO_IN 0
#define LT_PORT_AUDIO_OUT 1
#define LT_PORT_CONTROL_IN 2

typedef struct lt_instance_s {
	LADSPA_Data* connections[LT_PORTS_COUNT];
} lt_instance;

const LADSPA_PortDescriptor lt_port_descs[] = {
	LADSPA_PORT_AUDIO | LADSPA_PORT_INPUT,
	LADSPA_PORT_AUDIO | LADSPA_PORT_OUTPUT,
	LADSPA_PORT_CONTROL | LADSPA_PORT_INPUT,
};
const char* lt_port_names[] = {
	"Audio In",
	"Audio Out",
	"Test Option",
};
const LADSPA_PortRangeHint lt_port_range_hints[] = {
	/* Dummy hints for audio ports */
	{0, 0, 0},
	{0, 0, 0},
	/* Hints for control port */
	{
		LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE
			| LADSPA_HINT_INTEGER | LADSPA_HINT_DEFAULT_0
		,
		-0.1,
		3.1
	},
};

LADSPA_Handle lt_instantiate(
	const struct _LADSPA_Descriptor * Descriptor, unsigned long SampleRate
);

void lt_connect_port(
	LADSPA_Handle Instance, unsigned long Port, LADSPA_Data * DataLocation
);

void lt_run(LADSPA_Handle Instance, unsigned long SampleCount);

void lt_cleanup(LADSPA_Handle Instance);

/* Descriptor for this plugin */
const LADSPA_Descriptor lt_descriptor = {
	/*
	 * Unique ID.
	 *
	 * "Plugin IDs 1-1000 are reserved for development use"
	 * (LADSPA SDK documentation)
	 */
	1,

	/* Label */
	"ladspatest",

	/* Properties */
	LADSPA_PROPERTY_REALTIME | LADSPA_PROPERTY_HARD_RT_CAPABLE,

	/* Name */
	"LADSPA Test Plugin",

	/* Maker */
	"Kyanos <someanon...@gmail.com>",

	/* Copyright */
	"Public Domain (CC0 1.0 Universal)",

	/* Port count (1 audio in, 1 audio out, 1 control in) */
	LT_PORTS_COUNT,

	/* Port descriptor array */
	lt_port_descs,

	/* Port name array */
	lt_port_names,

	/* Port range hints */
	lt_port_range_hints,

	/* Implementation data (not used) */
	NULL,

	/* Instantiate function */
	lt_instantiate,

	/* Connect port function */
	lt_connect_port,

	/* Activate function (not provided) */
	NULL,

	/* Run function */
	lt_run,

	/* Run adding function (not provided) */
	NULL,

	/* Set run adding gain function (not provided) */
	NULL,

	/* Deactivate function (not provided) */
	NULL,

	/* Cleanup function */
	lt_cleanup,
};

const LADSPA_Descriptor * ladspa_descriptor(unsigned long Index) {
	if(Index == 0) {
		return &lt_descriptor;
	} else {
		return NULL;
	}
}

LADSPA_Handle lt_instantiate(
	const struct _LADSPA_Descriptor * Descriptor, unsigned long SampleRate
) {
	if(Descriptor != &lt_descriptor) {
		return NULL;
	}

	return malloc(sizeof(lt_instance));
}

void lt_connect_port(
	LADSPA_Handle Instance, unsigned long Port, LADSPA_Data * DataLocation
) {
	if(Port < LT_PORTS_COUNT) {
		((lt_instance*) Instance)->connections[Port] = DataLocation;
	}
}

void lt_run(LADSPA_Handle Instance, unsigned long SampleCount) {
	/* Copy data from audio input to audio output */
	lt_instance* lti = (lt_instance*) Instance;
	for(; SampleCount > 0; SampleCount--) {
		lti->connections[LT_PORT_AUDIO_OUT][SampleCount - 1]
			= lti->connections[LT_PORT_AUDIO_IN][SampleCount - 1]
		;
	}
}

void lt_cleanup(LADSPA_Handle Instance) {
	free(Instance);
}
_______________________________________________
pkg-multimedia-maintainers mailing list
pkg-multimedia-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-multimedia-maintainers

Reply via email to