123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- README for Plaiter v 1.4.2
- ==========================
- 0. Introduction
- ---------------
- Plaiter (pronounced "player") is a command line front end to command
- line music players. It uses shell scripting to try to create the
- command line music player that Plait would have used if it already
- existed. It complements Plait but is also quite useful on its own,
- especially if you already use mpg123 or similar programs and find
- yourself wanting more features.
- What does Plaiter do that mpg123 can't already? It queues tracks,
- first of all. Secondly, it understands commands like play, plause,
- stop, next and prev. Finally, unlike most of the command line music
- players out there, Plaiter can handle a play list with more than one
- type of audio file, selecting the proper helper app to handle each
- type of file you throw at it.
- Plaiter will automatically configure itself to use ogg123, mpg123,
- and/or mpg321, if they are installed on your system. If you have a
- helper application that plays other types of audio, Plaiter can be
- configured to use it as well.
- Like many of us, Plaiter is part daemon and part controller. The
- controller builds a play list from the files you provide on the
- command line and forwards commands to the daemon. The daemon reads
- commands and executes them by running helper applications.
- 0.1. What's new
- ---------------
- Release 1.4.2 fixes a security flaw related to temp files. Upgrading
- is highly recommended.
- 1. Playing music
- ----------------
- The simplest way to use Plaiter is to invoke it with a list of music
- you want to play, for example
- plaiter foo.mp3 bar.ogg baz.flac
- or
- plaiter http://205.234.188.20:80/
- Plaiter also understands directories as arguments, in which case it
- tries to play every file in the directory. If some of the files are
- not music files, that's all right because Plaiter will discover it
- doesn't have a helper application for that type of file and skip it.
- An example would be
- plaiter "/music/Disco Hits of the 70s"
- Plaiter also understands play lists, for example,
- plaiter list.m3u
- It is the .m3u extension which identifies a file as a play list and
- nothing else will be treated as a play list. Plaiter does not
- currently understand directories of play lists, but you can use shell
- globbing to get the same effect, for example
- plaiter /music/partylists/*.m3u
- The shell will expand this to a list of play lists, which Plaiter
- *does* understand. You can also use globbing to expand a directory
- that contains a combination of play lists and music files.
- When you invoke Plaiter in this way it runs in controller mode, which
- is not capable of actually playing music. Behind the scenes the
- controller will start another instance of Plaiter in daemon mode, if
- one is not running already, and forward commands to it.
- 2. Sending commands
- -------------------
- A variety of commands are available to control the daemon. You
- specify a command as a two dash option, for example
- plaiter --play
- The seven basic commands are: play, pause, stop, next, prev, reset and
- quit. They do pretty much what you would expect. Reset sets the
- current track to 1 and starts playing. It is the command that Plaiter
- sends automatically whenever it creates a new play list.
- Next and prev take optional numeric arguments that specify how many
- tracks to skip, counting the current track. The default is one.
- There is a search command that provides a search-in-playlist feature.
- For example,
- plaiter --search fly
- looks for a track that contains the string "fly" and plays it if
- found. Search proceeds forwards from the current track until the
- first match is found, wrapping at the end of the playlist. If no
- match is found the current track continues playing. The search string
- can be a regular expression.
- There is also an rsearch command that does reverse search. It
- proceeds backwards from the current track until the first match is
- found, wrapping at the beginning of the list. For example,
- plaiter --rsearch one
- The loop command toggles or sets loop mode. When loop mode is on
- and the end of the playlist is reached, play continues on the first
- track. When loop mode is off and the end of the playlist is reached,
- play stops. Loop mode also affects the behavior of the next and prev
- commands. The loop command looks like this:
- plaiter --loop
- plaiter --loop on
- plaiter --loop off
- The latch command toggles or sets a latch which will cause playback to
- stop when the current track ends. The latch command looks like this:
- plaiter --latch
- plaiter --latch on
- plaiter --latch off
- 3. Options
- ----------
- ### --status.
- This option just prints basic information about what Plaiter is doing:
- the number of tracks in the playlist, the current track, and whether
- Plaiter is playing, paused, or stopped.
- ### --list
- This option displays the playlist.
- ### --random
- The --random option shuffles the playlist as it is added. Thus if you
- use it with the --queue option, only the new tracks are shuffled.
- ### --queue, -q, --enqueue
- The --queue option causes tracks to be queued on an existing playlist
- rather than replacing it. --enqueue is for compatibility with players
- like BMP, amaroK, and XMMS.
- ### --daemon, -d
- The --daemon option selects daemon mode. See the next section.
- ### --help
- This option shows brief help.
- ### --version
- This option shows information about the version, the license, and the
- author.
- ### --play, --pause, --stop, --next, --prev, --reset, --quit
- These commands are forwarded to the daemon.
- ### --loop, --search, --rsearch, --latch
- These commands are forwarded to the daemon.
- ### --install
- This option rewrites the helper file. See Section 5.
- 4. Daemon mode
- --------------
- The Plaiter daemon will be started for you automatically if necessary,
- but there are times when you may want to start it manually. Why is
- that? Well, the Plaiter daemon (and the helper applications it calls)
- tend to be quite verbose, so the controller discards their output. If
- you want to see the output, you can dedicate a separate console to
- this purpose. This gives you a nice clean command line interface to
- Plaiter in the main console, with complete information, including the
- current track, in the daemon console.
- You start Plaiter in daemon mode by typing
- plaiter --daemon
- The proper way to kill the daemon is to send it the command "quit" or
- type Ctrl-c in its console. If you `kill -9` it, the daemon will not
- get a chance to clean up after itself. You can do this manually by
- typing
- rm -f ~/.plait/pdaemon
- If you don't, Plaiter will try to clean up the next time it runs.
- 5. Helper applications
- ----------------------
- Plaiter stores a list of file types and associated helper applications
- in ~/.plait/helpers. This file will be created automatically the
- first time Plaiter is run, but you can edit it to select the helper
- applications you prefer. If you don't edit it, Plaiter will look for
- ogg123, mpg123-esd, mpg123, and mpg321. If it is present on your
- system, ogg123 will be associated with ogg files, flac files, and ogg
- streams. For mp3 files, mp3 streams, and all streams whose type can't
- be identified from the URL, mpg123-esd will be chosen if present, then
- mpg123, then mpg321.
- Each line of ~/.plait/helpers consists of a "key" and a helper,
- separated by a colon, for example
- mp3:mpg123-esd
- The key corresponding to a file is just the file suffix. For http
- streams it's a little more complicated. A URL with no particular file
- suffix, like http://192.168.1.2:80, will have the key "http". Plaiter
- assumes that streams like this can be played by mpg123. If the URL
- has an mp3 or ogg suffix, that is included in the key, so the key for
- http://192.168.1.2:80/stream.ogg would be "httpogg". Plaiter assumes
- that ogg123 can play a stream like this.
- Adding your own helper applications is just a matter of following
- these rules to create an appropriate key, followed by a colon,
- followed by the command line required to play that type of file.
- If you want Plaiter to configure itself automatically, you should
- install the helper applications before running it for the first time.
- If you didn't do that, you can run
- plaiter --install
- to force Plaiter to detect helper applications and write the helper
- file again.
- 6. Odds and ends
- ----------------
- Plaiter requires Bash. It uses standard versions of basic commands
- including find, awk and sed and should be compatible with most
- versions of Unix. It requires a wake up call when the signal SIGCHLD
- is received, which seems to rule out Cygwin for now. That's all right
- because Cygwin users have Winamp.
- 7. What's next
- --------------
- It's not known at this time what features will be in the next release.
- Copyright (c) 2005, 2006 by Stephen Jungels
|