With mpq you can view and manipulate songs in the mpd queue. These are
the default key bindings; customize by modifying keys.go
:
$ mpq -h
Key bindings:
q : quit
enter : play highlighted song
space : toggle play/pause
up, k : highlight previous song
down, j : highlight next song
alt+up/k : move highlighted song up
alt+down/j: move highlighted song down
left, h : seek backwards 5s
right, l : seek forwards 5s
d : remove song from queue
c : clear queue
git clone git@github.com:codesoap/mpq.git
cd mpq
go install
# The binary is now at ~/go/bin/mpq. Add ~/go/bin to your $PATH to run
# go programs easily:
mpq
I use a little script called mqa
(music queue add). It requires mpc
and fzf
; use tab
to select songs and enter
to add them to the
queue:
#!/usr/bin/env sh
alias mpc='mpc -f "%file%\t[%artist% - ][%album% [#[##%track%#] ]- ][%title%|%file%]"'
songs=$(mpc listall | sort -V)
printf '%s\n' "$songs" \
| awk -F'\t' '{print $2}' \
| fzf --no-sort --reverse -m \
| while read selection
do
printf '%s\n' "$songs" | awk -F'\t' "\$2==\"$selection\" {print \$1; exit}"
done | mpc add
songmem is another tool I wrote to store and analyze the songs I listen to. It can be used, for example, to find recommendations for the last heard song and add them to the queue with a script like this:
#!/usr/bin/env sh
selection=$(songmem --suggestions "$(songmem | head -n1)" | fzf)
artist="$(printf '%s' "$selection" | awk -F ' - ' '{print $1}')"
title="$(printf '%s' "$selection" | awk '{i=index($0, " - "); print substr($0, i+3)}')"
mpc findadd artist "$artist" title "$title"
Other tasks, like disabling the repeat mode, I just do with mpc
. My
config is usually this:
mpc consume on
mpc crossfade 0
mpc random off
mpc repeat off
mpc replaygain album
mpc single off
mpc volume 100