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.

 

What if?

Happy new year, by the way^^

If you haven’t heard about this game by now you’re probably not into telltale-like games. So even though the chances are slim that you don’t know it I’ll still act like you didn’t.

First of all

If you at any point decide you wanna give them a shot. The first episode of the original game is free so you’ve got nothing to lose and no excuses!

Now I’d also like to point out that even though I enjoyed both games and therefore can only highly recommend them both, it’s not a genre that everyone likes, which is not surprising because it’s kinda hard to satisfy everyone.

So this is about two episodic games, where “Life is Strange” is the original base game that came out in early 2015 and spans over five episodes, which you can pick up 20$ and for only 5$ during sales. You play as Max who came back to her hometown to study photography where she meets her old friend again. Then time travel gets involved and things get pretty interesting. You can rewind and change choices, but even that won’t save you all the time. The first episode gives you a rough idea of what you’re getting yourself into and if you decide after it that it’s not all that bad you can be assured that you’ll like the rest of the game.

Both this game and the prequel “Before the Storm” are accompanied by an outstanding soundtrack. Listen for yourselves:

In Before the Storm you’ll play as Chloe who is the old friend that Max meets in the initial game. The good thing that it’s completely independent of the original game. So if you want to can play that one first. It’s only three episodes for ~17$ and ~11$ on discount. It might get cheaper down the line though. There’s also a bonus episode which isn’t out as of now which will cost extra. It was made by a different studio because Dontnod is currently busy with their new game “Vampyr“.

So for a final thought: Both games are definitely worth playing and even though one might think that making a prequel and handing it off to another studio might ruin the game and the franchise because it would just try to life off of the initial success, the prequel has it’s own story (without the rewind mechanic) and does a good job at telling it. The only thing I’d have to mention about it is the fact that the prequel was in my opinion more entertaining (and by that I mean funny) than the original game, which was a little bit more sad, but that might be because a different studio made it and Chloe got a different voice actor (You’ll get used to it easily, though).

Once again I’d urge you to give it a try, you won’t regret it.

Firefox

For the longest time my choice for a webbrowser has always been Firefox. I used chrome for a couple of month at one point, but I always came back to FF. Maybe that’s because before chrome was a thing and Internet Explorer was even worse than it is now there was only one alternative and that was Firefox.

I always stuck to it because I trusted Firefox and the company behind it: Mozilla. They always gave me the impression that they are a company that tries to provide an open and free webbrowser that is efficient, open-source, cross-platform and focusing on your privacy, and they still do give off that impression but recently they made some choices that show of their other intentions.

I switched to Opera recently because the new Firefox quantum froze constantly but I intended to come back to FF as soon as that was fixed since I really liked the new look and backend that Firefox got but then I read about how Mozilla remotely installed a plugin without asking for permission. The plugin supposedly showed ads for a new TV series and Mozilla made a deal with the producers of that series. So the way things are currently at I will not switch back to Firefox. Opera is a nice browser with many interesting features like a free VPN (cool, but if there’s no product then you are the product) and integrated ad-blocker, but it was recently acquired by a Chinese company so I’m also not intending to stay with Opera for to long since I would like to use an independent and open-source browser.

If you want a video that sums up the entire issue you can watch this one (Edit: You can’t, it was deleted :/)

It covers even more issues than the one with the remote installed plugin but the general point is that Mozilla is not the company or foundation that you’d think they are. I feel a little dumb that I just now found out that Mozilla is indeed a profit oriented company even though they also have a foundation which is supposedly non-profit.

Even though I currently use Opera I have some other alternatives for those who now are unsure if they want to continue to use Firefox:

  • Waterfox (Mac, Linux, Windows, Android)
  • GNU IceCat (Linux, Couldn’t find any Windows/macOS binaries)
  • Iceweasel (Linux, Windows build on sourceforge)
  • Vivaldi (Mac, Linux, Windows)
  • Midori (Linux, Windows)
  • Brave (Mac, Linux, Windows)

I have not used any of the above so you’ll have to them out yourself and see which one you like.

Vserver

I recently rented a small server for a couple bucks to play around with it for a month. I never had my own server before that and thanks to discord I (for now) have a reason less to do so, since before that you always needed a voip server (like Teamspeak) to talk to people.

Now that I have one I played around with a couple of things like getting my own domain, email server and proxy. Since I already paid for the server and wasn’t up for paying 5 bucks a month to get my own domain I registered a free one which you can get over at freenom, where you can get .ga, .tk and some other tld’s for free. Now those endings aren’t the most appealing ones but they’re free and you’ll have to get a little creative to find some puns like “bazin.ga”.

After that I tried setting up an email server but the amount of work for it made me skip that after trying it for two days. Maybe I’ll come back to it.

Using PuTTY and a remote server as a proxy

The other two things I used the server for so far were a game/VNC server and a proxy which is farely straight forward when using PuTTY:


Just open your configuration and load a session for which you want to have the proxy. Then navigate to “Tunnels” and set “Source port” to whatever the proxy should be accessible on your local machine. The other settings can be left as they are and then hit “Add”. Now after applying the settings and connecting to your server you’ll have a proxy runnying which you can set your browser to. For FireFox you just need to go to settings, then scroll down in the general tab and click “Settings” under the “Network proxy” category. Then select “Manual proxy configuration” and set the “SOCKS-Host” to “localhost” and the port to the one you configured in PuTTY and that’s it.

Setting up a Counter-Strike 1.6 server on debian

When I set up a game server I chose CS 1.6 as a test which should be straightforwards to set up but all tutorials are quite old so I had to do some tinkering to get it working. Here’s what I did for a server running debian:

Set up a new user:

# useradd -g users cs

install dependencies:

# apt-get install libc6 libstdc++6 wget iptables

Add the ports needed for CS 1.6:

# iptables -A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT
# iptables -A INPUT -p udp -m udp --sport 4380 --dport 1025:65355 -j ACCEPT

log into the new user:

# su cs

Make a new directory for SteamCMD and download SteamCMD:

$ mkdir steamcmd
$ cd ./steamcmd
$ wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
$ tar xvfz steamcmd_linux.tar.gz

Now you can run steamcmd with “./steamcmd.sh”, but before that verfiy that the version of steamcmd that you have is genuine, since you’ll be logging into your steam account with it. The link above worked for me but if you want to double check you’ll need to do it yourself.

Other tutorials said that logging in as anonymous would work but I had issues when I did that so you can also try that:

# For anonymous login:
Steam> login anonymous
# Or with your steam account (if you have 2fa it'll ask for the code):
Steam> login [username] [password]

Now let’s install and update Half-Life and CS:

Steam> app_set_config 90 mod cstrike
Steam> app_update 90 validate
Steam> app_update 90 -beta beta validate
Steam> exit

You should now have a Steam folder in your home directory. The game should be here:

$ cd ~/Steam/steamapps/common/Half-Life

Inside that you’ll have a file called “hlds_run” use this command to start a CS server (modify some parameters to fit your needs):

$ ./hlds_run -console -game cstrike +port 27020 +de_dust2 +maxplayers 32 -pingboost 1

You can use programs like screen to monitor the CS server since it’ll close as soon as you exit out of PuTTY. When running it might complain that it can’t find steamclient.so, so you’ll have to copy it from “~/.steam/sdk32/” to “~/steamcmd/linux32/” (or the other way around since I don’t remember :P).