Join Nostr
2026-09-22 04:40:49 UTC

Chris Trottier on Nostr: So why did I spend all day trying to turn my Linux PC into a tube amp? Because I’ve ...

So why did I spend all day trying to turn my Linux PC into a tube amp?

Because I’ve got a huge library of digital music sitting on this computer. Thousands of songs I’ve collected over 26 years.

And I’ve always wished those files had a little more analog warmth. Not necessarily vinyl or cassette. Just something warmer.

A tube amp is one of the easiest ways to get there.

Problem is, I don’t want everything warm all the time. I like my Onkyo TX-8020 solid-state receiver, and I sure as hell don’t want to start swapping receivers every time I want to add or remove that colour.

I thought about adding a tube preamp. Then I looked at my power bar. It's FULL.

And the electrical socket can only take so much.

But god damn it, I have Linux. Linux can do anything. If it can emulate guitar pedals, then it can emulate a tube amp.

So I spent 5 hours trying, failing and trying again.

And finally, I got the damn thing working.

Now my entire digital music library can have that analog warmth whenever I want.

And it sounds AMAZING.
I DID IT!

I turned my Linux desktop into a tube amp.

Well, not literally. I *emulated* a tube amp in software, then routed the whole thing through an external DAC and into my receiver.

I started with EasyEffects and Calf Exciter, but that was the wrong tool for what I wanted. The Exciter only works on the upper part of the frequency range. I wanted the whole signal going through something more like a tube stage.

So I installed Carla and loaded Calf Saturator.

Carla is basically the host, and Calf Saturator does the dirty work.

Inside Calf Saturator, I kept the effect fairly subtle. Input Gain stayed at 0 dB. Blend moved toward Tube. Mix stayed at 100% Wet. Pre and post filters went off. Tone controls stayed neutral.

For Saturation, I started around 2.5 instead of the default 5.

This is because I wanted colouration, not obvious distortion.

Then came the next problem: getting Strawberry Player through the plugin.

Strawberry wasn’t showing up in Carla’s routing view, so I switched Carla to JACK and used qpwgraph to handle the actual PipeWire routing.

With music playing, qpwgraph showed Strawberry connected directly to my FX-AUDIO DAC.

So I disconnected those direct connections.

Then I routed it like this:

```text
Strawberry output_FL
→ Calf Saturator in L
→ Calf Saturator Out L
→ FX-AUDIO playback_FL

Strawberry output_FR
→ Calf Saturator in R
→ Calf Saturator Out R
→ FX-AUDIO playback_FR
```

So my final setup is:

**Strawberry → qpwgraph/PipeWire → Carla → Calf Saturator → FX-AUDIO DAC**

Carla hosts Calf Saturator.

qpwgraph handles the routing.

Calf Saturator adds the tube-style harmonic coloration.

Once everything was connected, I could open the Calf Saturator GUI and hit Bypass to compare the processed sound with the original.

So why bother doing any of this?

Because I already have a receiver. A good one. I don’t want to buy another piece of gear just to stick it physically between my DAC and my receiver.

And apparently, I don’t have to.

If I can emulate the gear in software, why buy the damn box?

And it WORKS.