The Festival Industrial Complex
The Portuguese festival, Waking Life, wrote an assay about what they call "The Festival Industrial Complex". It is full of great, inspirational and thought provoking points, making me reconsider how and when to participate in festivals and concerts.
I'm bringing a few quotes here, but it's all very good.
The betrayal of the values of the underground is both crude and sophisticated, a symbiosis of blatant brandolonisation and a sinister financial architecture. The landscape is no longer populated by independent promoters but by a Russian doll of corporate ownership: from your ticket, to the festival, to Superstruct, to private equity firms like KKR, designed to obscure origins. The capital funding your “carefree” weekend is often invested in the very industries that perpetuate the crises that festival culture ostensibly opposes.
(...)
This necessitates a radical redefinition of artistic “quality”, divorcing it from the slick, commodifiable sheen of the Industrial Complex and re-anchoring it in the depth of participatory, transformative experience. The question shifts from ‘How impressive is the spectacle?’ to ‘How profound is the participation?’
(...)
The trajectory of counterculture usually follows a predictable arc from insurrection to brand: a grim procession where every authentic gesture is inevitably processed into a product. The contemporary festival landscape is a graveyard of these sold-out revolutions, a corporate simulacrum where the original rave’s radical potential has been systematically financialized into a ghost of itself.
(...)
The Festival Industrial Complex is the enemy of music’s historical mission. It depoliticizes where music radicalizes. To reclaim the rave is to recognize that the dancefloor was always a rehearsal for the revolution. There is no neutral vibe; there is only solidarity or sliding further into complicity.
Via @rasmusfleischer
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
- This should produce a list of Pipewire clients, audio and video devices.
- Find your device and remember the number in front of it.
- In my case i have a Digiface USB and it had the number "54".
Next run the following command: wpctl inspect {ID} | grep "device.bus-id"
- Replace
{ID}with the number of your device. - Copy or note down the bus-id of the device.
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:
- Replace
{YOUR-BUS-ID}with the bus-id of your device. - Change the content of
audio.positionto reflect the output channels on your device. - In the example above,
FL(front left) andFR(front right) are actuallyAUX32andAUX33. Which is the headphone jack on the Digiface USB (Channels 33/34). This is where i want my audio to play from. - If you want to play your audio through Channel 5/6, you would replace
AUX4andAUX5, withFLandFR.
Save the file and restart PipeWire and WirePlumber services:
systemctl --user restart pipewire wireplumber
-
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.