Linux on the desktop

I’ve been collating links relating to Linux audio on my personal wiki for a while now, might be interesting for some: Some topics are broken out into their own pages which can be found via the menu at the top.

For anyone who uses IRC, check out Freenode #opensourcemusicians for general chat, #lad for software development, #jack for JACK chat, #archlinux-proaudio, #lv2 (the plugin format), #kxstudio (Debian based distro/repos), #lau (smaller general chat), #alsa, #pulseaudio, and #audacity. Other related channels include ##audio, ##music-electronics, #audiovisual, ##xenharmonic (microtonal orientated), #RedditAudio, and #pipewire.


discovered cmus via a screenshot from @neauoire

super super elegant minimal tui music player. like vim-itunes.

i’ve been wanting something like this for about a decade…


This is really great, thank you so much for posting this! I’ve also been waiting for something like this for quite a while! Mostly because I like to have something that does use as little resources as possible. So far it seems to be lighter than VLC (which is what I was previously using) and has an actual, no-nonesense library support! Also, it seems to have a really well designed UI once you memorize a couple of keyboard shortcuts. Loving it so far!

1 Like

I tend to use MOC, which also is very light and has a command line interface: Probably a matter of taste.


How do I go about installing JACK so I can use it in C/C++? The official installation docs aren’t great, and this seems to be the place to ask.

The API docs are here:

“Installing” it is dependent on what distro you’re using. If you let us know, we might be able to help.

Also, is it something explicitly JACK related you want to do? Or is it just audio input and output? If the later you might prefer to use PortAudio.

I’m using elementary OS (based on Ubuntu).
I just want to use it for audio in/out and possibly MIDI. I think I looked at PortAudio before; I’ll have another look.

Yeah I’d look at using PortAudio / PortMidi or RtAudio / RtMidi.

Both of them are abstraction layers designed to work across multiple audio backends across multiple OSes.

Don’t if it’s still the case but my experiences in the past with portmidi were abismal, many simple things not working. rtmidi seems to be a better choice, but if you’re just targeting JACK might as well just use JACK midi directly.

does anyone know any resources for putting together a linux machine from parts? ive seen lots of pc builder sites that are designed to make a gaming pc, are there any out there targeting linux? thinking debian rn.

I’ve cloned RtAudio from git and configured and make'd it. I’ve copied the playsaw.cpp example/test and tried to compile it, but I’m getting undefined references from g++/ld:

DSPtest.cpp:(.text+0x1db): undefined reference to `RtAudio::RtAudio(RtAudio::Api)' DSPtest.cpp:(.text+0x27c): undefined reference to `RtAudio::openStream(RtAudio::StreamParameters*, RtAudio::StreamParameters*, unsigned long, unsigned int, unsigned int*, int (*)(void*, void*, unsigned int, double, unsigned int, void*), void*, RtAudio::StreamOptions*, void (*)(RtAudioError::Type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&))' DSPtest.cpp:(.text+0x2eb): undefined reference to `RtAudio::~RtAudio()' DSPtest.cpp:(.text+0x398): undefined reference to `RtAudio::~RtAudio()' collect2: error: ld returned 1 exit status

What have I done wrong?

Looks like your program compiled (so it found the header files) but failed to link because it didn’t link in the library. Usually this involves passing some flags to the compiler like -lrtaudio -L../lib to tell it you want to use the library and where to find it, assuming ../lib is the directory where you’ve got a file called maybe librtaudio.a or Often rather than compiling it yourself it’s easier to use a library like this by installing the development files with a package manager, like on Debian/Ubuntu looks like you could apt-get librtaudio-dev and then maybe just -lrtaudio would work. (edit: do not do this, see below:) Since you’ve already got it compiled you may be able to achieve the same thing with sudo make install with the RtAudio Makefile.

Don’t do this if you like to keep your system working, it’ll really mess up your system and confuse your package manager :slight_smile:
Just use your package manager to install these libraries.


Yknow nobody had ever told me this but it stands to reason that this is a pretty bad idea. Not least of all that a random Makefile off the internet can happily do all kinds of nasty things with superuser privileges. I imagine this explains a thing or two about the fate of various unfortunate Linux machines I’ve had.

I managed to get my test program to compile by running pkg-config --cflags --libs rtaudio and then doing g++ -o DSPtest DSPtest.cpp -pthread -D_REENTRANT -I/usr/include/rtaudio -I/usr/include/alsa -lrtaudio -lasound -lpulse-simple -lpulse.
Thanks for your help :slight_smile:

1 Like

When I use RtAudio, I typically bundle the code with my projects, rather than use a package manager dependency or link it as a library. All you need from it is RtAudio.cpp and RtAudio.h. When you compile it, be sure to set the right flags to pick out which audio backend you wish to use. On Linux, I use “-D__UNIX_JACK__” for JACK, “-D__MACOSX_CORE__” for core audio on OSX, and “-D__WINDOWS_WASAPI__” to use the WASAPI drivers (I think might be windows 10 only?)

RtAudio is very convenient for doing cross-platform audio projects. For some reason, I seem to recall running into some weird issues where RtAudio would sometimes crash on exit. Now I just use the JACK api directly for things now on OSX and Linux.

1 Like

Just starting seeing some chatter about Intel Clear Linux, which is a distro Intel has optimized for performance when using Intel chipsets. Getting good benchmarks, and the package manager seems interesting, as it only downloads the updated bits of each package.

Has anybody tried it yet?

Performance is generally pretty good (i.e. it tends to win benchmarks between different distros). They use a whole bunch of performance patches for a lot of the packages in their repos.

Haven’t really used it yet though, so can’t comment on things like the package manager.

1 Like

I’m also curious to know how it is with audio, both in terms of setup/config, and daily use.

Does anyone know of a software to manage sample libraries that runs on linux? I only recently fully migrated to linux for audio related things and my searches always bring out winderz and mac results.