I never got as far as doing any audio work…
I really really like the idea of NixOS. But… Nix seems to be both an OS and a way to configure your dev environment, and it’s the second bit that I struggled with. My disks/Dropbox/GitHub/BitBucket are full of tiny little programs that I use on a regular basis, each one tends to be written in whichever language was best suited to the task. Having to create dev environments for all of it just seemed too much for me to want to deal with. Especially as most programming languages have very mature tooling for dealing with dependency management these days.
From the GitHub page (emphasis mine):
On the other hand xmonad has great defaults, key bindings and xinerama support but is crippled by not being written in C.
Them be fighting words! 
XMonad has switched to a more GitHub centric development workflow recently, and there seems to have been a recent uptick in activity (plus a new release). It’s great for someone like me that just wants to submit small patches, I like projects that are easy to contribute to (Nix seemed to be good for that too).
Anyway my config seems to be getting to a pretty decent place:
I’d only strongly recommend it for Haskellers, but seeing as there are a bunch of tidal users here now…
There is a video here from Ethan Schoonover (of Solarized fame) going through his config from which I have liberally stolen things. For me it’s too configured, but it does go to show what is possible. XMonad really is more of a DIY window manager than anything else out there.