systemDiscourse #2 – Windows Gets Nuked & Pipewire Transition

Categories: Blog, Linux/FOSS, systemDiscourse

Welcome to the second entry in systemDiscourse, a blog series where I’ll be checking in and discussing my recent escapades in the world of open source software, Linux gaming, and general nonsense I do with my main workstation!

First up for this week, is a moment I’ve been waiting for…

I. Windows Gets Nuked!

This week, I finally pulled the trigger. My system is no longer dual-booting. The spare SSD which once held a sloppily-maintained Windows 10 install is now an extra TB of space for my usage!

So, for context, I’ve been dual-booting for a while now. I’ve also wanted to get away from doing that for a while now as well. The only thing really holding me back were a few games. Namely Apex Legends, Phasmophobia, and Call of Duty: Modern Warfare (2019). Phasmophobia relies on Windows’ back-end for voice recognition, Apex Legends uses Easy Anti-Cheat, and MW 2019 just… doesn’t work at all! Lately, though, I’ve found less and less need to touch those games at all. The initial Phasmophobia hype has long since worn of for me personally, and I’m okay with running it through Proton and relying on my friends to communicate with ghosts via voice, if I do play again under Proton. CoD hasn’t been touched for a long while and it seems like my group has once again moved on from Apex.

I’ve found myself in a spot where my main SSD with my root & home directories have become more strapped for space, the 1TB mechanical drive I store some games on is just frustrating to use with slow load times, and there’s another 1TB SSD with a Windows install I haven’t touched in over 2 months. I decided to just… do it. Without booting in to check if there was anything useful on that drive, I just wiped the disk altogether and added it to my fstab config as another place for media and set up a Steam library folder there. Now I’m in the process of moving a few larger games over to it and installing new ones. Feels good to have more solid state space and I’m pretty happy that I’m at a point now where I don’t really feel like I’m missing out at all by not dual-booting. All the games I play solo work well enough natively or through Proton and I find myself feeling less and less of a desire to bother playing games that have anti-cheats that don’t work on Linux yet or otherwise don’t work under Proton. My current setup isn’t really capable in terms of doing GPU passthrough and doing Windows gaming in a virtual machine, but I realistically think the only Windows install I’ll have in the future is after a round of hardware upgrades and a proper VFIO setup for VM use.

Farewell M$, it was terrible knowing ya!

Seems like a fitting time to nuke that drive, all things considered, as next month will be the 2 year anniversary of installing Arch on my main drive and using it as my main OS for daily tasks.

II. Switching to Pipewire

Getting into professional level audio on Linux was a chore at first. I grew to love it, though, once I had a nicely functioning setup for Pulse + JACK going, and had a really cool setup with JACK <> PulseAudio sinks for recording videos. However, I’ve been eyeing Pipewire for a while, too. I would hear about it on podcasts and see it tested in videos, and the promises it held were, well, promising. For a while it didn’t seem production ready, though, and likely still isn’t for a lot of use cases. Seeing Fedora switching to use it by default sparked my interest again but I still didn’t make the leap when that happened. However, the other day Unfa, a great YouTube creator for audio production especially with FOSS software, uploaded a brand-new video where he installed Pipewire and tried it on the spot as a drop-in JACK+Pulse replacement. Check out the video here.

What I saw impressed me. He switched over with a brief moment of configuration testing and it just worked. Ardour worked, OBS worked, even using the Carla patch bay to route connections worked! It was so impressive that before bed I did the same to my install. I’m happy to say it was pretty much as seamless for me as it was for Unfa in that video. I will need to spend a little bit of time using the Pulse null sink module rather than the JACK sink module to get everything working the way it was before but overall it’s fantastic. Latency is fine, Ardour works great, and all of my apps are producing audio.

I think the best part about it, is that you can arbitrarily route audio streams and apps to entirely different sound cards flawlessly. This is possible with JACK but requires more tinkering than I could be bothered with at the moment. Using Pipewire for this setup is great, especially for referencing how the mix of a song sounds between different devices. Instead of restarting JACK or using my phone to play through other hardware, I can seamlessly switch output between my main interface, the speakers on my monitors, and the integrated soundcard on my motherboard through the routing grid. It is truly a thing of beauty! The main issue seems to just be working with some programs that expect JACK crashing. Carla on its own works fine as a patch bay / plugin host, but the main Cadence app and other tools will crash often. Overall it’s not too much of an issue as simply using Carla and the built-in capabilities that Pipewire enables is enough to make me happy. I’ll need to do more tinkering to see how far I can push this setup but as of now I am happy to just use Pipewire full time!

Well, that’s it for now. I’ll be sure to note if Pipewire breaks in any catastrophic way or if I find myself needing Windows for any reason by the time I write my next entry to this series. Until then, enjoy the rest of your day and try to do things the FOSS way!