oleh aerphanas pada Oct 29, 2022
Bagikan ke: Twitter | Facebook | LinkedIn
A PipeWire Graph Qt GUI Interface

Daftar Isi

Pendahuluan


Saya memiliki hobi yang unik yaitu mendengarkan musik, musik yang saya dengar merupakan musik yang memiliki kualitas tinggi yang biasanya memiliki bit depth dari 16 sampai 24 bit dan memiliki sample rate sama dengan diatas 44.1 kHz, agar bisa mendengarkan kualitas suara yang baik di linux memerlukan beberapa configurasi, disinilah saya akan membagikan bagaimana cara menkonfigurasi linux agar bisa memutar kualitas audio yang berkualitas tinggi, linux memiliki sound API yang bernama alsa yang berada di dalam linux kernel.

ALSA


ALSA adalah singkatan dari Advanced Linux Sound Architecture, pada awalnya ALSA merupakan proyek yang terpisah dari kernel Linux sebelum linux menggunakan ALSA, linux menggunakan OSS (Open Sound System) ALSA sendiri masuk ke Linux kernel pada versi 2.5 dan pada Linux versi 2.6 OSS di gantikan oleh ALSA, ALSA juga Kompatibel dengan OSS sehingga memudahkan aplikasi yang menggunakan OSS untuk memakai ALSA.

ALSA juga memiliki keunggulan dari OSS yaitu :

  • MIDI synthesis berbasis Perangkat Keras.
  • mixing Prangkat Keras untuk channels yang lebih dari satu.
  • Operasi Full-duplex.
  • mesupport multiprosesor.

ALSA sendiri memiliki API lebih rumit dari OSS jadi akan sulit pengembang applikasi untuk menggunakan ALSA maka dibuatlah beberapa sound servre yang gunanya memepermudah pembuatan aplikasi pada linux, ALSA sendiri memerlukan tool agar user dapat mengontrol volume dsb toolnya adalah alsa-utils.

Sound Server


Sound server adalah software yang berguna mengelola akses dan penggunaan terhadap sound card dan biasanya berjalan pada latar belakang, saat ini keberadaan sound server di linux ada 3 dan dari ke-3 itu memiliki tujuannya masing-masing, contohnya JACK selalu mengedepankan urusan latensi sehingga cocok untuk rekaman suara.

PulseAudio

PulseAudio adalah sebuah sound server yang ditujukan untuk Linux namun ada beberapa sistem operasi yang memportingnya ke dalam sistemnya, pada awalnya lebih tepatnya pada tahun 2004 pulseaudio memiliki nama Polypaudio namun pada tahun 2006 barulah diubah menjadi PulseAudio.

  1. Konfigurasi PulseAudio

    Mengkonfigurasi PulseAudio agar menmutar audio secara Hi-Res sangatlah mudah, kita hanya perlu mengedit atau menambahkan beberapa line di dalam configurasinya, konfigurasi PulseAudio berada di :

    /etc/pulse/daemon.conf

    namun sebelum kita mengedit file itu kita harus login sebagai root, setelah kita login kita bisa menambahkan :

    default-sample-rate = <ganti>
    alternate-sample-rate = <ganti>

    kita bisa mengganti berapa sample rate yang kita mau, rekomendasi saya ubahlah menjadi :

    default-sample-rate = 44100
    alternate-sample-rate = 48000

    untuk PulseAudio versi 1.11 memiliki konfigurasi khusus, konfigurasi ini berguna untuk mengubah sample sate menjadi otomatis sama dengan sumber audio, konfigurasinya adalah

    avoid-resampling = true

    untuk mengubah format output menjadi 24bit kita bisa menambahkan ini :

    default-sample-format = s24le

    di PulseAudio kita juga bisa mengubah metode resample seuai keinginan kita namun sebelum itu kita harus mengetahui sample apa yang didukung oleh system kita dengan perintah :

    pulseaudio --dump-resample-methods

    saya rekomendasikan menggunakan resample soxr-vhq karna memiliki kualitas yang bagus, tambahkan konfigurasi :

    resample-method = soxr-vhq

    seperti itulah saya mendapatkan kualitas suara yang bagus menggunakan jika sedang menggunakan PulseAudio.

Pipewire

Pipewire merupakan sebuah Sound Server yang baru, rilis pertama pada tahun 2017, dan pada tahun 2021 pipewire menjadi sound server bawaan Linux Distro bernama Fedora 34 setelah itu mulailah beberapa distro berpindah dari PulseAudio ke Pipewire, pada awalnya pipewire merupakan sebuah program untuk menghandle video di Linux Distro yang berdampingan dengan pulseaudio makadari itu sebelum bernama pipewire, pipewire memiliki nama PulseVideo.

pipewire memiliki sebuah tujuan diantaranya :

  • kompatibilitas untuk aplikas yang menggunakan Flatpak
  • cara aman untuk merekam dan menangkap layar di Wayland compositor
  • Kompatibel dengan aplikasi yang menggunakan JACK dan PulseAudio
  1. Konfigurasi Pipewire

    Karna biasanya pipewire berjalan menggunakan user kita harus mengkopi configurasi dari

    /usr/share/pipewire/pipewire.conf

    ke

    ~/.config/pipewire/pipewire.conf

    setelah kita mengkopi contoh konfigurasi kita bisa membukanya dan mengedit sesuai apa yang kita inginkan, jika ingin mengetahui semua konfigurasi pipiwire bisa pergi ke wikinya.

    untuk mendapatkan kualitas audio yang maksimal saya menggunakan konfigurasi yang hampir sama dengan Pulseaudio yaitu mengubah sample rate, untuk mengubah sample rate silakan anda membuka pipewire.conf dengan text editor kesayangan anda, jika sudah silakan edit atau tambah (bila tidak ada) configurasi :

    default.clock.rate          = <ganti>
    default.clock.allowed-rates = [ <ganti> <ganti> ... ]

    hampir mirip dengan PulseAudio, saya akan menggunakan 44100 sebagai standar sample rate, namun disini ada yang berbeda yaitu configurasi

    default.clock.allowed-rates = [ <ganti> <ganti> ... ]

    disini saya akan menggunakan 44100 48000 88200 96000 sebagai sample rate, kegunaanya adalah pipewire akan otomatis mengubah sample rate sesuai sumber audio tetapi menggunakan list, disinilah gunakan samplerate yang disupport oleh DAC anda, saat ini configurasi saya adalah :

    default.clock.rate          = 44100
    default.clock.allowed-rates = [ 44100 48000 88200 96000 ]

    untuk bit depth pipewire akan otomatis mengkonversi ke float32, namun bila kita memiliki DAC yang mensupport int24 maka pipewire akan menyesuaikanya.

Dafta Pustaka