HighPriest

Version: 0.2.1

HighPriest is a music jukebox system for Linux. It is geared towards high configurability of playback. If you want control over how one track crossfades into another, or you want to specify track start and end points, or you hate having to repeatedly adjust the volume knob, then this application may be for you.

HighPriest also supports many usual features of software jukebox systems, such as custom playlists, random shuffling of tracks, the organization of songs according to category, etc. Although geared for a high level of tweakability, you may not feel like adjusting a bunch of playback parameters, so simply choosing many playback defaults will give you a nice, crossfading jukebox system.

Note: this is alpha software. It works for me, but expect bugs.

Features

Music file parameters stored in XML format

Storing music metadata in external XML files has several advantages. First, they are easy to edit using any text editor or XML editor. Second, they are easy to distribute. If you've created a nice XML playlist and you want to share it with a friend, simply send the file. (Of course, she would have to have the referenced music files, too, in order to play the playlist.)

Using a database negates these advantages, and is overkill in my opinion. The XML parsing within HighPriest is fairly efficient: My modest Linux box (266MHz Pentium MMX / 128MB) runs HighPriest smoothly.

Runs as daemon

HighPriest offers a non-captive interface. Included in the package is a short script which routes commands to the daemon. For example, to start the daemon, issue the command `hp run`, and to list the available playlists, use `hp list`. Many of the oft-used commands may be shortened, eg, `hp l` for `hp list`. See the list of commands below \/.

Crossfades!

This is the original reason I created HighPriest. Other music jukeboxes offer crossfades, but I wanted to be able to configure crossfades on a per-track basis. Further, one may specify different crossfade envelopes; in other words, if a track already fades out, you may specify that this track simply overlaps with the next track without any additional fade.

Command-line interface

Currently, HighPriest offers a command-line interface, but it would be straightforward to create a GUI which would interact with the daemon. (However, I'm not sure if I'll ever get around to this, so any GUI-developers who want to lend a hand would be welcomed.)

Here is a current list of commands:

wake Start HighPriest daemon
run Start HighPriest daemon and begin playing
quit|exit Kill HighPriest daemon
quit|exit <#> Kill after # songs
pause Pause playback
play Resume playback
p Play/pause toggle
stop Stop playback
s[kip] Skip current track
c[ancel] Cancel cued track
l[ist] List playlists
l[ist] <playlist> List tracks of playlist
q[ueue] Show queue
a[dd] <playlist> <tracks> Add track(s) to queue
a[dd] <playlist> Add entire playlist to queue
d[elete] <queue-items> Delete items from queue
d[elete] all Delete all items in queue
ins[ert] <pos> <#> [<tracks>] Insert items into queue at position
mode <new-mode> Change playmode
cat[egory] <new-category> Change category
i[nfo] Display info for current track
i[nfo] p[rev]|n[ext] Display info for previous or next track
ed[it] Edit current track parameters
ed[it] p[rev]|n[ext] Edit previous or next track info
repl[ay-last-transition] Replay last transition
up[date] Update changed playlists
up[date] f[orce] Force update all playlists
h[elp] Print list of commands

Screenshot

Here is a shot of my desktop during typical playback >>.

Dependencies

HighPriest depends on Perl 5, some Perl modules, XMMS, and a plugin for XMMS called DBMix. See Installation Instructions >> for more details.

Download

Version 0.2.1, alpha

\/ HighPriest-0.2.1.tar.gz (41 KB)

After downloading, check out the Documentation >> for the Installation Instructions >> and Usage Notes >>. Also, you may want to see the Playlists Format >> for details about modifying your playlists.

Contact

You can e-mail me at <victor@n-gon.com> regarding comments, suggestions, bugs, and some assistance.