Linux Audio Recording Guide

Browser-Based DAW

Try our browser-based Digital Audio Workstation—zero install. It's running right here. More »

Multi-track recording and mixing directly in the browser. Built with the Web Audio API and modern JavaScript, it supports:

Because it runs entirely in the browser, there is nothing to install. Just open the page and start recording. The DAW uses no server-side processing — all audio stays private on your machine. More about this widget.

Audio Recording

Whether you are cutting a podcast, laying down demo tracks, or producing a full album, Linux offers quality audio tools without licensing fees or subscription lock-in. The remainder of this guide walks through the entire workflow: choosing recording software, reducing noise, normalizing levels, trimming clips, editing with keyboard shortcuts, and mixing multiple tracks — all using free, open-source applications.

Professional recording hardware delivers the best results, but modern home PCs — even an old laptop, a Raspberry Pi, or an Arduino — can capture a surprising amount of fidelity with the right software. Built-in sound cards often suffer from noise and nonlinear A/D conversion, but a modest USB audio interface solves that for under $100.

Audacity

Audacity is the flagship open-source multi-track editor. It balances power with approachability: you can record a simple voice memo in seconds, yet its toolset handles professional session work. The built-in documentation covers every feature.

Newer versions of Audacity include AI-driven tools that simplify common tasks:

AI Noise Reduction* — learn a noise profile from silence, then apply spectral subtraction with a single click AI Clip Trimming — intelligently detect and remove silence, breaths, and mouth noises without manual selection Keyboard Shortcuts — Audacity supports customizable keybindings for nearly every operation. Common defaults include Space for play/pause, R for record, Ctrl+X to trim silence, and Shift+Z for zoom. You can remap any action under Edit > Preferences > Keyboard*. Effects chain — batch-process noise reduction, normalization, EQ, and compression in one pass

To get a noise profile: select a quiet section of audio, then go to Effects > Noise Reduction > Get Noise Profile. Select the entire track, reopen the effect, and click OK. For best results, adjust the sensitivity sliders per track — a single profile rarely suits every source.

audio/noise_removal.jpg

SoX — The Swiss Army Knife of Audio

SoX processes audio from the command line, which makes it ideal for scripting and batch workflows. A basic recording:

rec out.wav

SoX also handles noise profiling and reduction in two passes:

sox out.wav -n trim 0 .9 noiseprof | play out.wav noisered - 0.2

This approach is fast but can introduce artifacts. An alternative is a noise gate using compand:

play out.wav compand .2,.2 -30.1,-inf,-30,-20 0 -90 .1

This attenuates everything below -30 dB and compresses the remaining signal into a 0–20 dB range with 200 ms attack/decay. A more refined multi-band gate:

play out.wav mcompand ".01,.2 -50.1,-inf,-30.1,-50" 100 \
".01,.2 -50.1,-inf,-30.1,-50,-30,-20" 1000 \
".01,.1 -70.1,-inf,-50.1,-70" 3000 \
".01,.1 -70.1,-inf,-40.1,-70"

Refer to the SoX documentation for additional parameters.

Quick Recordings with GStreamer

For quick captures, GStreamer pipelines work from the terminal. Save hard drive space with compressed Ogg Vorbis:

gst-launch -e autoaudiosrc ! audioconvert ! vorbisenc ! oggmux ! filesink location=out.ogg

Or capture lossless FLAC for archival quality:

gst-launch -e autoaudiosrc ! audioconvert ! audio/x-raw-int,rate=44100,channels=1 ! flacenc ! filesink location=out.flac

Play back with the reversed pipeline:

filesrc location=out.ogg
 ! oggdemux ! vorbisdec ! audioconvert ! autoaudiosink

Any player — ffplay, mplayer, Totem — handles these formats. A codec pack may be needed for Windows Media Player.

Master Control — Visual GStreamer Pipelines

We built Master Control as a graphical interface for gst-launch. It provides drag-and-drop pipeline assembly with real-time feedback on plugins like the level meter, spectrum analyzer, noise reduction, pitch shifting, and EQ filters. You can tweak parameters live without editing command-line flags.

Removing Noise with PulseAudio

PulseAudio supports noise cancellation via the WebRTC audio processing module. Install the webrtc-audio-processing package through your system package manager (Apper or yum on Fedora), then append the following to /etc/pulse/default.pa (or ~/.pulse/default.pa for a per-user configuration):

### Load echo cancellation module
load-module module-echo-cancel source_name=echosource aec_method=webrtc
set-default-source echosource

Restart PulseAudio with pulseaudio -k.

Noise Gate via LADSPA

Master Control can apply a LADSPA noise gate to a live microphone stream. The ladspa-gate plugin is mono-only; for stereo sources, GStreamer's deinterleave and interleave elements split and recombine channels. Find available LADSPA plugins with:

gst-inspect |grep ladspa

A live noise gate preview (adjust Threshold to match your room):

autoaudiosrc ! audio/x-raw-float ! ladspa-gate Threshold=-30.0 \
Decay=2.0 Hold=2.0 Attack=0.1 ! queue ! audioconvert ! autoaudiosink

A pitch shifter for fun:

autoaudiosrc ! audio/x-raw-float ! ladspa-tap-pitch \
Rate-Shift----=-20 Wet-Level--dB-=20 ! queue ! audioconvert ! autoaudiosink

Master compressed audio with the noise gate applied:

autoaudiosrc ! audioconvert ! ladspa-gate Threshold=-30.0 \
Decay=2.0 Hold=2.0 Attack=0.1 ! vorbisenc ! oggmux ! filesink \
location=out.ogg

Or master lossless FLAC for maximum quality:

autoaudiosrc ! ladspa-gate Threshold=-30.0 Decay=2.0 \
Hold=2.0 Attack=0.1 ! audioconvert ! \
audio/x-raw-int,rate=44100,channels=1 ! flacenc ! filesink \
location=out.flac

Editing in Audacity

Audacity's editing and filtering tools let you shape each track precisely. Common editing tasks can be automated to speed up repetitive work.

The typical noise-reduction workflow: record or select silence, grab a noise profile via Effects > Noise Removal > Get Noise Profile, then apply to the full track. The default settings are rarely optimal — adjust the sliders and preview until the artifacts are acceptable. We salvaged a particularly noisy microphone with the settings shown below.

audio/noise_removal.jpg

Keyboard Shortcuts for Faster Editing

Audacity's keyboard shortcuts turn slow mouse work into fluid editing. Key defaults every producer should know:

* Space — Play / Stop * R — Start / Stop recording * Shift + R — Record on the current track * Ctrl + X — Trim selected audio (delete all but the selection) * Ctrl + K — Split cut (remove selection, leave gap) * Ctrl + I — Split at cursor position * Ctrl + J — Join adjacent clips * Ctrl + L — Silence the selection (replaces with silence) * Shift + Z — Zoom to selection * Ctrl + 1 / 2 — Zoom in / out * Delete / Backspace — Delete selected audio and close gap

All shortcuts are configurable under Edit > Preferences > Keyboard.

Normalize Sound Levels

Tracks that are too quiet invite noise floor issues; tracks that are too loud clip and distort. Normalization brings the peak level to a target (usually -1 dB or -3 dB) so your production sits consistently with commercial releases. Most editors — Audacity, SoX, our DAW — offer a normalize function. SoX:

sox in.wav out.wav norm -3

Transients can skew automatic results. A final level adjustment by ear always beats a blind normalization.

Recording Multiple Tracks

Overdubbing and mixing tracks lets you layer vocals over instruments, create harmonies, or insert narration into a pre-recorded backing track. It is the same technique that enables "singing along with yourself."

If your overdubs drift out of sync, perform a latency test. We measured 157 ms on one system and compensated by shifting tracks in the timeline.

Once the arrangement sounds right, export a mixdown to a lossless format — WAV or FLAC — for archival and further mastering.

System-Wide EQ with PulseAudio

Install pulseaudio-equalizer-gtk on Fedora via yum or Apper. No launcher icon is created by default; save the following as a .desktop file:

[Desktop Entry]
Comment=
Exec=/usr/bin/pulseaudio-equalizer-gtk
GenericName=Pulseaudio EQ
Icon=view-media-equalizer
Name=Pulseaudio EQ
NoDisplay=false
Path[$e]=
StartupNotify=true
Terminal=0
TerminalOptions=
Type=Application
X-KDE-SubstituteUID=false
X-KDE-Username=

Getting to Know JACK

Anyone who knows Jack about audio probably does not need this section. For everyone else: JACK is a low-latency audio server that routes audio and MIDI between applications. To play a software synth from an external MIDI keyboard:

1. Start QJackCtl 2. Launch FluidSynth GUI 3. Configure FluidSynth to use JACK routing 4. Connect a MIDI keyboard (or use a software keyboard) 5. Use QJackCtl's connection graph to wire the keyboard output to the synth input

JACK's learning curve is real, but the payoff is sub-10 ms latency for live performance.

Audio Links

Audacity Support

Swap left and right audio channels

GStreamer Cheat Sheet

Comparison of container formats

Raspberry Pi

Keep it going. Support development or hire an expert programmer for your next project.

CCBY Copyright © 2026 Henry Kroll III, thenerdshow.com This web page is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.