detfalskested

Non-default output channels with PipeWire

I've had a Soundcraft Signature 12 MTK mixer for a while. It connects via USB as a class compliant audio interface, with each of the mixer channels available as a separate audio channel in the computer. And it works with Linux out of the box1.

MTK is short for "multi-track", which means the MTK models even allow you to send audio back from the computer to any of the channel strips on the mixer. That's extremely cool!

A downside of this, though, is that by default, audio from the computer is sent to channels 1+2. But those are two separate mono strips on the mixer and you would have to hard pan them and make sure their faders are set to the same level, in order to get a decent sounding result. And keeping the mono channels available for instruments or microphones is preferable, at least for my use case. It would be much better to send things to one of the stereo strips, e.g. 11+12, which is the last fader for channels.

I wasn't able to find a way change the default output channels in the audio/sound settings or even with pavucontrol. But searching the internets led me to a fairly recent solution from the RME User Forum, by no other than Sandroid (of Polyend Backstage fame).

In order to have this at hand in the future, I'm passing on the directions, slightly modified:

In a terminal run: wpctl status

Next run the following command: wpctl inspect {ID} | grep "device.bus-id"

Now create a configuration for WirePlumber. In my case i created a file in:

/etc/wireplumber/wireplumber.conf.d/10-map-stereo-channels.conf

with the following content:

monitor.alsa.rules = [
  {
    matches = [
      {
        node.name = "~alsa_output.{YOUR-BUS-ID}.*"
      }
    ]
    actions = {
      update-props = {
        audio.position = "AUX0,AUX1,AUX2,AUX3,AUX4,AUX5,AUX6,AUX7,AUX8,AUX9,AUX10,AUX11,AUX12,AUX13,AUX14,AUX15,AUX16,AUX17,AUX18,AUX19,AUX20,AUX21,AUX22,AUX23,AUX24,AUX25,AUX26,AUX27,AUX28,AUX29,AUX30,AUX31,FL,FR"
      }
    }
  }
]

You have to change two things here:

Save the file and restart PipeWire and WirePlumber services:

systemctl --user restart pipewire wireplumber

  1. It actually works more out of the box with Linux than with Windows, as you need to install some proprietary software in order to make it fully work in Windows. 

Setting up Delta Chat

I have been following the Delta Chat project from the sideline for a while now. The idea is cool and rather simple: Build an end-to-end encrypted chat app on top of existing, proven technologies: E-mail protocols and PGP encryption.

It works with a regular e-mail account, which I find extremely cool. But they also developed a specialised "chatmail relay", which acts as a mailserver fine tuned for the purpose.

While I'm already a daily user of and proponent of Signal, I think Delta Chat is interesting as a decentralised alternative.

Today I tried setting up a relay, following their instructions. As I already have a mailserver running on my home IP address, I decided to spin up the cheapest VPS option from Hetzner and run it from there. Unfortunately, I hit a few bumps along the way. But I managed to get it running.

And I must say that my initial impression is good! It seems like a solid – although slightly less polished – alternative to Signal. I also tried using a regular e-mail account for it, and even then messages are just flowing across servers, almost instantly.

Now my only problem is the classic with new technology: Where are the other cool kids using this? Say hi!

Somebody has to have good taste

Adam Sjøgren shares his thoughts about code review in the era of AI:

I don't learn anything about why they made those "wrong" choices, and they don't learn why they should have done differently in the first place. And if my suggestion was bad, for some reason or another, my feedback doesn't get challenged and, perhaps, rejected. Sometimes a third solution might have emerged from our discussion.

Supporting the Python Software Foundation

More than 15 years ago, a colleague introduced me to the web framework Django (back then it was version 0.96) and the programming language Python. And I immediately fell in love with both. Some years later, Django stuff became the thing I do and am good at to the extend that I'm able to make a decent living from it.

But that's not the only thing I got from it. I came for the framework but stayed for the community around it. And for almost a decade, I have been donating money monthly to the Django Software Foundation.

With what has recently been going on in the Ruby and (especially) Rails communities, I've been thinking about how lucky I am to have ended up with Django, Python and the lovely people around it. I feel sorry for all the good people with decent values, for whom Ruby on Rails skills became their way of making a living, that increasingly see themselves alienated by leading figures in their community.

Yesterday, the Python Software Foundation announced their withdrawal of a USD 1.5 million funding proposal, as complying with the funding terms would compromise the values and mission of PSF. That's a tough call. But the right thing to do.

In a response to that, I've just signed up to be a PSF Supporting Member, which is mostly just a way to send some money their way. If you care about Python, the PSF and/or their values, you might want to consider doing the same.

My profile picture around the interwebs for the last 11 years has been of me wearing a Python t-shirt. Today I'm prouder than ever of this.

A torso photo of me talking, while wearing a Python t-shirt

Guido van Rossum on AI

I love how generally unimpressed Guido van Rossum – the creator of the Python programming language – is with the whole AI hype in this interview, despite the value-laden questions.

But these quotes stood out to me:

I am definitely not looking forward to an AI-driven future. I’m not worried about AI wanting to kill us all, but I see too many people without ethics or morals getting enabled to do much more damage to society with less effort. The roots for that abuse have been laid by social media, though — another major computer paradigm shift that changed society but didn’t really affect the nature of software.

And:

I hope that Python’s legacy will reflect its spirit of grassroots and worldwide collaboration based on equity and respect rather than power and money, and of enabling “the little guy” to code up dream projects.

But also:

So I worry that Python’s getting too corporate, because the big corporate users can pay for new features only they need (to be clear, they don’t give us money to implement their features, but they give us developers, which comes down to the same thing).