Skip to main content

open and fast web audio components

Project description

TimeSide is a set of python components enabling easy audio processing, transcoding, imaging and streaming. Its simple architecture and high-level API have been design to process serial pipelines

It includes a powerfull HTM5 interactive player which can be embedded in any web application to provide fancy waveforms, various analyzer results, synced time metadata display during playback and remote indexing.

The engine (server side) is fully written in Python, the player (client side) in HTML, CSS and JavaScript.

News

0.4.0

  • finally fixed an old decoder bug to prevent memory leaks during hard process (thanks to piem)

  • add blocksize property to the processor API

  • add many unit tests (check tests/alltests.py)

  • re-add UI files (sorry, was missing in the last packages)

  • various bugfixes

  • encoders not all much tested on big files, please test!

  • piem is now preparing some aubio analyzers :P

0.3.3

  • mostly a transitional developer and mantainer version, no new cool features

  • but add “ts-waveforms” script for waveform batching

  • fix some tests

  • removed but download audio samples

  • fix setup

  • update README

0.3.2

  • move mainloop to its own thread to avoid memory hogging on large files

  • add condition values to prepare running gst mainloop in a thread

  • add experimental WebM encoder

  • duration analysis goes to decoder.duration property

  • bugfixes

Dive in

Define some processors:

>>> import timeside
>>> decoder  =  timeside.decoder.FileDecoder('source.wav')
>>> grapher  =  timeside.grapher.Waveform()
>>> analyzer =  timeside.analyzer.MaxLevel()
>>> encoder  =  timeside.encoder.Mp3Encoder('output.mp3')

then, the magic pipeline:

>>> (decoder | grapher | analyzer | encoder).run()

get the results:

>>> grapher.render(output='image.png')
>>> print 'Level:', analyzer.result()

finally see image.png and play output.mp3 ;)

More examples

APIs

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

Player API and guide : http://code.google.com/p/timeside/wiki/UiGuide

Platforms

The TimeSide engine is intended to work on all Unix / Linux platforms, but MacOS X and Windows versions will soon be explorated.

The player should work on any modern HTML5 enabled browser. Flash is needed for MP3 if the browser doesn’t support it.

Install

TimeSide needs some other python modules to run. The following methods explain how to install all dependencies on a Debian based system like Debian, Ubuntu, etc.. On Fedora and Red-Hat you might replace ‘apt-get by ‘yum’, on Gentoo by ‘emerge’, or any other package manager you like:

$ sudo apt-get update
$ sudo apt-get install python python-pip python-setuptools python-gobject \
                       python-gst0.10 gstreamer0.10-plugins-base gir1.0-gstreamer-0.10 \
                       gstreamer0.10-plugins-good gstreamer0.10-plugins-bad \
                       gobject-introspection

$ sudo pip install timeside

To get non-free MP3, MP4 or AAC decoding and encoding features, add Debian Multimedia repository and install the modules:

$ echo "deb http://www.deb-multimedia.org stable main non-free" | sudo tee -a /etc/apt/sources.list
$ sudo apt-get update
$ apt-get install gstreamer0.10-lame gstreamer0.10-plugins-really-bad

Batching

TimeSide provides ts-waveforms, a waveform rendering batch script. Usage:

$ ts-waveforms /path/to/media_dir /path/to/img_dir

Please use absolute paths. For example:

$ ts-waveforms /home/$user/music/mp3/ /home/$USER/images/

To change the color scheme or the size of the waveforms, edit the script from the source and change the variables of the GrapherScheme object:

$ git clone git://github.com/yomguy/TimeSide.git
$ cd timeside/scripts/
$ vi ts-waveforms
$ ./ts-waveforms /home/$user/music/mp3/ /home/$USER/images/

Packages included

License

TimeSide is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

TimeSide is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

See LICENSE for more details.

Development

Copyrights

  • Copyright (c) 2006, 2012 Parisson SARL

  • Copyright (c) 2006, 2012 Guillaume Pellerin

  • Copyright (c) 2010, 2012 Paul Brossier

  • Copyright (c) 2006, 2010 Samalyse SARL

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

TimeSide-0.4.0.tar.gz (235.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page