.gitignorecommits | blame
CHANGEScommits | blame
LICENSEcommits | blame
Makefilecommits | blame
README.mdcommits | blame
amused-dist.txtcommits | blame
amused-version.mkcommits | blame
amused.1commits | blame
amused.ccommits | blame
amused.hcommits | blame
control.ccommits | blame
control.hcommits | blame
ctl.ccommits | blame
log.ccommits | blame
log.hcommits | blame
player.ccommits | blame
player_123.ccommits | blame
player_flac.ccommits | blame
player_oggvorbis.ccommits | blame
player_opus.ccommits | blame
playlist.ccommits | blame
playlist.hcommits | blame
xmalloc.ccommits | blame
xmalloc.hcommits | blame

# amused

amused is a music player.  It doesn't have any amazing features
built-in, on the contrary: it's quite minimal (a fancy word to say
that does very little.)  It composes well, or aims to do so, with
other tools thought.

The main feature is that audio decoding runs in a sandboxed process
under `pledge("stdio recvfd audio")`.  Oh, by the way, amused targets
OpenBSD only: it relies its make infrastructure to build, uses various
cool stuff from its libc and can output only to sndio.

(I *think* it's possible to compile it on other UNIX-like systems too by
providing shims for some non-portable functions -- hello libbsd -- and
assuming that sndio is available.  And bundling a copy of imsg.c too)

## Building

	$ make
	$ make install # eventually

Release tarballs installs into `/usr/local/`, git checkouts installs
into `~/bin` (idea and implementation stolen from got, thanks stsp!)

It needs the following packages from ports:

 - flac
 - libmpg123
 - libvorbis
 - opusfile

It's available on the OpenBSD port tree starting with 7.1

## Usage

The fine man page has all nitty gritty details, but the TL;DR is

 - enqueue music with `amused add files...`
 - control the playback with `amused play|pause|toggle|stop` etc

amused tries to be usable in composition with other more familiar tools
instead of providing everything itself.  For instance, there isn't a
command to remove an item from the playlist, or shuffle it; instead,
standard UNIX tools can be used:

	$ amused show | grep -vi kobayashi | amused load
	$ amused show | sort -R | amused load
	$ amused show | sort | uniq | amused load

It also doesn't provide any means to manage a music collection.  It
plays nice with find(1) however:

	find . | amused load

I wrote a bit more about the background of amused [in a blog