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

Audio is distorted, intermittently cuts out through NoiseTorch Headphones Sink #382

Open
syphoxy opened this issue Jan 25, 2023 · 14 comments
Labels
bug Something isn't working
Milestone

Comments

@syphoxy
Copy link

syphoxy commented Jan 25, 2023

Describe the bug
Audio is distorted and intermittently cuts out when application audio is routed through "NoiseTorch Headphones Sink."

To Reproduce
Use normally. Ensure both Filter Microphone and Filter Headphones are checked.

Expected behavior
Clear audio through headphones sink.

Screenshots
N/A

Logs

2023/01/25 16:15:07 Application starting. Version: v0.12.2 (official)
2023/01/25 16:15:07 CAP_SYS_RESOURCE: true
2023/01/25 16:15:07 Checking if config needs to be initialized
2023/01/25 16:15:07 Couldn't resolve $XDG_CONFIG_HOME falling back to '/home/sy/.config'
2023/01/25 16:15:07 Wrote temp librnnoise to: /tmp/librnnoise-2045266400.so
2023/01/25 16:15:07 Couldn't resolve $XDG_CONFIG_HOME falling back to '/home/sy/.config'
2023/01/25 16:15:07 Audioserver package name: PulseAudio (on PipeWire 0.3.60)
2023/01/25 16:15:07 Audioserver package version: 15.0.0
2023/01/25 16:15:07 Detected PipeWire
2023/01/25 16:15:07 Checking for updates
2023/01/25 16:15:07 Getting caps for: /home/sy/.local/bin/noisetorch
XGB: conn.go:47: Could not get authority info: open /home/sy/.Xauthority: no such file or directory
XGB: conn.go:48: Trying connection without authority info...
2023/01/25 16:15:07 Audioserver package name: PulseAudio (on PipeWire 0.3.60)
2023/01/25 16:15:07 Audioserver package version: 15.0.0
2023/01/25 16:15:07 Detected PipeWire
2023/01/25 16:15:07 Connected to audio server. Server name 'PipeWire'
XGB: conn.go:47: Could not get authority info: open /home/sy/.Xauthority: no such file or directory
XGB: conn.go:48: Trying connection without authority info...
XGB: conn.go:47: Could not get authority info: open /home/sy/.Xauthority: no such file or directory
XGB: conn.go:48: Trying connection without authority info...
2023/01/25 16:15:07 Output alsa_output.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00.pro-output-0, {Index:4731 Name:alsa_output.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00.pro-output-0 Description:Yeti Stereo Microphone Pro SampleSpec:{Format:3 Channels:2 Rate:48000} ChannelMap:[12 13] ModuleIndex:4294967295 Cvolume:[0 0] Muted:true MonitorSourceIndex:4731 MonitorSourceName:alsa_output.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00.pro-output-0.monitor Latency:0 Driver:PipeWire Flags:166 PropList:map[alsa.card:1 alsa.card_name:Yeti Stereo Microphone alsa.class:generic alsa.device:0 alsa.driver_name:snd_usb_audio alsa.id:USB Audio alsa.long_card_name:Blue Microphones Yeti Stereo Microphone at usb-0000:00:14.0-3, full speed alsa.name:USB Audio alsa.resolution_bits:16 alsa.subclass:generic-mix alsa.subdevice:0 alsa.subdevice_name:subdevice #0 api.acp.auto-port:false api.acp.auto-profile:false api.alsa.card:1 api.alsa.card.longname:Blue Microphones Yeti Stereo Microphone at usb-0000:00:14.0-3, full speed api.alsa.card.name:Yeti Stereo Microphone api.alsa.headroom:256 api.alsa.path:hw:1,0 api.alsa.pcm.card:1 api.alsa.pcm.stream:playback api.alsa.period-num:128 api.alsa.period-size:256 api.alsa.use-acp:true api.dbus.ReserveDevice1:Audio1 audio.adapt.follower: audio.channels:2 audio.position:AUX0,AUX1 card.profile.device:1 client.id:33 clock.name:api.alsa.1 clock.quantum-limit:8192 device.api:alsa device.bus:usb device.bus-id:usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00 device.bus_path:pci-0000:00:14.0-usb-0:3:1.0 device.class:sound device.description:Yeti Stereo Microphone device.enum.api:udev device.form_factor:microphone device.icon_name:audio-input-microphone-analog-usb device.id:77 device.name:alsa_card.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00 device.nick:Yeti Stereo Microphone device.plugged.usec:828398105014 device.product.id:0x9e84 device.product.name:Yeti Stereo Microphone device.profile.description:Pro device.profile.name:pro-output-0 device.routes:0 device.serial:Blue_Microphones_Yeti_Stereo_Microphone_REV8 device.string:1 device.subsystem:sound device.vendor.id:0xb58e device.vendor.name:Blue Microphones factory.id:18 factory.mode:merge factory.name:api.alsa.pcm.sink library.name:audioconvert/libspa-audioconvert media.class:Audio/Sink node.driver:true node.max-latency:16384/48000 node.name:alsa_output.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00.pro-output-0 node.nick:Yeti Stereo Microphone node.pause-on-idle:false object.id:112 object.path:alsa:pcm:1:hw:1,0:playback object.serial:4731 priority.driver:1000 priority.session:1000 sysfs.path:/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/sound/card1] RequestedLatency:0 BaseVolume:65536 SinkState:2 NVolumeSteps:256 CardIndex:2670 Ports:[] ActivePortName: Formats:[{Encoding:1 PropList:map[]}]}
2023/01/25 16:15:07 Output alsa_output.usb-RADSONE_earstudio_HUD100_RHD100T0300577-00.pro-output-0, {Index:5299 Name:alsa_output.usb-RADSONE_earstudio_HUD100_RHD100T0300577-00.pro-output-0 Description:earstudio HUD100 Pro SampleSpec:{Format:7 Channels:2 Rate:48000} ChannelMap:[12 13] ModuleIndex:4294967295 Cvolume:[35984 35984] Muted:false MonitorSourceIndex:5299 MonitorSourceName:alsa_output.usb-RADSONE_earstudio_HUD100_RHD100T0300577-00.pro-output-0.monitor Latency:0 Driver:PipeWire Flags:166 PropList:map[alsa.card:2 alsa.card_name:earstudio HUD100 alsa.class:generic alsa.device:0 alsa.driver_name:snd_usb_audio alsa.id:USB Audio alsa.long_card_name:RADSONE earstudio HUD100 at usb-0000:0a:00.0-2.1.3, high speed alsa.name:USB Audio alsa.resolution_bits:32 alsa.subclass:generic-mix alsa.subdevice:0 alsa.subdevice_name:subdevice #0 api.acp.auto-port:false api.acp.auto-profile:false api.alsa.card:2 api.alsa.card.longname:RADSONE earstudio HUD100 at usb-0000:0a:00.0-2.1.3, high speed api.alsa.card.name:earstudio HUD100 api.alsa.headroom:256 api.alsa.path:hw:2,0 api.alsa.pcm.card:2 api.alsa.pcm.stream:playback api.alsa.period-num:128 api.alsa.period-size:256 api.alsa.use-acp:true api.dbus.ReserveDevice1:Audio2 audio.adapt.follower: audio.channels:2 audio.position:AUX0,AUX1 card.profile.device:0 client.id:33 clock.name:api.alsa.2 clock.quantum-limit:8192 device.api:alsa device.bus:usb device.bus-id:usb-RADSONE_earstudio_HUD100_RHD100T0300577-00 device.bus_path:pci-0000:0a:00.0-usb-0:2.1.3:1.0 device.class:sound device.description:earstudio HUD100 device.enum.api:udev device.icon_name:audio-card-analog-usb device.id:138 device.name:alsa_card.usb-RADSONE_earstudio_HUD100_RHD100T0300577-00 device.nick:earstudio HUD100 device.plugged.usec:915232380284 device.product.id:0x0100 device.product.name:earstudio HUD100 device.profile.description:Pro device.profile.name:pro-output-0 device.routes:0 device.serial:RADSONE_earstudio_HUD100_RHD100T0300577 device.string:2 device.subsystem:sound device.vendor.id:0x329d device.vendor.name:RADSONE factory.id:18 factory.mode:merge factory.name:api.alsa.pcm.sink library.name:audioconvert/libspa-audioconvert media.class:Audio/Sink node.driver:true node.max-latency:16384/48000 node.name:alsa_output.usb-RADSONE_earstudio_HUD100_RHD100T0300577-00.pro-output-0 node.nick:earstudio HUD100 node.pause-on-idle:false object.id:59 object.path:alsa:pcm:2:hw:2,0:playback object.serial:5299 priority.driver:1000 priority.session:1000 sysfs.path:/devices/pci0000:00/0000:00:1d.4/0000:05:00.0/0000:06:01.0/0000:08:00.0/0000:09:02.0/0000:0a:00.0/usb3/3-2/3-2.1/3-2.1.3/3-2.1.3:1.0/sound/card2] RequestedLatency:0 BaseVolume:65536 SinkState:0 NVolumeSteps:256 CardIndex:5298 Ports:[] ActivePortName: Formats:[{Encoding:1 PropList:map[]}]}
2023/01/25 16:15:12 Loading supressor for pipewire
2023/01/25 16:15:12 Loaded ladspa source as idx: 536870913
2023/01/25 16:15:12 Loading supressor for pipewire
2023/01/25 16:15:12 Loaded ladspa source as idx: 536870914
2023/01/25 16:15:13 Couldn't resolve $XDG_CONFIG_HOME falling back to '/home/sy/.config'
1	libpipewire-module-rt	{
        "nice.level": -11
      }	
2	libpipewire-module-protocol-native		
3	libpipewire-module-profiler		
5	libpipewire-module-metadata		
7	libpipewire-module-spa-device-factory		
9	libpipewire-module-spa-node-factory		
11	libpipewire-module-client-node		
13	libpipewire-module-client-device		
15	libpipewire-module-portal		
16	libpipewire-module-access	{}	
17	libpipewire-module-adapter		
19	libpipewire-module-link-factory		
21	libpipewire-module-session-manager		
536870912	module-always-sink		
536870913	module-ladspa-source	source_name='NoiseTorch Microphone for Yeti Stereo Microphone' master=alsa_output.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00.pro-output-0.monitor rate=48000 channels=1 label=noisetorch plugin=/tmp/librnnoise-2045266400.so control=50	
536870914	module-ladspa-sink	sink_name='NoiseTorch Headphones' master=alsa_output.usb-RADSONE_earstudio_HUD100_RHD100T0300577-00.pro-output-0 rate=48000 channels=1 label=noisetorch plugin=/tmp/librnnoise-2045266400.so control=50	
4731	alsa_output.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00.pro-output-0	PipeWire	s16le 2ch 48000Hz	SUSPENDED
5299	alsa_output.usb-RADSONE_earstudio_HUD100_RHD100T0300577-00.pro-output-0	PipeWire	s32le 2ch 48000Hz	SUSPENDED
5552	NoiseTorch Headphones	PipeWire	float32le 1ch 48000Hz	SUSPENDED
4731	alsa_output.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00.pro-output-0.monitor	PipeWire	s16le 2ch 48000Hz	SUSPENDED
4732	alsa_input.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00.pro-input-0	PipeWire	s16le 2ch 48000Hz	SUSPENDED
5299	alsa_output.usb-RADSONE_earstudio_HUD100_RHD100T0300577-00.pro-output-0.monitor	PipeWire	s32le 2ch 48000Hz	SUSPENDED
5550	NoiseTorch Microphone for Yeti Stereo Microphone	PipeWire	float32le 1ch 48000Hz	SUSPENDED
5552	NoiseTorch Headphones.monitor	PipeWire	float32le 1ch 48000Hz	SUSPENDED
5553	5299	-	PipeWire	float32le 1ch 48000Hz
5549	4732	-	PipeWire	float32le 1ch 48000Hz
31	PipeWire	.xdg-desktop-portal-wlr-wrapped
32	PipeWire	wireplumber
33	PipeWire	wireplumber
64	PipeWire	.xdg-desktop-portal-wrapped
65	PipeWire	.telegram-desktop-wrapped
2013	PipeWire	python3.10
3837	PipeWire	firefox
4132	PipeWire	firefox
5548	PipeWire	pipewire-pulse
5551	PipeWire	pipewire-pulse
5573	PipeWire	pactl
47	alsa_card.usb-046d_HD_Webcam_C615_7D263F50-00	alsa
48	alsa_card.usb-Burr-Brown_from_TI_USB_audio_CODEC-00	alsa
50	alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic	alsa
2670	alsa_card.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00	alsa
5298	alsa_card.usb-RADSONE_earstudio_HUD100_RHD100T0300577-00	alsa
5447	bluez_card.58_CB_52_1D_F5_73	module-bluez5-device.c

Desktop:

  • NixOS 22.11
  • Sway 1.7
  • pipewire 0.3.60, pulseaudio 16.1
  • NoiseTorch v0.12.2

Additional context
N/A

@syphoxy syphoxy added the bug Something isn't working label Jan 25, 2023
@ZyanKLee
Copy link
Contributor

Hey,
I never actually use the headphone noise filter.
When such a thing happens with the microphone though, we usually suggest to move the slider for the threshold to the left a little.
But as I'm not on my computer right now, I can't really check if there is such a slider for the headphones as well?

@syphoxy
Copy link
Author

syphoxy commented Jan 25, 2023

it isn't happening to the microphone. the audio is distorted on the Headphones Sink passthrough device.

@TheDukeofErl
Copy link
Collaborator

But as I'm not on my computer right now, I can't really check if there is such a slider for the headphones as well?

I just took a look at the program, I only see one slider for Voice Activation Threshold. I'd need to double check the code to see if that applies to only mic or also applies to headphones.

I never actually use the headphone noise filter.

Yeah... I think I tried using it once with pipewire and it didn't seem to do anything for me. I wrote it off as something that was maybe just an issue with pipewire and perhaps worked with pulseaudio.

it isn't happening to the microphone. the audio is distorted on the Headphones Sink passthrough device.

The thought here is that if the threshold is set incorrectly for the filter then there may be some distortion, regardless of if the filtering option selected.

Overall, I think we might need to decide what to do with this feature. It's not one I've ever successfully used, tried only once out of morbid curiosity, and is one that I don't see having very much value if I'm being frank. Perhaps, at a minimum, a disclaimer should be added?

@ZyanKLee
Copy link
Contributor

ZyanKLee commented Jan 25, 2023

is one that I don't see having very much value

Given how awful some people's microphones are and how much background noise they transmit, I actually do see a valid use-case in video-/voice-conferences, but as I'm not usually having those on my linux computer I'm not the target group for this feature.

I'm usually only using NT for filtering out noise in my own surroundings when streaming and voice-chatting at the same time (to avoid sending the same data in parallel through Discord's krisp and OBS' noisefilter plugin).

@syphoxy
Copy link
Author

syphoxy commented Jan 26, 2023

I actually love the feature because it allows me to use my speakers while on conference calls. I think we should keep it if at all possible. it's a really powerful feature I've never seen elsewhere. you can listen to music on your speakers while using a microphone and not having any of the music bleed into the microphone until you activate it with your voice.

@ZyanKLee
Copy link
Contributor

ZyanKLee commented Jan 26, 2023 via email

@syphoxy
Copy link
Author

syphoxy commented Jan 26, 2023

I'll try that and report back.

@syphoxy
Copy link
Author

syphoxy commented Jan 26, 2023

you're right. as far as I can tell it works fine with PulseAudio. right now, in general, the user experience with PulseAudio appears to be better anyway.

does this make it a bug with PipeWire or a bug with NoiseTorch?

@ZyanKLee
Copy link
Contributor

does this make it a bug with PipeWire or a bug with NoiseTorch?

yes! ;)
Pipewire is still to be considered unstable as it is mostly untested.

@syphoxy
Copy link
Author

syphoxy commented Jan 26, 2023

I guess we can close this ticket then. alternatively, is there some investigation that can be done here to help create an issue for the PipeWire project?

edit: I just realized I missed the joke.

@ZyanKLee
Copy link
Contributor

I'd like to keep the ticket open if you don't mind. At some point (after the last part of code has been cleaned that keeps us from returning to plain GPLv3), we will hopefully be able to make this project ready for stable Pipewire usage. This ticket would serve us as a reminder on what is broken.

@ZyanKLee ZyanKLee added this to the v0.14.0 milestone Feb 10, 2023
@TheDukeofErl
Copy link
Collaborator

So... this may be a bit of a meta question, but do we actually intend to support the headphones filtering? It's a feature I've all of never used, without someone to test/use/maintain it I imagine it'll just break over and over again...

@AXDOOMER
Copy link
Collaborator

Once it works, it should keep working. I figure if there are distortions and cuts, it must be a PipeWire issue.

@TheDukeofErl
Copy link
Collaborator

Fair enough.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants