Βελτίωση του ήχου στο Linux: Low-latency kernel & Ubuntu Studio

Οι επαγγελματίες στο χώρο του ήχου ή/και της εικόνας είστε σίγουρα αρκετά εξοικειωμένοι με τον όρο Latency, και το κατά πόσο επηρεάζει την ποιότητα του ήχου στα οπτικοακουστικά συστήματα.

Για όσους από εμάς δεν έτυχε να ασχοληθούμε ιδιαίτερα, αλλά μας ενδιαφέρει να βρούμε τρόπους να βελτιώσουμε τον ήχο που βγαίνει από τον υπολογιστή μας, υπάρχει εδώ

μια αρκετά κατατοπιστική ανάλυση.

Όσον αφορά τη latency στο χώρο των υπολογιστών, ακολουθεί μια πολύ ελεύθερη απόδοση στα Ελληνικά της παραγράφου “Computer Audio” του παραπάνω άρθρου. Η μετάφραση έγινε από εμένα, με την πολύτιμη συνεισφορά του @asfodelus, που με βοήθησε να κάνω το κείμενο όσο το δυνατόν πιο κατανοητό :

Computer Audio

Η χρονική υστέρηση (latency) είναι ένα από τα μεγαλύτερα προβλήματα για τα συστήματα ήχου τού υπολογιστή. Η υστέρηση είναι ο χρόνος που θέλει το σύστημα τού ήχου (σε επίπεδο software και hardware) μεταξύ της χρονικής στιγμής που θα ζητηθεί ένας ήχος μέχρι την στιγμή που θα γίνει αντιληπτός από το ανθρώπινο αυτί. Στόχος είναι η καθυστέρηση αυτή να είναι μικρότερη της αντιληπτικής μας ικανότητας. Ένας από τους τρόπους να το καταφέρουμε αυτό, είναι η μείωση του μεγέθους των διάφορων buffers. Ένας άλλος τρόπος είναι το πρωτόκολλο ASIO, όπου στέλνουμε απευθείας τον ήχο στην κάρτα ήχου, μειώνοντας την ανάγκη προεπεξεργασίας του από λογισμικό που τρέχει στην CPU.

O πυρήνας Linux πραγματικού χρόνου είναι ένας τροποποιημένος πυρήνας, που διαφοροποιεί την τυπική συχνότητα που χρησιμοποιούν οι πυρήνες τού Linux, δίνοντας τη δυνατότητα σε όλες τις διεργασίες ή τα νήματα να έχουν προτεραιότητα πραγματικού χρόνου. Αυτό σημαίνει ότι μια χρονικά κρίσιμη διεργασία όπως η μεταφορά ήχου, θα έχει προτεραιότητα έναντι μιας όχι και τόσο κρίσιμης, όπως η δραστηριότητα στο δίκτυο. Το παραπάνω είναι επίσης διαφοροποιήσιμο ως προς χρήστη (για παράδειγμα, οι διεργασίες του χρήστη “tux” μπορούν να έχουν προτεραιότητα έναντι των διεργασιών του χρήστη “nobody”, ή έναντι διαφόρων υπηρεσιών συστήματος (system deamons).

Σημείωση: Tο άρθρο της Wikipedia αναφέρεται στο “Linux real-time kernel”, ονομασία του πυρήνα που πρωτοπαρουσιάστηκε στο Ubuntu Studio 8.04 και χρησιμοποιήθηκε μέχρι και την έκδοση 10.10. Από την έκδοση 12.04 και μετά, χρησιμοποιείται ο “Low-latency kernel”, ο οποίος κατ’ εμέ αποδίδεται ως “πυρήνας χαμηλής υστέρησης”.

Εδώ

μπορούμε να δούμε ότι ο real-time kernel υπάρχει και χρησιμοποείται σε μηχανήματα ήχου (π.χ. μίκτες Behringer, Allen & Heath) τρέχουν Linux και ουσιαστικά στοχεύουν σε 0 ms latency. Επισημαίνουν όμως (ρητώς, δια ροπάλου και με έντονα γράμματα) ότι η χρησιμοποίηση τέτοιου πυρήνα (real-time) σε desktop είναι κακή ιδέα, και προτείνουν τον low-latency, τονίζοντας ότι κάτω από προϋποθέσεις μπορεί να κατέβει σε latency 0.1 ms.

Ubuntu Studio

Το Ubuntu Studio είναι προφανώς μια διανομή που εκμεταλλεύεται στο έπακρο τα πλεονεκτήματα τού Low latency kernel, και απευθύνεται σε χρήστες που ασχολούνται πολύ με ήχο/εικόνα. Η άποψη αυτή ενισχύεται από τα επιπλέον προγράμματα που έρχονται προεγκατεστημένα, πέρα από τα βασικά (π.χ. libreoffice, firefox κλπ), και πέρα από αυτά που βρίσκουμε σε άλλες διανομές γενικής χρήσης. Παράδειγμα τα παρακάτω :

Aeolus, Ardour5, AT1, Audacity, Blender, drumkv1, Fluidsynth DSSI, guitarix, Hexter, Hydrogen, Jack Keyboard, Jamin, LMMS, Meterbridge, Phasex, Pitivi, Petri-Foo, Qtractor, SlowmoUI, SooperLooper, OBS Studio, Virtual MIDI Keyboard, Yoshimi, Rakarrack.

Στην επίσημη σελίδα του Ubuntu Studio : https://ubuntustudio.org/

Μπορούμε να βρούμε όλες τις απαραίτητες πληροφορίες/οδηγίες.

Προσωπικά μου έκανε εντύπωση ένα σημείο :

Ως αυτόνομη διανομή (iso) έρχεται με Xfce.

Δεν υπάρχουν isos με άλλα γραφικά περιβάλλοντα, αλλά :

Μέσω τερματικού εγκαθιστούμε το Ubuntu Studio πάνω στην επίσημη διανομή Ubuntu που έχει το γραφικό περιβάλλον που μας αρέσει, δηλαδή :

Για GNOME πάνω στο Ubuntu

Για KDE Plasma πάνω στο Kubuntu

Για LXQt πάνω στο Lbuntu

Για Budgie πάνω στο Ubuntu Budgie

Για MATE πάνω στο Ubuntu Mate

Για UKUI πάνω στο Ubuntu Kylin

  • To Xubuntu δεν αναφέρεται μιας και έχει Xfce. Επίσημα δεν υπάρχει cinnamon.

Προσωπική εμπειρία

Δεν θα είχα κανένα λόγο να απασχολήσω το forum με όλο αυτό το κατεβατό, αν δεν με εξέπληττε ευχάριστα η δοκιμή της διανομής.

Κατ’ αρχάς να αναφέρω ότι έχω ένα πολύ παλιό μηχάνημα (Pentium D, 2GB RAM και κάρτα γραφικών AGP X8 στο οποίο κάνω διάφορες δοκιμές. Η πρώτη μου επαφή με το Ubuntu Studio έγινε σ’ αυτό, πριν από ένα χρόνο και κάτι. Το μηχάνημα απλά δεν το “σήκωσε”. Ενώ ο ήχος έπαιζε κανονικά, τα γραφικά κόλλησαν, και μετά όλος ο υπολογιστής πάγωσε. Επανερχόταν μόνο με reset (κουμπί). Δεν κάνει για αρχαίο hardware.

Ο υπολογιστής στον οποίο είναι εγκατεστημένο τώρα, έχει Celeron G1820, 4G RAM και κάρτα NVIDIA 8400GS που παίρνει τον οδηγό 340.108.

Για αναπαραγωγή ήχου χρησιμοποιώ το mixxx. Δεν είναι προεγκατεστημένο, αλλά υπάρχει στον Software Manager. Για όποιους ενδιαφέρονται, κατεβαίνει (μέχρι και σήμερα) η έκδοση 2.2.3. Από την επίσημη σελίδα του mixxx, ο τόπος εγκατάστασης που προτείνεται (με ppa) κατεβάζει τη 2.2.4. Συγκριτικά, στο Arch το mixxx είναι στα packages, και κατεβαίνει η 2.2.4. Εκτός του ότι η 2.2.4 είναι καλύτερη με κάποιες επιπλέον επιλογές, σ’ εμένα η 2.2.3 δεν δούλεψε στο Ubuntu.

Aπό τα διαθέσιμα γραφικά περιβάλλοντα έχω μόνο μικρή επαφή με KDE και Xfce, με το πρώτο να μου αρέσει πιο πολύ απ’ το δεύτερο.

Έβαλα λοιπόν Kubuntu για να έχω KDE, και από πάνω το Studio. Με τους κλειστούς της NVIDIA, τα fonts ήταν τόσο μικρά, που ήθελαν ρυθμίσεις οι οποίες - προφανώς λόγω απειρίας – με δυσκόλευαν. Βγάζοντας τους κλειστούς, μια χαρά ήταν το display. Όμως, η αναπαραγωγή ήχου γινόταν στη μισή ταχύτητα! (κάτι σαν slow motion). Έβαλα την original διανομή με Xfce (κλειστοί οδηγοί) και ησύχασα.

Στο mixxx, o έλεγχος του latency γίνεται στο μενού Options→Preferences→Sound Hardware→Audio Buffer. Εκεί οι επιλογές που δίνονται κυμαίνονται από 1.4-99.2 ms, και προεπιλογή είναι η αναφερόμενη από τον υπολογιστή latency (δείτε στην παρακάτω φωτογραφία από διανομή με “νορμάλ” πυρήνα). Όπως φαίνεται στην ίδια φωτογραφία, προτείνεται η μείωση του buffer για καλύτερη απόκριση από το mixxx (=καλύτερος ήχος), αλλά και - αντίθετα - αύξησή του αν ακούγονται διάφορα κατά τη διάρκεια της αναπαραγωγής. Ουσιαστικά, αν κατέβεις κάτω από το προτεινόμενο buffer, έχεις “σκασιματάκια” και διακοπές στην αναπαραγωγή.

Archlatency

Δείτε τώρα τη αντίστοιχη φωτό από το Ubuntu Studio με το low latency kernel.

UbuntuSlatency

Η διαφορά στο αναφερόμενο latency συστήματος (ίδιος υπολογιστής) είναι μεγάλη.

Στο διά ταύτα:

Στο ίδιο κομμάτι, αναπαραγόμενο από το ίδο πρόγραμμα, στον ίδιο υπολογιστή, στο ίδιο (μετρίων δυνατοτήτων) ηχοσύστημα, ο ήχος μέσα από Ubuntu Studio είναι ξεκάθαρα (ακουστά) πιο καθαρός, πιο “κρυστάλλινος”.

Τη μεγαλύτερη διαφορά όμως, την είδα στην εξισορρόπηση των καναλιών (balancing). Με “νορμάλ” πυρήνα-διανομή, έβλεπα στα Vuμετρα του mixxx διαφορά στην ένταση των καναλιών (έφτασα στο σημείο να νομίζω ότι κάτι δεν πήγαινε καλά με το ίδιο το αρχείο ή τον τρόπο δημιουργίας του), με αποτέλεσμα την μεταφορά της “σκηνής” προς το ένα ηχείο, πράγμα που ερχόταν στα ίσια του μόνο με την περιστροφή του balance αντίθετα, με καταστροφικά αποτελέσματα στην ποιότητα του ήχου. Με το Studio, όλα ήρθαν στη θέση τους. Η διαφορά είναι μεγάλη.

Αν το hardware σας το σηκώνει, και ασχολείστε με ήχο, δοκιμάστε το Ubuntu Studio. Αξίζει τον κόπο.

Τέλος, για την ιστορία, να αναφέρω ότι εδώ

υπάρχει μεθοδολογία για βελτίωση του ήχου στο Arch, που οδηγεί σε “realtime kernel patchset”

Για άλλες διανομές δεν κοίταξα.

Καλές ακροάσεις!

8 Likes