Користувальницькі налаштування

Налаштування сайту


pulseaudio

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Наступна ревізія
Попередня ревізія
pulseaudio [2021/02/10 14:39] – створено wombatpulseaudio [2024/06/10 07:42] (поточний) – [Запис з кількох входів одночасно] Фіксована петля wombat
Рядок 1: Рядок 1:
 ====== Pulseaudio ====== ====== Pulseaudio ======
  
-===== Детектування входів =====+====== Детектування входів ======
  
 Для вимкнення детектування входів потрібно передати відповідні параметри модулю ядра snd-hda-intel. Для цього потрібно: Для вимкнення детектування входів потрібно передати відповідні параметри модулю ядра snd-hda-intel. Для цього потрібно:
Рядок 37: Рядок 37:
   Vendor Id: 0x10ec0887   Vendor Id: 0x10ec0887
   Subsystem Id: 0x1458a182   Subsystem Id: 0x1458a182
 +
 +
 +====== Запис з кількох входів одночасно ======
 +
 +Якщо в нас є кілька мікрофонів, і ми хочемо поєднати сигнал від них у єдиний запис, зробити це можна наступним чином ((Рішення взяте звідси: https://askubuntu.com/a/870596/298881 )).
 +
 +Спочатку потрібно створити віртуальний звуковий пристрій, до якого ми спрямуємо сигнали від усіх потрібних входів. Для цього виконуємо команду:
 +
 +  pactl load-module module-null-sink sink_name=MixedOutput sink_properties=device.description="MixedOutput"
 +
 +При успішному виконанні програма видасть у консоль число. Це число -- умовний номер завантаженого модуля, за яким цей модуль можна згодом вимкнути (див. примітку у кінці).
 +
 +Тут параметр ''sink_name=MixedOutput'' позначає умовне ім'я цього віртуального пристрою, за яким ми зможемо до нього надалі звертатись, а параметр ''sink_properties=device.description="MixedOutput"'' задає текстовий опис пристрою, який буде показано у налаштуваннях гучності (''pavucontrol'').
 +
 +Після цього у вікні налаштувань гучності (''pavucontrol'') на вкладці ''"Пристрої відтворення"'' з'явиться пристрій ''"MixedOutput"''((Якщо його не видно, то внизу цієї вкладки потрібно натиснути на спадному списку ''"**Показати:**"'' та обрати зі списку пункт ''"All Output Devices"''))
 +
 +Аналогічно, на сусідній вкладці ''"Пристрої отримання"'' з'явиться віртуальний пристрій ''"Monitor of MixedOutput"''.
 +
 +Якщо все це так, можна переходити до наступного кроку.
 +
 +Далі потрібно **для кожного** з пристроїв, сигнали яких ми хочемо поєднати, виконати таку команду:
 +
 +  pactl load-module module-loopback sink=MixedOutput latency_msec=5
 +
 +Тут обов'язково правильно вказати назву віртуального пристрою, до якого ми спрямуємо усі ці сигнали -- параметр ''sink=MixedOutput''. Параметр ''latency_msec=5'' тут позначає затримку сигналу у цьому пристрої (число -- в мілісекундах; найменше значення -- 1мс).
 +
 +Після виконання кожної такої команди у вікні налаштувань гучності на вкладці ''"Запис"'' має з'явитися так званий Loopback-пристрій з назвою ''"Loopback to MixedOutput з"'', праворуч від якої буде кнопка вибору пристрою, сигнал від якого нам потрібно спрямувати до нашого поєднувального віртуального пристрою ''"MixedOutput"''.
 +
 +Якщо тут вибрати потрібний пристрій, то на сусідній вкладці ''"Відтворення"'' з'явиться його назва у такому вигляді: ''"Loopback from <назва> на"'', і праворуч від цієї назви -- знову ж таки кнопка вибору пристрою, **до якого** потрібно спрямувати сигнал. В нашому випадку нам потрібно спрямувати усі сигнали на ''"MixedOutput"'', тому скрізь обираємо саме його. Зверніть увагу, що на початку ці пристрої можуть бути приглушені (праворуч від кожного -- кнопка ''"Вимкнути звук"''). Для того, щоб можна було записувати усі поєднані сигнали через один пристрій ''"MixedOutput"'', потрібно увімкнути звук на усіх цих пристроях.
 +
 +Після усіх цих налаштувань можна у програмі запису або зв'язку обрати пристрій ''"Monitor of MixedOutput"'', і туди спрямовуватимуться сигнали від усіх обраних нами пристроїв. При цьому у налаштуваннях гучності можна легко регулювати гучність кожного з цих сигналів окремо, що дає змогу їх "вирівняти", якщо потрібно.
 +
 +**Примітка:** Якщо всі ці налаштування більше не потрібні, і треба повернути все до початкового стану, усі завантажені модулі потрібно **//ви//**вантажити. Це можна зробити командою:
 +
 +  pactl unload-module <номер_модуля>
 +
 +Тут замість "''<номер_модуля>''" потрібно вказати саме те число, яке було показане в консолі одразу після завантаження модуля.
 +
 +===== Фіксована петля (loopback) =====
 +
 +Модуль ''loopback'' можна також завантажити одразу з фіксованим зв'язком між входом та виходом. Тоді перемикати пристрої у налаштуваннях гучності буде неможливо, але водночас це й убезпечує від випадкової помилки.
 +
 +Спершу треба дізнатись назви потрібних нам пристроїв введення (наприклад, мікрофонів).
 +
 +    LANG=C pactl list sources | grep Name
 +
 +Назва реального мікрофона може бути на кшталт ''alsa_input.pci-0000_00_1b.0.analog-stereo''.
 +Тоді модуль ''loopback'' завантажуємо з параметрами:
 +
 +  pactl load-module module-loopback source=alsa_input.pci-0000_00_1b.0.analog-stereo sink=MixedOutput source_dont_move=true sink_dont_move=true
 +
 +Тут параметри ''source_dont_move=true'' та ''sink_dont_move=true'' забороняють змінювати пристрої на кінцях цієї петлі.
 +
 +====== Розділення входів того самого пристрою ======
 +
 +FIXME
 +
 +<code>
 +$ aplay -l
 +**** List of PLAYBACK Hardware Devices ****
 +card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
 +  Subdevices: 1/1
 +  Subdevice #0: subdevice #0
 +card 0: NVidia [HDA NVidia], device 7: HDMI 0 [HDMI 0]
 +  Subdevices: 1/1
 +  Subdevice #0: subdevice #0
 +card 0: NVidia [HDA NVidia], device 8: HDMI 0 [HDMI 0]
 +  Subdevices: 1/1
 +  Subdevice #0: subdevice #0
 +card 0: NVidia [HDA NVidia], device 9: HDMI 0 [HDMI 0]
 +  Subdevices: 1/1
 +  Subdevice #0: subdevice #0
 +card 1: Generic [HD-Audio Generic], device 0: ALC887-VD Analog [ALC887-VD Analog]
 +  Subdevices: 0/1
 +  Subdevice #0: subdevice #0
 +card 1: Generic [HD-Audio Generic], device 1: ALC887-VD Digital [ALC887-VD Digital]
 +  Subdevices: 1/1
 +  Subdevice #0: subdevice #0
 +</code>
 +
 +
 +
 +<code>
 +$ arecord -l
 +**** List of CAPTURE Hardware Devices ****
 +card 1: Generic [HD-Audio Generic], device 0: ALC887-VD Analog [ALC887-VD Analog]
 +  Subdevices: 0/1
 +  Subdevice #0: subdevice #0
 +card 1: Generic [HD-Audio Generic], device 2: ALC887-VD Alt Analog [ALC887-VD Alt Analog]
 +  Subdevices: 0/1
 +  Subdevice #0: subdevice #0
 +card 2: U0x46d0x8da [USB Device 0x46d:0x8da], device 0: USB Audio [USB Audio]
 +  Subdevices: 1/1
 +  Subdevice #0: subdevice #0
 +</code>
 +
 +
 +
 +<file conf "~/.config/pulse/default.pa">
 +### Load audio drivers statically
 +### (it's probably better to not load these drivers manually, but instead
 +### use module-udev-detect -- see below -- for doing this automatically)
 +#load-module module-alsa-sink
 +#load-module module-alsa-source device=hw:1,0
 +#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
 +#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
 +#load-module module-null-sink
 +#load-module module-pipe-sink
 +
 +load-module module-alsa-sink device=hw:1,0 name="ALSAOutput"
 +load-module module-alsa-source device=hw:1,0 name="ALSASource1" source_properties=device.description="ALSASource1"
 +load-module module-alsa-source device=hw:1,2 name="ALSASource2" source_properties=device.description="ALSASource2"
 +
 +
 +### Automatically load driver modules depending on the hardware available
 +#.ifexists module-udev-detect.so
 +#load-module module-udev-detect
 +#.else
 +### Use the static hardware detection module (for systems that lack udev support)
 +#load-module module-detect
 +#.endif
 +</file>
 +
 +  systemctl --user restart pulseaudio
 +
 +
 +
  
pulseaudio.1612967989.txt.bz2 · Востаннє змінено: повз wombat