From a0436f39ae1df67ed999e38c5e999cedcdc271bb Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Fri, 24 May 2013 12:29:11 +0200 Subject: [PATCH] doc: add cool reveal slides --- doc/timeside_2013.html | 244 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 244 insertions(+) create mode 100644 doc/timeside_2013.html diff --git a/doc/timeside_2013.html b/doc/timeside_2013.html new file mode 100644 index 0000000..57d1581 --- /dev/null +++ b/doc/timeside_2013.html @@ -0,0 +1,244 @@ + + + + + + + TimeSide : open and fast web audio components + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+

TimeSide

+

open and fast web audio components

+

+ Created by Guillaume Pellerin / @yomguy at Parisson.com +

+ +
+ +
+

Heads up

+

+ 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 (time-marking) and remote indexing. +

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

+ + +
+ +
+

Goals

+

We just *need* a python library to:

+
+
    +
  • build a python framework to do asynchronous audio processing
  • +
  • decode audio frames from ANY format to numpy arrays
  • +
  • stream the frames in processors and do numpy data analyzing
  • +
  • create various waveforms, spectrograms, etc.. with numpy and PIL
  • +
  • transcode the processed frames in various media formats and stream it
  • +
  • provide a high-level HTML5 UI to stream the results on demand through the web
  • +
  • remote metadata indexing and time marking through a server like Telemeta
  • +
+
+ +
+

Architecture

+ TimeSide architecture +
+ +
+

Quick processing example

+

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()
+					
+
+ +
+

Quick UI example

+ +
+ +
+

Install for production

+

(Linux, Debian)

+

+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
+ 					
+
+ +
+

Install for development 1/2

+

(Linux, Debian)

+

+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 libsndfile-dev libsamplerate-dev docbook-to-man \
+                        liblash-dev libfftw3-dev gcc git-core ipython
+                    
+ +

Install aubio with "develop" branch

+

+git clone git://git.aubio.org/git/aubio/
+
+cd aubio
+
+git checkout develop
+
+./waf configure
+./waf build
+sudo ./waf install
+
+cd python
+sudo python setup.py install
+ 					
+
+ + +
+

Install for development 2/2

+ +

+
+git clone git@github.com:yomguy/TimeSide.git
+
+cd TimeSide
+
+git checkout dev
+
+export PYTHONPATH=$PYTHONPATH:`pwd`
+
+ 					
+ +

Ready!

+
+ +
+

Links

+ +
+ +
+

Thanks!

+

by Guillaume Pellerin

+

guillaume@parisson.com

+

@yomguy

+
+

This document is released under the terms of the contract Creative Commons by-nc-sa/2.0/fr

+
+ +
+ +
+ + + + + + + + -- 2.39.5