branches: master
Clone
clone: git://shithub.us/sigrid/zuke gits://shithub.us/sigrid/zuke
push: hjgit://shithub.us/sigrid/zuke
patches to: sigrid on 9gridchan, or
[email protected]
Last commit
About
# zuke
*ZUKE IS INCLUDED IN 9FRONT*
*THIS REPO IS LEFT AS HISTORY*
A music player for Plan 9.
![screenshot](zuke.jpg)
With some stuff one expects from a music player:
* gapless playback
* seeking
* playlists
* good metadata support
* basic livestreams (ie IceCast) support
## 2020/03/04
The module music decoder of choice is now [audio/moddec, a port of
DUMB](https://git.sr.ht/~ft/dumb`). Please install it if you want to
continue playing those mods.
## 2020/12/22
New playlist format. Zuke still will load old format and you can
convert to the new one like so:
audio/zuke -G <old.plist >new.plist
## Text-based alternative
Behold, a music player in rc, with keyboard control, plumbing, and a
playlist that can be live-edited(!), by umbraticus:
[music](http://runjimmyrunrunyoufuckerrun.com/rc/music).
## Installing
Install [libtags](https://git.sr.ht/~ft/libtags) first.
Clone the repo, do `mk install`.
Zuke comes with two programs. One is `audio/zuke`, which is the player
itself. The other one is `audio/mkplist`, it's used to make playlists
that are then fed to `audio/zuke`'s stdin:
audio/mkplist /n/somefs/dir /n/otherfs/file.mp3 http://stream.nauticradio.net:14280/ > $home/music.plist
audio/zuke < $home/music.plist
Of course, one can combine these steps into one:
audio/mkplist /n/music | audio/zuke
## Plumbing
Plumbing music files and playlists is supported via "audio" port. New
files can't be added to the current playlist just yet.
type is text
data matches '.+\.(mp3|MP3|ogg|OGG|flac|FLAC|wav|WAV|au|AU|mid|MID|mus|MUS|m3u|M3U|pls|PLS|it|IT|plist)$'
arg isfile $0
plumb to audio
plumb start window -scroll play $file
To disable plumbing, execute before launching zuke:
bind /dev/null /mnt/plumb/audio
To remote control zuke, you can emulate pressing keys through plumber
(ugh!):
plumb -d audio 'key >' # will skip to the next song
## Formats
The ones supported with stock 9front: mp3, ogg/vorbis, flac, wav.
To play opus, visit [this](http://nopenopenope.net/posts/audcomp).
To play music mods, install [audio/moddec](https://git.sr.ht/~ft/dumb).
To play m4a, install [AAC decoder](https://git.sr.ht/~ft/faad2) and
[mcfs](https://git.sr.ht/~ft/mcfs).
## Theme
To change the default theme install
[picker](https://git.sr.ht/~ft/picker) and run it using right mouse
button menu in zuke. `snarf all` and save it to a file, then point to
that file using an environment variable (you can put it into
`$home/lib/profile`):
```
theme=.../my.theme
```
## Columns to display
Zuke has an optional argument `-c` that specifies which columns to
display, the default is `-c AatD`.
A artist
a album
b file basename
t title
D duration
d date
T track number
p full file path
With `-s` zuke will start in shuffled mode.
## Hot keys
- volume down
+ = volume up
left/right seek backwards/forward (10 seconds step)
, . seek backwards/forward (one minute step)
up down pgup pgdn home end move within the playlist
o i move to the currently playing track
enter play the selected track
> b skip next
< z skip prev
v stop
p c space pause/resume
s toggle shuffle
q/del quit
/ search forward
? search backwards
n repeat search forward
N repeat search backwards
## Mouse
left - select a track
right - menu
middle - play the track under the pointer