Megjelent az igény, hogy a Discord ne csak és kizárólag a mikrofon hangját tolja a csetbe, hanem (például) az éppen hallgatott zenét is.
Megint összelegóztam valamit :)))
Első pillantásra működni látszik a dolog.
Elképzelés: a mikrofonról jövő hangot összekeverni valami program kimeneti hangjával, majd ezt becsatornázni a Discordba.
Kell egy null-sink, amibe beöntjük az összekeverni szánt hangokat, elnevezem "Keverő"-nek:
pactl load-module module-null-sink sink_name=sink_mix sink_properties=device.description="Keverő"
Kell egy loop-back, ami fixen beköti a keverőbe az analóg bemenetet, ami a mikrofon nálunk.
A "pactl list sources" segít kitalálni, hogy ennek mi is a neve, nálunk "alsa_input.pci-0000_00_1b.0.analog-stereo".
Tehát:
pactl load-module module-loopback source=alsa_input.pci-0000_00_1b.0.analog-stereo sink=sink_mix source_dont_move=true sink_dont_move=true
A mikrofon hangjával keverni kívánt hangkimenetet a "Keverőre" kéne küldeni az alkalmazásból, csakhogy akkor én nem hallanám.
Ezért összekötjük a "Keverő" és az analóg kimenet (ahol szól is fejhallgató/hangszóró) bemenetét, és majd erre kell küldeni az adott program kimenetét:
pactl load-module module-combine-sink slaves=alsa_output.pci-0000_00_1b.0.analog-stereo,sink_mix sink_properties=device.description="Keverni-és-kimenet"
Végül kell egy virtuális mikrofon, amit a Discordban ki lehet választani bemenetként, ezt "Kevert-mikrofonnak" nevezem :)
Ez a "Keverő" monitora, csak olyan forrásként feltüntetve, hogy a Discord elfogadja:
pactl load-module module-remap-source master=sink_mix.monitor source_name=mix source_properties=device.description="Kevert-mikrofon"
A példában a Spotify kimenetét küldöm a "Keverni-és-kimenet" eszközre:
https://drive.google.com/file/d/1pZiCsf1AFQ6J2kj3nE9NeN7MUJPL8sY7/view?usp=sharing
A Discord pedig a "Kevert-mikrofon" bemenetről csippenti fel a hangot:
https://drive.google.com/file/d/1B49s5-Q_1ePcZgGZGwkgicLqjXIrbpSF/view?usp=sharing
Egyelőre nem teszem a default.pa részévé, még próbálgatjuk egy kicsit...