Μετά από 19-20 χρόνια κάνω ερώτηση σε forum για πρόβλημα που δεν μπορώ να επιλύσω. Στέρεψα από ιδέες και υπομονή. Και μου την έχει δώσει αφάνταστα καθώς είναι το πρώτο θέμα που δεν μπορώ να επιλύσω όλα αυτά τα χρόνια.
Η κατάσταση έχει ως εξής:
Προσπαθώ να ρυθμίσω τη “συγχρονισμένη (ταυτόχρονη) έξοδο ήχου (Linux Mint 22.1), ώστε ο ήχος να παίζει ταυτοχρόνως από τα αναλογικά ηχεία του υπολογιστή μου και από την τηλεόραση που είναι συνδεδεμένη μέσω HDMI (το γιατί χρησιμοποιώ οθόνη τηλεόρασης αντί για κανονικό screen είναι άλλη ιστορία και όχι του παρόντος).
Έχω συνδέσει επιτυχώς την τηλεόραση μέσω HDMI και ο ήχος λειτουργεί αν επιλέξω είτε το HDMI είτε το “Built-in Audio” (σε tv και σε ηχεία του υπολογιστή αντίστοιχα) στο pavucontrol, αλλά δεν μπορώ να τα κάνω να λειτουργήσουν μαζί.
- Εδώ είναι τι έχω δοκιμάσει μέχρι στιγμής χωρίς επιτυχία:
paprefs: Εγκατέστησα το paprefs και τσέκαρα το “Add virtual output device for simultaneous output on all local sound cards”. Εανεκκίνησα το pulseaudio και έλεγξα το pavucontrol, αλλα δεν εμφανίστηκε καμία συσκευή “Simultaneous” όπως νόμιζα ότι θα γινόταν.
Εντολή pactl: Προσπάθησα να φορτώσω το module χειροκίνητα στο τερματικό: pactl load-module module-combine-sink. Δεν μου έκατσε ουτε αυτό, η συσκευή και πάλι δεν εμφανίστηκε στο pavucontrol.
Ρύθμιση default.pa: Η άλλη μου σκέψη ήταν να προσθέσω μόνιμα το module στο /etc/pulse/default.pa προσθέτοντας τη γραμμή load-module module-combine-sink στο τέλος του αρχείου, κάνοντας επανεκκίνηση. Μια από τα ίδια αφού και πάλι δεν είδα επιλογή για “Simultaneous” έξοδο.
Προφίλ Ρυθμίσεων (Configuration Profiles): Το άλλο που σκέφτηκα ήταν να αλλάξω τα προφίλ στο pavucontrol → Configuration, αλλά προφίλ εξόδου “Simultaneous” δεν είδα για καμία από τις δύο κάρτες.
Και εδώ η έξοδος της εντολής xrandr για το πλαίσιο της συζήτησης (ενημερωτικά, απλά αποδεικνύει ότι το Mint βλέπει σωστά τη συσκευή που είναι συνδεδεμένη μέσω HDMI και προφανως εφόσον το HDMI περνάει και εικόνα και ήχο, οι ρυθμίσεις τους είναι μερικές φορές αλληλένδετες στο παρασκήνιο.
Bash
xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 575mm x 323mm
1920x1080 60.00*+ 60.00 50.00 59.94 24.00 23.98
... (υπόλοιπες αναλύσεις)
(η κάρτα είναι μια Radeon HD 7000)
Οκ, μπορώ να εναλλάσσομαι από HDMI Audio σε Build-in-Audio αλλά δεν είναι αυτό το ζητούμενο.
Μπορεί να μαντέψει κάποιος γιατί το τιμημένο module-combine-sink αποτυγχάνει να δημιουργήσει την εικονική συσκευή; Και τέλος πάντων πως θα συγχρονίσω και τις δυο πηγές ήχου ταυτόχρονα; Γίνεται σίγουρα, το είχα κάνει και μάλιστα πολύ παλιότερα, αλλά τότε το πέτυχα με την πρώτη. Οποιαδήποτε βοήθεια θα εκτιμηθεί τα μάλα.
Υπάρχει επίσης το qpwgraph που σου δίνει ένα γραφικό τρόπο να συνδέσεις πηγές ήχου σε διάφορες εξόδους. Ίσως μπορέσεις να κάνεις κάτι με αυτό το πρόγραμμα.
Πριν κανένα χρόνο προσπάθησα κάτι αντίστοιχο και δυσκολεύτηκα πολύ να το καταφέρω, παρότι πριν κάποια χρόνια το είχα καταφέρει αρκετά εύκολα(με pulseaudio τοτε, προ pipewire). Δε θυμάμαι τι ακριβώς έκανα και λειτούργησε μιας και έπεσε πολύ ψάξιμο, συνδρομή chatgpt που μπέρδεψε σε μεγάλο βαθμό τα πράγματα, αλλά που με παράλληλη έρευνα στο διαδίκτυο κάποια στιγμή τελικά βοήθησε. Αυτό που θυμάμαι όμως είναι ότι υπήρχε θέμα με το που θα μπουν τα configuration. Δε λειτουργεί λοιπόν αν μπουν στο ~/.config/wireplumber, αλλά θέλει να είναι στο ~/.config/pipewire στον υποκατάλογο pipewire.conf.d. Εκεί λοιπόν έχω δύο αρχεία που νομίζω ότι και τα δύο χρειάζονται για να λειτουργήσει το combine sync.
Ίσως σε βοηθήσουν λοιπόν. Αυτό που θυμάμαι επίσης(και πιθανότατα να διαφέρει η περίπτωσή σου εδώ) είναι ότι πρέπει να δηλωθούν σωστά τα FL,FR,RL… ανάλογα με το hardware που υπάρχει αλλιώς δε θα έχεις ήχο.
Επανεκκίνηση του PiperWire για να πάρει τις ρυθμίσεις:
Bash
systemctl --user restart pipewire
Κατόπιν, άνοιξα το pavucontrol, πήγα στην καρτέλα “Output Devices” και είδα ότι πράγματι εμφανίστηκε μια συσκευή με όνομα “Tavtoxronos Hxos” την οποία και επέλεξα.
Και τέλος, από τις Ρυθμίσεις Ήχου, επέλεξα αυτή τη συσκευή.
Άρα, αυτή είναι η λύση για όποιον τυχόν αντιμετωπίσει κάτι τέτοιο.
Ναι αλλά μπορείς να το βάλεις σαν ένα script που να ξεκινάει με τη συνεδρία. Το πλεονέκτημα είναι πως είναι ευκολότερα κατανοητή σαν λύση. Και μπορεί να την εφαρμόσει ευκολότερα όποιος διαβάζει και προσπαθεί να εφαρμόσει τη λύση στο συστημα του.
Να προσθέσω πως δεν είναι η καλύτερη δυνατή μέθοδος, μπορεί να έχει lag και να υστερεί ο ήχος μιας και ακολουθεί διαφορετικές διαδρομές με άλλο latency ή να έχεις ανάδραση. Ορθότερη είναι η λύση που έδωσες μιας και το pipewire κάνει καλύτερη δουλειά. Και ακόμα καλύτερο να εφαρμοστεί σε επίπεδο wireplumper αν αλλάζει δυναμικά το Hardware.
Δυστυχώς, στο παρόν επίπεδο δεν υπάρχει αρκετή πληροφορία εκεί έξω για να κάνεις πολύπλοκα setup και θέλει πολύ διάβασμα, κατανόηση και πειραματισμό. Μπορείς να κάνεις ότι θέλεις και είναι ευέλικτο το σύστημα, αλλά δεν υπάρχουν καλά γραφικά εργαλεία, ιδανικά πχ θα μπορούσες να το κάνεις απο τις ρυθμίσεις ήχου της διανομής, ή πόσο δύσκολο θα ήταν το qpwgraph να προσθέτει nodes, ή να βλέπεις τις ιδιότητες κάθε κουτιού και να τις αλλάζεις.
Για την ώρα μένουμε στο παίρνω κάτι από το Arch Wiki δεν καταλαβαίνω τι κάνει, το προσπαθώ να δουλέψει σε μένα, ή το αντιγράφω και το κάνω blog post χωρίς πάλι να εξηγώ ή να καταλαβαίνω (βρήκα κανα δυο). Και θα μας θάψει όλους το AI …
Λοιπόν, συναντήθηκαν οι σκέψεις μας.
Μόλις τώρα, δευτερόλεπτα πριν και έχοντας πια τη λύση (και διαθέσιμο χρόνο), σκέφτηκα να τσεκάρω το Gemini.
Του έθεσα το πρόβλημα όπως ακριβώς εδώ.
Ναι, έκανε προτάσεις που είχαν λογική, όμως ήταν ήδη αυτές που είχα δοκιμάσει, συν 2-3 ακόμα για τις οποίες είμαι βέβαιος πως δεν έλυναν το πρόβλημα.
Την σωστή λύση όμως, ΔΕΝ μπόρεσε να τη βρει.
Και για μια ακόμα φορά θυμήθηκα γιατί δεν χρησιμοποιώ σοβαρά και συχνά την ΤΝ ακόμα.
Προτιμώ τις αναζητήσεις να τις κάνω εγώ με τους όρους κλειδιά που μου λέει η λογική και η εμπειρία μου.
Γενικότερα, νομίζω πως η ΤΝ θέλει 5-6 χρόνια ακόμα για να την πάρουμε πιο σοβαρά. Και είμαι περίεργος πως θα εξελιχτεί αυτό της Meta που (κατ’ ανάγκη) το άνοιξε.
To κόλπο είναι να του πετάς την λύση που σου έδωσε, αυτή που θεωρείς καλύτερη σε μια άλλη συνεδρία για να μην έχει άλλο context και να του ζητάς να σου την εξηγήσει. Συχνά πετάει χρήσιμα hints. Και μετά σε άλλο tab να ρωτάς για μεμονωμένες γραμμές να σου πει τι κάνουν και να ψάξεις μετά το documentation.
Ποτέ δεν αντιγράφεις κάτι που δεν καταλαβαίνεις εσύ, γιατί ούτε αυτό το καταλαβαίνει. Με άλλα λόγια να τη χρησιμοποιείς σαν εργαλείο με τους περιορισμούς της και όχι σαν μια μαγική σφαίρα που όλα τα απαντά. Για την ώρα τουλάχιστον. Γιατί στο μέλλον, όταν εμείς και ότι άλλο υπάρχει κλείσει μιας και δε θα μπαίνει να ρωτάει ή να γράφει κανένας, ήδη τα σημάδια είναι ορατά, δε θα βρίσκει πρωτογενές υλικό να κλέβει και δε θα μπορεί να απαντά στις ερωτήσεις του μέλλοντος.
Επι τι ευκαιρία κάθομαι και διαβάζω το documentation και έχω εντυπωσιαστεί με τις δυνατότητες. Μια χρήσιμη εντολή αντί για τα γραφικά περιβάλλοντα είναι η παρακάτω
Επειδή βλέπω ότι αρχίζει να παίρνει ενδιαφέρον η συζήτηση περί ΤΝ, θα τη συνεχίσουμε άλλου, σε άλλο νήμα, επειδή ναι είναι πολύ σωστά αυτά που λες, δεν τα είχα σκεφτεί αλλά πιστεύω ότι το 90% του καλού αποτελέσματος το δίνουν τα prompts. Τα system prompts συγκεκριμένα.
Και σε μεγάλο βαθμό πιάνουν (ναι, ακόμα και στο Gemini).