You've successfully subscribed to Castopod Blog
Great! Next, complete checkout for full access to Castopod Blog
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Success! Your billing info is updated.
Billing info update failed.

How to record a Podcast with remote guests on Linux

This article explains how to record a podcast on Linux with remote guests using Ubuntu, Ardour and Jack Audio Connection Kit.

Benjamin Bellamy
Benjamin Bellamy

We assume that you want to record your microphone(s) to your DAW (we'll use Ardour) as well as your remote guest(s) using a VoIP application (Skype, Zoom, Discord, Jitsi Meet, BigBlueButton, Nextcloud Talk…), and that you want your guests to hear you (of course) and any sound you'll be playing on your computer (VLC, Audacious, your Web browser or any other application…).

Note: If you never used Ardour, here is a very good video that will help you understand the basics: Ardour 6 Quickstart (recording, editing, mixing and exporting)

We will need the following:

Note: All this should work on other OS (all these software solutions are also available on both macOS and Windows) with some adaptations.

Jack server will go between your sound card and all your audio applications. It will create a virtual output PulseAudio JACK Sink and a virtual input PulseAudio JACK Source.
We send everything to PulseAudio JACK Sink and we get everything from PulseAudio JACK Source.
In a nutshell this is how it works:
jack-4

  1. Make sure QjackCtl and pulseaudio-module-jack are installed:
    $ sudo apt-get install qjackctl pulseaudio-module-jack

  2. Launch QjackCtl application (JACK Qt GUI Interface)
    QjackCtl-Stopped

  3. Click on the Setup button.
    QjackCtl-Setup-Settings
    Enable the Monitor checkbox to use loopback feature and allow your guests to hear your local audio player applications.
    Verify that input and output devices match your needs. If you do not know your sound card name, type cat /proc/asound/cards in a Terminal window:
    Terminal-cards
    (Your card name is between brackets.)

  4. Go to Options:
    QjackCtl-Setup-Options
    We will use this technique: “2. (Simple) Direct From Pulse to JACK”:

  • In Execute script after Startup type pacmd load-module module-jack-source channels=2; pacmd load-module module-jack-sink channels=2;
  • In Execute script after Shutdown type this: killall jackd
  1. If you want to avoid starting Jack every time you launch QjackCtl, just check Start JACK audio server on application startup:
    QjackCtl-Setup-Misc

  2. Start Jack Server. (Click on the top-left Start button.)
    QjackCtl-Started

  3. Now that Jack server is running, launch Ardour and create a new Recording Session:
    Ardour-06
    Change the Audio System from ALSA to JACK:
    Ardour-07
    Click on Connect to JACK:
    Ardour-08
    Note: If you were not asked this when launching Ardour, you may do it later by going to menu Window > Audio/MIDI Setup.

Add 2 (mono) tracks (if your soundcard has 2 microphones):
Ardour-09

Then add 1 Stereo track with menu Track > Add Track, Bus or VCA… (for recording sound from VoIP and applications):
Ardour-11

You should now see 3 tracks:
Ardour-10

  1. Now that Ardour is running, go back to QjackCtl and click on the Graph button.
    QjackCtl-Graph
    Check that the Workflow is correct:
  • capture_1 and capture_2 (microphones) are going into both:
    • PulseAudio JACK Source (so that your guest hears you),
    • Audio 1 and Audio 2 (so that Ardour records your microphone).
  • monitor_1 and monitor_2 (audio loopback from your audio applications) are going into both:
    • PulseAudio JACK Source (so that your guest hears your local application sounds)
    • Audio 3 (so that Ardour records your local application sounds).
  • PulseAudio JACK Sink goes into playback 1 and playback 2 so that you can hear every thing.
  • Ardour audio out go into playback 1 and playback 2 so that you can hear what Ardour has recorded when you have finished.

Note: Of course you may adapt this according to your needs.

  1. In Ubuntu Settings > Sounds, you may want to select PulseAudio JACK Sink as output and PulseAudio JACK Source as input so that all applications go through JACK:
    Ubuntu-Settings-Sound

  2. Check that your VoIP application is using JACK (they often do not use the default output):
    Zoom

  3. Start recording!
    Ardour-Recording

Note: In order to avoid echo and Larsen noise, mute the recording armed tracks:
Ardour-Record-Mute

Note: You should always start JACK server before Ardour, otherwise Ardour might take exclusive control on your sound card and JACK server will fail to start.

That's it, happy podcasting!


For the bolder: get the latest QjackCtl

Ubuntu 20.10 “Groovy Gorilla” comes with QjackCtl 0.5 (which was released in december 2017) but you may want to install the latest version (0.6.3 as of july 2020).

There is nothing complicated, just follow the next steps as you will have to compile it yourself.

Download and expand QjackCtl latest source code.

Install the required tools for compiling it:

$ sudo apt-get install build-essential qt5-default qttools5-dev-tools libjack-dev

Remove the old version:

$ sudo apt-get remove qjackctl

Note: the old version should be in /usr/bin/qjackctl whereas the new one will be in /usr/local/bin/qjackctl (unless you specify otherwise with ./configure [--prefix=prefix]).

Compile it:

$ cd ~/Downloads/qjackctl-0.6.3
$ ./configure
$ sudo make install

You may now run QjackCtl latest version!

Tips & Tricks

Benjamin Bellamy

Podcasts, e-commerce & open-source. Father of Castopod. CEO of Ad Aures.