Home About
About
Cancel

About

MusicPlayerPlus

MusicPlayerPlus is a character-based console and terminal window music player

  • plus Beets media library management with preconfigured plugins
  • plus Character-based spectrum visualizer mppcava
  • plus Music Player Daemon and ALSA configuration management
  • plus Mopidy Music Server with preconfigured extensions
  • plus Navidrome Music Server/Streamer automated install/config/service
  • plus Bliss acoustic analysis and song similarity database
  • plus Essentia acoustic analysis and metadata extraction
  • plus YAMS MPD Last.fm scrobbler running as a service
  • plus Media fuzzy finder using fzf
  • plus Album cover art download
  • plus Bandcamp collections download
  • plus Soundcloud favorites download
  • plus Discogs user collection to markdown generator
  • plus Automated setup, import and organization, metadata, playlists, …

Overview

The MusicPlayerPlus project provides integration and extension of several audio packages designed to stream and play music. MusicPlayerPlus interacts with the Music Player Daemon (MPD). Outputs from the MPD streaming audio server are used as MusicPlayerPlus inputs for playback and visualization. MusicPlayerPlus components are used to manage and control MPD and ALSA configuration.

MusicPlayerPlus integrations and extensions are primarily aimed at the character-based terminal user. They enable an easy to use seamlessly integrated control of audio streaming, playing, music library management, and visualization in a lightweight character-based environment.

Audio streaming is provided by the Music Player Daemon (MPD). At the core of MusicPlayerPlus is the mpplus command which acts as a front-end for a variety of terminal and/or tmux sessions.

The mpplus command can be used to invoke:

  • The lightweight character-based MPD client, mpcplus
  • One or more terminal emulators running an MPD client and visualizer
  • A tmux session using the tmux session manager tmuxp
  • A spectrum visualizer
  • A download of album cover art for every album in a music library
  • Conversion of all WAV/M4A format media in a music library to MP3 format media
  • An import of a music library to the Beets media library manager
  • A download of lyrics for all songs in the music library without lyrics
  • Analysis and retrieval of audio-based information for media matching a query
  • YAMS MPD Last.fm scrobbler activation
  • Any MPD client the user wishes to run
  • One of several asciimatics animations optionally accompanied by audio
  • A fuzzy listing and searching of the audio library using fzf

[Note:] Typical use of mpplus as a music player and spectrum visualizer will invoke a tmux session to display the MPD client, spectrum visualizer, and album cover art all in a single terminal window. MusicPlayerPlus configures tmux with a custom key binding to exit tmux sessions. To exit an mpplus tmux session, the Alt-x key binding can be used.

Integration is provided for:

  • mpd, the Music Player Daemon
  • mpcplus, character-based MPD client
  • beets, media library management system
  • essentia, acoustic metadata analysis and extraction
  • mopidy, music server with cool extensions
  • navidrome, self-hosted music server and streamer
  • yams, MPD scrobbler for Last.fm
  • cava, an audio spectrum visualizer
  • mplayer, a media player
  • fzf, interactive fuzzy finder
  • asciimatics - automatically display a variety of character-based animation effects
  • asciinema - automatically create ascii character-based video clips
  • tmux, a terminal multiplexer
  • tmuxp, a tmux session manager
  • Enhanced key bindings for extended control of terminal windows and tmux sessions
  • Several terminal emulators
    • kitty (the default MusicPlayerPlus terminal emulator)
    • cool-retro-term
    • gnome-terminal
    • tilix

The goal of MusicPlayerPlus is to provide the user with a sophisticated set of complex music library tools that can be integrated and managed in a fairly simple to understand fashion. Also, to make some cool looking powerful stuff happen from the command-line in a character-based environment.