Blame


1 a9fc4552 2022-02-17 op # amused
2 a9fc4552 2022-02-17 op
3 09223daf 2022-06-11 op amused is a music player. It doesn't have any amazing features
4 09223daf 2022-06-11 op built-in, on the contrary: it's quite minimal (a fancy word to say
5 09223daf 2022-06-11 op that does very little.) It composes well, or aims to do so, with
6 09223daf 2022-06-11 op other tools thought.
7 a9fc4552 2022-02-17 op
8 bbf64a33 2022-02-17 op The main feature is that audio decoding runs in a sandboxed process
9 bbf64a33 2022-02-17 op under `pledge("stdio recvfd audio")`. Oh, by the way, amused targets
10 213aea73 2022-02-17 op OpenBSD only: it relies its make infrastructure to build, uses various
11 213aea73 2022-02-17 op cool stuff from its libc and can output only to sndio.
12 a9fc4552 2022-02-17 op
13 213aea73 2022-02-17 op (I *think* it's possible to compile it on other UNIX-like systems too by
14 213aea73 2022-02-17 op providing shims for some non-portable functions -- hello libbsd -- and
15 950a8581 2022-03-25 op assuming that sndio is available. And bundling a copy of imsg.c too)
16 a9fc4552 2022-02-17 op
17 a9fc4552 2022-02-17 op
18 09223daf 2022-06-11 op ## Building
19 a9fc4552 2022-02-17 op
20 59b6f826 2022-02-17 op $ make
21 09223daf 2022-06-11 op $ make install # eventually
22 a9fc4552 2022-02-17 op
23 09223daf 2022-06-11 op Release tarballs installs into `/usr/local/`, git checkouts installs
24 09223daf 2022-06-11 op into `~/bin` (idea and implementation stolen from got, thanks stsp!)
25 a9fc4552 2022-02-17 op
26 09223daf 2022-06-11 op It needs the following packages from ports:
27 09223daf 2022-06-11 op
28 a9fc4552 2022-02-17 op - flac
29 0ea0da1e 2022-02-23 op - libmpg123
30 a9fc4552 2022-02-17 op - libvorbis
31 a9fc4552 2022-02-17 op - opusfile
32 a9fc4552 2022-02-17 op
33 09223daf 2022-06-11 op It's available on the OpenBSD port tree starting with 7.1
34 a9fc4552 2022-02-17 op
35 a9fc4552 2022-02-17 op
36 09223daf 2022-06-11 op ## Usage
37 3c18f438 2022-03-13 op
38 a9fc4552 2022-02-17 op The fine man page has all nitty gritty details, but the TL;DR is
39 a9fc4552 2022-02-17 op
40 a9fc4552 2022-02-17 op - enqueue music with `amused add files...`
41 a9fc4552 2022-02-17 op - control the playback with `amused play|pause|toggle|stop` etc
42 a9fc4552 2022-02-17 op
43 213aea73 2022-02-17 op amused tries to be usable in composition with other more familiar tools
44 213aea73 2022-02-17 op instead of providing everything itself. For instance, there isn't a
45 213aea73 2022-02-17 op command to remove an item from the playlist, or shuffle it; instead,
46 213aea73 2022-02-17 op standard UNIX tools can be used:
47 a9fc4552 2022-02-17 op
48 da045d77 2022-02-17 op $ amused show | grep -vi kobayashi | amused load
49 da045d77 2022-02-17 op $ amused show | sort -R | amused load
50 da045d77 2022-02-17 op $ amused show | sort | uniq | amused load
51 da045d77 2022-02-17 op
52 da045d77 2022-02-17 op It also doesn't provide any means to manage a music collection. It
53 da045d77 2022-02-17 op plays nice with find(1) however:
54 da045d77 2022-02-17 op
55 09223daf 2022-06-11 op find . | amused load
56 a9fc4552 2022-02-17 op
57 a1e58086 2022-03-12 op I wrote a bit more about the background of amused [in a blog
58 a1e58086 2022-03-12 op post](https://www.omarpolo.com/post/amused.html).