shithub: riscv

ref: 1e9bb75854a336de2a63f9a4fb4d67dd75d682f1
dir: /sys/man/1/zuke/

View raw version
.TH ZUKE 1
.SH NAME
mkplist, zuke \- graphical music player
.SH SYNOPSIS
.B audio/mkplist
[
.B -s
]
.I directory/file/URL [...]
.br
.B audio/zuke
[
.B -s
] [
.B -c
.I columns
]
.SH DESCRIPTION
.PP
.I Zuke
is a graphical music player that reads a playlist from standard input
and presents an interface to play music.
.PP
Playlists are generated by
.IR mkplist ,
which accepts files, directories, and URLs as its arguments,
and writes the resulting playlist to standard output. Option
.B -s
enables "simple" sorting of the entries of the playlist, where only
full paths are compared.
.PP
Formats supported by
.I zuke
are: MP3, OGG/Vorbis, FLAC, and WAV.  With additional programs, Opus,
modules and M4A (AAC) can be played.
.I Zuke
also supports network streams, such as IceCast.
Option
.B -s
enables ``shuffle'' mode on start.
.PP
The columns (and their order) displayed can be changed by passing the
following letters along
.B -c
option:
.RS
.TF "c"
.TP
.B A
Artist
.TP
.B a
Album
.TP
.B b
File basename
.TP
.B t
Title
.TP
.B D
Duration
.TP
.B d
Date
.TP
.B T
Track number
.TP
.B p
Full file path
.PD
.RE
.PP
By default, artist, album, title, and duration are displayed, which
corresponds to
.B "-c AatD."
.PP
.I Zuke
can be controlled with a mouse, keyboard, and plumber.  Button 1
selects a track, button 2 plays a track.  Clicking on the seek bar
changes the playback position accordingly.  On the right of the seek
bar, current position, track duration and volume are displayed.  ``∫''
is shown if shuffle mode is enabled.
.PP
Plumbing a file with
.B .plist
extension loads the playlist in
.IR zuke .
This is useful with a collection of playlists displayed aside.
.PP
.I Zuke
provides a number of keyboard controls:
.RS
.TF "↑ ↓ Pgup Pgdown Home End"
.TP
.B -
Lower volume.
.TP
.B + =
Increase volume.
.TP
.B ↑ ↓ Pgup Pgdown Home End
Move within the playlist.
.TP
.B o i
Jump to current track.
.TP
.B Enter
Play selected track.
.TP
.B > b
Skip to next track.
.TP
.B < z
Skip to previous track.
.TP
.B ← →
Seek 10 seconds back/forward.
.TP
.B , .
Seek 60 seconds back/forward.
.TP
.B v
Stop
.TP
.B p c Space
Pause/Resume.
.TP
.B r
Toggle ``repeat one''.
.TP
.B g
Switch between no gain, track gain, and album gain applied.
.TP
.B s
Toggle ``shuffle''.
.TP
.B q Del
Quit.
.TP
.B /
Search forward.
.TP
.B ?
Search backwards.
.TP
.B n
Repeat search forward.
.TP
.B N
Repeat search backwards.
.RE
.PD
.PP
Typing any digit initiates a "Seek to" prompt. Minutes, hours and
seconds can be separated with a colon, if needed, otherwise the
position is taken as seconds from the beginning of the track.
.PP
.I Zuke
can be controlled by emulating key presses via the plumber port
.IR audio .
.PP
Files present in the current playlist can be plumbed too, and will be
played immediately.
.PP
When a new track starts playing,
.I zuke
will write its tags to
.BR stdout ,
each column separated by a tab character.  If playback is stopped, an
empty line is written instead.  This can be used for scrobbling or
displaying the current track in another window.
.SH EXAMPLES
Generate a playlist:
.IP
.EX
audio/mkplist /usr/glenda/music \\
	file.mp3 \\
	http://anonradio.net:8000/anonradio > music.plist
.EE
.PP
Playing a playlist:
.IP
.EX
audio/zuke < music.plist
.EE
.PP
Append to a playlist:
.IP
.EX
audio/mkplist /n/moremusic >> music.plist
.EE
.PP
Skip to the next track using plumber:
.IP
.EX
plumb -d audio 'key >'
.EE
.SH SEE ALSO
.IR play (1)
.SH SOURCE
.B /sys/src/cmd/audio/zuke
.br
.B /sys/src/cmd/audio/libtags
.SH HISTORY
.I Zuke
first appeared in 9front (April, 2021).