$linuxjunkies
>

Linux for Podcasters and Streamers

Set up a professional Linux podcast and streaming rig: PipeWire low-latency audio, RNNoise suppression, OBS Studio, Reaper DAW, and Audacity multi-track recording.

IntermediateUbuntuDebianFedoraArch9 min readUpdated June 7, 2026

Before you start

  • A working Linux desktop with a microphone or USB audio interface connected
  • sudo/root access to install packages
  • At least 4 GB RAM and a dual-core CPU for real-time audio processing
  • PipeWire 0.3.48 or later (ships with Ubuntu 22.04+, Fedora 34+, Arch rolling)

Linux has quietly become a serious platform for content creators. PipeWire replaced the fragile PulseAudio/JACK split with a unified audio graph, OBS Studio ships native packages for every major distro, and tools like RNNoise bring professional noise suppression without a monthly subscription. This guide walks through a complete podcasting and streaming setup: low-latency audio routing, noise suppression, recording in Reaper and Audacity, and a streaming-ready OBS configuration.

Install PipeWire and Confirm It Is Running

Modern Ubuntu (22.04+), Fedora (34+), and Arch have PipeWire as the default. Verify before installing anything.

pactl info | grep 'Server Name'

You should see PulseAudio (on PipeWire). If you see plain PulseAudio, install the full PipeWire stack.

Debian / Ubuntu

sudo apt install pipewire pipewire-pulse pipewire-alsa pipewire-jack \
  wireplumber libspa-0.2-bluetooth
systemctl --user --now enable pipewire pipewire-pulse wireplumber

Fedora / RHEL 9+ / Rocky 9+

sudo dnf install pipewire pipewire-pulseaudio pipewire-jack-audio-connection-kit \
  wireplumber
systemctl --user --now enable pipewire pipewire-pulse wireplumber

Arch

sudo pacman -S pipewire pipewire-pulse pipewire-alsa pipewire-jack wireplumber
systemctl --user --now enable pipewire pipewire-pulse wireplumber

Tune PipeWire for Low Latency

The default quantum (buffer size) is fine for desktop audio but too high for live monitoring while recording. Drop it to 128 frames at 48 kHz for roughly 2.7 ms latency — low enough that you won't notice the delay in headphones.

mkdir -p ~/.config/pipewire/pipewire.conf.d
cat > ~/.config/pipewire/pipewire.conf.d/low-latency.conf <<'EOF'
context.properties = {
  default.clock.rate     = 48000
  default.clock.quantum  = 128
  default.clock.min-quantum = 64
  default.clock.max-quantum = 8192
}
EOF
systemctl --user restart pipewire pipewire-pulse

Confirm the quantum changed:

pw-metadata -n settings 0

Look for clock.quantum showing 128. If your CPU struggles (crackling, xruns), raise quantum to 256 and restart again.

Add RNNoise Noise Suppression

RNNoise uses a recurrent neural network trained on speech to strip background noise in real time — fan hum, keyboard clicks, room echo. The cleanest way to use it under PipeWire is through the noise-suppression-for-voice plugin loaded as a filter chain.

Install the plugin

Debian / Ubuntu (24.04+)

sudo apt install noise-suppression-for-voice

Fedora

sudo dnf install rnnoise

Arch / Manual (universal fallback)

sudo pacman -S noise-suppression-for-voice

Create a PipeWire filter-chain sink

cat > ~/.config/pipewire/pipewire.conf.d/rnnoise.conf <<'EOF'
context.modules = [
  { name = libpipewire-module-filter-chain
    args = {
      node.description = "Microphone Noise Suppressor"
      media.name       = "Microphone Noise Suppressor"
      filter.graph = {
        nodes = [
          { type   = ladspa
            name   = rnnoise
            plugin = /usr/lib/ladspa/librnnoise_ladspa.so
            label  = noise_suppressor_mono
            control = { "VAD Threshold (%)" = 50.0 }
          }
        ]
      }
      capture.props = {
        node.name      = "capture.rnnoise_source"
        node.passive   = true
        audio.rate     = 48000
      }
      playback.props = {
        node.name = "rnnoise_source"
        media.class = Audio/Source
        node.description = "RNNoise Mic"
      }
    }
  }
]
EOF
systemctl --user restart pipewire

After restarting, a new source called RNNoise Mic appears in your applications' input device lists. Select it in OBS, Reaper, Audacity, or any VOIP app instead of your physical microphone.

Install and Configure OBS Studio

Use the official packages — distro repos often lag behind and miss important PipeWire fixes.

flatpak install flathub com.obsproject.Studio

Fedora / RHEL

sudo dnf install obs-studio

Arch

sudo pacman -S obs-studio

Launch OBS and go to Settings → Audio. Set the sample rate to 48000 Hz to match PipeWire. Under Mic/Auxiliary Audio, choose RNNoise Mic as your microphone source — not the raw hardware device.

For streaming, Settings → Output → Streaming: choose FFMPEG VAAPI (AMD/Intel) or NVENC H.264 (NVIDIA) as the encoder. Software x264 works fine but burns CPU. Keep bitrate at 6000 Kbps for 1080p/60 Twitch or YouTube streams. Enable Rescale Output here only if your canvas and stream resolutions differ.

Add a PipeWire Audio Capture source in a scene to route desktop audio independently from your mic, giving you per-track control in the recording.

Multi-Track Recording with Audacity

Audacity 3.x works well for interview-style podcasting where you want isolated tracks per speaker.

# Ubuntu/Debian
sudo apt install audacity

# Fedora
sudo dnf install audacity

# Arch
sudo pacman -S audacity

In Audacity, go to Edit → Preferences → Devices. Set Host to ALSA (PipeWire exposes an ALSA layer automatically). Set Recording Device to your RNNoise virtual source. For multiple inputs — two USB mics or an interface — create separate tracks: click Add New → Stereo Track, then right-click the track and set its recording device independently via Tracks → Add New before starting each pass.

Enable Transport → Transport Options → Sound Activated Recording to auto-pause in silence between segments, keeping your project clean. Export each track as a separate 32-bit float WAV (File → Export → Export Multiple) for lossless editing later.

Professional Recording with Reaper

Reaper's native Linux build is production-quality and has the best JACK/PipeWire integration of any DAW on the platform. It is commercial software with a generous 60-day trial and a $60 discounted license for individuals.

# Download the current Linux build from reaper.fm — example for x86_64
wget https://www.reaper.fm/files/7.x/reaper711_linux_x86_64.tar.xz
tar xf reaper711_linux_x86_64.tar.xz
cd reaper_linux_x86_64
./install-reaper.sh --install /opt/reaper

In Reaper, go to Options → Preferences → Audio → Device. Set Audio system to JACK. PipeWire's JACK layer intercepts this — you get native PipeWire routing without running a separate JACK daemon. Set block size to 128 and sample rate to 48000.

Reaper's real advantage for podcasting is its FX chain. On each track, add: ReaEQ (high-pass at 80 Hz to cut rumble), ReaComp (gentle 3:1 ratio, -18 dB threshold), and ReaLimit to prevent clipping. These are included with Reaper at no extra cost and are genuinely broadcast-quality processors. Render the final podcast mix via File → Render to MP3 at 128 Kbps mono or 192 Kbps stereo.

Verify the Full Signal Chain

Use qpwgraph (a graphical PipeWire patchbay) to visualize and confirm every connection.

# Ubuntu/Debian
sudo apt install qpwgraph

# Fedora
sudo dnf install qpwgraph

# Arch
sudo pacman -S qpwgraph

qpwgraph &

You should see: Physical Mic → RNNoise filter → (OBS input) and (Reaper/Audacity input). If OBS or Reaper shows the wrong source, disconnect and reconnect nodes visually in qpwgraph, or use the app's own device selector.

Troubleshooting

  • Crackling or xruns: Raise the PipeWire quantum to 256 or 512. Check pw-top for nodes consuming excessive time.
  • RNNoise source not appearing: Confirm the LADSPA plugin path is correct with ls /usr/lib/ladspa/librnnoise_ladspa.so. The path varies by distro; on Arch it may be under /usr/lib/ladspa/ but sometimes the package installs to /usr/lib/x86_64-linux-gnu/ladspa/ on Debian.
  • OBS Flatpak can't see PipeWire sources: Run flatpak override --user --filesystem=xdg-run/pipewire-0 com.obsproject.Studio to grant socket access.
  • Reaper JACK shows no inputs: Ensure pipewire-jack is installed and PIPEWIRE_LATENCY is not set to a conflicting value in your environment. Unset it with unset PIPEWIRE_LATENCY and relaunch Reaper.
  • High CPU from RNNoise: The neural network is lightweight but if you're on a very old CPU, reduce concurrent filter-chain nodes or use a simpler gate (Gate plugin via lsp-plugins) instead.
tested on:Ubuntu 24.04Fedora 40Arch rollingDebian 12

Frequently asked questions

Do I need to run a separate JACK daemon alongside PipeWire?
No. Installing pipewire-jack provides a JACK compatibility layer. Any JACK-aware application like Reaper connects through PipeWire's JACK socket transparently, with no jackd process needed.
Can I use a USB audio interface instead of a built-in mic?
Yes. PipeWire enumerates USB class-compliant interfaces automatically. They appear as input devices in qpwgraph and in application device selectors; no extra drivers or ALSA configuration is required for most interfaces.
Is RNNoise good enough to replace a hardware noise gate?
For most podcasting environments it is more than adequate and operates on speech frequencies specifically. For live music or very high noise floors, combine it with a software gate plugin from lsp-plugins for cleaner cutoff.
Why is OBS recommended as a Flatpak on Ubuntu rather than the apt package?
The Ubuntu apt repository often carries an older OBS version that predates important PipeWire screen capture fixes. The Flatpak from Flathub tracks upstream releases closely and ships with the correct portal support for Wayland capture.
What bitrate and format should I export the final podcast in?
For distribution, MP3 at 128 Kbps mono is standard for speech-only podcasts and keeps file sizes small. If you have music segments or want higher quality, use 192 Kbps stereo. Always keep your Reaper or Audacity project files and the WAV masters.

Related guides