GNU Songanizer

GNU Songanizer is a shell script to organize a directory containing a
collection of Ogg Vorbis and MP3 files. The goal is to create virtual
directory structures, which give different views of the data, but without
having redundant copies of the files themselves.

The files are organized according to information gathered from the tags of
files stored in subdirectories located under the 'base' directory, which
bear the prefix _data in their name. Parallel virtual directory structures
containing symbolic links to the actual files are created, which give
different views of the same data. Each virtual directory stucture gives a
view based on a particular attribute specified by the user. The _data
directories themselves can be symbolic links to directories on other
devices, and can have multiple levels of sub-directories within them holding
the actual song files.

After songanization, the BASE directory contains the following directories:
(i) _data* --> All directories starting with _data contain the real data.
(ii) _artist --> Contains the link structure on the basis of the artist tag.
(iii) _genre --> Contains the link structure on the basis of the genre tag.
(iv) _initial --> Contains the link structure on the basis of the initial.
... and more, depending on the switches passed to the script.

Since Songanizer is a shell script, a running shell is the first and foremost
requirement. Preferably it should be GNU Bash. If you encounter problems on any
shell, please report them. (See how to report bugs here).

GNU Getopt (enhanced) is needed to extract the options from the command line
arguments. Alongwith that you should have GNU Gettext for internationalization
support. You can get GNU Gettext here.

The GNU Libextractor package should be installed in the system to process the
file tags. It can be downloaded from here.

Please note that mp3info is no longer used to read the tags. It did not support ID3v2 tags and Ogg Vorbis files, which made it unfit for further use.

To subscribe to any GNU Songanizer mailing list, please send an empty mail with
a Subject: header line of just "subscribe" to the relevant -request list.
For example, to subscribe yourself to the main list, you would send mail to
<help-songanizer-request@gnu.org>
with no body and a Subject: header line of just "subscribe".

There have been a lot of people who have contributed towards the development of
the project in ways other than contribution of code/text. The authors would
like to acknowledge the work done by these group of good samaritans. They
include the GNU Project for helping the development of free software, and
particularly GNU Songanizer; Christian Grothoff for suggesting the use of GNU
Libextractor to read the tag information; and Massimo Bassi for his help
regarding 'long options support'.

Apart from that we are grateful to all those who have given GNU Songanizer a
try, and given valuable feedback in the form of bug reports and other
suggestions.

Please see the
Translations
README for information on coordinating and submitting
translations of this article.

This copyright notice applies to the text and source code of this web site, and
the graphics that appear on it. The listening GNU is a GPL'ed image provided by
Nevrax Limited. The software described in this text has its own copyright
notice and license, which can be found in the distribution itself.

Copyright (C) 2005, 2006, 2007 Debarshi Ray

Verbatim copying and distribution of this entire article are
permitted worldwide, without royalty, in any medium, provided this
notice, and the copyright notice, are preserved.