a thin Emacs interface for Pianobar (and Pandora.com)
Emacs Lisp
Failed to load latest commit information.
LICENSE added in documentation files Jan 17, 2011
README added in documentation files Jan 17, 2011


This is a thin emacs interface for Pianobar, a Pandora Radio
<http://pandora.com/> command-line client. Pianobar was written by
Lars-Dominik Braun, among others, and can be found at
<http://6xq.net/html/00/17.html>. `pianobar.el` itself can be found at

It is licensed under the GNU GPL v3. See `LICENSE` for details.

There are brief installation instructions at the top of
`pianobar.el`. After installing `pianobar.el`, see below for
information about usage.

Please note that this is a *very* early development version, written
mostly for myself to use. Suggestions, improvements, and bug reports
are welcome.


Pianobar is started with `M-x pianobar`, or you can bind a key to the
`pianobar` function manually. `pianobar.el` will put the current
playing song in the modeline. Once Pianobar is running, you can type
commands manually in the `*pianobar*` buffer (like using shell-mode),
or you can use the following, key-bindable commands:

M-x pianobar-love-current-song
	-- tell Pandora you love this song

M-x pianobar-ban-current-song
	-- tell Pandora to ban this song from this station

M-x pianobar-next-song
	-- skip to the next song (but don't ban/love)

M-x pianobar-play-or-pause
	-- toggle play/pause state

M-x pianobar-change-station
	-- bring up the `*pianobar*` buffer with a station-change menu


`pianobar.el` requires Pianobar to be installed somewhere in your
path. If it's not, you can set the variable `pianobar-command` to be
the path to the Pianobar executable.

(As of right now, `pianobar.el` expects Pianobar to use the default
key bindings. It works even if you change them, but the control
commands won't work. You'll just have to switch to the `*pianobar*`
buffer and control it manually.)

You can set `pianobar-username`, `pianobar-password`, and
`pianobar-station` to automatically login and connect to a
station. Note that `pianobar-station` must be a *string* containing
the number used to select the station you want through Pianobar.

If you leave any of these unset, you will be prompted for the info

If you set `pianobar-run-in-background` to `t`, `M-x pianobar` will
*not* show the `*pianobar*` buffer after running. This is useful if
you set the above auto-login variables.

`pianobar-global-modeline` will eventually be used to decide whether
to change the modeline on all buffers, or just the `*pianobar*`
buffer. Right now, it does nothing; it always changes the global

There are many other, lesser-used variables available to customize
Pianobar. Use `C-h v` and take a look at all the variables prefixed
with `pianobar-`.

If you want to write your own Pianobar commands (especially for those
not yet bound to an interactive function), you can use
`pianobar-send-command`, which accepts a character to send to the
current Pianobar process. It also takes a second, optional argument:
whether to make the Pianobar buffer active. For example,
`M-x pianobar-next-song` runs `(pianobar-send-command ?n)`, while
`M-x pianobar-change-station` runs `(pianobar-send-command ?s t)`.