• Stars
    star
    3
  • Rank 3,851,857 (Top 79 %)
  • Language
    Perl
  • Created about 14 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Perl Interface for the Music Player Daemon

NAME

pimpd - Perl Interface for the Music Player Daemon

NOTE: pimpd is deprecated - use https://github.com/trapd00r/pimpd2

SYNOPSIS

pimpd [OPTIONS...] (ARG)

DESCRIPTION

pimpd screenshot

pimpd is an MPD client written in Perl that aims to implement what the excellent mpc client is lacking (for good reasons), as well as all the regular functionality one would expect.

Local playback

If defined in the configuration file, an external player can be used for playback of music running on another box (the MPD server). This is fully transparent; when MPD is stopped, so is the external player.

When the --play flag is given, pimpd will connect to MPD and start playback if neccessary, and at the same time connect to the stream with the specified external player.

Issues with unreliable network connections/slow disks causing the external player to exit is eliminated, as well as scenarios where the MPD playlist might be temporary empty (no playback - external player exits).

Regular expression based queries

You can search the database and playlist using regular expressions. There are several other (faster) ways to search as well - by artist, album or title.

Additionally, it's possible to search through all favlists at the same time, adding the matches to the current playlist. Since pimpd internally keeps an csv-style database up to date with the favorized tracks, it's enough to search for artist, album, title, genre and/or file, in any combination.

Randomizing

-r will create a new playlist with randomly selected tracks from the database added.

-rt will play a random track from the current playlist.

Favorites

Favorites are handled in several ways. When the -f flag is used, pimpd will check for the genre tag of the song and, if existing, save it in the playlist directory with a year-month_genre-notation. If there's no genre tag, the $fallback_playlist, specified in the configuration file, is used.

pimpd will also keep a CSV-style database updated with more additional data on the song. This have several purposes:

  • other applications might expect regular m3u-style playlists with only a defined "file"-field,

  • the database holds additional information on the favorites, which allows for more powerful search capabilities, and

  • we can generate nifty stats for loved songs

Transfering of music

There are several ways of transfering music.

This is especially useful if the MPD server is running elsewhere and you want to listen to the music locally, or if you want to transfer some music to your portable music player.

The $ssh_host, $ssh_port and $ssh_user variables in the configuration file must be defined in the configuration file, and you must be using SSH keys for this to work over networks.

-cp simply copies the currently playing track to the specifed location.

-cpa copies the full album where the currently playing track is featured.

-cpl copies all tracks in the specified playlist to the specified location.

Interactive shell

From the interactive shell one can access almost all functionality that's available through regular option flags.

Monitor song changes

There are two ways to monitor song changes:

-m simply print song changes to stdout.

-md monitor in daemon mode. This is useful for things like OSD notifications, integration in dzen2 and so on. Most window managers uses their own sort of notification functionality which can also be used.

Now playing

There are three options that will yeild some info on the current track:

-i print all information available.

-np print information on the currently playing track only, on a single line.

-nprt print information on the currently playing track in realtime mode.

Colors

pimpd does support colorschemes, which are defined and loaded from the configuration file. 256 colors is supported, as well as no colors at all.

All of this works on local MPD servers as well as remote ones.

OPTIONS

  -i,     --info          show all info for the currently playing song
  -np,    --current       print basic song info on a single line
          --np-rt         print updating song info on a single line
  -r,     --random        randomize a new playlist with <num> tracks
  -rt,    --random-track  play a random track from the playlist
  -cp,    --copy          copy the current track to specified location
  -cpa,   --cp-album      copy the current album to specified location
  -cpl,   --cp-list       copy playlist <str> to specified location
  -f,     --fav           add the current track to the favorites
  -fs,    --favstats      generate statistics based on previous favorizations
  -l,     --listalbums    list all albums featuring artist
  -lsa,   --listsongs     list all songs on the current album
  -lsp,   --list-pl       list all available playlists
  -pls    --playlist      show the current playlist
  -t,     --track         play track <num> from playlist
  -a,     --add           add playlist <str>. If <str> eq "all", add all
  -aa,    --add-album     add the current album to the playlist
  -m,     --monitor       monitor MPD for song changes (output on STDOUT)
  -md,    --monitor-d     monitor MPD for song changes in daemon mode
  -k,     --kill          kill pimpd when running in daemon mode
  -q,     --queue         queue <num> tracks
  -e,     --external      list all tracks in external playlist
  -sh,    --shell         spawn the interactive pimpd shell
  -spl,   --search-pl     search the playlist for [<pattern>]
  -sdb,   --search-db     search the database for [<pattern>]
  -sar,   --search-artist search the database for [<artist>]
  -sal,   --search-album  search the database for [<album>]
  -set,   --search-title  search the database for [<title>]
  -sap,   --favsearch     search the favlists for artist, album, title, file
  -c,     --clear         clear the playlist before performing any action that
                          generates a new playlist
          --play          start remote/local playback
          --stop          stop remote/local playback
  -no,    --no-color      turn colors off
          --mpd-kill      shut down the MPD server
          --host          remote MPD host
          --port          remote MPD port
          --pass          remote MPD password
          --ssh-host      remote SSH server host
          --ssh-port      remote SSH server port
          --ssh-user      remote SSH server user

  -h,     --help          show the help and exit
          --man           show the manpage and exit

ENVIRONMENT

The configuration file should be placed in $XDG_CONFIG_HOME/pimpd/pimpd.conf OR /etc/pimpd.conf

AUTHOR

Written by Magnus Woldrich

REPORTING BUGS

Report bugs and feature requests at the issue tracker http://github.com/trapd00r/pimpd/issues

COPYRIGHT

Copyright (C) 2009, 2010, 2011 Magnus Woldrich

More Repositories

1

LS_COLORS

A collection of LS_COLORS definitions; needs your contribution!
Shell
1,987
star
2

ls--

ls on steroids
Perl
496
star
3

vidir

edit directory in $EDITOR (better than vim . with netrw)
Perl
173
star
4

zsh-syntax-highlighting-filetypes

zsh syntax highlighting with dircolors in realtime
Shell
147
star
5

configs

My ~/etc - configs, dotfiles
Vim Script
115
star
6

utils

Small useful utilities for everyday work
Perl
74
star
7

neverland-vim-theme

256 colors CLI and GUI. It doesn't suck.
Vim Script
66
star
8

win95-winxp_icons

default icons from win{95,98,2000,xp}
48
star
9

colorcoke

Change the extended (non-ANSI) color set. Generate tints and shades that can be applied in any range.
Shell
45
star
10

vimpoint

Damian Conway's presentation system, written in viml
39
star
11

vim-syntax-vidir-ls

dircolors in your vidir session
Vim Script
36
star
12

File-LsColor

Colorize input filenames just like ls(1) does
Perl
34
star
13

pimpd2

Perl Interface for the Music Player Daemon 2 | http://search.cpan.org/dist/App-Pimpd/
Perl
34
star
14

screenfo

Screenshot info tool
Perl
31
star
15

clipbored

Daemon that continuously collects all selections in Xorg's clipboard buffers and saves them in a plaintext file for later retrieval. Can be used with dmenu.
Perl
30
star
16

rmshit

Keep $HOME or other dir clean from unwanted tempfiles, configs and other crap you'll never use that's autocreated upon execution of bad behaving applications
Perl
26
star
17

ttycolor

Quickly switch colorscheme in the Linux Console / TTY
Perl
24
star
18

xkcd

View XKCD comics in your console
Perl
20
star
19

Term-ExtendedColor

Color screen output using extended escape sequences
Perl
17
star
20

pickyfont

Change your console/terminal font on the fly
Perl
17
star
21

Documentation

Docs and notes for Vim, Zsh, Git, Terminal emulators, Perl ... that I've either written or collected over time
Vim Script
17
star
22

vimcat

cat files in style with vim
Shell
14
star
23

hr

<hr> for your terminal; define a thematic change in content
Perl
13
star
24

id3shit

Less sucky commandline-based ID3-editor.
Perl
12
star
25

pnfo

Vim NFO Viewer
Perl
12
star
26

rmcd

Run mplayer as a daemon and control it remotely
Perl
10
star
27

Term-ExtendedColor-Xresources

Query and set various X resources
Perl
7
star
28

irc.vim

syntax file for irc logs
Vim Script
7
star
29

vim-extendedcolors

Highlight extended color name strings with their color (vim)
Vim Script
6
star
30

vim-after-syntax-vim

after/syntax/vim.vim
Vim Script
6
star
31

time-spent-in-vim

Vim wrapper collecting statistics of the usage; time spent per project/file
Perl
6
star
32

rxvt-unicode

urxvt fork with support for defining colors > 16 using X resources
C
5
star
33

vim-highlight-default-highlight-groups

Highlight all the default highlighting groups in Vim by matching the group's literal name and placing it in its group (colorscheme preview)
Vim Script
5
star
34

colortest-256-ng

prints table of available colors or colorize arbitary input for terminals supporting 256 colors
Perl
5
star
35

dzen-scripts

Various scripts for dzen2
Perl
4
star
36

re.pl

Read, Eval, Print, Loop with tabcompletion
Perl
4
star
37

n900

scripts controlling the n900
Shell
4
star
38

vim-after-syntax-perl

after/syntax/perl.vim
Vim Script
4
star
39

rgbterm

Show RGB values of defined terminal colors
Perl
4
star
40

fileutils-color

basic file management utils with color
Perl
4
star
41

RPD

Radio Playing Daemon - Daemon that plays radio streams, using Mplayer as the backend.
Perl
4
star
42

vim-xclipboard

Yank text from Vim to the X clipboard transparently
Perl
4
star
43

x11colors.vim

Highlight X11 color name strings with appropriate colors (vim, gvim)
Vim Script
4
star
44

uberpaint

fork of uberpaint, a Deluxe Paint clone, patched for building on linux
C
3
star
45

currentline.vim

A Vim plugin that highlights the current line; like a marker pen
Vim Script
3
star
46

cgrep

grep with colors without the grep
Perl
3
star
47

sdorfehs-config

configuration and scripts for the sdorfehs window manager
Perl
3
star
48

accesstail

like tail -f, but prettier, for your access.log
Perl
3
star
49

sexpac

Makes the Archlinux package manager 'pacman' sexy. Well, at least her output.
Perl
3
star
50

vim-syntax-todo

Simple syntax file for TODO lists
Vim Script
3
star
51

vim

wim
C
2
star
52

ratpoison_hacks

hacks and utilities relevant for (c|r)atpoison
Perl
2
star
53

trapd00r.se

My personal site
Python
2
star
54

firefox-remote

Control Mozilla Firefox remotely
Perl
2
star
55

programmers_qwerty

Make characters often used in programming, Vim and the shell more accessible
Perl
2
star
56

themes

Random themes for applications / pages
CSS
2
star
57

matrix

C
2
star
58

beet2mpd

beets advanced queries -> mpd
Perl
2
star
59

apt-cache-search-color

ยท
Perl
2
star
60

makedist

make perl distribution making automatic
Perl
2
star
61

vim-syntax-ratpoison

An updated version of ratpoison.vim
Vim Script
2
star
62

pentadactyl-neverland

Neverland colorscheme for Pentadactyl
2
star
63

pamixer

curses interface for pulseaudio, personal fork
Python
2
star
64

Term-ExtendedColor-TTY

Functions for changing and querying the TTY for various resources, such as colors
Perl
2
star
65

github-clone-all

clone all GITHUB_USER repos and gists in one go
Shell
2
star
66

vimpager-perlmod

Use VIM as a PAGER. Custom syntax file for perldoc.
Vim Script
2
star
67

vim-formatprg

A collection of useful formatprg's for Vim
2
star
68

vim-syntax-github-recent

Vim syntax file for the Github (dashboard|recent) feed
Vim Script
2
star
69

windows

Shell
1
star
70

perl-test-suite

My tests, the base suite for all projects
Perl
1
star
71

SeTTY

Set terminal properties in XTerm compatible terminals
Perl
1
star
72

String-Utils

Perl
1
star
73

dontbeahero

Don't worry, someone else will save the planet
Perl
1
star
74

with

Execute Perl code on files matching pattern
Perl
1
star
75

App-sync_cpantesters

Sync CPAN testers failure reports to local directories
Perl
1
star
76

urxvt-change-bg-on-focus-event

change bg color on focus lost/gained
Perl
1
star
77

cc256

C
1
star
78

picam

RPi based surv cam that autoposts on twitter
Perl
1
star
79

abs

Archlinux ABS Git
C
1
star
80

File-Media-Sort

Perl Module that sorts a list of incoming names as music/musicvideos/tv-episodes etc
Perl
1
star
81

rel

rel uses Flexget::Parse, Flexget::PatternMatch and Media::Sort to show and sort new media in log/dir by genre/type etc
1
star
82

Term-hr

Perl module that lets you define a thematic change in content of a terminal session
Perl
1
star
83

zcompdef

zsh completion definitions
1
star
84

Mplayer-NowPlaying

Query a running mplayer process for metadata and other information
Perl
1
star
85

Daemon-Mplayer

Library that helps you run mplayer daemonized
Perl
1
star
86

Acme-CPANAuthors-Swedish

We are swedish CPAN authors
Perl
1
star
87

99-Problems

99 Prolog problems in Perl
Perl
1
star
88

recheck

Regular expression checker with submatches splitting
Perl
1
star
89

vim-ansicolors

Highlight ANSI color name strings with appropriate colors (vim, gvim)
Vim Script
1
star
90

Acme-DependOnEverything

depend on everything
Perl
1
star
91

Yoghurt

Yoghurt is a fork of Yaourt for personal use only
Shell
1
star
92

vim-syntax-tidningsbud

vim syntax file for tidningsbud
Vim Script
1
star
93

vim-after-syntax-zsh

Vim Script
1
star
94

perlinpython3

how to access the power of perl inside your python3 code
Python
1
star
95

cv

my cv
CSS
1
star
96

configs-n950

configs and random hacks for the nokia n950
Shell
1
star
97

Mock-Person-SV

Generate random sets of Swedish names
Perl
1
star
98

mpdcp

copy track or album from an mpd server to destination
Perl
1
star
99

go_player_ripper

for cbus
Perl
1
star
100

git-today

what did I accomplish today?
Perl
1
star