<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" >

  <title>Erik L. Arneson — Writer and Software Developer</title>
  <subtitle>Erik L. Arneson is a freelance writer and software developer with WordPress experience. He is located in Portland, Oregon.</subtitle>
  <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator>
  <link href="https://arnesonium.com/feeds/linux.xml" rel="self" type="application/atom+xml" />
  <link href="https://arnesonium.com/" rel="alternate" type="text/html" />
  <updated>2026-06-18T15:03:10+00:00</updated>
  <id>https://arnesonium.com/feeds/linux.xml</id>
  <author>
    <name>Erik L. Arneson</name>
  </author>
      <entry>
        
        <title>Installing Emacs 29.1 on Ubuntu 22.04 LTS</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2023/07/emacs-29-1-on-ubuntu-22-04-lts" rel="alternate" type="text/html" title="Installing Emacs 29.1 on Ubuntu 22.04 LTS" />
        <updated>2023-07-31T00:00:00+00:00</updated>
        <id>https://arnesonium.com/2023/07/emacs-291-ubuntu-2204LTS</id>
          <category term="emacs" />
        
          <category term="linux" />
        
          <category term="ubuntu" />
        
          <category term="howto" />
        <content type="html" xml:base="https://arnesonium.com/2023/07/emacs-29-1-on-ubuntu-22-04-lts">&lt;p&gt;You have probably heard by now, but &lt;a href=&quot;https://emacsredux.com/blog/2023/07/30/emacs-29-1-released/&quot;&gt;Emacs 29.1 has been released&lt;/a&gt;! Here are some reasons to upgrade and how to do so right away if you are running Ubuntu 22.04 LTS.
&lt;!--more--&gt;&lt;/p&gt;

&lt;h2 id=&quot;whats-new-with-emacs&quot;&gt;What’s New with Emacs?&lt;/h2&gt;

&lt;p&gt;One of the most exciting new features for me is &lt;a href=&quot;https://tree-sitter.github.io/tree-sitter/&quot;&gt;TreeSitter support&lt;/a&gt;, which provides incremental parsing capabilities for programming languages and other formatted files. This means that programming support will be getting faster, more comprehensive, and even better in future Emacs packages.&lt;/p&gt;

&lt;p&gt;Other new features include native WebP image support, pure GTK support, and the ability to use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;emacs -x&lt;/code&gt; in the first line of a script, which could lead to some fun applications of Emacs Lisp. &lt;a href=&quot;https://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=emacs-29&quot;&gt;Read all of the release notes here!&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;installing-on-ubuntu-2204-lts&quot;&gt;Installing on Ubuntu 22.04 LTS&lt;/h2&gt;

&lt;p&gt;I am too impatient to wait for somebody to release a packaged version, so I installed Emacs 29.1 from source. It is fairly straightforward, though you will need to do a couple of special things to get all of the features you want.&lt;/p&gt;

&lt;h3 id=&quot;installing-the-requirements&quot;&gt;Installing the Requirements&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Note: All of the commands in this post assume you are using bash.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most of the extra libraries and packages you will need to build Emacs 29.1 are covered in the build dependencies for the stock Emacs package. However, to take advantage of some of the cool extra features now included in Emacs, you’ll need to install a few more things.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt build-dep emacs
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;libgccjit0 libgccjit-10-dev libjansson4 libjansson-dev &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
    gnutls-bin libtree-sitter-dev gcc-10 imagemagick libmagick++-dev &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
    libwebp-dev webp libxft-dev libxft2
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;preparing-to-build&quot;&gt;Preparing to Build&lt;/h3&gt;

&lt;p&gt;In order to get native compilation (a feature added in Emacs 28) working correctly, you will need to make sure your shell instructs the build system to use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gcc-10&lt;/code&gt;.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;CC&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/usr/bin/gcc-10
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;CXX&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/usr/bin/gcc-10
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;get-the-source-code-and-lets-compile&quot;&gt;Get the Source Code and Let’s Compile!&lt;/h3&gt;

&lt;p&gt;Download the Emacs 29.1 source code from &lt;a href=&quot;http://ftpmirror.gnu.org/emacs/&quot;&gt;a nearby GNU mirror&lt;/a&gt; and then extract it! Then follow the instructions below. Note that you might want to take a closer look at the options to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;./configure&lt;/code&gt;. If you want native compilation, but don’t want to use the “ahead of time” option because it’s slow, you can remove the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;=aot&lt;/code&gt;. You might also want to stick Emacs in a different location using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--prefix&lt;/code&gt; option. For example, I used &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--prefix=/opt/emacs29&lt;/code&gt;.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;emacs-29.1
./autogen.sh
./configure &lt;span class=&quot;nt&quot;&gt;--with-native-compilation&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;aot &lt;span class=&quot;nt&quot;&gt;--with-imagemagick&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--with-json&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;--with-tree-sitter&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--with-xft&lt;/span&gt;
make &lt;span class=&quot;nt&quot;&gt;-j&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;nproc&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The build might take a while. With the “ahead of time” compilation, I think my build took ten or fifteen minutes. But once it is complete, try running your new Emacs binary to make sure it works.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;./src/emacs &lt;span class=&quot;nt&quot;&gt;-Q&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If it works, install it!&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;make &lt;span class=&quot;nb&quot;&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;whats-next&quot;&gt;What’s Next&lt;/h2&gt;

&lt;p&gt;You’ve got Emacs 29.1 installed and running! This is exciting. Which new features do you want to try first?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.masteringemacs.org/article/how-to-get-started-tree-sitter&quot;&gt;Get started with tree-sitter!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;M-x eglot&lt;/code&gt; and see how cool language servers can be!&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.masteringemacs.org/article/whats-new-in-emacs-29-1&quot;&gt;Read about other new features in Emacs 29.1!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope this article was helpful, and that you are enjoying the latest version of Emacs! I used it to write this blog post, so you know I am.&lt;/p&gt;</content>
      </entry>
    
      <entry>
        
        <title>Typing Chinuk Wawa in Emacs</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2021/10/typing-chinuk-wawa-in-emacs/" rel="alternate" type="text/html" title="Typing Chinuk Wawa in Emacs" />
        <updated>2021-10-11T17:01:00+00:00</updated>
        <id>https://arnesonium.com/2021/10/typing-chinuk-wawa-in-emacs</id>
          <category term="chinuk-wawa" />
        
          <category term="emacs" />
        
          <category term="input-methods" />
        
          <category term="keyboard" />
        
          <category term="languages" />
        
          <category term="learning" />
        
          <category term="linux" />
        
          <category term="lisp" />
        
          <category term="emacs" />
        
          <category term="dvorak" />
        <content type="html" xml:base="https://arnesonium.com/2021/10/typing-chinuk-wawa-in-emacs/">&lt;p&gt;Back in 2015, I took a course in being an ally for local Native American communities from the
&lt;a href=&quot;https://www.pugspdx.com/&quot;&gt;Portland Underground Grad School (PUGS)&lt;/a&gt;. One suggested action was
learning the local language, but it proved difficult to find opportunities. When the pandemic forced
school closures, though, Lane Community College began offering classes online. I found out about
this thanks to the &lt;a href=&quot;https://kaltashwawa.ca/2021/09/07/non-credit-enrollment-is-open-for-chinuk-wawa-classes-at-lane-community-college/&quot;&gt;Kaltash Wawa blog&lt;/a&gt;, and this fall I signed up to take a remote &lt;a href=&quot;https://www.lanecc.edu/llc/language/chinuk-wawa&quot;&gt;Chinuk
Wawa class through Lane Community College&lt;/a&gt;.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;what-is-chinuk-wawa&quot;&gt;What is Chinuk Wawa?&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Chinook_Jargon&quot;&gt;Chinuk Wawa&lt;/a&gt; originated as a type of creole or pidgin trade language in the Pacific Northwest,
incorporating loan words from more than a dozen indigenous and European languages. Though it has a
small lexicon, it is an interesting language with an impressive array of new phonemes for me to
learn. There are 12 different variations on “k”, for instance! As you can imagine, with this
variety, it is pretty difficult to type Chinuk Wawa using the standard Latin alphabet. I am learning
the &lt;a href=&quot;https://www.grandronde.org/services/education/chinuk-wawa-education-program/&quot;&gt;Grand Ronde dialect&lt;/a&gt;, which uses an IPA-based alphabet.&lt;/p&gt;

&lt;h2 id=&quot;keyman-for-linux&quot;&gt;Keyman for Linux&lt;/h2&gt;

&lt;p&gt;Under Linux, the easiest way to add an IPA-based input method is using the &lt;a href=&quot;https://keyman.com/keyboards/sil_ipa&quot;&gt;IPA (SIL) keyboard for
Keyman&lt;/a&gt;. This integrates nicely under GNOME 3 with Ubuntu 20.04. However, I’m a Dvorak typist,
so having to switch back to a QWERTY-style keyboard is frustrating, and was slowing me
down. Instead, I came up with this method for inputing Chinuk Wawa compatible IPA using Emacs.&lt;/p&gt;

&lt;h2 id=&quot;emacs-input-methods&quot;&gt;Emacs Input Methods&lt;/h2&gt;

&lt;p&gt;Emacs has an easy method for switching between input methods, which you can &lt;a href=&quot;https://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Input-Method.html&quot;&gt;read more about
in the Emacs manual&lt;/a&gt;. It comes with a number of IPA input methods, and after taking a look at all
of them, I chose &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ipa-x-sampa&lt;/code&gt;, as it seemed to have the best coverage of symbols needed by
Chinuk Wawa. However, it was missing a way to input the character “x̣”, which was
needed by one of the first words I learned, “yax̣al”!&lt;/p&gt;

&lt;p&gt;I added the following code to my startup file to remedy this. This adds the ability to type &lt;strong&gt;x_.&lt;/strong&gt;
to get &lt;strong&gt;x̣&lt;/strong&gt; and &lt;strong&gt;?/&lt;/strong&gt; to get &lt;strong&gt;?&lt;/strong&gt;, both of which make typing Chinuk Wawa &lt;em&gt;much&lt;/em&gt; easier for me.&lt;/p&gt;

&lt;div class=&quot;language-elisp highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;defun&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;chinuk-wawa-quail-rules&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
  &lt;span class=&quot;s&quot;&gt;&quot;Add Chinuk Wawa rules to the `ipa-x-sampa` input map.&quot;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;interactive&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;string-equal&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;ipa-x-sampa&quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;quail-name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;quail-define-rules&lt;/span&gt;
       &lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;append&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
       &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;_.&quot;&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;#x0323&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;   &lt;span class=&quot;c1&quot;&gt;;; allows for x with dot beneath&lt;/span&gt;
       &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;?/&quot;&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;?&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;     &lt;span class=&quot;c1&quot;&gt;;; allows for ? character &lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;

&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;add-hook&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;&apos;quail-activate-hook&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;&apos;chinuk-wawa-quail-rules&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;As you can see, this method allows plenty of additional characters to be added to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ipa-x-sampa&lt;/code&gt;,
so if it turns out I missed anything, I can expand on it later.&lt;/p&gt;

&lt;p&gt;The biggest downside of this is that I can only input Chinuk Wawa easily in Emacs, but since I do
most of my work there—including writing this blog post—it doesn’t feel that bad to me. It’s
definitely better than typing QWERTY!&lt;/p&gt;

&lt;p&gt;aɬqi!&lt;/p&gt;</content>
      </entry>
    
      <entry>
        
        <title>Recording Podcasts in Linux</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2018/04/recording-podcasts-in-linux/" rel="alternate" type="text/html" title="Recording Podcasts in Linux" />
        <updated>2018-04-01T23:23:02+00:00</updated>
        <id>https://arnesonium.com/2018/04/recording-podcasts-in-linux</id>
          <category term="alsa" />
        
          <category term="audio" />
        
          <category term="ecasound" />
        
          <category term="linux" />
        
          <category term="pulseaudio" />
        
          <category term="tutorial" />
        
          <category term="ubuntu" />
        <content type="html" xml:base="https://arnesonium.com/2018/04/recording-podcasts-in-linux/">&lt;p&gt;I co-host a podcast called &lt;a href=&quot;https://myalchemicalbromance.com/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;My Alchemical Bromance&lt;/a&gt;, and one of the frequent challenges I end up facing is how to record video and voice chats for interviews. A lot of podcasters use external hardware devices, such as the &lt;a href=&quot;https://amzn.to/2Gt0iOc&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Focusrite Scarlett 2i4&lt;/a&gt;, which is a great solution. But I wanted to do it all in software—and in Linux.
&lt;!--more--&gt;&lt;/p&gt;

&lt;h2 id=&quot;my-configuration&quot;&gt;My Configuration&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://amzn.to/2GJJBgt&quot;&gt;&lt;img src=&quot;https://arnesonium.com/wp-content/uploads/2018/04/Blue-Snowball-USB-246x300.png#right&quot; alt=&quot;Blue Snowball USB microphone&quot; width=&quot;246&quot; height=&quot;300&quot; class=&quot;size-medium wp-image-797&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this setup, you need headphones, a microphone, and an Internet connection. I use a &lt;a href=&quot;https://amzn.to/2H4C8Gs&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Blue Snowball USB microphone&lt;/a&gt;, which is affordable, sturdy, and great quality for just recording a podcast.&lt;/p&gt;

&lt;h2 id=&quot;pulseaudio-and-alsa&quot;&gt;PulseAudio and ALSA&lt;/h2&gt;

&lt;p&gt;Anybody who’s played with audio stuff in Linux knows that it’s a total mess. I’m not going to try to explain it all in detail because I’ll get it wrong, and even this section I’m &lt;em&gt;probably&lt;/em&gt; going to get wrong. Feel free to correct me loudly in the comments. There are two very common audio interfaces that we have to deal with. First is ALSA, which is the Advanced Linux Sound Architecture and is the hardware driver layer of the audio system. Next is PulseAudio, which is a sound server that abstracts the hardware layer.&lt;/p&gt;

&lt;h3 id=&quot;pulseaudio-configuration&quot;&gt;PulseAudio Configuration&lt;/h3&gt;

&lt;p&gt;We need two pieces of information from PulseAudio: the system sound monitor, and the microphone monitor. Run the following command:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pactl list | &lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-A2&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;Source #&apos;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You should get output that looks like this:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Source #0
	State: IDLE
	Name: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
--
Source #1
	State: SUSPENDED
	Name: alsa_input.pci-0000_00_1b.0.analog-stereo
--
Source #9
	State: SUSPENDED
	Name: alsa_input.usb-BLUE_MICROPHONE_Blue_Snowball_201305-00.analog-mono
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The bits you’re interested in are the “Name” for the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;analog-stereo.monitor&lt;/code&gt; entry and the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;analog-mono&lt;/code&gt; entry. In my example, you will find them on lines 3 and 11. Save those for the next step.&lt;/p&gt;

&lt;h3 id=&quot;alsa-configuration&quot;&gt;ALSA Configuration&lt;/h3&gt;

&lt;p&gt;Because we’re going to use an ALSA-compatible tool for recording, we need to configure ALSA to talk to PulseAudio (which then talks to ALSA again on the backend – like I said, audio is confusing in Linux and I’m sorry that either of us has to spend any time thinking about it). You will want to open &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$HOME/.asoundrc&lt;/code&gt; and add the following entries.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Creating a system sound monitor
pcm.pulse_monitor {
  type pulse
  device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
}

ctl.pulse_monitor {
  type pulse
  device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
}

# Creating an ALSA interface for the USB microphone
pcm.pulse_usbmic {
  type pulse
  device alsa_input.usb-BLUE_MICROPHONE_Blue_Snowball_201305-00.analog-mono
}

ctl.pulse_usbmic {
  type pulse
  device alsa_input.usb-BLUE_MICROPHONE_Blue_Snowball_201305-00.analog-mono
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You will see that on lines 4 and 9, I used the name of the system monitor PulseAudio device from the previous step. Likewise, on lines 15 and 20, I used the name for the USB microphone device.&lt;/p&gt;

&lt;h2 id=&quot;actually-recording-things&quot;&gt;Actually Recording Things&lt;/h2&gt;

&lt;p&gt;I won’t strongly recommend any particular voice or video chat software in Linux over another. There are a few good ones I’ve used, such as Google Hangouts and Zoom. I’ve used Google Voice to record phone calls, too. Skype has been problematic for me, with lots of drop-outs and weird volume issues, but that could just be my setup. You will need to experiment and find out which works best for you.&lt;/p&gt;

&lt;p&gt;We will use &lt;a href=&quot;http://www.eca.cx/ecasound/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Ecasound&lt;/a&gt; to record to hard disk. To install Ecasound in Ubuntu (and probably Debian), run this command:&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;ecasound ecatools
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;To start recording, run this command:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ecasound &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
         &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt;:16,1,44100 &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt;:1 &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; alsa,pulse_usbmic &lt;span class=&quot;nt&quot;&gt;-o&lt;/span&gt; ecatrack1.wav &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
         &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt;:16,2,44100 &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt;:2 &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; alsa,pulse_monitor &lt;span class=&quot;nt&quot;&gt;-o&lt;/span&gt; ecatrack2.wav
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;At the “ecasound” prompt, type “start” to begin recording. When you are done, type “stop” and then “quit”. Your microphone audio will be in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ecatrack1.wav&lt;/code&gt; and your computer system audio will be in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ecatrack2.wav&lt;/code&gt;.&lt;/p&gt;

&lt;h2 id=&quot;timing-problems&quot;&gt;Timing Problems&lt;/h2&gt;

&lt;p&gt;This setup essentially uses two different hardware devices to record audio, so it will have one glaring problem: no two hardware timing clocks are the same. Both are sampling at 44.1kHz, but the crystals used to do the timing will never &lt;em&gt;exactly&lt;/em&gt; be at 41,000 samples per second. The variation compounds over time, so for long recordings you will notice unusual lag. This is probably why so many podcasters go for an external hardware solution. But if all you’ve got is a USB microphone and the truth, a software solution will have to do for now.&lt;/p&gt;

&lt;h2 id=&quot;good-luck&quot;&gt;Good Luck!&lt;/h2&gt;

&lt;p&gt;I hope this helps you do better, smarter podcasting. Podcasting in Linux is tricky. There aren’t a lot of good tutorials out there, so you’ll still have to figure a lot out on your own. If you have tips or tutorials that helped you out, please include them in the comments below! I certainly need them.&lt;/p&gt;</content>
      </entry>
    
</feed>
