Everyone loves music, and despite the advent of streaming, subscription models, and having music available in the cloud, audiophiles still maintain a carefully curated collection of audio files on their local machines.

If you're a terminal-dwelling Linux user, it's easy to play your tunes while you work, without ever leaving the command line.

Why Would You Want to Play Music in a Terminal?

To Linux purists, the graphical elements of an operating system are unnecessary bloat, and streaming is lame (pun intended), as it relies on resources that are outside your direct control, and uses bandwidth that could be better employed elsewhere.

Playing locally stored music files means that you aren't dependent on spotty connections, subscription models, or the arbitrary deletion of media by rights holders. There's only one person in control of your music, and that person is you.

A terminal-based music player, such as Siren, is even better. It cuts down on resource usage by doing away with flashy visuals and unnecessary clutter. With Siren, you don't even need a desktop environment installed, so you can get down with the latest Dua Lipa release, while hard at work on your bare-bones Linux rig.

What Is Siren?

Siren is a text-based music player for Unix-like operating systems including Linux, OpenBSD, NetBSD, FreeBSD, and OS X. The software supports a huge variety of formats including Ogg Vorbis, MP3, Opus, FLAC, AAC, WavPack, WAVE, and AIFF, so whether your tunes are antique 24kHz Engelbert Humperdinck MP3 files ripped using an Amiga in 1996 or a brand new lossless FLAC file, Siren has you covered.

Reflecting the diversity of the Unix-like ecosystem, playback is possible through sndio, PulseAudio, ALSA, OSS, Sun audio, PortAudio, and libao.

How to Install Siren on Linux

Although Siren is available for multiple operating systems, we will only be dealing with how to install Siren on Linux.

First, open a terminal and use Git to clone the repository:

        git clone https://www.kariliq.nl/git/siren.git
    

Move into the new directory with the cd command:

        cd siren
    

You will be compiling Siren from source, which means you will need to specify where the software will reside, and what plugins to install to ensure compatibility with your media files.

By default, Siren will install in /usr/local/ with maximum support for formats and full documentation. To change this, you can add configuration arguments during the following command. See the project's GitHub documentation for a full breakdown of the arguments and options.

        ./configure
make
make install

Alternatively, if you have an Arch-based Linux distro, you can install Siren direct from the Arch User Repository (AUR).

Once installed, you can launch Siren by entering siren into any terminal.

Use Siren to Play Music in Your Terminal

 three terminal windows showing siren, htop, and the output of ls - on SalixOS

The Siren user interface doesn't take up much screen real estate and is divided into three areas: you can enter commands and searches into the bottom line, while the two lines above it are for displaying playback-related information.

The bulk of the window is taken up with one of four views, which you can switch between by pressing 1 to 4 on your keyboard. The library view shows all tracks in your music library, and the playlist view shows the current playlist. This interface is fairly different from other terminal-based Linux music players like cmus.

Browser view allows you to browse through the filesystem in search of more funky tracks on your system, which you can either play directly or add to your music library. The final view is of the queue. Queued songs will have priority and will be played before tunes in the other views.

Useful Key Bindings for Siren

As a terminal-based music player, it makes sense that controls are keyboard driven. Siren has dozens of key bindings, and you can read about them all in detail by typing:

        man siren
    
The siren man page

To get you started, these are the Siren key bindings we find most useful:

  • x: Play
  • c: Pause
  • v: Stop
  • z: Play the previous track
  • b: Play the next track
  • a: Add the selected entry to the queue
  • d: Delete the selected entry
  • l: Delete all entries

With Siren, You Can Play Music Without Leaving the Terminal

Siren is, without a doubt, one of the best terminal-based music players for Linux and other Unix-like systems.

If you want to work without distractions (other than those of the aural variety), you can minimize the terminal window so it stays out of your way. But Siren looks fantastic when you arrange it with other terminals or use it as part of a dedicated tiling window manager such as Regolith.