Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

StereoSourceSeparation controls have invalid value range #129

Open
kanashimia opened this issue Mar 7, 2024 · 0 comments
Open

StereoSourceSeparation controls have invalid value range #129

kanashimia opened this issue Mar 7, 2024 · 0 comments

Comments

@kanashimia
Copy link

GUI controls in the plugin set the value outside of the maximum range allowed by the plugin description:

> lv2info https://github.com/laixinyuan/StereoSourceSepartion
https://github.com/laixinyuan/StereoSourceSepartion

	Name:              StereoSourceSeparation
	Class:             Plugin
	Author:            AnnieShin
	Has latency:       no
	Bundle:            file:///run/current-system/sw/lib/lv2/StereoSourceSeparation.lv2/
	Binary:            file:///run/current-system/sw/lib/lv2/StereoSourceSeparation.lv2/StereoSourceSeparation.so
	UIs:
		https://github.com/laixinyuan/StereoSourceSepartion#ExternalUI
			Class:  http://kxstudio.sf.net/ns/lv2ext/external-ui#Widget
			Binary: file:///run/current-system/sw/lib/lv2/StereoSourceSeparation.lv2/StereoSourceSeparation.so
			Bundle: file:///run/current-system/sw/lib/lv2/StereoSourceSeparation.lv2/
		https://github.com/laixinyuan/StereoSourceSepartion#ParentUI
			Class:  http://lv2plug.in/ns/extensions/ui#X11UI
			Binary: file:///run/current-system/sw/lib/lv2/StereoSourceSeparation.lv2/StereoSourceSeparation.so
			Bundle: file:///run/current-system/sw/lib/lv2/StereoSourceSeparation.lv2/
	Data URIs:         file:///run/current-system/sw/lib/lv2/StereoSourceSeparation.lv2/manifest.ttl
	                   file:///run/current-system/sw/lib/lv2/StereoSourceSeparation.lv2/StereoSourceSeparation.ttl
	Required Features: http://lv2plug.in/ns/ext/buf-size#boundedBlockLength
	                   http://lv2plug.in/ns/ext/urid#map
	Extension Data:    http://lv2plug.in/ns/ext/options#interface
	                   http://kxstudio.sf.net/ns/lv2ext/programs#Interface
	Presets: 

	Port 0:
		Type:        http://lv2plug.in/ns/lv2core#InputPort
		             http://lv2plug.in/ns/lv2core#ControlPort
		Symbol:      lv2_freewheel
		Name:        Freewheel
		Designation: http://lv2plug.in/ns/lv2core#freeWheeling
		Minimum:     0.000000
		Maximum:     1.000000
		Default:     0.000000
		Properties:  http://lv2plug.in/ns/ext/port-props#notOnGUI
		             http://lv2plug.in/ns/lv2core#toggled


	Port 1:
		Type:        http://lv2plug.in/ns/lv2core#AudioPort
		             http://lv2plug.in/ns/lv2core#InputPort
		Symbol:      lv2_audio_in_1
		Name:        Audio Input 1

	Port 2:
		Type:        http://lv2plug.in/ns/lv2core#AudioPort
		             http://lv2plug.in/ns/lv2core#InputPort
		Symbol:      lv2_audio_in_2
		Name:        Audio Input 2

	Port 3:
		Type:        http://lv2plug.in/ns/lv2core#AudioPort
		             http://lv2plug.in/ns/lv2core#OutputPort
		Symbol:      lv2_audio_out_1
		Name:        Audio Output 1

	Port 4:
		Type:        http://lv2plug.in/ns/lv2core#AudioPort
		             http://lv2plug.in/ns/lv2core#OutputPort
		Symbol:      lv2_audio_out_2
		Name:        Audio Output 2

	Port 5:
		Type:        http://lv2plug.in/ns/lv2core#ControlPort
		             http://lv2plug.in/ns/lv2core#InputPort
		Symbol:      status
		Name:        Status
		Minimum:     0.000000
		Maximum:     1.000000
		Default:     0.000000

	Port 6:
		Type:        http://lv2plug.in/ns/lv2core#ControlPort
		             http://lv2plug.in/ns/lv2core#InputPort
		Symbol:      direction
		Name:        Direction
		Minimum:     0.000000
		Maximum:     1.000000
		Default:     1.000000

	Port 7:
		Type:        http://lv2plug.in/ns/lv2core#ControlPort
		             http://lv2plug.in/ns/lv2core#InputPort
		Symbol:      width
		Name:        Width
		Minimum:     0.000000
		Maximum:     1.000000
		Default:     1.000000

	Port 8:
		Type:        http://lv2plug.in/ns/lv2core#ControlPort
		             http://lv2plug.in/ns/lv2core#InputPort
		Symbol:      filtertype
		Name:        FilterType
		Minimum:     0.000000
		Maximum:     1.000000
		Default:     0.000000

	Port 9:
		Type:        http://lv2plug.in/ns/lv2core#InputPort
		             http://lv2plug.in/ns/lv2core#ControlPort
		Symbol:      cutofffrequency
		Name:        CutOffFrequency
		Minimum:     0.000000
		Maximum:     1.000000
		Default:     0.000000

But the allowed values in the GUI are way higher, for example 0 to 100 for the Direction.
Carla and Ardour don't allow you to set the values outside of the max range, as far as I know, or at least not in an obvious way, so this causes problems.

Also the values between the GUI and standard controls aren't synced, when you change the filter type it isn't updated in the parameters.

Quite funnily though pipewire lv2 module allows you to set values outside of the allowed range, which is my use case of this plugin, so I don't care much.

My pipewire config with the values outside of the range:

context.modules = [
    {   name = libpipewire-module-filter-chain
        args = {
            node.description = "Noise Canceling source"
            media.name = "Noise Canceling source"
            filter.graph = {
                nodes = [
                    {
                        type = lv2
                        name = noise_canceling
                        plugin = "https://github.com/laixinyuan/StereoSourceSepartion"
                        label = noise_suppressor_stereo
                        control = {
                            status = 1
                            direction = 50
                            width = 45
                            # filtertype = 1
                            # cutofffrequency = 6000
                        }
                    }
                ]
            }
            capture.props = {
                node.name =  "effect_input.noise_canceling_source"
                node.passive = true
            }
            playback.props = {
                node.name =  "effect_output.noise_canceling_source"
                media.class = Audio/Source
            }
        }
    }
]

Tested on the NixOS 24.05.20240303.b8697e5
But DISTRHO Ports are from the 2021-03-15, which seems to be the latest release?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant