Blame


1 3baa2617 2022-02-16 op .\" Copyright (c) 2022 Omar Polo <op@openbsd.org>
2 3baa2617 2022-02-16 op .\"
3 3baa2617 2022-02-16 op .\" Permission to use, copy, modify, and distribute this software for any
4 3baa2617 2022-02-16 op .\" purpose with or without fee is hereby granted, provided that the above
5 3baa2617 2022-02-16 op .\" copyright notice and this permission notice appear in all copies.
6 3baa2617 2022-02-16 op .\"
7 3baa2617 2022-02-16 op .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8 3baa2617 2022-02-16 op .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9 3baa2617 2022-02-16 op .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10 3baa2617 2022-02-16 op .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11 3baa2617 2022-02-16 op .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12 3baa2617 2022-02-16 op .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13 3baa2617 2022-02-16 op .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14 3baa2617 2022-02-16 op .\"
15 18e7b0bb 2022-07-09 op .Dd July 9, 2022
16 3baa2617 2022-02-16 op .Dt AMUSED 1
17 3baa2617 2022-02-16 op .Os
18 3baa2617 2022-02-16 op .Sh NAME
19 3baa2617 2022-02-16 op .Nm amused
20 3baa2617 2022-02-16 op .Nd music player
21 3baa2617 2022-02-16 op .Sh SYNOPSIS
22 3baa2617 2022-02-16 op .Nm
23 3baa2617 2022-02-16 op .Op Fl dv
24 3baa2617 2022-02-16 op .Op Fl s Ar socket
25 1d673950 2022-03-03 op .Oo
26 3baa2617 2022-02-16 op .Ar command
27 3baa2617 2022-02-16 op .Op Ar argument ...
28 1d673950 2022-03-03 op .Oc
29 3baa2617 2022-02-16 op .Sh DESCRIPTION
30 3baa2617 2022-02-16 op .Nm
31 b557564c 2022-07-13 op is a music player daemon and command-line utility to play music.
32 a6d90fb2 2022-05-10 op The server is started automatically in the background on demand.
33 3baa2617 2022-02-16 op .Pp
34 3baa2617 2022-02-16 op The following options are available:
35 f474712b 2022-05-09 op .Bl -tag -width Ds
36 3baa2617 2022-02-16 op .It Fl d
37 b0d2a966 2022-05-19 op Do not daemonize:
38 3baa2617 2022-02-16 op .Nm
39 161abbe5 2022-03-03 op will run in the foreground and log to standard error.
40 1d673950 2022-03-03 op It's ignored if any commands are given on the command line or if the
41 a6d90fb2 2022-05-10 op server is already running.
42 3baa2617 2022-02-16 op .It Fl v
43 3baa2617 2022-02-16 op Produce more verbose output.
44 3baa2617 2022-02-16 op .It Fl s Ar socket
45 3baa2617 2022-02-16 op Use
46 3baa2617 2022-02-16 op .Ar socket
47 3baa2617 2022-02-16 op instead of the default
48 3baa2617 2022-02-16 op .Pa /tmp/amused-$UID
49 3baa2617 2022-02-16 op to communicate with the daemon.
50 1d673950 2022-03-03 op .It Ar command Op Ar argument ...
51 1d673950 2022-03-03 op Specify the command to run.
52 18282bc0 2022-03-09 op If no commands are specified,
53 1d673950 2022-03-03 op .Ic status
54 18282bc0 2022-03-09 op is assumed.
55 3baa2617 2022-02-16 op .El
56 3baa2617 2022-02-16 op .Pp
57 3baa2617 2022-02-16 op The following commands are available:
58 26caf091 2022-05-14 op .Bl -tag -width Ds
59 3baa2617 2022-02-16 op .It Cm add Ar
60 3baa2617 2022-02-16 op Enqueue the given files.
61 1eae758b 2022-07-13 op .It Cm consume Op Cm on|off
62 9fb94242 2022-07-13 op When consume mode is enabled the tracks are removed from the playlist
63 9fb94242 2022-07-13 op once played til the end.
64 3baa2617 2022-02-16 op .It Cm flush
65 3baa2617 2022-02-16 op Erase the playlist.
66 40aa47d9 2022-02-19 op .It Cm jump Ar pattern
67 40aa47d9 2022-02-19 op Play the first song in the playing queue that matches
68 40aa47d9 2022-02-19 op .Ar pattern
69 140010c2 2022-03-03 op .Pq a basic case-insensitive regexp .
70 ba7595d8 2022-02-17 op .It Cm load Op Ar file
71 ba7595d8 2022-02-17 op Load a playlist from
72 a1d30eac 2022-03-03 op .Ar file
73 a1d30eac 2022-03-03 op or standard input.
74 a6d90fb2 2022-05-10 op A playlist is a list of paths to music files given one per line
75 a6d90fb2 2022-05-10 op and optionally prefixed by
76 a1d30eac 2022-03-03 op .Sq > \&
77 a1d30eac 2022-03-03 op or two spaces.
78 a1d30eac 2022-03-03 op If the list was generated by
79 a1d30eac 2022-03-03 op .Nm
80 a1d30eac 2022-03-03 op .Ic show Fl p
81 b557564c 2022-07-13 op restore also the position in the playlist.
82 b557564c 2022-07-13 op Otherwise, if already playing something, try to match the currently
83 b557564c 2022-07-13 op song in the new list.
84 b557564c 2022-07-13 op Failing that, the playlist will be played from the first track
85 b557564c 2022-07-13 op onwards.
86 90122a37 2022-05-14 op .It Cm monitor Op Ar events
87 b557564c 2022-07-13 op Stop indefinitely and print when an event in the comma-separated list
88 b557564c 2022-07-13 op of
89 90122a37 2022-05-14 op .Ar events
90 fea2a1d2 2022-07-12 op happened, or all if not given.
91 fea2a1d2 2022-07-12 op The available
92 90122a37 2022-05-14 op .Ar events
93 fea2a1d2 2022-07-12 op are:
94 fea2a1d2 2022-07-12 op .Pp
95 6242c160 2022-07-13 op .Bl -tag -compact -width Ds
96 fea2a1d2 2022-07-12 op .It add
97 fea2a1d2 2022-07-12 op Added a song to the playlist.
98 6242c160 2022-07-13 op .It jump
99 6242c160 2022-07-13 op Jumped to a different song in the playlist.
100 fea2a1d2 2022-07-12 op .It load
101 fea2a1d2 2022-07-12 op Loaded a new playlist.
102 9fb94242 2022-07-13 op .It mode
103 6242c160 2022-07-13 op Mode changed
104 9fb94242 2022-07-13 op .Pq repeat or consume .
105 6242c160 2022-07-13 op .It next
106 6242c160 2022-07-13 op Advanced to next song.
107 6242c160 2022-07-13 op .It pause
108 6242c160 2022-07-13 op Paused.
109 6242c160 2022-07-13 op .It play
110 6242c160 2022-07-13 op Playing or resuming a song.
111 6242c160 2022-07-13 op .It prev
112 6242c160 2022-07-13 op Gone back to previous song.
113 fea2a1d2 2022-07-12 op .It seek
114 fea2a1d2 2022-07-12 op Seeked in the current track.
115 6242c160 2022-07-13 op .It stop
116 6242c160 2022-07-13 op Stopped.
117 fea2a1d2 2022-07-12 op .El
118 40aa47d9 2022-02-19 op .It Cm next
119 40aa47d9 2022-02-19 op Play the next song.
120 40aa47d9 2022-02-19 op .It Cm pause
121 40aa47d9 2022-02-19 op Pause the playback.
122 40aa47d9 2022-02-19 op .It Cm play
123 40aa47d9 2022-02-19 op Start or resume the playback.
124 40aa47d9 2022-02-19 op .It Cm prev
125 40aa47d9 2022-02-19 op Play the previous song.
126 1eae758b 2022-07-13 op .It Cm repeat one|all Op Cm on|off
127 a6d90fb2 2022-05-10 op Enable or disable the automatic repetition of the current track
128 3ec4f99d 2022-02-19 op .Pq Cm one
129 a6d90fb2 2022-05-10 op or of the whole playing queue
130 3ec4f99d 2022-02-19 op .Pq Cm all .
131 40aa47d9 2022-02-19 op .It Cm restart
132 40aa47d9 2022-02-19 op Rewind the current song to the beginning.
133 18e7b0bb 2022-07-09 op It's a shorthand for
134 18e7b0bb 2022-07-09 op .Nm
135 18e7b0bb 2022-07-09 op .Cm seek
136 18e7b0bb 2022-07-09 op .Ar 0 .
137 18e7b0bb 2022-07-09 op .It Cm seek Oo Oo Ar hours : Oc Ns Ar minutes : Oc Ns Ar seconds | Ar percentage Ns %
138 18e7b0bb 2022-07-09 op Seek by the specified amount of time into the current song.
139 18e7b0bb 2022-07-09 op If the argument is prefixed by either
140 18e7b0bb 2022-07-09 op .Sq +
141 18e7b0bb 2022-07-09 op or
142 18e7b0bb 2022-07-09 op .Sq -
143 b557564c 2022-07-13 op then the seek is relative to the current position.
144 40aa47d9 2022-02-19 op .It Cm show Op Fl p
145 b557564c 2022-07-13 op Show the playlist.
146 40aa47d9 2022-02-19 op With
147 40aa47d9 2022-02-19 op .Fl p
148 40aa47d9 2022-02-19 op it prints a
149 40aa47d9 2022-02-19 op .Dq pretty
150 40aa47d9 2022-02-19 op list with the current playing song prefixed by
151 40aa47d9 2022-02-19 op .Sq > \& .
152 57d97cc5 2022-07-10 op .It Cm status Op Fl f Ar format
153 40aa47d9 2022-02-19 op Print playback status and current song.
154 57d97cc5 2022-07-10 op The
155 57d97cc5 2022-07-10 op .Ar format
156 57d97cc5 2022-07-10 op is a comma-separated list of words that select the information to
157 57d97cc5 2022-07-10 op print, in order.
158 57d97cc5 2022-07-10 op It defaults to
159 57d97cc5 2022-07-10 op .Ev AMUSED_STATUS_FORMAT
160 57d97cc5 2022-07-10 op or to
161 57d97cc5 2022-07-10 op .Dq status,time,repeat
162 57d97cc5 2022-07-10 op if not defined.
163 57d97cc5 2022-07-10 op The format available are:
164 57d97cc5 2022-07-10 op .Pp
165 57d97cc5 2022-07-10 op .Bl -tag -compact -width time:percentage
166 57d97cc5 2022-07-10 op .It path
167 57d97cc5 2022-07-10 op Path of the current song
168 57d97cc5 2022-07-10 op .It repeat:oneline
169 57d97cc5 2022-07-10 op Repeat status in a single line.
170 57d97cc5 2022-07-10 op .It repeat
171 57d97cc5 2022-07-10 op Repeat all and repeat one status, one per line.
172 57d97cc5 2022-07-10 op .It status
173 57d97cc5 2022-07-10 op Playback status by the path to the current song.
174 57d97cc5 2022-07-10 op .It time:oneline
175 57d97cc5 2022-07-10 op Position and duration in a single line.
176 57d97cc5 2022-07-10 op .It time:percentage
177 57d97cc5 2022-07-10 op Percentage of the current position.
178 57d97cc5 2022-07-10 op .It time:raw
179 57d97cc5 2022-07-10 op Current position and duration in seconds.
180 57d97cc5 2022-07-10 op .It time
181 57d97cc5 2022-07-10 op Current position and duration in a human-readable format.
182 57d97cc5 2022-07-10 op .El
183 40aa47d9 2022-02-19 op .It Cm stop
184 40aa47d9 2022-02-19 op Stop the music player.
185 40aa47d9 2022-02-19 op .It Cm toggle
186 40aa47d9 2022-02-19 op Play/pause the playback.
187 3baa2617 2022-02-16 op .El
188 cfb00927 2022-02-17 op .Pp
189 129b80cf 2022-07-09 op Commands can be abbreviated to a unique prefix, for example
190 b25bcbd1 2022-02-19 op .Sq rep
191 cfb00927 2022-02-17 op can be given instead of
192 b25bcbd1 2022-02-19 op .Sq repeat .
193 4d78a5af 2022-06-12 op .Pp
194 4d78a5af 2022-06-12 op .Nm
195 84856392 2022-07-13 op automatically skips and removes from the playlist non-regular files.
196 47e75b09 2022-07-10 op Files with non recognized audio format are skippend and removed from
197 47e75b09 2022-07-10 op the playlist too.
198 57d97cc5 2022-07-10 op .Sh ENVIRONMENT
199 57d97cc5 2022-07-10 op .Bl -tag -width AMUSED_STATUS_FORMAT
200 57d97cc5 2022-07-10 op .It Ev AMUSED_STATUS_FORMAT
201 57d97cc5 2022-07-10 op The default format used by
202 57d97cc5 2022-07-10 op .Nm
203 57d97cc5 2022-07-10 op .Cm status .
204 57d97cc5 2022-07-10 op .El
205 3baa2617 2022-02-16 op .Sh FILES
206 3baa2617 2022-02-16 op .Bl -tag -width "/tmp/amused-$UID" -compact
207 3baa2617 2022-02-16 op .It Pa /tmp/amused-$UID
208 bf57ea43 2022-02-22 op .Ux Ns -domain
209 bf57ea43 2022-02-22 op socket used for communication with the daemon.
210 3baa2617 2022-02-16 op .El
211 2c35cd80 2022-02-17 op .Sh EXAMPLES
212 84856392 2022-07-13 op Load every file under the current directory recursively:
213 84856392 2022-07-13 op .Bd -literal -offset indent
214 84856392 2022-07-13 op $ find . | amused load
215 84856392 2022-07-13 op .Ed
216 84856392 2022-07-13 op .Pp
217 2c35cd80 2022-02-17 op Enqueue all mp3 files in the current directory:
218 2c35cd80 2022-02-17 op .Bd -literal -offset indent
219 2c35cd80 2022-02-17 op $ amused add *.mp3
220 2c35cd80 2022-02-17 op .Ed
221 2c35cd80 2022-02-17 op .Pp
222 2c35cd80 2022-02-17 op Recursively add all opus files:
223 2c35cd80 2022-02-17 op .Bd -literal -offset indent
224 2c35cd80 2022-02-17 op $ find . -type f -iname \\*.opus -exec amused add {} +
225 2c35cd80 2022-02-17 op .Ed
226 2c35cd80 2022-02-17 op .Pp
227 2c35cd80 2022-02-17 op Save the state of the player to the file
228 2c35cd80 2022-02-17 op .Pa state :
229 2c35cd80 2022-02-17 op .Bd -literal -offset indent
230 19dc5a22 2022-03-03 op $ amused show -p > state
231 2c35cd80 2022-02-17 op .Ed
232 2c35cd80 2022-02-17 op .Pp
233 2c35cd80 2022-02-17 op Load a previous state:
234 2c35cd80 2022-02-17 op .Bd -literal -offset indent
235 2c35cd80 2022-02-17 op $ amused load < state
236 2c35cd80 2022-02-17 op .Ed
237 19ae7661 2022-02-17 op .Pp
238 a6d90fb2 2022-05-10 op Shuffle the playlist:
239 19ae7661 2022-02-17 op .Bd -literal -offset indent
240 19ae7661 2022-02-17 op $ amused show | sort -R | amused load
241 19ae7661 2022-02-17 op .Ed
242 19ae7661 2022-02-17 op .Pp
243 19ae7661 2022-02-17 op Remove duplicates:
244 19ae7661 2022-02-17 op .Bd -literal -offset indent
245 19ae7661 2022-02-17 op $ amused show | sort | uniq | amused load
246 19ae7661 2022-02-17 op .Ed
247 99b9b3af 2022-02-17 op .Pp
248 99b9b3af 2022-02-17 op Select a song with
249 99b9b3af 2022-02-17 op .Xr fzf 1
250 99b9b3af 2022-02-17 op .Bd -literal -offset indent
251 99b9b3af 2022-02-17 op $ amused jump "$(amused show | fzf +s)"
252 99b9b3af 2022-02-17 op .Ed
253 3baa2617 2022-02-16 op .Sh AUTHORS
254 3baa2617 2022-02-16 op .An -nosplit
255 3baa2617 2022-02-16 op Then
256 3baa2617 2022-02-16 op .Nm
257 3baa2617 2022-02-16 op utility was written by
258 3baa2617 2022-02-16 op .An Omar Polo Aq Mt op@openbsd.org .