Linux on the desktop


Short version :
i have been a Linux user since 2006.
i loved pure:dyne (bootable iso) and now use debian stable everywhere (laptop, desktops, servers).

The long story:
It all started with DeMuDi (a Debian distribution specialized in audio), which i installed on a spare computer at work (local radio): it got used to edit audio (the edit-point-on-mouse-cursor decoupled from playback in ardour 0.99 sold it to me) and rip CDs.

Then (2007) i got a laptop that ran ms vista for five minutes after the first boot, and got replaced with Ubuntu studio 07.04 (look! i can rotate workspaces on a cube! and that video is still playing!).
I then stumbled across pure:dyne, which versions actually based on dyne:bolic were absolutely great : i played with that box with delight for about two years. Never could use another system without referring deep in my heart to the sheer simplicity and elegance of pure:dyne (you people at goto10 made a great job changing my life).

I also tried multiple other distros, and settled on Debian stable as a general desktop system.
Around 2011 i suddenly felt the need for up-to-date software and went with Archlinux.
(I guess that was the time when things began to move faster in linux audio.)
Then i went on holiday, and on my return, so much things had changed in Arch that it was daunting to even try the every-two-days update (i’m looking at you, systemd!).
Most things i had learnt as to how GNU/Linux systems worked were becoming obsolete and the new things were so badly documented, for my sanity i had to wipe my laptop went with FreeBSD for a year or two.
That was as easy as just reading a properly done documentation.
2014, the need for low latency audio comes back, and i go back to Debian via its “unstable” incarnation. (FreeBSD folks seem to think of low-latency or realtime as industrial needs, and do not think that audio can be concerned by that. well.)
Today, as i already spend some of my worktime with debian servers, i use Linux Mint Debian Edition (speeds up things i used to do manually).

As to audio (hardware):
I have successfully used class compliant USB1 interfaces :

  • Alesis IO2 old version, that M Audio remakets as a brand new thing at least on the visual aspect)
  • Sound Devices MixPre-D
    Today, (and this is sort of ironic given some past statements from the company) i use a USB2 class compliant thing, the Motu Ultralite AVB. I guess we can thank the ipad for all those class-compliant audio interfaces out there. Now with all that I/Os i can integrate my magnetic band recorders in my workflow easily.

The only thing i retrospectively regret from leaving Windows (XP…) is that i spent a lot of time using Buzz tracker, and i couldn’t transfer the small-details-knowledge in a similar linux software before losing that knowledge (buzz clones were non-existent at that time, and i was too amazed with puredata to think i would go back into a tracker someday).

Which brings me to audio software:
i got fed up of puredata at one point, mainly because i felt graphical/dataflow programming was terribly inefficient to maintain over long periods of time (and also i couldn’t think of a more complicated way to make a for loop ^^’ ).
For audio programming needs, I recently (two years?) switched to Chuck.
Given Chuck ability to max out my CPUs, i am currently exploring CSound as a sound generating backend behind some chuck monome apps.
For editing and as a general purpose DAW, i use Mixbus3.
Then, lots of more or less often-used other softwares (Cecilia, Soudscape Renderer, Alsa Modular Synth, Sunvox, mx44, …).


On Debian i seem to remember that it resumes to installing the pulseaudio-module-jack package.
Then, when you start jack, pulseaudio automatically appears as two jack clients (one for outputs, the other for inputs). Every app willing to use pulseaudio as its output will use that pa-jack sink.
Alsa is the “low-level” audio backend that jack will use (and lock for itself).

Effectively the 828mkIII do not seem to be usable by alsa (or freebob). The whole AVB products line should work though.


I heard of a guy keeping a kind of swear tin, where he forced himself to stick in a quid (one english pound) every time he read a comment on youtube!


I have a lot of experience recording/composing music on mac, windows and linux. I also used ubuntu on my main laptop (for all non-music related work) for over 10 years.

The setup I had the longest (over 5 years) was as follows: a hackintosh desktop for recording/editing/mixing and also for printing scores in Sibelius. I have to use protools as I need to be able to exchange sessions with a studio. Linux laptop for everything else.

Due to a move to another country I had to seriously downsize my setup and sell the desktop. My laptop wouldn’t work as a hackintosh and I still have to use protools and sibelius. So I am forced to use Windows at the moment. Protools is so annoying on windows I use it only for converting sessions and I do the real work in reaper (which I believe runs on Linux too). Sibelius is fine on windows. I really don’t like the operating system though, it seems so backwards and the lack of the (proper) command line and software management system is terrible.

I tried various options (inlcluding running sibelius in virtual machine under linux etc.) but it never seemed that convenient - the loading time was too long, that interface was lagging.

Other than that Focusrite Saffire Pro 40 and Scarlett 18i20 seem to run under Linux (the first one after much fiddling though). Ardour is great, I think you can use reaper too (much better daw IMO). Ubuntu is a great distro. Much faster than windows on the same hardware once you get it to work with you graphics card.

I guess the bottom of my story is: if you don’t need to use a proprietary software like Protools or Sibelius (or any industry standard plugins like Waves, Kontakt etc.) go for it. Pick you sound interface wisely! Otherwise Mac (or hackintosh) is the way to go, unless you’re a masochist, then go with Windows. That is the unfortunate truth, at least from my experience. I would be delighted if someone could prove me wrong.


my 2c…

another pretty longtime linux user here. same old story… first experimented with slackware, more regular use of debian/ubuntu/mint… now i’m running arch and quite enjoying it (AUR notwithstanding.)

i’m also running awesome wm at the moment; never used a tiling window manager before, and it just feels so right

sound stuff:

  • jack2 + alsa. pulseaudio is there but i kill it for live stuff / small buffers.
  • i just use various class-compliant usb audio hardware, never an issue
  • supercollider, for live stuff; scide and sc-emacs both have their strengths
  • csound, sometimes, for a change; i find the formal structure is helpful for focusing on composition instead of programming.
  • puredata, mostly with custom externals as a prototyping platform (kind of the opposite o csound)
  • audacity and ardour for editing / mixing (i do miss reaper though, it’s not the same on wine)
  • mpv and libmpv for media playback
  • ffmpeg (and bindings) for procedural media editing

no-one has mentioned LADSPA/LV2 plugins? the calf and TAP collections cover most of the basics that i want. (oh and CAPS… whats with these names) i’d be very curious to know what other things people find useful, it’s hard to sort through all the chaff out there.

just for fun, here’s a list of the other tools that pretty much cover everything i need for the various kinds of work i do. could be useful to someone i guess.

  • emacs, duh
  • gEDA PCB for circuit layout. actually prefer this to kiCAD or eagle.
  • lilypond for music typesetting, so good
  • latex for text typesetting
  • tikz for procedural vector graphics
  • GIMP for bitmap editing, inkscape for WYSIWYG vector drawing
  • octave and gnuplot for math/modelling stuff
  • kdenlive for (simple) video editing
  • imagemagick (and bindings) for procedural image editing
  • haskell (i’m still learning but it sure is fun)
  • rust (ditto… well maybe not so much “fun” as “probably smart”)
  • node.js… cause that seems like all anyone wants right now.
  • eclipse and android studio, occasionally


Anyone tried non DAW? It popped on my radar when I was searching for audio uses for my rPi.


Yay for Haskell, it took me 2 attempts to learn it, the second time I kept going till I could use MTL before attempting any non-trivial projects. The Haskell School of Music is great for interesting ways to structure music functionally…

type Octave = Int
type Pitch  = (PitchClass, Octave)
type Dur    = Rational

data PitchClass  =  Cff | Cf | C | Dff | Cs | Df | Css | D | Eff | Ds 
                 |  Ef | Fff | Dss | E | Ff | Es | F | Gff | Ess | Fs
                 |  Gf | Fss | G | Aff | Gs | Af | Gss | A | Bff | As 
                 |  Bf | Ass | B | Bs | Bss
                 deriving (Show, Eq, Ord, Read, Enum, Bounded)

data Primitive a  =  Note Dur a        
                  |  Rest Dur          
                  deriving (Show, Eq, Ord)

data Music a  =  Prim (Primitive a)       --  primitive value 
              |  Music a :+: Music a      --  sequential composition
              |  Music a :=: Music a      --  parallel composition
              |  Modify Control (Music a) --  modifier
              deriving (Show, Eq, Ord)

data Control = ... -- tempo adjustments, etc, etc

(I’ve formatted it slightly, you can get the actual code extracted from the book here.)

Shout out if you want me to talk about the resources I used for learning it.

I did use Rust a bit, I maintained the portmidi binding for a while, but in the end something about the community and culture surrounding it rubbed me the wrong way. It’s probably more to do with me than them though. I expect I’ll end up using it again, C++ is such a kitchen sink of a language.

I do worry that with Go, Swift and Rust you’re forever at the mercy and whim of the controlling organisations. In particular with Mozilla, will they still exist in a few years time? I know they’re all open source, but without paid engineers working on them, can they carry on?


Just been reading this “Buttery Smooth Emacs”, I found it amusing, but not everyone might.

You might say, “That’s great, but double-buffered rendering is the textbook solution to the problem of displaying incomplete rendering to users and driving them to kill their dogs in maniacal frustration.”. That’s true, but Emacs predates those textbooks. GNU Emacs is an old-school C program emulating a 1980s Symbolics Lisp Machine emulating an old-fashioned Motif-style Xt toolkit emulating a 1970s text terminal emulating a 1960s teletype. Compiling Emacs is a challenge. Adding modern rendering features to the redisplay engine is a miracle.


interesting : an adorno daw to produce non-music. i like that.

no, seriously : the possibility to run it on raspberry pi is intriguing.


I think that may be my next pi project. (My zero is now my retro games machine).


hilarious, didn’t know whether to laugh or cry at some points reading that. I help maintain a schematic capture program originating from 1980s Symbolics Lisp Machine code with batshit crazy redraw ‘logic’!

couldn’t follow everything he was saying there but description of the solution kind of reminded me of the aleph’s grid redraw…

tried it very briefly, concluded it doesn’t work well in the performance-looper kind of paradigm. Didn’t want to get involved in it’s code… Might be wrong about performance capabilities - be interested to hear what mileage anyone gets with more patience & perseverence…

One of my aims is learn enough Haskell to get more into ClaSH (functional HDL). Went far enough down this road to functional enlightenment to convert simple faust codes into verilog w/ fract arithmetic & test on an icestick, but setting up Haskell DSP testbenches with so many missing basics was ‘challenging’ (in much the same way as hitting yourself in the face with a piece of wood)


investigating a new arch install on an older (completely wiped) macbook air 11", it seems to be working quite well!

one thing that hasn’t improved since the last time i used gnome-- the trackpad driver really is shit. something with the acceleration is just tuned poorly, without apparent user overrides to correct it. so-- my question to you all, who certainly have discerning taste in trackpad sensitivity-- do you have any solutions for this? (besides not using the trackpad).

furthermore, what are your preferred window managers?


only very minor complaints about stumpwm since dumping xmonad & setting it up nearly a year ago. However, it must be said that the worst of those niggles is it doesn’t play nice with puredata.

Ergonomics of tiling vs non-tiling is a debate I’d like to see from folks on here. (icewm would be my 1st pick for non-tiling, by the way)


Do not have a solution for the trackpad issue, on my Lenovo’s I’ve had to get used to the ‘finger roll’ technique which, requiring a heavy learning curve, is great but by no means for everyone. :frowning:

I vote tiling, used DWM on @wrl’s suggestion from years ago and have never looked back (or have desired a different window manager since).


I use XMonad, which is a tiling window manager, but I wouldn’t recommend it to anyone that can’t code in Haskell.

Tiling window managers are definitely worth a go, but they really come into their own when you rarely use a mouse. IMO, that means using Vim or Emacs as your text editor. Also some sort of keyboard control plugin for your web browser (e.g. cVim).

Anecdotally i3 appears to be the most popular tiling WM. You could trawl through /r/unixporn looking at the screenshots, most people provide config files to go along with them.


About window managers:

  • tiling : i used awesomewm for a long while, but eventually got past having the pretext of tweaking its configuration to defer actual work. I thought it was easy to get a grasp on, and very useable while memorizing only a few shortcuts.

  • non-tiling : most wms came with their own desktop environment, so the wm is not always the reason i hated the environment :smiley: . Xcfe and gnome (before they went “tablet-futuristic-unusable” with version 3) were ok. KDE i never understood (ressource hog, always triggering configuration dialog while trying to use the damn thing…). E17 i wanted to like for the looks, but the apps coming with it i did not like. Ubuntu standard desktop makes me curse all the time.
    Currently i use Cinnamon which is ok-ish to me. Does not get too much in the way and works out of the box. Easy shortcuts to make windows use a quarter, half, or full screen, or change monitor.
    The very recent update of lock screen is bad, though. (seriously, displaying info about whatever media file is currently in pause is not what i want from a lock screen…)

The most useable non tiling wm in my experience is Fluxbox. I like how easy it is to make it memorize application size/placement.

I don’t feel a need for tiling wm nowadays, but i use a tmux a lot in a fullscreen terminal emulator, so it is somehow like a tiling wm inside that terminal, while keeping apps with GUIs doing their own thing.
I liked the automagic of a tiling wm most of the time, but with some applications i felt it was not appropriate and the wm was fighting with the app. Typically, using Ardour with the editor and mixer window at the same time, plus a few plugins opened; it feels more natural to have all windows in a stack than nicely laid out. That’s probably true (to me) for all apps with lots of “floating” windows.

About trackpad configuration:
at first i would install a lightweight wm (like fluxbox…) and log into a session with it, to determine if poor trackpad response comes from the X server “autoconfig”, or from some gnome magic.


DWM sounds very interesting, and the ‘suckless’ approach definitely chimes with my idea of what UNIX should be. Planning to try it out this week, see if it can be coerced to behave like how I’ve set up stumpwm. Configuring your stumpwm just right using emacs/slime is a joy for lisp hackers. However I haven’t changed my config in 9 months - baking this behaviour into a human-readable C program sounds to me at least as future-proof as linux/X…

Just trying out some other stuff from suckless - st (simple terminal) & mksh (the korn shell they recommend). After getting badly burnt recently by systemd, sinit also starts to sound appealing. Anyone know of a ‘suckless’ way to connect a linux laptops to wifi? (guessing arch’s wifi-menu tool only works on a default install)


the most minimal way to wifi that i found useable for a laptop needing to connect to extremely various networks was wicd. There is a gtk gui coming with it.


is there a good linux laptop or do people normally wipe/reset/vm macbooks? i’m down to make the jump, i’m just always on the move…


big acer c720 chromebook fan here - apparently indestructible, light, great size, cheap as chips, long battery life. Obviously need to go for the 32Gb hard drive option for running as a linux system. It’s cpu is really fine for day-to-day computing tasks including all my dev work, but an i7 it ain’t…

on the downside the cheapo audio codec seems unsuitable for low latency, though it’s not noticeably noisy for playback.

Also… the default chrome bios will display an error on boot once you’ve installed linux, prompting the user to delete ‘foreign OS’. This happened to me before I reflashed the BIOS - a friend grabbed my laptop to check their email & wiped my system. In order to reflash the bios, you need to take the laptop to bits to get at a special ‘disable bios protection’ screw.

I use a USB focusrite scarlett interface with the chromebook for audio.