1 578f8d0c 2023-05-02 op .\" Copyright (c) 2022, 2023 Omar Polo <op@omarpolo.com>
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.
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.
15 3a4d48f5 2024-01-21 op .Dd December 10, 2023
20 3baa2617 2022-02-16 op .Nd music player
24 3baa2617 2022-02-16 op .Op Fl s Ar socket
27 3baa2617 2022-02-16 op .Op Ar argument ...
29 3baa2617 2022-02-16 op .Sh DESCRIPTION
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.
34 3baa2617 2022-02-16 op The following options are available:
35 f474712b 2022-05-09 op .Bl -tag -width Ds
37 b0d2a966 2022-05-19 op Do not daemonize:
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 s Ar socket
45 3baa2617 2022-02-16 op instead of the default
46 f094cfde 2023-05-02 op .Pa /tmp/amused-UID
47 3baa2617 2022-02-16 op to communicate with the daemon.
49 fe164c50 2023-03-27 op Produce more verbose output.
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,
57 3baa2617 2022-02-16 op The following commands are available:
58 26caf091 2022-05-14 op .Bl -tag -width Ds
60 3baa2617 2022-02-16 op Enqueue the given files.
61 c92c2983 2023-04-01 op .It Cm consume Op Cm on Ns | Ns Cm off
62 0682e5d3 2022-07-13 op Enable or disable the consume mode.
63 9fb94242 2022-07-13 op When consume mode is enabled the tracks are removed from the playlist
64 0682e5d3 2022-07-13 op once played until the end.
65 0682e5d3 2022-07-13 op Without arguments toggle the current status.
67 3baa2617 2022-02-16 op Erase the playlist.
68 40aa47d9 2022-02-19 op .It Cm jump Ar pattern
69 40aa47d9 2022-02-19 op Play the first song in the playing queue that matches
71 140010c2 2022-03-03 op .Pq a basic case-insensitive regexp .
72 ba7595d8 2022-02-17 op .It Cm load Op Ar file
73 ba7595d8 2022-02-17 op Load a playlist from
75 a1d30eac 2022-03-03 op or standard input.
76 a6d90fb2 2022-05-10 op A playlist is a list of paths to music files given one per line
77 a6d90fb2 2022-05-10 op and optionally prefixed by
79 a1d30eac 2022-03-03 op or two spaces.
80 a1d30eac 2022-03-03 op If the list was generated by
83 b557564c 2022-07-13 op restore also the position in the playlist.
84 b557564c 2022-07-13 op Otherwise, if already playing something, try to match the currently
85 b557564c 2022-07-13 op song in the new list.
86 b557564c 2022-07-13 op Failing that, the playlist will be played from the first track
88 90122a37 2022-05-14 op .It Cm monitor Op Ar events
89 b557564c 2022-07-13 op Stop indefinitely and print when an event in the comma-separated list
92 fea2a1d2 2022-07-12 op happened, or all if not given.
97 6242c160 2022-07-13 op .Bl -tag -compact -width Ds
99 fea2a1d2 2022-07-12 op Added a song to the playlist.
101 6242c160 2022-07-13 op Jumped to a different song in the playlist.
103 fea2a1d2 2022-07-12 op Loaded a new playlist.
106 9fb94242 2022-07-13 op .Pq repeat or consume .
108 6242c160 2022-07-13 op Advanced to next song.
112 6242c160 2022-07-13 op Playing or resuming a song.
114 6242c160 2022-07-13 op Gone back to previous song.
116 fea2a1d2 2022-07-12 op Seeked in the current track.
121 40aa47d9 2022-02-19 op Play the next song.
123 40aa47d9 2022-02-19 op Pause the playback.
125 40aa47d9 2022-02-19 op Start or resume the playback.
127 40aa47d9 2022-02-19 op Play the previous song.
128 c92c2983 2023-04-01 op .It Cm repeat one Ns | Ns Cm all Op Cm on Ns | Ns Cm off
129 a6d90fb2 2022-05-10 op Enable or disable the automatic repetition of the current track
131 a6d90fb2 2022-05-10 op or of the whole playing queue
133 0682e5d3 2022-07-13 op Without arguments toggle the given repeat mode.
134 40aa47d9 2022-02-19 op .It Cm restart
135 40aa47d9 2022-02-19 op Rewind the current song to the beginning.
136 18e7b0bb 2022-07-09 op It's a shorthand for
140 18e7b0bb 2022-07-09 op .It Cm seek Oo Oo Ar hours : Oc Ns Ar minutes : Oc Ns Ar seconds | Ar percentage Ns %
141 18e7b0bb 2022-07-09 op Seek by the specified amount of time into the current song.
142 18e7b0bb 2022-07-09 op If the argument is prefixed by either
146 b557564c 2022-07-13 op then the seek is relative to the current position.
147 40aa47d9 2022-02-19 op .It Cm show Op Fl p
148 b557564c 2022-07-13 op Show the playlist.
153 40aa47d9 2022-02-19 op list with the current playing song prefixed by
155 57d97cc5 2022-07-10 op .It Cm status Op Fl f Ar format
156 40aa47d9 2022-02-19 op Print playback status and current song.
159 57d97cc5 2022-07-10 op is a comma-separated list of words that select the information to
160 57d97cc5 2022-07-10 op print, in order.
161 57d97cc5 2022-07-10 op It defaults to
162 57d97cc5 2022-07-10 op .Ev AMUSED_STATUS_FORMAT
164 99bf1536 2022-07-13 op .Dq status,time:oneline,mode:oneline
165 57d97cc5 2022-07-10 op if not defined.
166 d42a3617 2022-07-25 op The formats available are:
168 57d97cc5 2022-07-10 op .Bl -tag -compact -width time:percentage
170 57d97cc5 2022-07-10 op Path of the current song
171 dd4516c1 2022-07-13 op .It mode:oneline
172 dd4516c1 2022-07-13 op Mode status in a single line.
174 dd4516c1 2022-07-13 op Repeat all, one and consume, one per line.
176 57d97cc5 2022-07-10 op Playback status by the path to the current song.
177 57d97cc5 2022-07-10 op .It time:oneline
178 57d97cc5 2022-07-10 op Position and duration in a single line.
179 57d97cc5 2022-07-10 op .It time:percentage
180 57d97cc5 2022-07-10 op Percentage of the current position.
182 57d97cc5 2022-07-10 op Current position and duration in seconds.
184 57d97cc5 2022-07-10 op Current position and duration in a human-readable format.
187 9c0e6da2 2023-04-01 op Stop the playback.
188 40aa47d9 2022-02-19 op .It Cm toggle
189 40aa47d9 2022-02-19 op Play/pause the playback.
192 129b80cf 2022-07-09 op Commands can be abbreviated to a unique prefix, for example
194 cfb00927 2022-02-17 op can be given instead of
198 49923802 2022-08-28 op automatically skips and removes from the playlist non-regular files
199 49923802 2022-08-28 op or ones with a non-recognized audio format.
200 57d97cc5 2022-07-10 op .Sh ENVIRONMENT
201 57d97cc5 2022-07-10 op .Bl -tag -width AMUSED_STATUS_FORMAT
202 57d97cc5 2022-07-10 op .It Ev AMUSED_STATUS_FORMAT
203 57d97cc5 2022-07-10 op The default format used by
206 83f1c895 2023-12-10 op .It Ev TEMPDIR
207 83f1c895 2023-12-10 op Path to the directory where the control socket is created.
212 f094cfde 2023-05-02 op .Bl -tag -width "/tmp/amused-UID" -compact
213 f094cfde 2023-05-02 op .It Pa /tmp/amused-UID
214 bf57ea43 2022-02-22 op .Ux Ns -domain
215 bf57ea43 2022-02-22 op socket used for communication with the daemon.
218 84856392 2022-07-13 op Load every file under the current directory recursively:
219 84856392 2022-07-13 op .Bd -literal -offset indent
220 84856392 2022-07-13 op $ find . | amused load
223 2c35cd80 2022-02-17 op Enqueue all mp3 files in the current directory:
224 2c35cd80 2022-02-17 op .Bd -literal -offset indent
225 2c35cd80 2022-02-17 op $ amused add *.mp3
228 2c35cd80 2022-02-17 op Recursively add all opus files:
229 2c35cd80 2022-02-17 op .Bd -literal -offset indent
230 2c35cd80 2022-02-17 op $ find . -type f -iname \\*.opus -exec amused add {} +
233 2c35cd80 2022-02-17 op Save the state of the player to the file
234 e3317c86 2023-05-02 op .Pa amused.dump :
235 2c35cd80 2022-02-17 op .Bd -literal -offset indent
236 e3317c86 2023-05-02 op $ amused show -p > amused.dump
239 2c35cd80 2022-02-17 op Load a previous state:
240 2c35cd80 2022-02-17 op .Bd -literal -offset indent
241 e3317c86 2023-05-02 op $ amused load < amused.dump
244 a6d90fb2 2022-05-10 op Shuffle the playlist:
245 19ae7661 2022-02-17 op .Bd -literal -offset indent
246 19ae7661 2022-02-17 op $ amused show | sort -R | amused load
249 19ae7661 2022-02-17 op Remove duplicates:
250 19ae7661 2022-02-17 op .Bd -literal -offset indent
251 19ae7661 2022-02-17 op $ amused show | sort | uniq | amused load
254 99b9b3af 2022-02-17 op Select a song with
256 99b9b3af 2022-02-17 op .Bd -literal -offset indent
257 99b9b3af 2022-02-17 op $ amused jump "$(amused show | fzf +s)"
263 3baa2617 2022-02-16 op utility was written by
264 e3317c86 2023-05-02 op .An Omar Polo Aq Mt op@omarpolo.com .