Hearken

This is a command line shell for queuing and playing music tracks.

It also extracts id3 tags from audio files for faster search.

This will eventually be platform independent but at this stage has only been used on mac os x

Usage

Here you sit expectantly in front of a computer at the command line.

Install

gem install hearken

Dependencies

Tags are currently extracted using ffmpeg. On mac os x, this can be installed easily using brew:

brew install ffmpeg

Growl notification (as new tracks are played) will work but only if ‘growlnotify’ is detected on the path.

Indexing tracks

hearken index DIRECTORY

Will create a track index at ~/.hearken/music. Note that this might take a while the first time you run it.

Subsequent runs will only query tags for new or modified files so should be fairly fast.

The index can be regenerated while the console is running and reloaded using the ‘reload’ command.

Console

hearken console

This enters an interactive prompt where you can start/stop the player, search and enqueue tracks.

The queue will be persisted to ~/.hearken/queue

Commands

?

will list all commands

? <command>

will describe the use and purpose of a particular command

Main commands

search iver bon

Searches for tracks with ‘bon’ and ‘iver’ in the track, artist or album name (this is case insensitive).

Results will be displayed and the ids will be added to the clipboard (for convenient pasting to the ‘+’ command).

+ abc-f 123 456

Enqueues tracks with ids abc, abd, abe, abf, 123 and 456

start

Starts the player

stop

Stops the player

next

Stops and restarts the player (which will kill the currently playing track)

setup_scrobbling

Runs through a wizard to configure scrobbling to last.fm

scrobbling on

Turns scrobbling on (has no effect if scrobbling has not been configured)

scrobbling off

Turns scrobbling off

Future plans for world domination

  • add a ‘-’ command to remove tracks from queue

  • add a command to launch last.fm profile (for track history)

  • put some content on wiki to explain usage (especially use of track ranges ‘+ eft-z’)

  • eliminate last.fm setup command once setup and add lastfm commands only when setup

  • Get working on linux

  • Get working on windows