Audio manipulation with LADISH and Carla

I’ve written about JACK before but only covered the basics of setting it up with the Cadence Toolbox and using the patchbay to route audio, but JACK is capable of much more. Namely using plugins to manipulate audio.

For this you need LADISH (Linux Audio Desktop Integration Session Handler, yes that’s a mouthful) Claudia and Carla, which are both part of the Cadence Toolbox. On ArchLinux you just need to install the pro-audio package via sudo pacman -S pro-audio this should install all dependencies and even a bunch of VST plugins.

After that just open Claudia from Cadence:

And now you’re ready to go. Claudia manages your session in studios, which are basically just project files. Each studio can contain multiple rooms, which are containers for audio applications. A room has an audio input and an audio output, depending on what room preset you use you can get more or less audio inputs/outputs.

Each studio has one base room in which your main audio handling takes place, here’s my current setup:

“Hardware Playback” is the output of my soundcard and Hardware Capture is, you guessed it, my soundcard input aka microphone. PulseAudio JACK Sink and PulseAudio JACK Source is a bridge which connects this audio setup with all applications which need PulseAudio (Like my webbrowser or TeamSpeak). If a program supports JACK it’ll show up in this graph, like MPD which is my music player. This also means I can connect MPD to PulseAudio JACK Source, which would allow me to annoy anyone who is in a voice channel with me with music.

The more interesting parts are “Mic” and “Zoom”. These two are separate rooms as you can see on the left. The room called “Mic” processes my raw microphone input and applies filters to it. The room itself doesn’t look very interesting because it just hands over the audio to Carla, which handles the actual filters:

As you can see the room contains one application indicated by the “[L1] Carla” label. Now in Carla I have my virtual rack which contains the plugins:

Carla is set to the Patchbay mode (Settings > Configure Carla > Engine > Process mode), which means that the audio is intially handed to the top most plugin, which hands its output to the one below it and so on, until it reaches the bottom, which in turn gives it back to the output, which you saw in the previous screenshot.

The filter setup is the usual stuff you need to make an eight dollar microphone sound decent. At the top is a simple background noise removal filter, then an audio gate to only output audio when I’m talking, then a gain since my microphone is fairly quiet, then some useless filters which I have turned off by default and at the end a compressor to make sure loud audio isn’t too loud. If you were wondering what the other room called “Zoom” is for, it only contains a compressor. Since I can route any audio through these plugins I use this to route the audio from Zoom through the compressor. One of my professors has an issue with his microphone where it randomly turns into a bass boosted earrape, which was funny the first time but also almost made me fall off my chair. So I set this up specifically for this for the sake of my own sanity.

And that’s basically all there’s to it. It seems a bit complicated at first, but all you really need is Cadence and Claudio once you’ve done your configuration because Claudia will load everything automatically when you load the studio project and select the rooms you want.

Route VirtualBox VM traffic through tor

I’ve been trying to get this to work for a while and my attempts where centered around creating a virtual network interface which routes it’s traffic through tor, but since that didn’t work out I had to switch to Whonix , which isn’t as good since it requires you to run a second VM, but at least it works.

All you have to do is download the *.ova file for VirtualBox run it and then configure your other VM to use it.

So first get the Whonix VM here, then import it in VirtualBox under File > Import Appliance…, you can leave all the configuration as default, I just changed the processor count from 4 to 1. Next up start the VM login (default user and password are user and changeme), change the password with the passwd command, then update it with sudo apt update && sudo apt upgrade.

Now configure your actual VM to use the Whonix network adapter:

Then run it and for windows change the network adapter settings to:

That’s it, finally check if it worked by visiting check.torproject.org and you should see “Congratulations. This browser is configured to use Tor”.

Proper dark theme on Windows 10

Even though I’ve been using Arch linux on both my laptop and desktop almost exclusively I still need Windows from time to time to test and compile my projects. I’ve been using Windows 7 for that, but now that the support ended I thought it’d be a good time to give 10 a try again.

Microsoft added a dark theme a while back, but since it’s no secret that whoever is responsible for the UI design for Windows is not exactly on top of their game, the dark theme is subpar in my opinion (it’s better than nothing, though). I liked Windows 7’s aero design and Windows XPs Luna theme. No matter what you think about them, they were at least consistent unlike Windows 10, which uses over five different context menu styles, because apparently sticking to one style is dumb.

So I don’t use the integrated dark mode, but rather make use of user made themes (who also came up with some really good mock-ups that whoever is in charge of UI at Microsoft should take a good long look at). For my current setup I use a combination of different things:

These things are fairly straightforward to install, so I’m not going to go into any more detail, just be warned that you’re doing this at your own risk. The final result should look something like this:

Which is (in my opinion) a lot better than what Microsoft came up with. There’s one issue with this though. Every time you lock your screen and unlock it again the theme messes up a little bit. To fix this I used the windows task scheduling system (for the first time ever), which allows you to automatically execute tasks at specific points in time. Here’s what I did:

  1. Open the Task scheduler (duh)
  2. Click “Create Task…” on the right
  3. Give it a name
  4. Switch to the “Triggers” tab
  5. Click “New…”
  6. Switch “Begin the task:” to “On workstation unlock”
  7. Click “OK”
  8. Switch to the “Actions” tab
  9. Click “New…”
  10. Click “Browse…” under “Program/script:”
  11. Select the theme. Here it’s important if you want to just use an existing theme or use your own configuration. Your own custom theme configurations are saved under ”

    %LocalAppData%\Microsoft\Windows\Themes”

  12. Click “OK”

And that’s all there is to it, every time you unlock your computer the Theme will be refreshed to make sure it looks like it’s supposed to. While this is more work than using the builtin dark mode it’s quite a bit better in my opinion.

JACK & Creative X-Fi

Something that’s really cool about GNU/Linux is that almost any part of the operating system can be switched out with an alternative. Most users who have not used the OS for very long usually do not want that or don’t know about that.

When I first used Ubuntu as my sole operating system I also had no idea that most of what you look at on a day to day basis is just a couple of packages that can be switched out for dozens of alternatives. So I eventually found out what window managers, compositors, display managers and desktop environments are.

I eventually also had to deal with the issue of audio. Nowadays there’s not much to say about it. If you don’t care you use Pulseaudio, if you’re picky you only use ALSA and if you’re into audio production you use JACK. I recently switched to the later, because I have a dedicated sound card that I wanted to put to some good use.

The last time I looked at JACK I immediately stopped because it seemed way too much effort to get to work compared to the simplicity of Pulseaudio, which basically works on its own. This time I went with Cadence which makes configuring JACK a lot easier. It’s available in the AUR and gets you up and running with JACK fairly easily.

Cadence running on Arch

The first thing you need to to when trying to use JACK and the Creative X-Fi card (in my case it’s the Xtreme Music) is to properly configure the device. This is what the “Driver” tab of the JACK Settings dialog looks like for me in Cadence:

With all that setup, you can now use JACK as your main audio interface. If you want you can enable the Pulseaudio bridge, which will make sure that all applications that only support Pulse, will properly be bridged to JACK.

Now that JACK is running you can enjoy the advantages of Catia, which is a Patchbay shipped with Cadence or if you want experiment with Claudia, which is a frontend for LADISH, but I haven’t used that.

With the Patchbay I can now decide which audio goes where, for example when using OBS Studio I only use JACK input clients, which allow me to route Music played by MPD to be directly routed to OBS, so I can play music on stream without having to record my desktop audio. The music also goes directly to my system audio, which is my headphones. A setup like this would be a lot more cumbersome on Windows, as it would require something like VoiceMeeter.

If you want MPD to output to JACK you’ll need to create a new audio output in your mpd config:

audio_output { 
 type "jack" 
 name "jack" 
 mixer_type "software" 
 client_name "mpd" 
 server_name "default" 
 source_ports "out_1,out_2" 
 autostart "yes" 
}

This will make MPD open a new JACK client named “mpd” with two output ports. Sadly not all programs support JACK, which means that they’ll still run over either ALSA or Pulse. If they use ALSA, they’ll show up as individual clients in the Patchbay, but if they use Pulse you can’t really configure them in the patchbay, if you still want that kind of control you will have to create multiple Pulseaudio bridges, one for each Pulse application that you want to manage:

pactl load-module module-jack-source client_name=discord_mic connect=no

This command will create a new microphone source called “discord_mic”, which allows me to selected it as a microphone in discord, which means that I have a separate device just for VoIP. You could do the same for sound with

pactl load-module module-jack-sink client_name=pulse_sink_2 connect=yes

this would allow you to route all sound that gets output to “pulse_sink_2” only to your headphones, so that for example recording software will not pick it up, because it will only record your default pulse sink.

All of this obviously doesn’t come for free, the more complex the audio setup becomes the more latency you’ll get. For most people that isn’t really a problem because they don’t need real time audio processing, but if you have a face cam or use a DAW even a smalledelay will get annoying really fast.

RSS Feeds

This has been on my mind for a while, but I just thought I’d actually write about it before I forget it again. I’ve known about RSS feeds for quite some time but never bothered to look into them and as it turns out I should’ve.

RSS, short for Rich Site Summary, is a nice way of getting all kinds of news from across the web in one place. The best thing about it is that how you view it is entirely up to you. All you need is a program to organize it. I originally used Thunderbird, which allowed me to combine RSS and email into one program, but the amount of news I got made it run sluggish so I switched to RSS Guard because it’s faster and more configurable.

No matter what client you want to use you’ll almost certainly receive the news very similar to email:

The more important thing though is, that you can get feeds from pages you might not expect to. For example I use a feed for my YouTube subscriptions, that way I’m not even logged into google anymore since all I needed from that account was a subscription box. You can export your subscriptions into a RSS feed over here. Also you can use this site to find feeds for pages which don’t seem to offer any obvious way to obtain the feed link. Usually their marked with the RSS logo, but sometimes the feed isn’t easily accessible.

That’s basically it, you can import and export your feeds to back them up and if you want to go through the trouble you can also sync your feed, so that if you have multiple devices you wont get the same news marked as unread twice.

The ‘E’ is for Exclusive

exclusivegames.png

I haven’t written anything in a while so I thought I’d just put this down and since bitcoin (and with that steem dollars) crashed, I don’t really see a point in posting this on steemit.

Recently Fortnite Inc. has started their own online game store. Now since Steam has basically been the go-to when it comes to digital publishing. It seems good to finally have some competition, or does it? What about Uplay, Origin, Discord, Battle.net and GoG? Why is another store (and/or client) suddenly a good thing?

They say that they take a lower cut (12% vs the 30% that steam takes), which is obviously quite a difference. If a game is sold for 30$ that’s 3.6$ vs 9$, so that’s immediately a good thing isn’t it? Uplay, Origin etc. don’t really offer the opportunity for third parties (as far as I know) to sell their games, so they don’t have the same use case as Steam or the Exclusive Games Launcher, which leaves us with Epic Store, GoG, Steam and third party online stores (Green Man Gaming, Humble Store etc.), which essentially just resell Steam keys and sometimes DRM free direct downloads.

Ever since Steam was used as an update client for Valve’s games it grew into the one stop client for buying games, managing communities and friends, sharing mods and custom content, managing and listening to music and OSTs (yes that’s actually a thing) and having access to all of that while in-game. This obviously didn’t happen over night. Valve had a lot of users on their side because of their exceptional catalog of games and could build their store front on top of that. While all of that happened there was little competition (I’m sure some tried even in the early days, but they probably couldn’t sell Valve titles which put them at an immediate disadvantage).

When other companies realized how big of a market this is they chimed in with their own versions. I remember EA Download Manager, which later turned into Origin. Once again Origin isn’t exactly an open store front (or at least wasn’t back then) so it doesn’t really compare. The point is that Valve had more than enough time to develop a polished client, that offers the users what they want. Just to name a few:

  • Crossplatform (Windows, macOS and GNU/Linux)
  • Easy to use
  • Offline mode and minimal DRM
  • Feature rich
  • Customer friendly (Reviews and as of recently a much needed return policy)
  • Large catalog (Yes there’s also a lot of garbage in there, but that holds true for most online platforms)
  • Localized (Available in almost any country with local currencies)

But now Steam is a monopoly and it shows. Valve moved away from making games (Artifact doesn’t count :P) and they’ve made some arguably questionable decisions in the past. Steam is easily able to charge a 30% cut, because there’s no good competition that could make them lower it. Valve doesn’t really need that money anymore, but if they can make it they obviously will. That’s why (at least as far as I know) they offer special contracts for AAA titles, but they probably contain clauses like exclusivity.

So what does the EG Store have to offer? Apart from trying to take on steam and the lower cut, which they advertise as cheaper games (which isn’t true unless you live in the U.S.), surprisingly not much.

The UI is absolute bare-bones (they recently added a search function!), no cross-platform (although they claimed that they’ll focus on linux support, which I’ll only believe once I see it), a catalog of games so large you probably can memorize it, questionable activities while the launcher is running and buying out just about every game set to be released this year.

To sum it up it becomes clear that I’m not a fan of the Epic Store. Competition is good because it leaves the customer with more choice and better offers, but this approach is just outright bad. It feels like Epic is just throwing their Fortnite money at every game studio to get them a timed exclusive or a free game. This just makes it even more obvious that they have nothing to offer that could beat Steam (from a customer’s perspective) so instead they try to lure people in with free games and titles that you can’t obtain any other way (for at least a year). What I’d like to see is an actual advantage over steam like an up to par user interface with all the bells and whistles that steam has, no DRM or a price advantage that reaches beyond the U.S.

Currently Steam is still the best option, with a large catalog, offline mode and lax DRM. The only competitor that I’d want to see succeed right now is GoG, which let’s you actually buy your games with no strings attached, but even they can’t compete with Steam.

Right now Epic offers a better option for developers (which isn’t a bad thing) at the cost of the users experience. I’m sure that the store will improve over time but making exclusives a priority over that, is, at least in my opinion, a bad decision. The only thing I hope for is that because of this Valve will start taking better care of Steam, its users and developers again.

Steemit

Bitcoin has really gotten a train rolling in the past year. When it first started to rise people thought that it couldn’t get any higher and here we are with bitcoin being worth over 20,000$ at some point.

I never really had the time to look into how a blockchain works and what classifies a crypto currency, but recently I watched a video on it and it seems like anything can be turned into a blockchain and that’s what steemit made use of.

Steemit offers a platform for blogging and uploading videos, all within a blockchain. It also doesn’t use ads to pay creators but rather the feedback of other users. That means if you upvote a video or give it a comment the creator gets paid for that. The users are paid the same way. The more they interact and give feedback the more they get paid. A user that is very active and posts comments that get upvoted has a higher steemit-power. That means that if that user upvotes a video the creator gets more money, because the platform trusts this user to know which content is good.

This seems like great way to encourage users and content creators, since it makes people create actual good content instead of sensational clickbait. So from now on I’ll post things here and on my steemit blog. We’ll see, maybe this wordpress page will become deprecated at some point.