แค่แสวงหารางของ Jack และ Pulse อยู่ร่วมกับ Fedora โดยทั่วไปฉันมีความสุขกับ Pulseaudio แต่บางครั้งก็ต้องการเสียงแจ็ค
โซลูชันของฉันทำงานกับ Fedora 23
dnf install jack-audio-connection-kit jack-audio-connection-kit-dbus qjackctl
อย่าแตะ /etc/pulse/default.pa!
กำหนดค่า qjackctl
มีส่วนที่เกี่ยวข้องของ ~ / .config / rncbc.org / QjackCtl.conf
[Settings]
Server=jack_control start
Driver=alsa
InDevice="hw:PCH,0"
OutDevice="hw:PCH,0"
ชื่อ sink สำหรับ pactl สามารถพบได้โดยคำสั่ง:
pacmd list-sinks
มี ~ / .config / rncbc.org / QjackCtl.conf อีกหนึ่งส่วนเพื่อแสดงคำสั่งทั้งหมด
[Options]
...
StartupScript=true
StartupScriptShell=pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1
PostStartupScript=true
PostStartupScriptShell=pactl set-default-sink jack_out
ShutdownScript=false
ShutdownScriptShell="pactl unload-module module-jack-sink; pactl load-module module-jack-source"
PostShutdownScript=true
PostShutdownScriptShell="pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 0; pactl set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo"
"เปิดใช้งานส่วนต่อประสาน D-Bus" สำคัญสำหรับ Qjackctl
มันทำงานอย่างไร
ตอนนี้ใน boot PC ทำงานร่วมกับ PulseAudio เท่านั้น การทำงานอัตโนมัติทั้งหมดโดยไม่มีแจ็ค
หลังจากเปิดตัว Qjackctl
- สคริปต์เริ่มต้น Qjackctl ระงับการ์ดเสียงหลักใน Plseuaudio และอนุญาตให้ Jackj เข้าถึง "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"
- แจ็คเริ่มต้นกับ d-bus "jack_control start"
- พัลส์ตรวจจับแจ็คโดยอัตโนมัติเริ่มต้นที่ D-Bus และโหลดแจ็คซิงค์และแหล่งแจ็ค
- Qjackctl หลังจากสคริปต์เริ่มต้นเปลี่ยน sink เริ่มต้นใน Pulse เป็น jack_out (ฉันพบว่ามันไม่ได้ทำเอง) "pactl set-default-sink jack_out" (ตอนแรกมันดูไม่จำเป็นเพราะไคลเอนต์ที่ทำงานอยู่ PA ทั้งหมดเปลี่ยนไปเป็น sink ใหม่ แต่แอพใหม่ติดอยู่ที่ sink ที่ถูกระงับโดยไม่มีคำสั่งนี้)
ดังนั้นระบบกำหนดค่าใหม่ให้ใช้ "Pulse ด้านบนของ Jack" (ที่นั่นฉันข้ามการระงับฮาร์ดแวร์ชั่วคราวเพราะฉันไม่ได้ใช้มัน)
หากไม่ได้ทำเครื่องหมาย "หยุด JACK audio server บน application exti" ฉันสามารถปิด Qjackctl และรันใหม่อีกครั้งโดยไม่รบกวนการตั้งค่า
หลังจากหยุด Jack โดย Qjackctl ทุกคนกลับไปที่ Pulse ที่กระจัดกระจาย!
- Jackd หยุดโดย Qjackctl บน dbus - ตัวเลือก "Enable D-bus interface"
- jack-source และ jack-sink ถูกลบออกจาก Pulseaudio โดยอัตโนมัติโดย d-bus
- ซิงค์เริ่มต้นใน Pulse Audio เปลี่ยนเป็นการ์ดเสียงเนื่องจากแจ็คเอาต์หายไป
- Qjackctl หลังจากสคริปต์ Shutdown เปิดใช้งานการ์ดเสียงกลับมาใน Pulseaudio "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"
เครื่องมือที่ใช้
- jackd (จากแพ็คเกจ pulseaudio-utils)
- jack_control (จากแพ็คเกจ ack-audio-connection-kit-dbus)
- Qjackctl (จากแพคเกจ pulseaudio-utils)
- pactl เพื่อควบคุม Pulseaudio จาก sctipts (จากแพ็คเกจ pulseaudio-utils)