Модуль петли PulseAudio с треском звука / шумом на Kubuntu 17.10

Вопрос или проблема

Я попытался получить звук с моего второго монитора в Kubuntu через стереоразъем Line-in, который теперь работает после настройки alsamixer (снятие беззвучного режима с Line и установка правильного уровня громкости) и добавления load-module module-loopback в мой /etc/pulse/default.pa

Моя текущая и самая большая проблема с этой настройкой — это треск/шум, который я получаю при воспроизведении аудио — даже после настройки громкости Line-in на ~5% (всё, что выше, просто болезненно) и увеличения громкости на моем внешнем усилителе. (В Windows 10 у меня нет проблем с треском/звуком с этой настройкой даже при громкости Line-in 100%)

Что я попробовал до сих пор:

1) Добавление load-module module-udev-detect tsched=0 (добавление tsched=0)
в /etc/pulse/default.pa для деактивации планирования на основе таймера в PulseAudio, что помогло другим людям с проблемами треска.

2) Сочетание 1) с изменениями в /etc/pulse/daemon.conf для установки стандарта количества фрагментов и размера буфера в PulseAudio (как здесь: https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#Static_noise_when_using_headphones)

3) Явное указание источника и приемника loopback с их скоростью и каналами:

load-module module-loopback source=alsa_input.pci-0000_12_00.3.analog-stereo sink=alsa_output.usb-FiiO_DigiHug_USB_Audio-01.analog-stereo rate=44100 channels=2

И 4) модификация /etc/modprobe.d/alsa-base.conf с options snd-hda-intel position_fix=1 или options snd-hda-intel position_fix=2, что было предложено здесь: https://wiki.ubuntu.com/Audio/PositionReporting

Моя система:

  • Kubuntu 17.10, 64 Bit
  • Версия ядра 4.13.0-36-generic
  • Процессор AMD Ryzen 7 1700X
  • 16 GB RAM
  • Материнская плата ASRock X370 Taichi
  • Графический процессор Nvidia GTX 1070

lspci -nnk | grep -i audio -A2
0e:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1)
        Subsystem: CardExpert Technology GP104 High Definition Audio Controller [10b0:1b81]
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
--
12:00.3 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Device [1022:1457]
        Subsystem: ASRock Incorporation Device [1849:1220]
        Kernel driver in use: snd_hda_intel

cat /proc/asound/cards
 0 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfd080000 irq 329                                                                                                                                  
 1 [Audio          ]: USB-Audio - DigiHug USB Audio                                                                                                                                     
                      FiiO DigiHug USB Audio at usb-0000:11:00.3-2, full speed
 2 [Generic        ]: HDA-Intel - HD-Audio Generic
                      HD-Audio Generic at 0xfd900000 irq 331

pactl list sources
Quelle #0
        Status: RUNNING
        Name: alsa_output.usb-FiiO_DigiHug_USB_Audio-01.analog-stereo.monitor
        Beschreibung: Monitor of DigiHug USB Audio Analog Stereo
        Treiber: module-alsa-card.c
        Abtastwert-Angabe: s16le 2ch 44100Hz
        Kanalzuordnung: front-left,front-right
        Besitzer-Modul: 7
        Stumm: ja
        Lautstärke: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
                Verteilung 0,00
        Basis-Lautstärke: 65536 / 100% / 0,00 dB
        Ziel-Монитор: alsa_output.usb-FiiO_DigiHug_USB_Audio-01.analog-stereo
        Latenz: 0 usec, eingestellt 40000 usec
        Flags: DECIBEL_VOLUME LATENCY 
        Eigenschaften:
                device.description = "Monitor of DigiHug USB Audio Analog Stereo"
                device.class = "monitor"
                alsa.card = "1"
                alsa.card_name = "DigiHug USB Audio"
                alsa.long_card_name = "FiiO DigiHug USB Audio at usb-0000:11:00.3-2, full speed"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:11:00.3-usb-0:2:1.1"
                sysfs.path = "/devices/pci0000:00/0000:00:07.1/0000:11:00.3/usb3/3-2/3-2:1.1/sound/card1"
                udev.id = "usb-FiiO_DigiHug_USB_Audio-01"
                device.bus = "usb"
                device.vendor.id = "1852"
                device.vendor.name = "GYROCOM C&C Co., LTD"
                device.product.id = "7022"
                device.product.name = "DigiHug USB Audio"
                device.serial = "FiiO_DigiHug_USB_Audio"
                device.string = "1"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-usb"
        Formate:
                pcm

Quelle #1
        Status: RUNNING
        Name: alsa_input.pci-0000_12_00.3.analog-stereo
        Beschreibung: HD-Audio Generic Analog Stereo
        Treiber: module-alsa-card.c
        Abtastwert-Ангебе: s16le 2ch 44100Hz
        канальзуорунг: front-left, front-right
        Besitzer-модуль: 8
        Stumm: nein
        Lautstärke: front-left: 6554 /  10% / -60,00 dB,   front-right: 6554 /  10% / -60,00 dB
                Verteilung 0,00
        Basis-Lautstärke: 6554 /  10% / -60,00 dB
        Ziel-Монитор: п. А.
        Latenz: 30 usec, eingestellt 40000 usec
        Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
        Eigenschaften:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "ALC1220 Analog"
                alsa.id = "ALC1220 Analog"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "2"
                alsa.card_name = "HD-Audio Generic"
                alsa.long_card_name = "HD-Audio Generic at 0xfd900000 irq 331"
                alsa.driver_name = "snd_hda_intel"
                device.bus_path = "pci-0000:12:00.3"
                sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:12:00.3/sound/card2"
                device.bus = "pci"
                device.vendor.id = "1022"
                device.vendor.name = "Advanced Micro Devices, Inc. [AMD]"
                device.product.id = "1457"
                device.string = "front:2"
                device.buffering.buffer_size = "65536"
                device.buffering.fragment_size = "32768"
                device.access_mode = "mmap+timer"
                device.profile.name = "analog-stereo"
                device.profile.description = "Analog Stereo"
                device.description = "HD-Audio Generic Analog Stereo"
                alsa.mixer_name = "Realtek ALC1220"
                alsa.components = "HDA:10ec1220,18491220,00100003"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-pci"
        Ports:
                analog-input-front-mic: Vorderes Mikrofon (priority: 8500, not available)
                analog-input-rear-mic: Rückwärtiges Mikrofon (priority: 8200, not available)
                analog-input-linein: Eingang (priority: 8100, available)
        Aktiver порт: analog-input-linein
        Formate:
                pcm

pactl list sinks
Ziel #0
        Status: RUNNING
        Name: alsa_output.usb-FiiO_DigiHug_USB_Audio-01.analog-stereo
        Beschreibung: DigiHug USB Audio Analog Stereo
        Treiber: module-alsa-card.c
        Abtastwert-Ангебе: s16le 2ch 44100Hz
        канальзуорунг: front-left, front-right
        Besitzer-модуль: 7
        Stumm: nein
        Lautstärke: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
                Verteilung 0,00
        Basis-Lautstärke: 65536 / 100% / 0,00 dB
        Quellen-Монитор: alsa_output.usb-FiiO_DigiHug_USB_Audio-01.analog-stereo.monitor
        Latenz: 46296 usec, eingestellt 40000 usec
        Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
        Eigenschaften:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "USB Audio"
                alsa.id = "USB Audio"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "1"
                alsa.card_name = "DigiHug USB Audio"
                alsa.long_card_name = "FiiO DigiHug USB Audio at usb-0000:11:00.3-2, full speed"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:11:00.3-usb-0:2:1.1"
                sysfs.path = "/devices/pci0000:00/0000:00:07.1/0000:11:00.3/usb3/3-2/3-2:1.1/sound/card1"
                udev.id = "usb-FiiO_DigiHug_USB_Audio-01"
                device.bus = "usb"
                device.vendor.id = "1852"
                device.vendor.name = "GYROCOM C&C Co., LTD"
                device.product.id = "7022"
                device.product.name = "DigiHug USB Audio"
                device.serial = "FiiO_DigiHug_USB_Audio"
                device.string = "front:1"
                device.buffering.buffer_size = "352800"
                device.buffering.fragment_size = "176400"
                device.access_mode = "mmap+timer"
                device.profile.name = "analog-stereo"
                device.profile.description = "Analog Stereo"
                device.description = "DigiHug USB Audio Analog Stereo"
                alsa.mixer_name = "USB Mixer"
                alsa.components = "USB1852:7022"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-usb"
        Ports:
                аналоговый-выход: Аналоговый выход (приоритет: 9900)
        Aktiver порт: аналоговый-выход
        Formate:
                pcm

Моя базовая аудио установка:

Входы:

  • звук поступает с второго монитора в компьютер через line-in
  • весь другой звук поступает из системы/приложений/музыки

Выход:

  • USB-ДАК/усилитель, к которому подключены мои наушники

Ключевые элементы, которые помогли мне исправить это.

Изменения в корпусе

  1. Удаление крышки вентилятора GPU, на моем GPU была защитная пластиковая крышка, которая при прослушивании внутри корпуса издавала шум.
  2. Перемещение ОЗУ, моя ОЗУ была расположена рядом с картой NVMe, поэтому я переместил её в другие слоты.
  3. Удаление экрана у GPU для NVMe, на материнской плате была защитная крышка над NVMe стиком
  4. Изменения в питании

    1. Перемещение источника питания обеих машин на другую розетку. Это действительно помогло уменьшить шум обратной связи, так как я узнал о заземлении.
    2. Модификация PulseAudio

      load-module module-loopback source=alsa_input.usb-Corsair_CORSAIR_VOID_ELITE_Wireless_Gaming_Dongle-00.multichannel-input sink=alsa_output.pci-0000_09_00.3.analog-stereo
      load-module module-loopback source=alsa_input.pci-0000_09_00.3.analog-stereo sink=alsa_output.usb-Corsair_CORSAIR_VOID_ELITE_Wireless_Gaming_Dongle-00.iec958-stereo
      
      
      set-default-sink alsa_output.usb-Corsair_CORSAIR_VOID_ELITE_Wireless_Gaming_Dongle-00.iec958-stereo
      set-default-source alsa_input.usb-Corsair_CORSAIR_VOID_ELITE_Wireless_Gaming_Dongle-00.multichannel-input
      set-source-volume alsa_input.pci-0000_09_00.3.analog-stereo 5000
      
      set-card-profile alsa_card.usb-HD_Webcam_USB_HD_Webcam_USB_HD_Webcam_USB-02 off
      set-card-profile alsa_card.pci-0000_07_00.1 off
      set-card-profile alsa_card.pci-0000_09_00.3 output:analog-stereo+input:analog-stereo
      
      set-sink-port alsa_output.pci-0000_09_00.3.analog-stereo analog-output-lineout
      set-source-port alsa_input.pci-0000_09_00.3.analog-stereo analog-input-linein
      

      При всем этом у меня все еще есть шум обратной связи, но только при высоких кадровых частотах GPU. Я считаю, что это проблема питания и заказал другую деталь, чтобы помочь уменьшить этот шум. В основном это устройство для устранения заземляющей петли.

      Вот ссылка на мою борьбу с этой проблемой.
      https://bbs.archlinux.org/viewtopic.php?pid=1917945#p1917945

      Редакция 1
      Оказывается, это не связано с программным обеспечением, а была аппаратная проблема. Я купил 2 из этого и подключил их между обеими машинами, и это полностью решило проблему. Теперь нет шума обратной связи даже на высокой громкости.
      https://www.amazon.com/gp/product/B019393MV2/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&psc=1

Что сработало для меня — это использование latency_msec=20. Всё остальное, что я пробовал (даже изоляторы заземляющей петли), не дало никакого эффекта.

.

Ответ или решение

Проблема с хрипящим звуком при использовании модуля loopback PulseAudio на Kubuntu 17.10 может быть вызвана рядом факторов, связанных как с программным обеспечением, так и с аппаратными аспектами вашей системы. Давайте рассмотрим эти аспекты и предложим возможные решения.

Аннотация проблемы

Вы используете Kubuntu 17.10 и стремитесь перенаправлять аудио с вашего второго монитора через стерео разъем Line-in на внешний USB-DAC/AMP. Однако при этом наблюдается хрипящий звук при воспроизведении аудио.

Стандартные подходы к решению

1. Отключение таймера в PulseAudio

Добавление tsched=0 в модуль module-udev-detect отключает планирование на основе таймера и может помочь устранить хрип. Однако, будьте внимательны: это может увеличить задержку звука.

2. Настройка конфигурации PulseAudio

Изменение настроек в daemon.conf, таких как default-fragment-size-msec и default-fragments, может улучшить ситуацию. Это помогает управлять буферизацией аудио и минимизировать хрипы.

3. Явное указание источника и приемника

Укажите источник и приемник с точной частотой и числом каналов. Это позволяет PulseAudio лучше управлять аудиопотоками, минимизируя искажения. Например:

load-module module-loopback source=alsa_input.pci-0000_12_00.3.analog-stereo sink=alsa_output.usb-FiiO_DigiHug_USB_Audio-01.analog-stereo rate=44100 channels=2

4. Параметры alsa-base конфигурации

Изменение параметров position_fix в файле alsa-base.conf может улучшить синхронизацию аудио на уровне драйвера. Протестируйте варианты 1 или 2 в зависимости от вашей конфигурации оборудования.

Аппаратные аспекты

  • Модификации корпуса: Удаление шумящих элементов (например, пластиковая защита кулера) в вашем корпусе может уменьшить механические шумы.
  • Изоляция компонентов: Размещение RAM подальше от других компонентов, таких как карты NVMe, может уменьшить электромагнитные наводки.
  • Энергопитание: Подключение устройств к разным розеткам может помочь с проблемой заземления. Общие проблемы могут быть связаны с плохой изоляцией электропровода.

Альтернативные решения и дополнения

  1. Изменение параметров задержки: Настройка latency_msec может значительно повлиять на качество воспроизведения. Параметр latency_msec=20 оказался эффективным в решении подобных проблем.

  2. Использование изоляторов заземления: Если проблема в мешающем фоне, возможно, стоит попробовать изоляторы для устранения наводок.

  3. Обновления и патчи: Поскольку ваша система основана на более старой версии дистрибутива (Kubuntu 17.10), возможно, имеет смысл обновиться до более новой версии или установить все доступные обновления, что может решить проблемы с драйверами.

Заключение

Все действия, предложенные выше, подходят для устранения проблем с качеством звука, возникающих при сложных конфигурациях аудиоустройств. При устранении данной проблемы важно учитывать как программные, так и аппаратные компоненты системы. Профессиональный и системный подход к решению подобных задач позволяет стабильно снижать уровень шумов и делать взаимодействие с системой более комфортным.


Эти советы основаны на предоставленной информации и могут быть адаптированы в зависимости от специфики вашей системы и личных предпочтений. Если проблема не исчезает, необходимо рассмотреть возможность профессиональной диагностики аппаратной части.

Оцените материал
Добавить комментарий

Капча загружается...