naviation

mushell

abstract

mushell is a music collection management shell for linux using an sqlite-database to store id3-tags and other metadata. files in the database can be searched with a simple but powerful query language. the files found in a search can then be played with xmms, moved to different directories, tagged or deleted.

mushell is written as a collection of bash-scripts depending heavily on external command line tools. currently it has been tested on debian/sid only.

license

mushell is released under the GPL.

contact

the dot gray at gmx dot net

requirements

bash3.00.16
xmms1.2.8
xmms-shell0.99.3
sqlite2.8.5
mp3info0.8.4
alsamixer1.0.0

download

mushell-0.1.9.tar.gz

installation

first, download and install the programms listed under requirements. then unpack the tarball, put the resulting directory in your $PATH and run mushell. it will detect you have never used it before and ask you a few questions about its configuration. after that, you are ready to go.

usage

mushell [ command [ arguments ] ]

commands

ssearch [ options ] querysearch files by conditions
options: [ -n | --newest ] number
pplay [ options ]play searched files with xmms
options: -e | --enqueue | -f | --force
llistdisplay the currently selected files
eeditedit the list of selected files
ffetchread back xmms playlist into the selection
cchange tag valueset a tag for the selected files
mmove targetmove the selected files into a target directory
ddeletedelete the selected files
uupdate [ directory ]compares the database with the physical files
and updates the database to reflect changes
duduplicatesfind duplicates by md5 checksum
 
!shell [ command ]open subshell or execute command
.xmms [ command ]open xmms-shell or execute command
:sqlopen sqlite or execute command
,mixstart the mixer
 
+loudbe loud - high volume
-quietbe quiet - low volume
ststatusdisplay whether xmms is playing, paused or stopped
and the name and number in the playlist of the
currently played song
 
hhelp [ topic ]topic may be usage, query, tags, all or readme
hihistorydisplay the command history
clclearclear the screen
coconfigurechange the user configuration
qquitleave the shell

query syntax

a search query consists of one or more conditions. in the simplest case a condition is a substring of letters or digits found in any tag of a file.

to exclude a file from the search result a condition it may be prefixed with a - character.

a condition can be restricted to a single tag by prefixing it with the name of the tag followed by an =. usable tag-names are listed below, where all tags can be abridged with their first two letters - or even one.

all searches are case-insensitive.

id3v1 tags

alalbum
aarartist
ccocomment
ggegenre
kkbkbps
llelength
ttititle
trtrack
yyeyear

other tags

ststatus
ppapath
ddidir
nnaname
dadate
ssisize
mmimime
mdmd5
ffp

limitations