spotatui ~ Standalone Terminal Player


spotatui plays Spotify natively and streams YouTube, your local files, Subsonic or Navidrome and 30,000+ internet radio stations from a single keyboard-driven player. Spotify is optional. So is the AI DJ.

Features:

  • Multiple sources — Spotify optional. Play from Spotify, Local Files, a Subsonic/Navidrome server, Internet Radio, YouTube, or Qobuz. The free sources need no Spotify account; press d to switch between them at any time.
  • Native streaming. Play Spotify audio directly, no official app or spotifyd required — spotatui appears as its own Spotify Connect device (Premium required).
  • Synced lyrics. Line-by-line lyrics that follow playback.
  • Real-time audio visualizer. A system-wide FFT visualizer (press v) that reacts to whatever is playing.
  • Cross-source play queue. Press z on any track to queue it — the queue plays across every source before your current context resumes.
  • Lua plugins. Extend spotatui with event hooks, commands, keybindings, popups, and theming.
  • Listening history & recap. spotatui keeps a local play history and can generate a shareable HTML recap (spotatui history recap).
  • Full CLI. Most of what the UI does is scriptable — playback, search, playlists, shell completions. Run spotatui --help.
  • Lightweight. ~78 MB RAM while streaming, versus a full Electron client. See Performance.

spotatui.com
github.com/LargeModGames/spotatui

Tonbandfetzen ~ Audio From Plain Text


Tonbandfetzen is a collection of command-line tools that allow you to compose music based on audio fragments generated from plain text input. It contains:

  • tz mel – generate sound fragments from plain text
  • tz guitar – read guitar tablature
  • tz stick – concatenate audio data
  • tz stack – superimpose audio data
  • tz stretch – rescale audio data
  • tz repeat – loop audio data
  • tz trim – strip leading and trailing silence
  • tz mono – unzip audio channels
  • tz harmonics – show spectra of wave samples
  • tz inspect – show information on audio file
  • tz riff2aiff – convert .wav(e) into .aif(f) files
  • tz aiff2riff – convert .aif(f) into .wav(e) files
  • tz tag – add ID3v2 metadata to .wav(e) files
  • tz play – generate and play sound fragments

github.com/janberges/Tonbandfetzen

Dynamic Audio Normalizer ~ Advanced Normalization


Dynamic Audio Normalizer is a library for advanced audio normalization purposes. It applies a certain amount of gain to the input audio in order to bring its peak magnitude to a target level (e.g. 0 dBFS). However, in contrast to more “simple” normalization algorithms, the Dynamic Audio Normalizer dynamically re-adjusts the gain factor to the input audio. This allows for applying extra gain to the “quiet” sections of the audio while avoiding distortions or clipping the “loud” sections. In other words: The Dynamic Audio Normalizer will “even out” the volume of quiet and loud sections, in the sense that the volume of each section is brought to the same target level. Note, however, that the Dynamic Audio Normalizer achieves this goal without applying “dynamic range compressing”. It will retain 100% of the dynamic range within each “local” region of the audio file.

The Dynamic Audio Normalizer is available as a small standalone command-line utility and also as an effect in the SoX audio processor as well as in the FFmpeg audio/video converter. Furthermore, it can be integrated into your favorite DAW (digital audio workstation), as a VST plug-in, or into your favorite media player, as a Winamp plug-in. Last but not least, the “core” library can be integrated into custom applications easily, thanks to a straightforward API (application programming interface).

github.com/lordmulder/DynamicAudioNormalizer

sonoscli ~ Sonos Command Line Interface


sonoscli is a modern Go CLI to control Sonos speakers over your local network (UPnP/SOAP).

Features:

  • Reliable discovery: SSDP + topology (ZoneGroupTopology.GetZoneGroupState) with subnet scan fallback.
  • Coordinator-aware control: target any room; commands go to the group coordinator automatically.
  • Playback controls: play/pause/stop/next/prev, plus play-uri, linein, and tv.
  • Grouping: inspect groups, join/unjoin, party mode, dissolve groups, and solo a room.
  • Queue: list/play/remove/clear queue entries.
  • Favorites: list and play Sonos Favorites by index or title.
  • Scenes: save/apply presets (grouping + per-room volume/mute).
  • Spotify:
    • Enqueue/play Spotify share links or canonical URIs (no Spotify credentials required).
    • Search Spotify via SMAPI (Sonos Music API; uses your linked service in Sonos).
    • Optional Spotify Web API search (client credentials) if you want it.
  • YouTube handoff: resolve a YouTube URL with yt-dlp and hand the direct audio stream to Sonos.
  • Smart URL streaming: play-url runs a short-lived local MP3 proxy for YouTube, YouTube Music playlists, podcasts, radio streams, SoundCloud-style pages, and other URLs.
  • Live events: watch subscribes to AVTransport + RenderingControl and prints changes.
  • Scriptable output: --format plain|json|tsv plus --debug tracing.

This is not an official Sonos project.

github.com/steipete/sonoscli
sourceforge.net/projects/sonoscli.mirror

tracksplit ~ CLI Track Splitter


tracksplit is a simple command line utility that splits a WAV audio file into respective audio tracks based on periods of silence in the audio.

github.com/sp4rkie/tracksplit

Foobar2000 ~ ctrfoobar2000 script


Control Foobar2000 with python + Command line

usage: control.py [-h] [-p] [-t PLAY_TRACK] [-s] [-P] [-n] [-r] [-R]
[-V VOLUME] [-m] [-i] [-f [ADDFOLDER [ADDFOLDER ...]]]
[-fi [ADDFILES [ADDFILES ...]]]
[-F [ADDFOLDERPLAY [ADDFOLDERPLAY ...]]]
[-Fi [ADDFILESPLAY [ADDFILESPLAY ...]]] [-c]
[-d [DEL_TRACK [DEL_TRACK ...]]] [-l] [-b]
[-S TYPE_CONTROLLER] [-H HOST] [-O PORT] [-?] [-g]
[-x [CHANGE_CONFIG [CHANGE_CONFIG ...]]] [-T SECTION]
[-E OPTION OPTION] [-a DIR_ALIAS] [-v] [-L LEVEL_ALIAS]
[-z REPEAT] [--repeat-off] [--repeat-playlist]
[--repeat-track] [--repeat-random] [--shuffle-track]
[--shuffle-album] [--shuffle-folder] [--seek SEEK]
[--root ROOT]
optional arguments:
-h, --help show this help message and exit
-p, --play Play Playback
-t PLAY_TRACK, --play-track PLAY_TRACK
Play Playback Track No
-s, --stop Stop Playback
-P, --pause Pause Playback
-n, --next Next Play
-r, --previous Previous Play
-R, --random Play Random
-V VOLUME, --volume VOLUME
Set Volume, range is -100 <= value <= 0
-m, --mute Mute Volume
-i, --info Get info current Playing
-f [ADDFOLDER [ADDFOLDER ...]], --addfolder [ADDFOLDER [ADDFOLDER ...]]
Add Remote Folder Queue [HTTP]
-fi [ADDFILES [ADDFILES ...]], --addfiles [ADDFILES [ADDFILES ...]]
Add Remote Files Queue [HTTP]
-F [ADDFOLDERPLAY [ADDFOLDERPLAY ...]], --addfolderplay [ADDFOLDERPLAY [ADDFOLDERPLAY ...]]
Add Remote Folder Queue & Play it [HTTP]
-Fi [ADDFILESPLAY [ADDFILESPLAY ...]], --addfilesplay [ADDFILESPLAY [ADDFILESPLAY ...]]
Add Remote Folder Queue & Play it [HTTP]
-c, --clear-playlist Clear Current Playlist [HTTP]
-d [DEL_TRACK [DEL_TRACK ...]], --del-track [DEL_TRACK [DEL_TRACK ...]]
Delete Playlist [HTTP], example: foobar -d 1 2 3
-l, --list List Playlist
-b, --browser Browser Library
-S TYPE_CONTROLLER, --type-controller TYPE_CONTROLLER
Set Type Of Controller [com,http]
-H HOST, --host HOST Remote Host control Address [HTTP]
-O PORT, --port PORT Remote Port control Address [HTTP]
-?, --usage Print All Help
-g, --read-config Read config file
-x [CHANGE_CONFIG [CHANGE_CONFIG ...]], --change-config [CHANGE_CONFIG [CHANGE_CONFIG ...]]
Set Change config. format: section#option#value
-T SECTION, --section SECTION
Set Section Config
-E OPTION OPTION, --option OPTION OPTION
Set Option Config
-a DIR_ALIAS, --dir-alias DIR_ALIAS
Root of Directory Alias On Server
-v, --version -v = show version | -vv = verbosity process
-L LEVEL_ALIAS, --level-alias LEVEL_ALIAS
Level Root of Directory Alias On Server
-z REPEAT, --repeat REPEAT
Repeat 0 = Default (repeat off) | 1 = Repeat Playlist
| 2 = Repeat Track | 3 = Random Play | 4 = Shuffle
Track | 5 = Shuffle Album | 6 = Shuffle Folders
--repeat-off Repeat Off
--repeat-playlist Repeat Playlist
--repeat-track Repeat Track
--repeat-random Random Play
--shuffle-track Shuffle Track
--shuffle-album Shuffle Album
--shuffle-folder Shuffle by Folder
--seek SEEK Seek for a second
--root ROOT Root path / Directory Containt Music files, this is
for One Folder Files Selected

github.com/cumulus13/ctrfoobar2000

discogs-cli ~ Discogs Terminal Access


discogs-cli bring the Discogs.com database to your terminal. Perform the following actions from your terminal:

  • Search artists, releases, labels
  • View artist information and their releases
  • View label details and its associated releases
  • View a release in detail

github.com/jesseward/discogs-cli

tz-player ~ Command Line Music Player


A clean, keyboard-driven music player for the terminal.

tz-player is a simple TUI music player built with Python and powered by VLC. If VLC can play it, tz-player can play it.

No streaming. No accounts. No background services. Just your music, in your terminal.

github.com/taggedzi/tz-player

shntool ~ WAVE Processing & Reporting Utility


shntool is a multi-purpose WAVE data processing and reporting utility. File formats are abstracted from its core, so it can process any file that contains WAVE data, compressed or not – provided there exists a format module to handle that particular file type.

shntool has native support for .wav files. If you want it to work with other lossless audio formats, you must have the appropriate helper program installed. The “Helper programs” section below contains links to helper programs for each format that shntool supports.

shnutils.freeshell.org/shntool
github.com/bayun/shntool

caudec ~ Multiprocess Audio Converter


caudec is a command-line utility that transcodes (converts) audio files from one format (codec) to another, among other things.

It leverages multi-core CPUs and runs multiple processes concurrently (one per file and per codec, and more than one thread per codec when it supports it). The objective is to hog the CPU as much and as long as possible. One strategy is to sort input files by size, so that the largest files potentially get more threads towards the end of the job.

Features:

  • Supported input formats / codecs: WAV, AIFF, CAF, FLAC, WavPack, Monkey’s Audio, ALAC.
  • Supported output formats / codecs: all of the above, as well as LossyWAV / LossyFLAC, MP3, AAC (.m4a), Ogg Vorbis, Opus.
  • Supported platforms: macOS, Linux.
  • Transcoding to several different codecs at once is possible. In that case, decoding of input files is done only once.
  • Metadata is preserved (as much as possible) from one codec to another.
  • Artwork can be embedded into each file, and / or copied to the output directory. It can be done selectively (e.g. embed and / or copy one image for lossless files, and another image for lossy files).
  • Audio can be resampled (e.g. 48kHz to 44.1kHz) and downmixed (e.g. 6 channels to stereo). A profile can be provided to set a maximum value for the number of channels, bit depth and sampling rate. When a profile is provided, the source will only be altered after decoding and before encoding, if some metric of the source is above the given profile.
  • Multiprocess ReplayGain scanner for FLAC, WavPack, MP3, Ogg Vorbis, Opus.
  • Ability to hard link lossy files to a different directory when encoding to WavPack Hybrid. The point is to have two libraries that takes the storage of just one, with a lossy collection that has its own root directory and that’s easy to drag and drop to a device such as a smartphone or a Digital Audio Player (DAP).
  • Ability to touch files and album directories using metadata to reflect the music’s release date and duration (see example below).

github.com/gcocatre/caudec

Rusty Pipes ~ Virtual Pipe Organ


Rusty Pipes is a digital organ instrument compatible with GrandOrgue sample sets. It features both graphical and text-based user interface, can be controlled via MIDI and play back MIDI files. Rusty Pipes can stream samples from disk instead of load them into RAM, though a RAM precache mode similar to GrandOrgue and Hauptwerk is available too.

rusty-pipes.com
github.com/dividebysandwich/rusty-pipes
en.wikipedia.org/wiki/GrandOrgue

Partiels ~ Audio Analysis Application


Partiels is an audio analysis application that allows you to explore the content and characteristics of sounds.

Features:

Partiels allows analysis of one or several audio files using Vamp plug-ins loading data files, visualizing, editing, organizing, and exporting the results as images or text files that can be used in other applications such as Max, Pure Data, Open Music, etc.

  • Windows, Mac & Linux support
  • Multiformat support
  • Multichannel support
  • Multiaudiofile support
  • Analyzing audio with Vamp plug-ins
  • Visualizing results as spectrogram, lines, and markers
  • Textual and graphical editing of results 
  • Organizing and ordering analyses in groups
  • Exporting results to PNG, JPEG, CSV, LAB, JSON, CUE, REAPER & SDIF formats
  • Loading results from CSV, LAB, JSON, CUE & SDIF formats
  • Batch processing
  • Command line interface to analyze, export, and convert results
  • Consolidating documents for sharing

Alongside Partiels, a wide range of analyses based on audio engines developed at IRCAM and outside are ported to Vamp plug-ins. These plug-ins allow you to perform FFT, LPC, transient, fundamental, formant, tempo, TTS and many other analyses. You can also find a large number of analysis plug-ins on the Vamp plug-ins website.

github.com/Ircam-Partiels
www.vamp-plugins.org