Overview

===========================
FlacComp (FLAC Compilation)
===========================

This application helps you keep your FLAC lossless albums tidy. Executing
"actions", the ``flaccomp.py`` script validates your filenames and FLAC tags
against a defined set of rules. What lies beneath is an intention to mantain
a set of atomic simple actions against the files, while having the whole
picture of the files and their associated meta tag information at a glance
using only your command line shell and your favourite programming language
— python, of course!.

This app is something I wrote for a quick look to the coherence of tags and
filenames of my albums, to fix errors easily, to clean useless tags, and to
follow the same patterns and basic rules for all my collections.

A common example is to verify all your tags common to all tracks (i.e.
'album', 'artist' or 'date') have the same value. For example, if you find 
that the file for the track 3 in your Bob Marley's album "Redemption" 
contains some mistake like "Rdemptn", this is bad, and you will want to
change it to match the same value "Redemption".

Download
========

You can find the latest version in my bitbucket repository::

    http://bitbucket.org/nabucosound/flaccomp/

Installation
============

I use pip_, virtualenv_ and virtualenvwrapper_ to configure an isolated
environment and have it ready to use whenever I am going to use FlacComp.
So create your isolated working environment and execute ``pip install -r
requirements.txt`` inside FlacComp's directory to install dependencies.

.. _pip: http://pip.openplans.org/
.. _virtualenv: http://pypi.python.org/pypi/virtualenv/
.. _virtualenvwrapper: http://www.doughellmann.com/projects/virtualenvwrapper/

Dependencies
------------

FlacComp is making use of the mutagen_ module to handle audio metadata.

.. _mutagen: http://code.google.com/p/mutagen/

Configuration
=============

The app is ready to use with default configuration settings found in
``settings.py``. However, the settings file is here for you to modify it with
your particular taste when renaming your track filenames or mantaining your
meta tag values.

Usage
=====

``flaccomp.py`` is the script that uses the ``compilation.py`` module to
parse all FLAC files inside a directory and get all info needed.
Type 'flaccomp.py help' to get general information and to see all action
commands avaliable. To get help on a particular command type
'flaccomp.py help [action]'.

The first action you probably want to execute is 'show'::

    flaccomp.py show -d path/to/flacalbumdir

This command outputs information from the tracks such as common tags, title and
tracknumbers, and filenames. Use this command to see what further actions
need to be done, as well as to check your changes made. If something wrong is
detected (a common tag value not uniform in all tracks, or a filename not
correctly named) it will appear highlighted in red.

Execute the actions you consider needed in order to fix your collection, like
renaming filenames using tag values or deleting unwanted common tags.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.