Friday, April 6, 2018

Audio on Linux is a Disaster, Debian Stretch Edition

I have recently learned more than I wanted to know about how Audio works in Debian Stretch Linux, and yet, not enough to solve the problems I have.

Generally I love Debian Stretch Linux,   the two big pain points are, Audio, and nVidia.  And nVidia is not Debian's fault, it's nVidia's fault. I hate you nVidia, did you know that I hate you? Anyways back to ranting about audio.


Here are my problems, stated in as transparent a way as I know how:

1. I need to use Skype for work, and a few other closed-source conferencing and remote desktop sharing apps, including join.me, and GoToMeeting.

2. Built in Linux desktop apps like Sound Recording apps all work fine. If they were not working I could investigate them down to the source code level to see why they don't work.

3. But commercial closed source audio-aware apps do not work in a consistent way. Skype for Linux these days is some heinous Electron app.  It probably talks to pulse-audio.  So does GoToMeeting, so does Join.me.

4. On Skype, people say I sound like a chipmunk. On Join.me I sound like a monster or a robot. Many issues like this have to do with sample rate configuration options.  How you can find a set of options that work for all the various apps you have, is an impossible problem.

If I could make an analogy, it's like going into a dark room, and there are an array of 100 or more light switches. One of those combinations of 100 switches, say, 36 of them on, and 64 of them off, in some combination, out of a possible of 2^100 combinations, will result in the lights going on. Another combination, also probably having to be found by trial and error will result in the lights going off. Other combinations will result in your hair catching on fire, your dog being decapitated, and your kids voice changing randomly from sounding like Obi Wan Kenobi, changing to R2-D2, and then to Chewbacca.

In between changing combinations of lightswitches, you should google a bunch of stuff, make notes, try things, and see if you can find the working combination.

I don't see a solution here, because I don't see that there's a standard way for Linux apps, either real native closed source ones that don't use electron, or for electron apps, to work on every Linux distro out there that has Pulseaudio as its audio subsystem.  Perhaps all these apps are tested, and developed, and work on Ubuntu, but not on Debian or any other Debian derivatives.

Who really knows?




Wednesday, February 28, 2018

Thinking about Starting a BSD Blog

This blog has been kind of inactive, but I've been playing around with a lot of things which are Unixen but which are not Linuxen in the last year:

* Illumos, SmartOS and OpenIndiana (stuff based on what was once OpenSolaris, a now dead project)

* The BSD family (FreeBSD, OpenBSD, and others). Most recently I've been messing around with TrueOS which used to be called PC-BSD, and before that I spent some time messing around with Dragonfly BSD.

Whenever the BSD folks talk about Linux licensing, and the GPL, I have to admit, I see their point, and I also see some of the points that Richard Stallman and his Gnu Purists point to.

Where I think the BSD people are undeniably right is:

1. You can't afford to lawyer all the GPL violations in the world, and can't technically even detect them, and so the question is, do you want to spend your time on that?

2. It's fair to ask the question, why not let people take stuff closed source.   If they want to fork and close source a project, why not let them?

3. It's fine to just not care about software freedom, and just want to use your computer.

Where I think the Linux people are right is:

1.  Software freedom leads to hardware freedom.  I don't think that the BSD approach is the right way to handle companies like nVIDIA that refuse to open their drivers. Having the GPL there and the problem of tainting your kernel with private non GPL garbage, is exactly how I think the Linux kernel should be handling it. It's not just a problem that the nVidia partially binary driver is a stupid thing because there are no Stable ABIs in the Kernel Space, it's also a problem because it's a binary blob in my computer and I don't want any binary blobs.

2.  Principles are worth making a fuss over.

So that's where I sit.  BSDs are cool. Linux is cool.