Χρησιμοποίησε πολλές εξόδους ήχου ταυτόχρονα! 🔊

Χριστός ανέστη! Χρόνια πολλά σε όλους!

Λίγο μπλά μπλά αν θες παράλειψε το!

Γιατί λοιπόν θέλησα να στέλνω ταυτόχρονα σε 2 εξόδους ήχο;

Είχα μία οθόνη 22" μάρκας LG η οποία ήταν και τηλεόραση μαζί. Μέτρια ποιότητα θέασης και σχετικά κακή φωτεινότητα (το δωμάτιό μου είναι δυτικό και δεν έβλεπες όταν χτυπούσε ντάλα ήλιος). Ο πατέρας μου πάλι είχε μία 23 Viewsonic και ήθελε και μία 2η. Οπότε μου είχε πει να έχω το νού μου αν πάρει το μάτι μου καμιά καλή προσφορά. Έρχεται λοιπόν Black Friday και βλέπω μία Acer 24" προσφορά από 140€ στα 90€. (ήταν όντως legit η προσφορά γιατί την κοιτούσαν καιρό τη συγκεκριμένη) Του στέλνω το link και του λέω έλα για 2η που ήθελες.

Έλειπα από το σπίτι εκείνη την εβδομάδα στο μεταξύ.

Γυρνάω λοιπόν πίσω και βλέπω στο δωμάτιό μου αφημένα 2 κουτιά με 2 από τις οθόνες που είχα στείλει στον πατέρα! Father τι παίχτηκε εδώ; Μου λέει λοιπόν, με την κάρτα της τάδε τράπεζας είχα πόντους από εκείνο το μαγαζί και μου βγήκαν 70 η μία, οπότε πήρα 2. Κράτα τις 2 καινούργιες εσύ και δώσε μου την παλιά την 22άρα… Εσύ σπουδάζεις τώρα και μάλιστα σχετικά πράγματα, πάρε τις καλές! Άρε πατέρα! Πάντα εμένα πρώτα και μετά εσένα! :heart: Τι να πεις;

Βάζω και εγώ το χέρι στην τσέπη και παίρνω έναν βραχίονα και τις στηρίζω ωραία και καλά στο γραφείο. Από εκεί που έβγαζα τα μάτια μου, ξαφνικά ένιωθα ότι δούλευα σε μεγαλοεταιρία που μου παρείχε ό,τι ήθελα :joy:

Ηχεία δεν είχα. Οπότε συνδέοντας το laptop μου στις οθόνες, έστελνε αυτόματα στο HDMI τον ήχο. Αλλά άκουγες είτε από τη δεξιά είτε από την αριστερή.

(Τις είχα σε τέτοια διάταξη, γι αυτό)

Οπότε θέλησα να στείλω και στις 2 ταυτόχρονα.

Πάμε τώρα στο τεχνικό κομμάτι. Αρχικά πρέπει να δούμε τις διαθέσιμες εξόδους ήχου που έχουμε.

Δίνουμε στο τερματικό την παρακάτω εντολή:

pactl list sinks

Αυτό θα δώσει ένα σχετικά μεγάλο και λίγο χαοτικό output. Αν θέλουμε να το συμμαζέψουμε και να πάρουμε την πληροφορία χρήσιμη γι αυτό που θέλουμε να κάνουμε, θα ζητήσουμε την βοήθεια της κυρίας grep

pactl list sinks | grep -E 'node.name|node.nick'

Και έχουμε ένα output αυτής της μορφής:

node.name = "alsa_output.pci-0000_0b_00.6.analog-stereo"
node.nick = "ALCS1200A Analog"
node.name = "alsa_output.pci-0000_0b_00.1.hdmi-stereo"
node.nick = "DELL S3221QS"

Πρώτο πρόβλημα που συναντούμε. Μας εμφανίζει μόνο τη μία οθόνη σαν έξοδο. Πάμε λοιπόν στο pavucontrol που γενικά μας δίνει ποοολλεεεες δυνατότητες για το που θέλουμε να στείλουμε τον ήχο κλπ.

Στο tab configuration και στην κάρτα ήχου που έχει το HDMI output

Εκεί διαλέγουμε την επιλογή Pro Audio

Πάμε να ξαναδούμε τις διαθέσιμες εξόδους.

pactl list sinks | grep -E 'node.name|node.nick'
node.name = "alsa_output.pci-0000_0b_00.6.analog-stereo"
node.nick = "ALCS1200A Analog"
node.name = "alsa_output.pci-0000_0b_00.1.pro-output-3"
node.nick = "DELL S3221QS"
node.name = "alsa_output.pci-0000_0b_00.1.pro-output-7"
node.nick = "Acer VG240Y"

Τώρα βλέπουμε και τις 2. (οι 2 που φαίνονται εδώ δεν είναι οι 2 που αναφέρονται στην ιστορία πριν)

Πάμε λοιπόν να φτιάξουμε την έξοδο ήχου που θα στέλνει και στις 2 ταυτόχρονα.

pactl load-module module-combine-sink sink_name=SINK_NAME slaves=node.name_device-0,node.name_device-1 sink_properties="device.description='Combined HDMI' device.icon_name='audio-card-symbolic'"

Δυό λόγια για τα στοιχεία που βάζουμε ως arguments για την αποφυγή δυσκολιών.

  • sink_name: Εγώ έβαλα πχ τη λέξη Combined
  • slaves=: Εδώ βάζουμε τα node names όπως τα βρήκαμε πριν. Δηλαδή εγώ για το output που έχουμε παραπάνω θα έβαζα `slaves=alsa_output.pci-0000_0b_00.1.pro-output-3,alsa_output.pci-0000_0b_00.1.pro-output-7
    Τα υπόλοιπα μπορούν και να παραλειφθούν.

Η έξοδος αυτής της εντολής θα μας δώσει ένα ID που είναι το ID του sink που μόλις φτιάχτηκε.

Πάω πάλι στο pavucontrol στο tab Output Devices

Διαλέγω την έξοδο combined και ιδού! Παίζουν και οι 2!

Σήμερα το πρωί δοκίμασα να στείλω και στα ηχεία που έχω πλέον και στις 2 οθόνες. Αφού το είπα στον @Billkyriaf (γιατί οι σωστοί φίλοι παίζουν και τους φίλους τους στο παιχνίδι! :joy:) μου έδωσε την ιδέα ο Βασίλης να δοκιμάσω να χωρίσω και τα κανάλια right left στην καθεμιά. Και εννοείται πως δεν έχασα ευκαιρία :joy:

pavucontrol to the rescue και διαλέγουμε στο κάθε output την κλειδαριά και ρυθμίζουμε τα right left κανάλια στη δεξιά και την αριστερή αντίστοιχα.

Αν θελήσουμε να διαγράψουμε την πηγή που φτιάξαμε, μπορούμε να δώσουμε την εντολή:

pactl unload-module ID

όπου ID το ID που μας είχε εμφανιστεί στην πρώτη εντολή.

Μπορείς έτσι να προσθέσεις όσες εξόδους θέλεις (ακουστιά σε άλλη κάρτα ήχου, bt, hdmi, line out) ό,τι ό,τι θέλεις!

Θα χαρώ αν φάνηκε σε κάποιον χρήσιμο! Αν κάποιος σκεφτεί και κάποια καλύτερη χρήση του “hack” ας γράψει στα σχόλια!

Οι εικονικές έξοδοι που φτιάχνουμε δεν είναι μόνιμες, χάνονται μετά από reboot. Προσωπικά είχα ένα έτομο script που το έτρεχα όταν ήθελα να δουλέψω το laptop στις οθόνες. Φαντάζομαι πως θα υπάρχει τρόπος να γίνει και μόνιμο μέσα από τα αρχεία /etc/pipewire/... ή /etc/pulse/...

7 «Μου αρέσει»

εχω 2 καρτες ηχου (η μια με ακουστικα και η αλλη με κλασσικα στερεοφωνικα ηχεια) και εχω κανει την απολυτη καφριλα. εχω τρεξει 4 streams ταυτοχρονα, ενα για καθε καναλι σε καθε καρτα ηχου με σκετο pulseaudio χωρις pipewire η αλλες μοντερνιες . ενα stream στο αριστερο ακουστικο αλλο στο δεξι ακουστικο, αλλο στο αριστερο ηχειο και αλλο στο δεξι. το ακουστικο αποτελεσμα ηταν κατι παραπανω απο παραφωνια και γελοιο :laughing: :stuck_out_tongue_closed_eyes: :crazy_face:

2 «Μου αρέσει»