# Install TimeSide

This file describe how to install the TimeSide python package from source.

# 1. Install dependencies

TimeSide needs some other python modules to run. See README for the full dependency list.

The following methods explain how to install all dependencies on a Debian based system and espacially on Debian Lenny 5.x Stable. Is it now considered you have install this system correctly.

Become root. In a terminal or console, run:

    $ su

Write your root password.

Add backports repository to the apt sources.list:

    $ echo "deb http://www.backports.org/debian lenny-backports main contrib non-free" | tee -a /etc/apt/sources.list

Note : you can paste the full command but without the shell character '$'. Then :

> $ apt-get update

> $ apt-get -t lenny-backports upgrade

Say 'YES' to all questions. Then:

    $ apt-get install -t lenny-backports vim subversion python python-setuptools python-xml python-mutagen \
                            python-imaging python-numpy python-gst0.10 gstreamer0.10-plugins-base \
                            gstreamer0.10-fluendo-mp3 gstreamer0.10-plugins-good

# 2. Install TimeSide

Get the code and install:

    $ svn export http://timeside.googlecode.com/svn/trunk/ timeside
    $ cd timeside
    $ python setup.py install

This installs all timeside sub modules as decoders, encoders, analyzers, graphers and a few scripts.

# 3. Use TimeSide

## 3.1. Waveform batching

You can use waveform_batch to create some waveforms from a media (audio) directory, type:

    $ waveform_batch /path/to/media_dir /path/to/img_dir

Please use absolute paths. For example:

    $ waveform_batch /home/$user/music/mp3/ /home/$USER/images/

To change the color scheme or the size of the waveforms, edit the waveform_batch script:

    $ vi timeside/tools/waveform_batch

And change only the following variables of the GrapherScheme object:

    self.color_scheme = {
        'waveform': [ # Four (R,G,B) tuples for three main color channels for the spectral centroid method
                    (173,173,173), (147,149,196), (77,80,138), (108,66,0)
                    # this is a purple one
                    ],
        'spectrogram': [
                    (0, 0, 0), (58/4,68/4,65/4), (80/2,100/2,153/2), (90,180,100), (224,224,44), (255,60,30), (255,255,255)
                    ]}

    # Width of the image
    self.width = 2048

    # Height of the image
    self.height = 128

    # Background color
    self.bg_color = (255,255,255)

    # Force computation. By default, the class doesn't overwrite existing image files.
    self.force = False

Save the script and re-run setup:

    $ python setup.py install

## 3.2. Any other pipe processing !

For example, a normalization and a waveform, from a python shell:

    >>> import timeside

    >>> decoder  =  timeside.decoder.FileDecoder('source.wav')
    >>> grapher  =  timeside.grapher.Waveform(output='image.png')
    >>> analyzer =  timeside.analyzer.MaxLevel()
    >>> encoder  =  timeside.encoder.WavEncoder('output.wav')
    >>> (decoder | grapher | analyzer | encoder).run()
    >>> grapher.render()
    >>> print 'Level:', analyzer.result()

## 4. TimeSide UI

See http://code.google.com/p/timeside/wiki/UiGuide

# 5. More informations

See the website for more examples and information about the TimeSide API:

http://code.google.com/p/timeside/

http://code.google.com/p/timeside/wiki/PythonApi

http://code.google.com/p/timeside/source/browse/trunk/timeside/api.py