gpsh(1)

Name

gpsh — grep and play my audio files from shell

Syntax

gpsh [-F index.m9u] [-OM,opt] [-blvxz] patterns...

Description

Greps the master index file by the specified patterns and plays back any matching entries (using external programs: mplayer, timidity). It expressly supports jumping into subtracks in mixes.

When no pattern is given, all files are selected.

Options

-F index.m9u
    Give the path to the master index file. It is just a dump of the internal array state in Perl form, so M9U is not exactly a format of its own. This index contains: filename, and title and offset (for subtracks inside mixes).

-OM,mplayer_opt
    Pass an extra argument to mplayer.

-b  Do index rebuild in foreground.

-l  Only grep the database.

-v  Do print the playlist (can be very long).

-x  Ignore subtracks in a mix, and also avoid reindexing of VBR files.

-z  Do not shuffle the play queue.

Index

gpsh keeps an index cache, and refreshes it in the background when it is older than a day. If there is no index yet, playing files will be delayed until it exists. Directories and files whose name without extension ends in "_noindex" will be skipped.

Tracklists for mixes

gpsh scans all .txt files for the following pattern used to denote a subtrack in a big mix of the same basename:

/^(.*)/

Example: Audio file: "DJ Doboy - Trancequility volume 01.mp3", Tracklist: "DJ Doboy - Trancequility volume 01.txt", TL content: "[48:29] Paul van Dyk - For an angel".

Regex search

gpsh uses a Perl regular expression search across file name (mix name, if any) and subtrack name.

Example: gpsh 'dj.doboy.*trancequility.*paul.van.dyk'

Would cause gpsh to search for all PVD tracks in Doboy's Trancequility mixes. mplayer will be invoked on "DJ Doboy - Trancequility volume 01.mp3" with automatic seeking to position 48:29, for example. Of course, just specifying

gpsh 'dj.doboy.*trancequility'

Would select the grand mix and start at 00:00.

Extra options

gpsh -OM,-af-clr chillout

Will invoke mplayer instances with the "-af-clr" option.

See also

hxtools(7)