Getting Professional-Grade Audio Working on Ubuntu 24.04

#linux #sound

This setup was done on an HP EliteBook 840 with Intel Tiger Lake hardware, running Ubuntu 24.04 LTS.

Ubuntu 24.04 ships with PipeWire and WirePlumber by default, which is a solid foundation—but getting microphone, noise suppression, and sane device naming to work properly on this platform still requires some manual tuning.

This post documents the exact steps I use to achieve a reliable, high‑quality audio setup suitable for calls, recordings, and daily work.


TL;DR

Result: clean mic input, stable routing, and no cluttered device list.


Enable Pro Audio Mode

To properly use the microphone, the audio card must run in pro-audio profile.

pactl set-card-profile alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic pro-audio
pactl set-default-sink alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-0
amixer -c 0 set Master 100%
pactl set-default-source rnnoise_source

After switching profiles:

  1. Open alsamixer and set all relevant channels to 100%
  2. Take the code above, put it in a script and run it on every reboot.

WirePlumber Configuration

WirePlumber allows fine-grained control over audio devices using Lua scripts.

Configuration files are placed in:

~/.config/wireplumber/main.lua.d/

Rename the Audio Device

Default ALSA device names are long and unreadable. This rule renames the main audio device to something human-friendly.

rule = {
  matches = {
    {
      { "device.name", "matches", "alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic" },
    },
  },
  apply_properties = {
    ["device.description"] = "Laptop Audio"
  },
}

table.insert(alsa_monitor.rules, rule)

Disable Unused Inputs and Outputs

Pro-audio mode exposes many unused nodes. Disabling them keeps the device list clean and avoids accidental routing.

rule = {
  matches = {
    { { "node.name", "equals", "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-3" } },
    { { "node.name", "equals", "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-4" } },
    { { "node.name", "equals", "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-5" } },
    { { "node.name", "equals", "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-31" } },
    { { "node.name", "equals", "alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-input-0" } },
    { { "node.name", "equals", "alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-input-6" } },
  },
  apply_properties = {
    ["node.disabled"] = true,
  },
}

table.insert(alsa_monitor.rules, rule)

Noise Suppression (PipeWire)

For calls and recordings, PipeWire-based noise suppression is essential.

Install RNNoise for PipeWire from here:

👉 https://github.com/werman/noise-suppression-for-voice

Once installed, set the RNNoise source as your default microphone.


Faster Audio Switching in GNOME

Install the GNOME extension:

Quick Settings Audio Panel

This makes switching audio sources and sinks fast and practical during daily work.


Final Result

On an HP EliteBook 840 (Intel Tiger Lake) with Ubuntu 24.04 LTS, this setup delivers:

With a bit of tuning, Ubuntu 24.04 becomes a serious, professional-grade audio platform on modern Intel laptops.



Have any thoughts or comments?