.\" Copyright (c) 2022 Omar Polo .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .Dd February 17, 2022 .Dt AMUSED 1 .Os .Sh NAME .Nm amused .Nd music player .Sh SYNOPSIS .Nm .Op Fl dv .Op Fl s Ar socket .Ar command .Op Ar argument ... .Sh DESCRIPTION .Nm is a music player daemon and command-line utility that plays music in the background. The server is automatically started when the user interacts with it, but it can be started manually by running .Nm without any arguments. .Pp The following options are available: .Bl -tag -width 12m .It Fl d Do not daemonize. if this option is specified, .Nm will run in the foreground and log to .Em stderr . It's ignored if any commands are given on the command line. .It Fl v Produce more verbose output. .It Fl s Ar socket Use .Ar socket instead of the default .Pa /tmp/amused-$UID to communicate with the daemon. .El .Pp The following commands are available: .Bl -tag -width 12m .It Cm play Start or resume the playback. .It Cm pause Pause the playback. .It Cm toggle Play/pause the playback. .It Cm stop Stop the music player. .It Cm restart Rewind the current song to the beginning. .It Cm add Ar Enqueue the given files. .It Cm flush Erase the playlist. .It Cm show Op Fl p Print the current playlist. With .Fl p it prints a .Dq pretty list with the current playing song prefixed by .Sq > \& .It Cm status Print playback status and current song. .It Cm next Play the next song. .It Cm prev Play the previous song. .It Cm load Op Ar file Load a playlist from .Ar file , which has one song per line. If not specified, reads from .Em stdin . .It Cm jump Ar pattern Play the first song in the playing queue that matches .Ar pattern .Pq a basic regexp . .El .Pp Commands can be also abbreviated to the smallest unique prefix, so that for example .Sq re can be given instead of .Sq restart . .Sh FILES .Bl -tag -width "/tmp/amused-$UID" -compact .It Pa /tmp/amused-$UID UNIX-domain socket used for communication with the daemon. .El .Sh EXAMPLES Enqueue all mp3 files in the current directory: .Bd -literal -offset indent $ amused add *.mp3 .Ed .Pp Recursively add all opus files: .Bd -literal -offset indent $ find . -type f -iname \\*.opus -exec amused add {} + .Ed .Pp Save the state of the player to the file .Pa state : .Bd -literal -offset indent $ amused show > state .Ed .Pp Load a previous state: .Bd -literal -offset indent $ amused load < state .Ed .Pp Randomize the current playlist: .Bd -literal -offset indent $ amused show | sort -R | amused load .Ed .Pp Remove duplicates: .Bd -literal -offset indent $ amused show | sort | uniq | amused load .Ed .Pp Select a song with .Xr fzf 1 .Bd -literal -offset indent $ amused jump "$(amused show | fzf +s)" .Ed .Sh AUTHORS .An -nosplit Then .Nm utility was written by .An Omar Polo Aq Mt op@openbsd.org .