]> git.parisson.com Git - timeside.git/commitdiff
add epydoc HTML docs
authoryomguy <yomguy@parisson.com>
Thu, 11 Mar 2010 14:41:26 +0000 (14:41 +0000)
committeryomguy <yomguy@parisson.com>
Thu, 11 Mar 2010 14:41:26 +0000 (14:41 +0000)
248 files changed:
doc/epydoc/api-objects.txt [new file with mode: 0644]
doc/epydoc/class-tree.html [new file with mode: 0644]
doc/epydoc/crarr.png [new file with mode: 0644]
doc/epydoc/epydoc.css [new file with mode: 0644]
doc/epydoc/epydoc.js [new file with mode: 0644]
doc/epydoc/exceptions.AssertionError-class.html [new file with mode: 0644]
doc/epydoc/frames.html [new file with mode: 0644]
doc/epydoc/help.html [new file with mode: 0644]
doc/epydoc/identifier-index.html [new file with mode: 0644]
doc/epydoc/index.html [new file with mode: 0644]
doc/epydoc/module-tree.html [new file with mode: 0644]
doc/epydoc/redirect.html [new file with mode: 0644]
doc/epydoc/timeside-module.html [new file with mode: 0644]
doc/epydoc/timeside-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze-module.html [new file with mode: 0644]
doc/epydoc/timeside.analyze-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.channels-module.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.channels-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.channels.ChannelAnalyser-class.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.core-module.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.core-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.core.AudioProcessor-class.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.dc-module.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.dc-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.dc.MeanDCShiftAnalyser-class.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.duration-module.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.duration-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.duration.DurationAnalyzer-class.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.encoding-module.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.encoding-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.encoding.EncodingAnalyser-class.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.format-module.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.format-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.format.FormatAnalyser-class.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.max_level-module.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.max_level-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.max_level.MaxLevelAnalyzer-class.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.mean_level-module.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.mean_level-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.mean_level.MeanLevelAnalyser-class.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.resolution-module.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.resolution-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.resolution.ResolutionAnalyser-class.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.samplerate-module.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.samplerate-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.samplerate.SampleRateAnalyzer-class.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.vamp-module.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.vamp-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.vamp.core-module.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.vamp.core-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.analyze.vamp.core.VampCoreAnalyzer-class.html [new file with mode: 0644]
doc/epydoc/timeside.api-module.html [new file with mode: 0644]
doc/epydoc/timeside.api-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.api.IAnalyzer-class.html [new file with mode: 0644]
doc/epydoc/timeside.api.IDecoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.api.IEffect-class.html [new file with mode: 0644]
doc/epydoc/timeside.api.IEncoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.api.IGrapher-class.html [new file with mode: 0644]
doc/epydoc/timeside.api.IProcessor-class.html [new file with mode: 0644]
doc/epydoc/timeside.api.IValueAnalyzer-class.html [new file with mode: 0644]
doc/epydoc/timeside.component-module.html [new file with mode: 0644]
doc/epydoc/timeside.component-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.component.Component-class.html [new file with mode: 0644]
doc/epydoc/timeside.component.ComponentError-class.html [new file with mode: 0644]
doc/epydoc/timeside.component.Interface-class.html [new file with mode: 0644]
doc/epydoc/timeside.component.MetaComponent-class.html [new file with mode: 0644]
doc/epydoc/timeside.core-module.html [new file with mode: 0644]
doc/epydoc/timeside.core-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.core.FixedSizeInputAdapter-class.html [new file with mode: 0644]
doc/epydoc/timeside.core.MetaProcessor-class.html [new file with mode: 0644]
doc/epydoc/timeside.core.ProcessPipe-class.html [new file with mode: 0644]
doc/epydoc/timeside.core.Processor-class.html [new file with mode: 0644]
doc/epydoc/timeside.decode-module.html [new file with mode: 0644]
doc/epydoc/timeside.decode-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.decode.core-module.html [new file with mode: 0644]
doc/epydoc/timeside.decode.core-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.decode.core.DecoderCore-class.html [new file with mode: 0644]
doc/epydoc/timeside.decode.core.SubProcessPipe-class.html [new file with mode: 0644]
doc/epydoc/timeside.decode.flac-module.html [new file with mode: 0644]
doc/epydoc/timeside.decode.flac-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.decode.flac.FlacDecoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.decode.mp3-module.html [new file with mode: 0644]
doc/epydoc/timeside.decode.mp3-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.decode.mp3.Mp3Decoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.decode.ogg-module.html [new file with mode: 0644]
doc/epydoc/timeside.decode.ogg-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.decode.ogg.OggDecoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.decode.wav-module.html [new file with mode: 0644]
doc/epydoc/timeside.decode.wav-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.decode.wav.WavDecoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.encode-module.html [new file with mode: 0644]
doc/epydoc/timeside.encode-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.encode.core-module.html [new file with mode: 0644]
doc/epydoc/timeside.encode.core-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.encode.core.EncoderCore-class.html [new file with mode: 0644]
doc/epydoc/timeside.encode.core.SubProcessPipe-class.html [new file with mode: 0644]
doc/epydoc/timeside.encode.flac-module.html [new file with mode: 0644]
doc/epydoc/timeside.encode.flac-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.encode.flac.FlacEncoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.encode.mp3-module.html [new file with mode: 0644]
doc/epydoc/timeside.encode.mp3-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.encode.mp3.Mp3Encoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.encode.ogg-module.html [new file with mode: 0644]
doc/epydoc/timeside.encode.ogg-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.encode.ogg.OggVorbisEncoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.encode.wav-module.html [new file with mode: 0644]
doc/epydoc/timeside.encode.wav-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.encode.wav.WavEncoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.exceptions-module.html [new file with mode: 0644]
doc/epydoc/timeside.exceptions-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.exceptions.ApiError-class.html [new file with mode: 0644]
doc/epydoc/timeside.exceptions.Error-class.html [new file with mode: 0644]
doc/epydoc/timeside.exceptions.SubProcessError-class.html [new file with mode: 0644]
doc/epydoc/timeside.grapher-module.html [new file with mode: 0644]
doc/epydoc/timeside.grapher-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.grapher.core-module.html [new file with mode: 0644]
doc/epydoc/timeside.grapher.core-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.grapher.core.Noise-class.html [new file with mode: 0644]
doc/epydoc/timeside.grapher.core.SpectralCentroid-class.html [new file with mode: 0644]
doc/epydoc/timeside.grapher.core.SpectrogramImage-class.html [new file with mode: 0644]
doc/epydoc/timeside.grapher.core.WaveformImage-class.html [new file with mode: 0644]
doc/epydoc/timeside.grapher.spectrogram_audiolab-module.html [new file with mode: 0644]
doc/epydoc/timeside.grapher.spectrogram_audiolab-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html [new file with mode: 0644]
doc/epydoc/timeside.grapher.waveform_audiolab-module.html [new file with mode: 0644]
doc/epydoc/timeside.grapher.waveform_audiolab-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html [new file with mode: 0644]
doc/epydoc/timeside.metadata-module.html [new file with mode: 0644]
doc/epydoc/timeside.metadata-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.metadata.Metadata-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests-module.html [new file with mode: 0644]
doc/epydoc/timeside.tests-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.tests.TestCase-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.TestRunner-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests._TextTestResult-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests._WritelnDecorator-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.alltests-module.html [new file with mode: 0644]
doc/epydoc/timeside.tests.alltests-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api-module.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.examples-module.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.examples-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.examples.Duration-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.examples.FileDecoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.examples.FixedInputProcessor-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.examples.Gain-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.examples.MaxLevel-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.examples.Spectrogram-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.examples.WavEncoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.examples.Waveform-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.gstreamer-module.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.gstreamer-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.gstreamer.FileDecoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.gstreamer.WavEncoder-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.test_lolevel-module.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.test_lolevel-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.test_pipe-module.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.test_pipe-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.test_pipe_spectrogram-module.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.test_pipe_spectrogram-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.test_pipe_waveform-module.html [new file with mode: 0644]
doc/epydoc/timeside.tests.api.test_pipe_waveform-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.tests.listprocessors-module.html [new file with mode: 0644]
doc/epydoc/timeside.tests.listprocessors-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.tests.test-module.html [new file with mode: 0644]
doc/epydoc/timeside.tests.test-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.tests.test.TestAnalyzers-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.test.TestDecoders-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.test.TestEncoders-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.test.TestGraphers-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent-module.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.C1-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.C10-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.C11-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.C2-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.C3-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.C4-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.C5-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.C6-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.C7-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.C8-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.C9-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.I1-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.I10-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.I11-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.I2-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.I3-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.I4-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.I5-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.I6-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.I7-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.I8-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.I9-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testcomponent.TestComponentArchitecture-class.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testinputadapter-module.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testinputadapter-pysrc.html [new file with mode: 0644]
doc/epydoc/timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html [new file with mode: 0644]
doc/epydoc/toc-everything.html [new file with mode: 0644]
doc/epydoc/toc-timeside-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.analyze-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.analyze.channels-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.analyze.core-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.analyze.dc-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.analyze.duration-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.analyze.encoding-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.analyze.format-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.analyze.max_level-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.analyze.mean_level-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.analyze.resolution-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.analyze.samplerate-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.analyze.vamp-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.analyze.vamp.core-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.api-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.component-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.core-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.decode-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.decode.core-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.decode.flac-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.decode.mp3-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.decode.ogg-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.decode.wav-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.encode-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.encode.core-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.encode.flac-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.encode.mp3-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.encode.ogg-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.encode.wav-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.exceptions-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.grapher-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.grapher.core-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.grapher.spectrogram_audiolab-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.grapher.waveform_audiolab-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.metadata-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.tests-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.tests.alltests-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.tests.api-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.tests.api.examples-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.tests.api.gstreamer-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.tests.api.test_lolevel-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.tests.api.test_pipe-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.tests.api.test_pipe_spectrogram-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.tests.api.test_pipe_waveform-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.tests.listprocessors-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.tests.test-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.tests.testcomponent-module.html [new file with mode: 0644]
doc/epydoc/toc-timeside.tests.testinputadapter-module.html [new file with mode: 0644]
doc/epydoc/toc.html [new file with mode: 0644]

diff --git a/doc/epydoc/api-objects.txt b/doc/epydoc/api-objects.txt
new file mode 100644 (file)
index 0000000..8c9a4ae
--- /dev/null
@@ -0,0 +1,929 @@
+timeside       timeside-module.html
+timeside.analyze       timeside.analyze-module.html
+timeside.analyze.channels      timeside.analyze.channels-module.html
+timeside.analyze.core  timeside.analyze.core-module.html
+timeside.analyze.dc    timeside.analyze.dc-module.html
+timeside.analyze.duration      timeside.analyze.duration-module.html
+timeside.analyze.encoding      timeside.analyze.encoding-module.html
+timeside.analyze.format        timeside.analyze.format-module.html
+timeside.analyze.max_level     timeside.analyze.max_level-module.html
+timeside.analyze.mean_level    timeside.analyze.mean_level-module.html
+timeside.analyze.resolution    timeside.analyze.resolution-module.html
+timeside.analyze.samplerate    timeside.analyze.samplerate-module.html
+timeside.analyze.vamp  timeside.analyze.vamp-module.html
+timeside.analyze.vamp.core     timeside.analyze.vamp.core-module.html
+timeside.api   timeside.api-module.html
+timeside.component     timeside.component-module.html
+timeside.component.implements  timeside.component-module.html#implements
+timeside.component.extend_unique       timeside.component-module.html#extend_unique
+timeside.component.find_implementations        timeside.component-module.html#find_implementations
+timeside.component.abstract    timeside.component-module.html#abstract
+timeside.component.implementations     timeside.component-module.html#implementations
+timeside.component.interfacedoc        timeside.component-module.html#interfacedoc
+timeside.core  timeside.core-module.html
+timeside.core.implements       timeside.core-module.html#implements
+timeside.core.get_processor    timeside.core-module.html#get_processor
+timeside.core.processors       timeside.core-module.html#processors
+timeside.core._processors      timeside.core-module.html#_processors
+timeside.core.abstract timeside.core-module.html#abstract
+timeside.core.interfacedoc     timeside.core-module.html#interfacedoc
+timeside.decode        timeside.decode-module.html
+timeside.decode.core   timeside.decode.core-module.html
+timeside.decode.flac   timeside.decode.flac-module.html
+timeside.decode.mp3    timeside.decode.mp3-module.html
+timeside.decode.ogg    timeside.decode.ogg-module.html
+timeside.decode.wav    timeside.decode.wav-module.html
+timeside.encode        timeside.encode-module.html
+timeside.encode.core   timeside.encode.core-module.html
+timeside.encode.flac   timeside.encode.flac-module.html
+timeside.encode.mp3    timeside.encode.mp3-module.html
+timeside.encode.ogg    timeside.encode.ogg-module.html
+timeside.encode.wav    timeside.encode.wav-module.html
+timeside.exceptions    timeside.exceptions-module.html
+timeside.grapher       timeside.grapher-module.html
+timeside.grapher.color_schemes timeside.grapher-module.html#color_schemes
+timeside.grapher.core  timeside.grapher.core-module.html
+timeside.grapher.core.color_schemes    timeside.grapher.core-module.html#color_schemes
+timeside.grapher.core.interpolate_colors       timeside.grapher.core-module.html#interpolate_colors
+timeside.grapher.spectrogram_audiolab  timeside.grapher.spectrogram_audiolab-module.html
+timeside.grapher.spectrogram_audiolab.color_schemes    timeside.grapher.spectrogram_audiolab-module.html#color_schemes
+timeside.grapher.waveform_audiolab     timeside.grapher.waveform_audiolab-module.html
+timeside.grapher.waveform_audiolab.color_schemes       timeside.grapher.waveform_audiolab-module.html#color_schemes
+timeside.metadata      timeside.metadata-module.html
+timeside.tests timeside.tests-module.html
+timeside.tests.alltests        timeside.tests.alltests-module.html
+timeside.tests.api     timeside.tests.api-module.html
+timeside.tests.api.examples    timeside.tests.api.examples-module.html
+timeside.tests.api.examples.color_schemes      timeside.tests.api.examples-module.html#color_schemes
+timeside.tests.api.examples.implements timeside.component-module.html#implements
+timeside.tests.api.examples.interfacedoc       timeside.component-module.html#interfacedoc
+timeside.tests.api.gstreamer   timeside.tests.api.gstreamer-module.html
+timeside.tests.api.gstreamer.implements        timeside.component-module.html#implements
+timeside.tests.api.gstreamer.interfacedoc      timeside.component-module.html#interfacedoc
+timeside.tests.api.test_lolevel        timeside.tests.api.test_lolevel-module.html
+timeside.tests.api.test_lolevel.nframes        timeside.tests.api.test_lolevel-module.html#nframes
+timeside.tests.api.test_lolevel.destination    timeside.tests.api.test_lolevel-module.html#destination
+timeside.tests.api.test_lolevel.use_gst        timeside.tests.api.test_lolevel-module.html#use_gst
+timeside.tests.api.test_lolevel.nchannels      timeside.tests.api.test_lolevel-module.html#nchannels
+timeside.tests.api.test_lolevel.eod    timeside.tests.api.test_lolevel-module.html#eod
+timeside.tests.api.test_lolevel.max_level      timeside.tests.api.test_lolevel-module.html#max_level
+timeside.tests.api.test_lolevel.effect timeside.tests.api.test_lolevel-module.html#effect
+timeside.tests.api.test_lolevel.analyzer       timeside.tests.api.test_lolevel-module.html#analyzer
+timeside.tests.api.test_lolevel.source timeside.tests.api.test_lolevel-module.html#source
+timeside.tests.api.test_lolevel.decoder        timeside.tests.api.test_lolevel-module.html#decoder
+timeside.tests.api.test_lolevel.frames timeside.tests.api.test_lolevel-module.html#frames
+timeside.tests.api.test_lolevel.samplerate     timeside.tests.api.test_lolevel-module.html#samplerate
+timeside.tests.api.test_lolevel.encoder        timeside.tests.api.test_lolevel-module.html#encoder
+timeside.tests.api.test_lolevel.gain   timeside.tests.api.test_lolevel-module.html#gain
+timeside.tests.api.test_pipe   timeside.tests.api.test_pipe-module.html
+timeside.tests.api.test_pipe.duration  timeside.tests.api.test_pipe-module.html#duration
+timeside.tests.api.test_pipe.source    timeside.tests.api.test_pipe-module.html#source
+timeside.tests.api.test_pipe.encoder   timeside.tests.api.test_pipe-module.html#encoder
+timeside.tests.api.test_pipe.gain      timeside.tests.api.test_pipe-module.html#gain
+timeside.tests.api.test_pipe.decoder   timeside.tests.api.test_pipe-module.html#decoder
+timeside.tests.api.test_pipe.maxlevel  timeside.tests.api.test_pipe-module.html#maxlevel
+timeside.tests.api.test_pipe.use_gst   timeside.tests.api.test_pipe-module.html#use_gst
+timeside.tests.api.test_pipe.fixed     timeside.tests.api.test_pipe-module.html#fixed
+timeside.tests.api.test_pipe.subpipe   timeside.tests.api.test_pipe-module.html#subpipe
+timeside.tests.api.test_pipe_spectrogram       timeside.tests.api.test_pipe_spectrogram-module.html
+timeside.tests.api.test_pipe_spectrogram.spectrogram   timeside.tests.api.test_pipe_spectrogram-module.html#spectrogram
+timeside.tests.api.test_pipe_spectrogram.source        timeside.tests.api.test_pipe_spectrogram-module.html#source
+timeside.tests.api.test_pipe_spectrogram.image_file    timeside.tests.api.test_pipe_spectrogram-module.html#image_file
+timeside.tests.api.test_pipe_spectrogram.decoder       timeside.tests.api.test_pipe_spectrogram-module.html#decoder
+timeside.tests.api.test_pipe_spectrogram.use_gst       timeside.tests.api.test_pipe_spectrogram-module.html#use_gst
+timeside.tests.api.test_pipe_waveform  timeside.tests.api.test_pipe_waveform-module.html
+timeside.tests.api.test_pipe_waveform.waveform timeside.tests.api.test_pipe_waveform-module.html#waveform
+timeside.tests.api.test_pipe_waveform.source   timeside.tests.api.test_pipe_waveform-module.html#source
+timeside.tests.api.test_pipe_waveform.image_file       timeside.tests.api.test_pipe_waveform-module.html#image_file
+timeside.tests.api.test_pipe_waveform.decoder  timeside.tests.api.test_pipe_waveform-module.html#decoder
+timeside.tests.api.test_pipe_waveform.use_gst  timeside.tests.api.test_pipe_waveform-module.html#use_gst
+timeside.tests.listprocessors  timeside.tests.listprocessors-module.html
+timeside.tests.listprocessors.list_processors  timeside.tests.listprocessors-module.html#list_processors
+timeside.tests.test    timeside.tests.test-module.html
+timeside.tests.test.mimetype   timeside.tests.test-module.html#mimetype
+timeside.tests.testcomponent   timeside.tests.testcomponent-module.html
+timeside.tests.testinputadapter        timeside.tests.testinputadapter-module.html
+exceptions.AssertionError      exceptions.AssertionError-class.html
+exceptions.AssertionError.__init__     exceptions.AssertionError-class.html#__init__
+exceptions.AssertionError.__new__      exceptions.AssertionError-class.html#__new__
+timeside.analyze.channels.ChannelAnalyser      timeside.analyze.channels.ChannelAnalyser-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.analyze.channels.ChannelAnalyser.render       timeside.analyze.channels.ChannelAnalyser-class.html#render
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.analyze.channels.ChannelAnalyser.unit timeside.analyze.channels.ChannelAnalyser-class.html#unit
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.analyze.channels.ChannelAnalyser.id   timeside.analyze.channels.ChannelAnalyser-class.html#id
+timeside.analyze.core.AudioProcessor.pre_process       timeside.analyze.core.AudioProcessor-class.html#pre_process
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.analyze.core.AudioProcessor.__init__  timeside.analyze.core.AudioProcessor-class.html#__init__
+timeside.analyze.core.AudioProcessor.spectral_centroid timeside.analyze.core.AudioProcessor-class.html#spectral_centroid
+timeside.analyze.core.AudioProcessor.peaks     timeside.analyze.core.AudioProcessor-class.html#peaks
+timeside.analyze.core.AudioProcessor.read      timeside.analyze.core.AudioProcessor-class.html#read
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.analyze.core.AudioProcessor.get_mono_samples  timeside.analyze.core.AudioProcessor-class.html#get_mono_samples
+timeside.analyze.core.AudioProcessor.get_samples       timeside.analyze.core.AudioProcessor-class.html#get_samples
+timeside.analyze.channels.ChannelAnalyser.name timeside.analyze.channels.ChannelAnalyser-class.html#name
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.analyze.core.AudioProcessor   timeside.analyze.core.AudioProcessor-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.analyze.core.AudioProcessor.__init__  timeside.analyze.core.AudioProcessor-class.html#__init__
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.analyze.core.AudioProcessor.pre_process       timeside.analyze.core.AudioProcessor-class.html#pre_process
+timeside.analyze.core.AudioProcessor.spectral_centroid timeside.analyze.core.AudioProcessor-class.html#spectral_centroid
+timeside.analyze.core.AudioProcessor.peaks     timeside.analyze.core.AudioProcessor-class.html#peaks
+timeside.analyze.core.AudioProcessor.read      timeside.analyze.core.AudioProcessor-class.html#read
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.analyze.core.AudioProcessor.get_mono_samples  timeside.analyze.core.AudioProcessor-class.html#get_mono_samples
+timeside.analyze.core.AudioProcessor.get_samples       timeside.analyze.core.AudioProcessor-class.html#get_samples
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.analyze.dc.MeanDCShiftAnalyser        timeside.analyze.dc.MeanDCShiftAnalyser-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.analyze.dc.MeanDCShiftAnalyser.render timeside.analyze.dc.MeanDCShiftAnalyser-class.html#render
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.analyze.dc.MeanDCShiftAnalyser.id     timeside.analyze.dc.MeanDCShiftAnalyser-class.html#id
+timeside.analyze.core.AudioProcessor.pre_process       timeside.analyze.core.AudioProcessor-class.html#pre_process
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.analyze.dc.MeanDCShiftAnalyser.unit   timeside.analyze.dc.MeanDCShiftAnalyser-class.html#unit
+timeside.analyze.core.AudioProcessor.spectral_centroid timeside.analyze.core.AudioProcessor-class.html#spectral_centroid
+timeside.analyze.core.AudioProcessor.peaks     timeside.analyze.core.AudioProcessor-class.html#peaks
+timeside.analyze.core.AudioProcessor.read      timeside.analyze.core.AudioProcessor-class.html#read
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.analyze.core.AudioProcessor.get_mono_samples  timeside.analyze.core.AudioProcessor-class.html#get_mono_samples
+timeside.analyze.core.AudioProcessor.get_samples       timeside.analyze.core.AudioProcessor-class.html#get_samples
+timeside.analyze.dc.MeanDCShiftAnalyser.name   timeside.analyze.dc.MeanDCShiftAnalyser-class.html#name
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.analyze.core.AudioProcessor.__init__  timeside.analyze.core.AudioProcessor-class.html#__init__
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.analyze.duration.DurationAnalyzer     timeside.analyze.duration.DurationAnalyzer-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.analyze.duration.DurationAnalyzer.render      timeside.analyze.duration.DurationAnalyzer-class.html#render
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.analyze.duration.DurationAnalyzer.id  timeside.analyze.duration.DurationAnalyzer-class.html#id
+timeside.analyze.core.AudioProcessor.pre_process       timeside.analyze.core.AudioProcessor-class.html#pre_process
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.analyze.duration.DurationAnalyzer.unit        timeside.analyze.duration.DurationAnalyzer-class.html#unit
+timeside.analyze.core.AudioProcessor.spectral_centroid timeside.analyze.core.AudioProcessor-class.html#spectral_centroid
+timeside.analyze.core.AudioProcessor.peaks     timeside.analyze.core.AudioProcessor-class.html#peaks
+timeside.analyze.core.AudioProcessor.read      timeside.analyze.core.AudioProcessor-class.html#read
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.analyze.core.AudioProcessor.get_mono_samples  timeside.analyze.core.AudioProcessor-class.html#get_mono_samples
+timeside.analyze.core.AudioProcessor.get_samples       timeside.analyze.core.AudioProcessor-class.html#get_samples
+timeside.analyze.duration.DurationAnalyzer.name        timeside.analyze.duration.DurationAnalyzer-class.html#name
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.analyze.core.AudioProcessor.__init__  timeside.analyze.core.AudioProcessor-class.html#__init__
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.analyze.encoding.EncodingAnalyser     timeside.analyze.encoding.EncodingAnalyser-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.analyze.encoding.EncodingAnalyser.render      timeside.analyze.encoding.EncodingAnalyser-class.html#render
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.analyze.encoding.EncodingAnalyser.id  timeside.analyze.encoding.EncodingAnalyser-class.html#id
+timeside.analyze.core.AudioProcessor.pre_process       timeside.analyze.core.AudioProcessor-class.html#pre_process
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.analyze.encoding.EncodingAnalyser.unit        timeside.analyze.encoding.EncodingAnalyser-class.html#unit
+timeside.analyze.core.AudioProcessor.spectral_centroid timeside.analyze.core.AudioProcessor-class.html#spectral_centroid
+timeside.analyze.core.AudioProcessor.peaks     timeside.analyze.core.AudioProcessor-class.html#peaks
+timeside.analyze.core.AudioProcessor.read      timeside.analyze.core.AudioProcessor-class.html#read
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.analyze.core.AudioProcessor.get_mono_samples  timeside.analyze.core.AudioProcessor-class.html#get_mono_samples
+timeside.analyze.core.AudioProcessor.get_samples       timeside.analyze.core.AudioProcessor-class.html#get_samples
+timeside.analyze.encoding.EncodingAnalyser.name        timeside.analyze.encoding.EncodingAnalyser-class.html#name
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.analyze.core.AudioProcessor.__init__  timeside.analyze.core.AudioProcessor-class.html#__init__
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.analyze.format.FormatAnalyser timeside.analyze.format.FormatAnalyser-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.analyze.format.FormatAnalyser.render  timeside.analyze.format.FormatAnalyser-class.html#render
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.analyze.format.FormatAnalyser.id      timeside.analyze.format.FormatAnalyser-class.html#id
+timeside.analyze.core.AudioProcessor.pre_process       timeside.analyze.core.AudioProcessor-class.html#pre_process
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.analyze.format.FormatAnalyser.unit    timeside.analyze.format.FormatAnalyser-class.html#unit
+timeside.analyze.core.AudioProcessor.spectral_centroid timeside.analyze.core.AudioProcessor-class.html#spectral_centroid
+timeside.analyze.core.AudioProcessor.peaks     timeside.analyze.core.AudioProcessor-class.html#peaks
+timeside.analyze.core.AudioProcessor.read      timeside.analyze.core.AudioProcessor-class.html#read
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.analyze.core.AudioProcessor.get_mono_samples  timeside.analyze.core.AudioProcessor-class.html#get_mono_samples
+timeside.analyze.core.AudioProcessor.get_samples       timeside.analyze.core.AudioProcessor-class.html#get_samples
+timeside.analyze.format.FormatAnalyser.name    timeside.analyze.format.FormatAnalyser-class.html#name
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.analyze.core.AudioProcessor.__init__  timeside.analyze.core.AudioProcessor-class.html#__init__
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.analyze.max_level.MaxLevelAnalyzer    timeside.analyze.max_level.MaxLevelAnalyzer-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.analyze.max_level.MaxLevelAnalyzer.render     timeside.analyze.max_level.MaxLevelAnalyzer-class.html#render
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.analyze.max_level.MaxLevelAnalyzer.id timeside.analyze.max_level.MaxLevelAnalyzer-class.html#id
+timeside.analyze.core.AudioProcessor.pre_process       timeside.analyze.core.AudioProcessor-class.html#pre_process
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.analyze.max_level.MaxLevelAnalyzer.unit       timeside.analyze.max_level.MaxLevelAnalyzer-class.html#unit
+timeside.analyze.core.AudioProcessor.spectral_centroid timeside.analyze.core.AudioProcessor-class.html#spectral_centroid
+timeside.analyze.core.AudioProcessor.peaks     timeside.analyze.core.AudioProcessor-class.html#peaks
+timeside.analyze.core.AudioProcessor.read      timeside.analyze.core.AudioProcessor-class.html#read
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.analyze.core.AudioProcessor.get_mono_samples  timeside.analyze.core.AudioProcessor-class.html#get_mono_samples
+timeside.analyze.core.AudioProcessor.get_samples       timeside.analyze.core.AudioProcessor-class.html#get_samples
+timeside.analyze.max_level.MaxLevelAnalyzer.name       timeside.analyze.max_level.MaxLevelAnalyzer-class.html#name
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.analyze.core.AudioProcessor.__init__  timeside.analyze.core.AudioProcessor-class.html#__init__
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.analyze.mean_level.MeanLevelAnalyser  timeside.analyze.mean_level.MeanLevelAnalyser-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.analyze.mean_level.MeanLevelAnalyser.render   timeside.analyze.mean_level.MeanLevelAnalyser-class.html#render
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.analyze.mean_level.MeanLevelAnalyser.id       timeside.analyze.mean_level.MeanLevelAnalyser-class.html#id
+timeside.analyze.core.AudioProcessor.pre_process       timeside.analyze.core.AudioProcessor-class.html#pre_process
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.analyze.mean_level.MeanLevelAnalyser.unit     timeside.analyze.mean_level.MeanLevelAnalyser-class.html#unit
+timeside.analyze.core.AudioProcessor.spectral_centroid timeside.analyze.core.AudioProcessor-class.html#spectral_centroid
+timeside.analyze.core.AudioProcessor.peaks     timeside.analyze.core.AudioProcessor-class.html#peaks
+timeside.analyze.core.AudioProcessor.read      timeside.analyze.core.AudioProcessor-class.html#read
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.analyze.core.AudioProcessor.get_mono_samples  timeside.analyze.core.AudioProcessor-class.html#get_mono_samples
+timeside.analyze.core.AudioProcessor.get_samples       timeside.analyze.core.AudioProcessor-class.html#get_samples
+timeside.analyze.mean_level.MeanLevelAnalyser.name     timeside.analyze.mean_level.MeanLevelAnalyser-class.html#name
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.analyze.core.AudioProcessor.__init__  timeside.analyze.core.AudioProcessor-class.html#__init__
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.analyze.resolution.ResolutionAnalyser timeside.analyze.resolution.ResolutionAnalyser-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.analyze.resolution.ResolutionAnalyser.render  timeside.analyze.resolution.ResolutionAnalyser-class.html#render
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.analyze.resolution.ResolutionAnalyser.id      timeside.analyze.resolution.ResolutionAnalyser-class.html#id
+timeside.analyze.core.AudioProcessor.pre_process       timeside.analyze.core.AudioProcessor-class.html#pre_process
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.analyze.resolution.ResolutionAnalyser.unit    timeside.analyze.resolution.ResolutionAnalyser-class.html#unit
+timeside.analyze.core.AudioProcessor.spectral_centroid timeside.analyze.core.AudioProcessor-class.html#spectral_centroid
+timeside.analyze.core.AudioProcessor.peaks     timeside.analyze.core.AudioProcessor-class.html#peaks
+timeside.analyze.core.AudioProcessor.read      timeside.analyze.core.AudioProcessor-class.html#read
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.analyze.core.AudioProcessor.get_mono_samples  timeside.analyze.core.AudioProcessor-class.html#get_mono_samples
+timeside.analyze.core.AudioProcessor.get_samples       timeside.analyze.core.AudioProcessor-class.html#get_samples
+timeside.analyze.resolution.ResolutionAnalyser.name    timeside.analyze.resolution.ResolutionAnalyser-class.html#name
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.analyze.core.AudioProcessor.__init__  timeside.analyze.core.AudioProcessor-class.html#__init__
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.analyze.samplerate.SampleRateAnalyzer timeside.analyze.samplerate.SampleRateAnalyzer-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.analyze.samplerate.SampleRateAnalyzer.render  timeside.analyze.samplerate.SampleRateAnalyzer-class.html#render
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.analyze.samplerate.SampleRateAnalyzer.id      timeside.analyze.samplerate.SampleRateAnalyzer-class.html#id
+timeside.analyze.core.AudioProcessor.pre_process       timeside.analyze.core.AudioProcessor-class.html#pre_process
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.analyze.samplerate.SampleRateAnalyzer.unit    timeside.analyze.samplerate.SampleRateAnalyzer-class.html#unit
+timeside.analyze.core.AudioProcessor.spectral_centroid timeside.analyze.core.AudioProcessor-class.html#spectral_centroid
+timeside.analyze.core.AudioProcessor.peaks     timeside.analyze.core.AudioProcessor-class.html#peaks
+timeside.analyze.core.AudioProcessor.read      timeside.analyze.core.AudioProcessor-class.html#read
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.analyze.core.AudioProcessor.get_mono_samples  timeside.analyze.core.AudioProcessor-class.html#get_mono_samples
+timeside.analyze.core.AudioProcessor.get_samples       timeside.analyze.core.AudioProcessor-class.html#get_samples
+timeside.analyze.samplerate.SampleRateAnalyzer.name    timeside.analyze.samplerate.SampleRateAnalyzer-class.html#name
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.analyze.core.AudioProcessor.__init__  timeside.analyze.core.AudioProcessor-class.html#__init__
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.analyze.vamp.core.VampCoreAnalyzer    timeside.analyze.vamp.core.VampCoreAnalyzer-class.html
+timeside.analyze.vamp.core.VampCoreAnalyzer.name       timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#name
+timeside.analyze.vamp.core.VampCoreAnalyzer.render     timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#render
+timeside.analyze.vamp.core.VampCoreAnalyzer.get_wav_path       timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#get_wav_path
+timeside.analyze.vamp.core.VampCoreAnalyzer.get_plugins_list   timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#get_plugins_list
+timeside.analyze.vamp.core.VampCoreAnalyzer.core_process       timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#core_process
+timeside.analyze.vamp.core.VampCoreAnalyzer.unit       timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#unit
+timeside.analyze.vamp.core.VampCoreAnalyzer.id timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#id
+timeside.analyze.vamp.core.VampCoreAnalyzer.__init__   timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#__init__
+timeside.api.IAnalyzer timeside.api.IAnalyzer-class.html
+timeside.api.IAnalyzer.name    timeside.api.IAnalyzer-class.html#name
+timeside.api.IProcessor.process        timeside.api.IProcessor-class.html#process
+timeside.api.IProcessor.setup  timeside.api.IProcessor-class.html#setup
+timeside.api.IProcessor.nframes        timeside.api.IProcessor-class.html#nframes
+timeside.api.IProcessor.channels       timeside.api.IProcessor-class.html#channels
+timeside.api.IAnalyzer.__init__        timeside.api.IAnalyzer-class.html#__init__
+timeside.api.IProcessor.release        timeside.api.IProcessor-class.html#release
+timeside.api.IProcessor.samplerate     timeside.api.IProcessor-class.html#samplerate
+timeside.api.IProcessor.id     timeside.api.IProcessor-class.html#id
+timeside.api.IAnalyzer.unit    timeside.api.IAnalyzer-class.html#unit
+timeside.api.IDecoder  timeside.api.IDecoder-class.html
+timeside.api.IDecoder.encoding timeside.api.IDecoder-class.html#encoding
+timeside.api.IProcessor.process        timeside.api.IProcessor-class.html#process
+timeside.api.IProcessor.channels       timeside.api.IProcessor-class.html#channels
+timeside.api.IProcessor.samplerate     timeside.api.IProcessor-class.html#samplerate
+timeside.api.IProcessor.id     timeside.api.IProcessor-class.html#id
+timeside.api.IDecoder.__init__ timeside.api.IDecoder-class.html#__init__
+timeside.api.IProcessor.nframes        timeside.api.IProcessor-class.html#nframes
+timeside.api.IDecoder.metadata timeside.api.IDecoder-class.html#metadata
+timeside.api.IDecoder.format   timeside.api.IDecoder-class.html#format
+timeside.api.IProcessor.release        timeside.api.IProcessor-class.html#release
+timeside.api.IProcessor.setup  timeside.api.IProcessor-class.html#setup
+timeside.api.IDecoder.resolution       timeside.api.IDecoder-class.html#resolution
+timeside.api.IEffect   timeside.api.IEffect-class.html
+timeside.api.IEffect.name      timeside.api.IEffect-class.html#name
+timeside.api.IProcessor.process        timeside.api.IProcessor-class.html#process
+timeside.api.IProcessor.setup  timeside.api.IProcessor-class.html#setup
+timeside.api.IProcessor.nframes        timeside.api.IProcessor-class.html#nframes
+timeside.api.IProcessor.channels       timeside.api.IProcessor-class.html#channels
+timeside.api.IProcessor.release        timeside.api.IProcessor-class.html#release
+timeside.api.IProcessor.samplerate     timeside.api.IProcessor-class.html#samplerate
+timeside.api.IProcessor.id     timeside.api.IProcessor-class.html#id
+timeside.api.IEffect.__init__  timeside.api.IEffect-class.html#__init__
+timeside.api.IEncoder  timeside.api.IEncoder-class.html
+timeside.api.IProcessor.process        timeside.api.IProcessor-class.html#process
+timeside.api.IEncoder.file_extension   timeside.api.IEncoder-class.html#file_extension
+timeside.api.IProcessor.channels       timeside.api.IProcessor-class.html#channels
+timeside.api.IProcessor.samplerate     timeside.api.IProcessor-class.html#samplerate
+timeside.api.IProcessor.id     timeside.api.IProcessor-class.html#id
+timeside.api.IEncoder.__init__ timeside.api.IEncoder-class.html#__init__
+timeside.api.IProcessor.nframes        timeside.api.IProcessor-class.html#nframes
+timeside.api.IEncoder.set_metadata     timeside.api.IEncoder-class.html#set_metadata
+timeside.api.IEncoder.mime_type        timeside.api.IEncoder-class.html#mime_type
+timeside.api.IEncoder.description      timeside.api.IEncoder-class.html#description
+timeside.api.IEncoder.format   timeside.api.IEncoder-class.html#format
+timeside.api.IProcessor.setup  timeside.api.IProcessor-class.html#setup
+timeside.api.IProcessor.release        timeside.api.IProcessor-class.html#release
+timeside.api.IGrapher  timeside.api.IGrapher-class.html
+timeside.api.IGrapher.name     timeside.api.IGrapher-class.html#name
+timeside.api.IGrapher.render   timeside.api.IGrapher-class.html#render
+timeside.api.IProcessor.process        timeside.api.IProcessor-class.html#process
+timeside.api.IGrapher.set_colors       timeside.api.IGrapher-class.html#set_colors
+timeside.api.IProcessor.setup  timeside.api.IProcessor-class.html#setup
+timeside.api.IProcessor.nframes        timeside.api.IProcessor-class.html#nframes
+timeside.api.IProcessor.channels       timeside.api.IProcessor-class.html#channels
+timeside.api.IProcessor.release        timeside.api.IProcessor-class.html#release
+timeside.api.IProcessor.samplerate     timeside.api.IProcessor-class.html#samplerate
+timeside.api.IProcessor.id     timeside.api.IProcessor-class.html#id
+timeside.api.IGrapher.__init__ timeside.api.IGrapher-class.html#__init__
+timeside.api.IProcessor        timeside.api.IProcessor-class.html
+timeside.api.IProcessor.process        timeside.api.IProcessor-class.html#process
+timeside.api.IProcessor.setup  timeside.api.IProcessor-class.html#setup
+timeside.api.IProcessor.nframes        timeside.api.IProcessor-class.html#nframes
+timeside.api.IProcessor.channels       timeside.api.IProcessor-class.html#channels
+timeside.api.IProcessor.release        timeside.api.IProcessor-class.html#release
+timeside.api.IProcessor.samplerate     timeside.api.IProcessor-class.html#samplerate
+timeside.api.IProcessor.id     timeside.api.IProcessor-class.html#id
+timeside.api.IValueAnalyzer    timeside.api.IValueAnalyzer-class.html
+timeside.api.IAnalyzer.name    timeside.api.IAnalyzer-class.html#name
+timeside.api.IProcessor.process        timeside.api.IProcessor-class.html#process
+timeside.api.IValueAnalyzer.__str__    timeside.api.IValueAnalyzer-class.html#__str__
+timeside.api.IProcessor.nframes        timeside.api.IProcessor-class.html#nframes
+timeside.api.IProcessor.channels       timeside.api.IProcessor-class.html#channels
+timeside.api.IProcessor.id     timeside.api.IProcessor-class.html#id
+timeside.api.IValueAnalyzer.result     timeside.api.IValueAnalyzer-class.html#result
+timeside.api.IAnalyzer.__init__        timeside.api.IAnalyzer-class.html#__init__
+timeside.api.IProcessor.release        timeside.api.IProcessor-class.html#release
+timeside.api.IProcessor.samplerate     timeside.api.IProcessor-class.html#samplerate
+timeside.api.IProcessor.setup  timeside.api.IProcessor-class.html#setup
+timeside.api.IAnalyzer.unit    timeside.api.IAnalyzer-class.html#unit
+timeside.component.Component   timeside.component.Component-class.html
+timeside.component.Component.__metaclass__     timeside.component.MetaComponent-class.html
+timeside.component.ComponentError      timeside.component.ComponentError-class.html
+timeside.component.Interface   timeside.component.Interface-class.html
+timeside.component.MetaComponent       timeside.component.MetaComponent-class.html
+timeside.component.MetaComponent.abstract      timeside.component.MetaComponent-class.html#abstract
+timeside.component.MetaComponent.implementations       timeside.component.MetaComponent-class.html#implementations
+timeside.component.MetaComponent.__new__       timeside.component.MetaComponent-class.html#__new__
+timeside.component.MetaComponent.implements    timeside.component.MetaComponent-class.html#implements
+timeside.core.FixedSizeInputAdapter    timeside.core.FixedSizeInputAdapter-class.html
+timeside.core.FixedSizeInputAdapter.process    timeside.core.FixedSizeInputAdapter-class.html#process
+timeside.core.FixedSizeInputAdapter.nframes    timeside.core.FixedSizeInputAdapter-class.html#nframes
+timeside.core.FixedSizeInputAdapter.__init__   timeside.core.FixedSizeInputAdapter-class.html#__init__
+timeside.core.MetaProcessor    timeside.core.MetaProcessor-class.html
+timeside.component.MetaComponent.abstract      timeside.component.MetaComponent-class.html#abstract
+timeside.component.MetaComponent.implementations       timeside.component.MetaComponent-class.html#implementations
+timeside.core.MetaProcessor.__new__    timeside.core.MetaProcessor-class.html#__new__
+timeside.component.MetaComponent.implements    timeside.component.MetaComponent-class.html#implements
+timeside.core.MetaProcessor.valid_id   timeside.core.MetaProcessor-class.html#valid_id
+timeside.core.ProcessPipe      timeside.core.ProcessPipe-class.html
+timeside.core.ProcessPipe.run  timeside.core.ProcessPipe-class.html#run
+timeside.core.ProcessPipe.__ior__      timeside.core.ProcessPipe-class.html#__ior__
+timeside.core.ProcessPipe.__or__       timeside.core.ProcessPipe-class.html#__or__
+timeside.core.ProcessPipe.__init__     timeside.core.ProcessPipe-class.html#__init__
+timeside.core.Processor        timeside.core.Processor-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.decode.core.DecoderCore       timeside.decode.core.DecoderCore-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.decode.core.DecoderCore.process       timeside.decode.core.DecoderCore-class.html#process
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.decode.core.DecoderCore.__init__      timeside.decode.core.DecoderCore-class.html#__init__
+timeside.decode.core.SubProcessPipe    timeside.decode.core.SubProcessPipe-class.html
+timeside.decode.core.SubProcessPipe.__init__   timeside.decode.core.SubProcessPipe-class.html#__init__
+timeside.decode.flac.FlacDecoder       timeside.decode.flac.FlacDecoder-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.decode.core.DecoderCore.process       timeside.decode.core.DecoderCore-class.html#process
+timeside.decode.flac.FlacDecoder.file_extension        timeside.decode.flac.FlacDecoder-class.html#file_extension
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.decode.flac.FlacDecoder.id    timeside.decode.flac.FlacDecoder-class.html#id
+timeside.decode.core.DecoderCore.__init__      timeside.decode.core.DecoderCore-class.html#__init__
+timeside.decode.flac.FlacDecoder.get_file_info timeside.decode.flac.FlacDecoder-class.html#get_file_info
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.decode.flac.FlacDecoder.mime_type     timeside.decode.flac.FlacDecoder-class.html#mime_type
+timeside.decode.flac.FlacDecoder.description   timeside.decode.flac.FlacDecoder-class.html#description
+timeside.decode.flac.FlacDecoder.format        timeside.decode.flac.FlacDecoder-class.html#format
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.decode.mp3.Mp3Decoder timeside.decode.mp3.Mp3Decoder-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.decode.core.DecoderCore.process       timeside.decode.core.DecoderCore-class.html#process
+timeside.decode.mp3.Mp3Decoder.file_extension  timeside.decode.mp3.Mp3Decoder-class.html#file_extension
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.decode.mp3.Mp3Decoder.id      timeside.decode.mp3.Mp3Decoder-class.html#id
+timeside.decode.mp3.Mp3Decoder.__init__        timeside.decode.mp3.Mp3Decoder-class.html#__init__
+timeside.decode.mp3.Mp3Decoder.get_file_info   timeside.decode.mp3.Mp3Decoder-class.html#get_file_info
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.decode.mp3.Mp3Decoder.mime_type       timeside.decode.mp3.Mp3Decoder-class.html#mime_type
+timeside.decode.mp3.Mp3Decoder.description     timeside.decode.mp3.Mp3Decoder-class.html#description
+timeside.decode.mp3.Mp3Decoder.format  timeside.decode.mp3.Mp3Decoder-class.html#format
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.decode.ogg.OggDecoder timeside.decode.ogg.OggDecoder-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.decode.core.DecoderCore.process       timeside.decode.core.DecoderCore-class.html#process
+timeside.decode.ogg.OggDecoder.file_extension  timeside.decode.ogg.OggDecoder-class.html#file_extension
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.decode.ogg.OggDecoder.id      timeside.decode.ogg.OggDecoder-class.html#id
+timeside.decode.core.DecoderCore.__init__      timeside.decode.core.DecoderCore-class.html#__init__
+timeside.decode.ogg.OggDecoder.get_file_info   timeside.decode.ogg.OggDecoder-class.html#get_file_info
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.decode.ogg.OggDecoder.mime_type       timeside.decode.ogg.OggDecoder-class.html#mime_type
+timeside.decode.ogg.OggDecoder.description     timeside.decode.ogg.OggDecoder-class.html#description
+timeside.decode.ogg.OggDecoder.format  timeside.decode.ogg.OggDecoder-class.html#format
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.decode.wav.WavDecoder timeside.decode.wav.WavDecoder-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.decode.core.DecoderCore.process       timeside.decode.core.DecoderCore-class.html#process
+timeside.decode.wav.WavDecoder.file_extension  timeside.decode.wav.WavDecoder-class.html#file_extension
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.decode.wav.WavDecoder.id      timeside.decode.wav.WavDecoder-class.html#id
+timeside.decode.core.DecoderCore.__init__      timeside.decode.core.DecoderCore-class.html#__init__
+timeside.decode.wav.WavDecoder.get_file_info   timeside.decode.wav.WavDecoder-class.html#get_file_info
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.decode.wav.WavDecoder.mime_type       timeside.decode.wav.WavDecoder-class.html#mime_type
+timeside.decode.wav.WavDecoder.description     timeside.decode.wav.WavDecoder-class.html#description
+timeside.decode.wav.WavDecoder.format  timeside.decode.wav.WavDecoder-class.html#format
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.encode.core.EncoderCore       timeside.encode.core.EncoderCore-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.encode.core.EncoderCore.core_process  timeside.encode.core.EncoderCore-class.html#core_process
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.encode.core.SubProcessPipe    timeside.encode.core.SubProcessPipe-class.html
+timeside.encode.core.SubProcessPipe.__init__   timeside.encode.core.SubProcessPipe-class.html#__init__
+timeside.encode.flac.FlacEncoder       timeside.encode.flac.FlacEncoder-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.encode.flac.FlacEncoder.process       timeside.encode.flac.FlacEncoder-class.html#process
+timeside.encode.flac.FlacEncoder.file_extension        timeside.encode.flac.FlacEncoder-class.html#file_extension
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.encode.flac.FlacEncoder.id    timeside.encode.flac.FlacEncoder-class.html#id
+timeside.encode.flac.FlacEncoder.__init__      timeside.encode.flac.FlacEncoder-class.html#__init__
+timeside.encode.flac.FlacEncoder.get_file_info timeside.encode.flac.FlacEncoder-class.html#get_file_info
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.encode.core.EncoderCore.core_process  timeside.encode.core.EncoderCore-class.html#core_process
+timeside.encode.flac.FlacEncoder.mime_type     timeside.encode.flac.FlacEncoder-class.html#mime_type
+timeside.encode.flac.FlacEncoder.description   timeside.encode.flac.FlacEncoder-class.html#description
+timeside.encode.flac.FlacEncoder.format        timeside.encode.flac.FlacEncoder-class.html#format
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.encode.flac.FlacEncoder.write_tags    timeside.encode.flac.FlacEncoder-class.html#write_tags
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.encode.flac.FlacEncoder.get_args      timeside.encode.flac.FlacEncoder-class.html#get_args
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.encode.mp3.Mp3Encoder timeside.encode.mp3.Mp3Encoder-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.encode.mp3.Mp3Encoder.process timeside.encode.mp3.Mp3Encoder-class.html#process
+timeside.encode.mp3.Mp3Encoder.file_extension  timeside.encode.mp3.Mp3Encoder-class.html#file_extension
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.encode.mp3.Mp3Encoder.id      timeside.encode.mp3.Mp3Encoder-class.html#id
+timeside.encode.mp3.Mp3Encoder.__init__        timeside.encode.mp3.Mp3Encoder-class.html#__init__
+timeside.encode.mp3.Mp3Encoder.get_file_info   timeside.encode.mp3.Mp3Encoder-class.html#get_file_info
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.encode.core.EncoderCore.core_process  timeside.encode.core.EncoderCore-class.html#core_process
+timeside.encode.mp3.Mp3Encoder.mime_type       timeside.encode.mp3.Mp3Encoder-class.html#mime_type
+timeside.encode.mp3.Mp3Encoder.description     timeside.encode.mp3.Mp3Encoder-class.html#description
+timeside.encode.mp3.Mp3Encoder.format  timeside.encode.mp3.Mp3Encoder-class.html#format
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.encode.mp3.Mp3Encoder.write_tags      timeside.encode.mp3.Mp3Encoder-class.html#write_tags
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.encode.mp3.Mp3Encoder.get_args        timeside.encode.mp3.Mp3Encoder-class.html#get_args
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.encode.ogg.OggVorbisEncoder   timeside.encode.ogg.OggVorbisEncoder-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.encode.ogg.OggVorbisEncoder.process   timeside.encode.ogg.OggVorbisEncoder-class.html#process
+timeside.encode.ogg.OggVorbisEncoder.file_extension    timeside.encode.ogg.OggVorbisEncoder-class.html#file_extension
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.encode.ogg.OggVorbisEncoder.id        timeside.encode.ogg.OggVorbisEncoder-class.html#id
+timeside.encode.ogg.OggVorbisEncoder.__init__  timeside.encode.ogg.OggVorbisEncoder-class.html#__init__
+timeside.encode.ogg.OggVorbisEncoder.get_file_info     timeside.encode.ogg.OggVorbisEncoder-class.html#get_file_info
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.encode.core.EncoderCore.core_process  timeside.encode.core.EncoderCore-class.html#core_process
+timeside.encode.ogg.OggVorbisEncoder.mime_type timeside.encode.ogg.OggVorbisEncoder-class.html#mime_type
+timeside.encode.ogg.OggVorbisEncoder.description       timeside.encode.ogg.OggVorbisEncoder-class.html#description
+timeside.encode.ogg.OggVorbisEncoder.format    timeside.encode.ogg.OggVorbisEncoder-class.html#format
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.encode.ogg.OggVorbisEncoder.write_tags        timeside.encode.ogg.OggVorbisEncoder-class.html#write_tags
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.encode.ogg.OggVorbisEncoder.get_args  timeside.encode.ogg.OggVorbisEncoder-class.html#get_args
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.encode.wav.WavEncoder timeside.encode.wav.WavEncoder-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.encode.wav.WavEncoder.process timeside.encode.wav.WavEncoder-class.html#process
+timeside.encode.wav.WavEncoder.file_extension  timeside.encode.wav.WavEncoder-class.html#file_extension
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.encode.wav.WavEncoder.id      timeside.encode.wav.WavEncoder-class.html#id
+timeside.encode.wav.WavEncoder.__init__        timeside.encode.wav.WavEncoder-class.html#__init__
+timeside.encode.wav.WavEncoder.get_file_info   timeside.encode.wav.WavEncoder-class.html#get_file_info
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.encode.core.EncoderCore.core_process  timeside.encode.core.EncoderCore-class.html#core_process
+timeside.encode.wav.WavEncoder.mime_type       timeside.encode.wav.WavEncoder-class.html#mime_type
+timeside.encode.wav.WavEncoder.description     timeside.encode.wav.WavEncoder-class.html#description
+timeside.encode.wav.WavEncoder.format  timeside.encode.wav.WavEncoder-class.html#format
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.exceptions.ApiError   timeside.exceptions.ApiError-class.html
+timeside.exceptions.Error      timeside.exceptions.Error-class.html
+timeside.exceptions.SubProcessError    timeside.exceptions.SubProcessError-class.html
+timeside.exceptions.SubProcessError.__str__    timeside.exceptions.SubProcessError-class.html#__str__
+timeside.exceptions.SubProcessError.__init__   timeside.exceptions.SubProcessError-class.html#__init__
+timeside.grapher.core.Noise    timeside.grapher.core.Noise-class.html
+timeside.grapher.core.Noise.read_frames        timeside.grapher.core.Noise-class.html#read_frames
+timeside.grapher.core.Noise.get_samplerate     timeside.grapher.core.Noise-class.html#get_samplerate
+timeside.grapher.core.Noise.get_nframes        timeside.grapher.core.Noise-class.html#get_nframes
+timeside.grapher.core.Noise.seek       timeside.grapher.core.Noise-class.html#seek
+timeside.grapher.core.Noise.__init__   timeside.grapher.core.Noise-class.html#__init__
+timeside.grapher.core.Noise.get_channels       timeside.grapher.core.Noise-class.html#get_channels
+timeside.grapher.core.SpectralCentroid timeside.grapher.core.SpectralCentroid-class.html
+timeside.grapher.core.SpectralCentroid.process timeside.grapher.core.SpectralCentroid-class.html#process
+timeside.grapher.core.SpectralCentroid.__init__        timeside.grapher.core.SpectralCentroid-class.html#__init__
+timeside.grapher.core.SpectrogramImage timeside.grapher.core.SpectrogramImage-class.html
+timeside.grapher.core.SpectrogramImage.process timeside.grapher.core.SpectrogramImage-class.html#process
+timeside.grapher.core.SpectrogramImage.save    timeside.grapher.core.SpectrogramImage-class.html#save
+timeside.grapher.core.SpectrogramImage.draw_spectrum   timeside.grapher.core.SpectrogramImage-class.html#draw_spectrum
+timeside.grapher.core.SpectrogramImage.__init__        timeside.grapher.core.SpectrogramImage-class.html#__init__
+timeside.grapher.core.WaveformImage    timeside.grapher.core.WaveformImage-class.html
+timeside.grapher.core.WaveformImage.draw_peaks timeside.grapher.core.WaveformImage-class.html#draw_peaks
+timeside.grapher.core.WaveformImage.peaks      timeside.grapher.core.WaveformImage-class.html#peaks
+timeside.grapher.core.WaveformImage.process    timeside.grapher.core.WaveformImage-class.html#process
+timeside.grapher.core.WaveformImage.__init__   timeside.grapher.core.WaveformImage-class.html#__init__
+timeside.grapher.core.WaveformImage.save       timeside.grapher.core.WaveformImage-class.html#save
+timeside.grapher.core.WaveformImage.draw_anti_aliased_pixels   timeside.grapher.core.WaveformImage-class.html#draw_anti_aliased_pixels
+timeside.grapher.core.WaveformImage.color_from_value   timeside.grapher.core.WaveformImage-class.html#color_from_value
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab       timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.render        timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#render
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id    timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.set_colors    timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#set_colors
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme  timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#color_scheme
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color      timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#bg_color
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name  timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#name
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab     timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.render      timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#render
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id  timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.set_colors  timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#set_colors
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme        timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#color_scheme
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color    timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#bg_color
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name        timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#name
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.metadata.Metadata     timeside.metadata.Metadata-class.html
+timeside.tests.TestCase        timeside.tests.TestCase-class.html
+unittest.TestCase.failureException     exceptions.AssertionError-class.html
+timeside.tests.TestCase.assertSameList timeside.tests.TestCase-class.html#assertSameList
+timeside.tests.TestRunner      timeside.tests.TestRunner-class.html
+timeside.tests.TestRunner._makeResult  timeside.tests.TestRunner-class.html#_makeResult
+timeside.tests.TestRunner.run  timeside.tests.TestRunner-class.html#run
+timeside.tests.TestRunner.__init__     timeside.tests.TestRunner-class.html#__init__
+timeside.tests._TextTestResult timeside.tests._TextTestResult-class.html
+timeside.tests._TextTestResult.separator1      timeside.tests._TextTestResult-class.html#separator1
+timeside.tests._TextTestResult.separator2      timeside.tests._TextTestResult-class.html#separator2
+timeside.tests._TextTestResult.__init__        timeside.tests._TextTestResult-class.html#__init__
+timeside.tests._TextTestResult.printErrorList  timeside.tests._TextTestResult-class.html#printErrorList
+timeside.tests._TextTestResult.addSuccess      timeside.tests._TextTestResult-class.html#addSuccess
+timeside.tests._TextTestResult.getDescription  timeside.tests._TextTestResult-class.html#getDescription
+timeside.tests._TextTestResult.addFailure      timeside.tests._TextTestResult-class.html#addFailure
+timeside.tests._TextTestResult.addError        timeside.tests._TextTestResult-class.html#addError
+timeside.tests._TextTestResult.startTest       timeside.tests._TextTestResult-class.html#startTest
+timeside.tests._TextTestResult.printErrors     timeside.tests._TextTestResult-class.html#printErrors
+timeside.tests._WritelnDecorator       timeside.tests._WritelnDecorator-class.html
+timeside.tests._WritelnDecorator.writeln       timeside.tests._WritelnDecorator-class.html#writeln
+timeside.tests._WritelnDecorator.__getattr__   timeside.tests._WritelnDecorator-class.html#__getattr__
+timeside.tests._WritelnDecorator.__init__      timeside.tests._WritelnDecorator-class.html#__init__
+timeside.tests.api.examples.Duration   timeside.tests.api.examples.Duration-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.core.Processor.process        timeside.core.Processor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.tests.api.examples.Duration.result    timeside.tests.api.examples.Duration-class.html#result
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.tests.api.examples.Duration.id        timeside.tests.api.examples.Duration-class.html#id
+timeside.tests.api.examples.Duration.unit      timeside.tests.api.examples.Duration-class.html#unit
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.tests.api.examples.Duration.name      timeside.tests.api.examples.Duration-class.html#name
+timeside.tests.api.examples.Duration.setup     timeside.tests.api.examples.Duration-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.tests.api.examples.FileDecoder        timeside.tests.api.examples.FileDecoder-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.tests.api.examples.FileDecoder.encoding       timeside.tests.api.examples.FileDecoder-class.html#encoding
+timeside.tests.api.examples.FileDecoder.process        timeside.tests.api.examples.FileDecoder-class.html#process
+timeside.tests.api.examples.FileDecoder.channels       timeside.tests.api.examples.FileDecoder-class.html#channels
+timeside.tests.api.examples.FileDecoder.samplerate     timeside.tests.api.examples.FileDecoder-class.html#samplerate
+timeside.tests.api.examples.FileDecoder.id     timeside.tests.api.examples.FileDecoder-class.html#id
+timeside.tests.api.examples.FileDecoder.__init__       timeside.tests.api.examples.FileDecoder-class.html#__init__
+timeside.tests.api.examples.FileDecoder.nframes        timeside.tests.api.examples.FileDecoder-class.html#nframes
+timeside.tests.api.examples.FileDecoder.metadata       timeside.tests.api.examples.FileDecoder-class.html#metadata
+timeside.tests.api.examples.FileDecoder.format timeside.tests.api.examples.FileDecoder-class.html#format
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.tests.api.examples.FileDecoder.setup  timeside.tests.api.examples.FileDecoder-class.html#setup
+timeside.tests.api.examples.FileDecoder.release        timeside.tests.api.examples.FileDecoder-class.html#release
+timeside.tests.api.examples.FileDecoder.resolution     timeside.tests.api.examples.FileDecoder-class.html#resolution
+timeside.tests.api.examples.FixedInputProcessor        timeside.tests.api.examples.FixedInputProcessor-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.tests.api.examples.FixedInputProcessor.process        timeside.tests.api.examples.FixedInputProcessor-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.tests.api.examples.FixedInputProcessor.BUFFER_SIZE    timeside.tests.api.examples.FixedInputProcessor-class.html#BUFFER_SIZE
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.tests.api.examples.FixedInputProcessor.id     timeside.tests.api.examples.FixedInputProcessor-class.html#id
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.tests.api.examples.FixedInputProcessor.setup  timeside.tests.api.examples.FixedInputProcessor-class.html#setup
+timeside.tests.api.examples.Gain       timeside.tests.api.examples.Gain-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.tests.api.examples.Gain.process       timeside.tests.api.examples.Gain-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.tests.api.examples.Gain.id    timeside.tests.api.examples.Gain-class.html#id
+timeside.tests.api.examples.Gain.__init__      timeside.tests.api.examples.Gain-class.html#__init__
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.tests.api.examples.Gain.name  timeside.tests.api.examples.Gain-class.html#name
+timeside.core.Processor.setup  timeside.core.Processor-class.html#setup
+timeside.tests.api.examples.MaxLevel   timeside.tests.api.examples.MaxLevel-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.tests.api.examples.MaxLevel.process   timeside.tests.api.examples.MaxLevel-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.tests.api.examples.MaxLevel.result    timeside.tests.api.examples.MaxLevel-class.html#result
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.tests.api.examples.MaxLevel.id        timeside.tests.api.examples.MaxLevel-class.html#id
+timeside.tests.api.examples.MaxLevel.unit      timeside.tests.api.examples.MaxLevel-class.html#unit
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.tests.api.examples.MaxLevel.name      timeside.tests.api.examples.MaxLevel-class.html#name
+timeside.tests.api.examples.MaxLevel.setup     timeside.tests.api.examples.MaxLevel-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.tests.api.examples.Spectrogram        timeside.tests.api.examples.Spectrogram-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.tests.api.examples.Spectrogram.render timeside.tests.api.examples.Spectrogram-class.html#render
+timeside.tests.api.examples.Spectrogram.process        timeside.tests.api.examples.Spectrogram-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.tests.api.examples.Spectrogram.id     timeside.tests.api.examples.Spectrogram-class.html#id
+timeside.tests.api.examples.Spectrogram.__init__       timeside.tests.api.examples.Spectrogram-class.html#__init__
+timeside.tests.api.examples.Spectrogram.set_colors     timeside.tests.api.examples.Spectrogram-class.html#set_colors
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.tests.api.examples.Spectrogram.FFT_SIZE       timeside.tests.api.examples.Spectrogram-class.html#FFT_SIZE
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.tests.api.examples.Spectrogram.name   timeside.tests.api.examples.Spectrogram-class.html#name
+timeside.tests.api.examples.Spectrogram.setup  timeside.tests.api.examples.Spectrogram-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.tests.api.examples.WavEncoder timeside.tests.api.examples.WavEncoder-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.tests.api.examples.WavEncoder.process timeside.tests.api.examples.WavEncoder-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.tests.api.examples.WavEncoder.id      timeside.tests.api.examples.WavEncoder-class.html#id
+timeside.tests.api.examples.WavEncoder.__init__        timeside.tests.api.examples.WavEncoder-class.html#__init__
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.tests.api.examples.WavEncoder.set_metadata    timeside.tests.api.examples.WavEncoder-class.html#set_metadata
+timeside.tests.api.examples.WavEncoder.file_extension  timeside.tests.api.examples.WavEncoder-class.html#file_extension
+timeside.tests.api.examples.WavEncoder.mime_type       timeside.tests.api.examples.WavEncoder-class.html#mime_type
+timeside.tests.api.examples.WavEncoder.description     timeside.tests.api.examples.WavEncoder-class.html#description
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.tests.api.examples.WavEncoder.setup   timeside.tests.api.examples.WavEncoder-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.tests.api.examples.Waveform   timeside.tests.api.examples.Waveform-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.tests.api.examples.Waveform.render    timeside.tests.api.examples.Waveform-class.html#render
+timeside.tests.api.examples.Waveform.process   timeside.tests.api.examples.Waveform-class.html#process
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.tests.api.examples.Waveform.id        timeside.tests.api.examples.Waveform-class.html#id
+timeside.tests.api.examples.Waveform.__init__  timeside.tests.api.examples.Waveform-class.html#__init__
+timeside.tests.api.examples.Waveform.set_colors        timeside.tests.api.examples.Waveform-class.html#set_colors
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.tests.api.examples.Waveform.FFT_SIZE  timeside.tests.api.examples.Waveform-class.html#FFT_SIZE
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.tests.api.examples.Waveform.name      timeside.tests.api.examples.Waveform-class.html#name
+timeside.tests.api.examples.Waveform.setup     timeside.tests.api.examples.Waveform-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.tests.api.gstreamer.FileDecoder       timeside.tests.api.gstreamer.FileDecoder-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.tests.api.gstreamer.FileDecoder.encoding      timeside.tests.api.gstreamer.FileDecoder-class.html#encoding
+timeside.tests.api.gstreamer.FileDecoder.process       timeside.tests.api.gstreamer.FileDecoder-class.html#process
+timeside.tests.api.gstreamer.FileDecoder.discover      timeside.tests.api.gstreamer.FileDecoder-class.html#discover
+timeside.tests.api.gstreamer.FileDecoder.discovered    timeside.tests.api.gstreamer.FileDecoder-class.html#discovered
+timeside.tests.api.gstreamer.FileDecoder.audioformat   timeside.tests.api.gstreamer.FileDecoder-class.html#audioformat
+timeside.tests.api.gstreamer.FileDecoder.samplerate    timeside.tests.api.gstreamer.FileDecoder-class.html#samplerate
+timeside.tests.api.gstreamer.FileDecoder.id    timeside.tests.api.gstreamer.FileDecoder-class.html#id
+timeside.tests.api.gstreamer.FileDecoder.__init__      timeside.tests.api.gstreamer.FileDecoder-class.html#__init__
+timeside.tests.api.gstreamer.FileDecoder.nframes       timeside.tests.api.gstreamer.FileDecoder-class.html#nframes
+timeside.tests.api.gstreamer.FileDecoder.audiorate     timeside.tests.api.gstreamer.FileDecoder-class.html#audiorate
+timeside.tests.api.gstreamer.FileDecoder.MAX_DISCOVERY_TIME    timeside.tests.api.gstreamer.FileDecoder-class.html#MAX_DISCOVERY_TIME
+timeside.tests.api.gstreamer.FileDecoder.gst_buffer_to_numpy_array     timeside.tests.api.gstreamer.FileDecoder-class.html#gst_buffer_to_numpy_array
+timeside.tests.api.gstreamer.FileDecoder.metadata      timeside.tests.api.gstreamer.FileDecoder-class.html#metadata
+timeside.tests.api.gstreamer.FileDecoder.audionframes  timeside.tests.api.gstreamer.FileDecoder-class.html#audionframes
+timeside.tests.api.gstreamer.FileDecoder.format        timeside.tests.api.gstreamer.FileDecoder-class.html#format
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.tests.api.gstreamer.FileDecoder.mimetype      timeside.tests.api.gstreamer.FileDecoder-class.html#mimetype
+timeside.tests.api.gstreamer.FileDecoder.channels      timeside.tests.api.gstreamer.FileDecoder-class.html#channels
+timeside.tests.api.gstreamer.FileDecoder.setup timeside.tests.api.gstreamer.FileDecoder-class.html#setup
+timeside.tests.api.gstreamer.FileDecoder.audiochannels timeside.tests.api.gstreamer.FileDecoder-class.html#audiochannels
+timeside.tests.api.gstreamer.FileDecoder.release       timeside.tests.api.gstreamer.FileDecoder-class.html#release
+timeside.tests.api.gstreamer.FileDecoder.resolution    timeside.tests.api.gstreamer.FileDecoder-class.html#resolution
+timeside.tests.api.gstreamer.WavEncoder        timeside.tests.api.gstreamer.WavEncoder-class.html
+timeside.core.Processor.__metaclass__  timeside.core.MetaProcessor-class.html
+timeside.tests.api.gstreamer.WavEncoder.process        timeside.tests.api.gstreamer.WavEncoder-class.html#process
+timeside.tests.api.gstreamer.WavEncoder.file_extension timeside.tests.api.gstreamer.WavEncoder-class.html#file_extension
+timeside.core.Processor.channels       timeside.core.Processor-class.html#channels
+timeside.core.Processor.samplerate     timeside.core.Processor-class.html#samplerate
+timeside.tests.api.gstreamer.WavEncoder.id     timeside.tests.api.gstreamer.WavEncoder-class.html#id
+timeside.tests.api.gstreamer.WavEncoder.__init__       timeside.tests.api.gstreamer.WavEncoder-class.html#__init__
+timeside.core.Processor.nframes        timeside.core.Processor-class.html#nframes
+timeside.tests.api.gstreamer.WavEncoder.set_metadata   timeside.tests.api.gstreamer.WavEncoder-class.html#set_metadata
+timeside.tests.api.gstreamer.WavEncoder.numpy_array_to_gst_buffer      timeside.tests.api.gstreamer.WavEncoder-class.html#numpy_array_to_gst_buffer
+timeside.tests.api.gstreamer.WavEncoder.mime_type      timeside.tests.api.gstreamer.WavEncoder-class.html#mime_type
+timeside.tests.api.gstreamer.WavEncoder.description    timeside.tests.api.gstreamer.WavEncoder-class.html#description
+timeside.core.Processor.__del__        timeside.core.Processor-class.html#__del__
+timeside.core.Processor.__or__ timeside.core.Processor-class.html#__or__
+timeside.tests.api.gstreamer.WavEncoder.setup  timeside.tests.api.gstreamer.WavEncoder-class.html#setup
+timeside.core.Processor.release        timeside.core.Processor-class.html#release
+timeside.tests.test.TestAnalyzers      timeside.tests.test.TestAnalyzers-class.html
+timeside.tests.test.TestAnalyzers.analyzers    timeside.tests.test.TestAnalyzers-class.html#analyzers
+timeside.tests.test.TestAnalyzers.list timeside.tests.test.TestAnalyzers-class.html#list
+timeside.tests.test.TestAnalyzers.run  timeside.tests.test.TestAnalyzers-class.html#run
+timeside.tests.test.TestDecoders       timeside.tests.test.TestDecoders-class.html
+timeside.tests.test.TestDecoders.export        timeside.tests.test.TestDecoders-class.html#export
+timeside.tests.test.TestDecoders.get_decoder   timeside.tests.test.TestDecoders-class.html#get_decoder
+timeside.tests.test.TestDecoders.decoders      timeside.tests.test.TestDecoders-class.html#decoders
+timeside.tests.test.TestDecoders.list  timeside.tests.test.TestDecoders-class.html#list
+timeside.tests.test.TestEncoders       timeside.tests.test.TestEncoders-class.html
+timeside.tests.test.TestEncoders.list  timeside.tests.test.TestEncoders-class.html#list
+timeside.tests.test.TestEncoders.get_encoder   timeside.tests.test.TestEncoders-class.html#get_encoder
+timeside.tests.test.TestEncoders.encoders      timeside.tests.test.TestEncoders-class.html#encoders
+timeside.tests.test.TestEncoders.run   timeside.tests.test.TestEncoders-class.html#run
+timeside.tests.test.TestGraphers       timeside.tests.test.TestGraphers-class.html
+timeside.tests.test.TestGraphers.graphers      timeside.tests.test.TestGraphers-class.html#graphers
+timeside.tests.test.TestGraphers.list  timeside.tests.test.TestGraphers-class.html#list
+timeside.tests.test.TestGraphers.run   timeside.tests.test.TestGraphers-class.html#run
+timeside.tests.testcomponent.C1        timeside.tests.testcomponent.C1-class.html
+timeside.component.Component.__metaclass__     timeside.component.MetaComponent-class.html
+timeside.tests.testcomponent.C10       timeside.tests.testcomponent.C10-class.html
+timeside.component.Component.__metaclass__     timeside.component.MetaComponent-class.html
+timeside.tests.testcomponent.C10.teststatic    timeside.tests.testcomponent.C10-class.html#teststatic
+timeside.tests.testcomponent.C10.test  timeside.tests.testcomponent.C10-class.html#test
+timeside.tests.testcomponent.C11       timeside.tests.testcomponent.C11-class.html
+timeside.component.Component.__metaclass__     timeside.component.MetaComponent-class.html
+timeside.tests.testcomponent.C2        timeside.tests.testcomponent.C2-class.html
+timeside.component.Component.__metaclass__     timeside.component.MetaComponent-class.html
+timeside.tests.testcomponent.C3        timeside.tests.testcomponent.C3-class.html
+timeside.component.Component.__metaclass__     timeside.component.MetaComponent-class.html
+timeside.tests.testcomponent.C4        timeside.tests.testcomponent.C4-class.html
+timeside.component.Component.__metaclass__     timeside.component.MetaComponent-class.html
+timeside.tests.testcomponent.C5        timeside.tests.testcomponent.C5-class.html
+timeside.component.Component.__metaclass__     timeside.component.MetaComponent-class.html
+timeside.tests.testcomponent.C6        timeside.tests.testcomponent.C6-class.html
+timeside.component.Component.__metaclass__     timeside.component.MetaComponent-class.html
+timeside.tests.testcomponent.C7        timeside.tests.testcomponent.C7-class.html
+timeside.component.Component.__metaclass__     timeside.component.MetaComponent-class.html
+timeside.tests.testcomponent.C8        timeside.tests.testcomponent.C8-class.html
+timeside.component.Component.__metaclass__     timeside.component.MetaComponent-class.html
+timeside.tests.testcomponent.C9        timeside.tests.testcomponent.C9-class.html
+timeside.component.Component.__metaclass__     timeside.component.MetaComponent-class.html
+timeside.tests.testcomponent.I1        timeside.tests.testcomponent.I1-class.html
+timeside.tests.testcomponent.I10       timeside.tests.testcomponent.I10-class.html
+timeside.tests.testcomponent.I10.teststatic    timeside.tests.testcomponent.I10-class.html#teststatic
+timeside.tests.testcomponent.I10.test  timeside.tests.testcomponent.I10-class.html#test
+timeside.tests.testcomponent.I11       timeside.tests.testcomponent.I11-class.html
+timeside.tests.testcomponent.I2        timeside.tests.testcomponent.I2-class.html
+timeside.tests.testcomponent.I3        timeside.tests.testcomponent.I3-class.html
+timeside.tests.testcomponent.I4        timeside.tests.testcomponent.I4-class.html
+timeside.tests.testcomponent.I5        timeside.tests.testcomponent.I5-class.html
+timeside.tests.testcomponent.I6        timeside.tests.testcomponent.I6-class.html
+timeside.tests.testcomponent.I7        timeside.tests.testcomponent.I7-class.html
+timeside.tests.testcomponent.I8        timeside.tests.testcomponent.I8-class.html
+timeside.tests.testcomponent.I9        timeside.tests.testcomponent.I9-class.html
+timeside.tests.testcomponent.TestComponentArchitecture timeside.tests.testcomponent.TestComponentArchitecture-class.html
+timeside.tests.testcomponent.TestComponentArchitecture.testInterfaceDoc        timeside.tests.testcomponent.TestComponentArchitecture-class.html#testInterfaceDoc
+unittest.TestCase.failureException     exceptions.AssertionError-class.html
+timeside.tests.testcomponent.TestComponentArchitecture.testImplementationRedundancy    timeside.tests.testcomponent.TestComponentArchitecture-class.html#testImplementationRedundancy
+timeside.tests.testcomponent.TestComponentArchitecture.testAbstractImplementation      timeside.tests.testcomponent.TestComponentArchitecture-class.html#testAbstractImplementation
+timeside.tests.testcomponent.TestComponentArchitecture.testImplementationInheritance   timeside.tests.testcomponent.TestComponentArchitecture-class.html#testImplementationInheritance
+timeside.tests.testcomponent.TestComponentArchitecture.testInterfaceDocBadMethod       timeside.tests.testcomponent.TestComponentArchitecture-class.html#testInterfaceDocBadMethod
+timeside.tests.testcomponent.TestComponentArchitecture.testTwoImplementations  timeside.tests.testcomponent.TestComponentArchitecture-class.html#testTwoImplementations
+timeside.tests.testcomponent.TestComponentArchitecture.testInterfaceInheritance        timeside.tests.testcomponent.TestComponentArchitecture-class.html#testInterfaceInheritance
+timeside.tests.testcomponent.TestComponentArchitecture.testIntefaceDocReversed timeside.tests.testcomponent.TestComponentArchitecture-class.html#testIntefaceDocReversed
+timeside.tests.TestCase.assertSameList timeside.tests.TestCase-class.html#assertSameList
+timeside.tests.testcomponent.TestComponentArchitecture.testInterfaceDocStatic  timeside.tests.testcomponent.TestComponentArchitecture-class.html#testInterfaceDocStatic
+timeside.tests.testcomponent.TestComponentArchitecture.testOneInterface        timeside.tests.testcomponent.TestComponentArchitecture-class.html#testOneInterface
+timeside.tests.testcomponent.TestComponentArchitecture.testTwoInterfaces       timeside.tests.testcomponent.TestComponentArchitecture-class.html#testTwoInterfaces
+timeside.tests.testinputadapter.TestFixedSizeInputAdapter      timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html
+timeside.tests.testinputadapter.TestFixedSizeInputAdapter.testPadding  timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#testPadding
+timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals       timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#assertIOEquals
+unittest.TestCase.failureException     exceptions.AssertionError-class.html
+timeside.tests.testinputadapter.TestFixedSizeInputAdapter.setUp        timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#setUp
+timeside.tests.TestCase.assertSameList timeside.tests.TestCase-class.html#assertSameList
+timeside.tests.testinputadapter.TestFixedSizeInputAdapter.testTwoChannels      timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#testTwoChannels
+timeside.tests.testinputadapter.TestFixedSizeInputAdapter.testSizeMultiple     timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#testSizeMultiple
diff --git a/doc/epydoc/class-tree.html b/doc/epydoc/class-tree.html
new file mode 100644 (file)
index 0000000..ec56078
--- /dev/null
@@ -0,0 +1,414 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Class Hierarchy</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">&nbsp;</td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="class-tree.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<center><b>
+ [ <a href="module-tree.html">Module Hierarchy</a>
+ | <a href="class-tree.html">Class Hierarchy</a> ]
+</b></center><br />
+<h1 class="epydoc">Class Hierarchy</h1>
+<ul class="nomargin-top">
+    <li> <strong class="uidlink"><a href="timeside.decode.core.SubProcessPipe-class.html">timeside.decode.core.SubProcessPipe</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.core.SubProcessPipe-class.html">timeside.encode.core.SubProcessPipe</a></strong>:
+      <em class="summary">Read media and stream data through a generator.</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.test.TestAnalyzers-class.html">timeside.tests.test.TestAnalyzers</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.test.TestDecoders-class.html">timeside.tests.test.TestDecoders</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.test.TestEncoders-class.html">timeside.tests.test.TestEncoders</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.test.TestGraphers-class.html">timeside.tests.test.TestGraphers</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.TestRunner-class.html">timeside.tests.TestRunner</a></strong>:
+      <em class="summary">A test runner class that displays results in textual form.</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html">timeside.analyze.vamp.core.VampCoreAnalyzer</a></strong>:
+      <em class="summary">Parent class for Vamp plugin drivers</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests._WritelnDecorator-class.html" onclick="show_private();">timeside.tests._WritelnDecorator</a></strong>:
+      <em class="summary">Used to decorate file-like objects with a handy 'writeln' method</em>
+    </li>
+    <li> <strong class="uidlink">object</strong>:
+      <em class="summary">The most base type</em>
+    <ul>
+    <li> <strong class="uidlink">exceptions.BaseException</strong>:
+      <em class="summary">Common base class for all exceptions</em>
+    <ul>
+    <li> <strong class="uidlink">exceptions.Exception</strong>:
+      <em class="summary">Common base class for all non-exit exceptions.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.exceptions.ApiError-class.html">timeside.exceptions.ApiError</a></strong>:
+      <em class="summary">Exception base class for errors in TimeSide.</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.component.ComponentError-class.html">timeside.component.ComponentError</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.exceptions.Error-class.html">timeside.exceptions.Error</a></strong>:
+      <em class="summary">Exception base class for errors in TimeSide.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.exceptions.SubProcessError-class.html">timeside.exceptions.SubProcessError</a></strong>:
+      <em class="summary">Exception for reporting errors from a subprocess</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink">exceptions.StandardError</strong>:
+      <em class="summary">Base class for all standard Python exceptions that do not represent
+        interpreter exiting.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="exceptions.AssertionError-class.html">exceptions.AssertionError</a></strong>:
+      <em class="summary">Assertion failed.</em>
+    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.component.Component-class.html">timeside.component.Component</a></strong>:
+      <em class="summary">Base class of all components</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.C1-class.html" onclick="show_private();">timeside.tests.testcomponent.C1</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.C10-class.html" onclick="show_private();">timeside.tests.testcomponent.C10</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.C11-class.html" onclick="show_private();">timeside.tests.testcomponent.C11</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.C2-class.html" onclick="show_private();">timeside.tests.testcomponent.C2</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.C3-class.html" onclick="show_private();">timeside.tests.testcomponent.C3</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.C4-class.html" onclick="show_private();">timeside.tests.testcomponent.C4</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.C5-class.html" onclick="show_private();">timeside.tests.testcomponent.C5</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.C6-class.html" onclick="show_private();">timeside.tests.testcomponent.C6</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.C7-class.html" onclick="show_private();">timeside.tests.testcomponent.C7</a></strong>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.C8-class.html" onclick="show_private();">timeside.tests.testcomponent.C8</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.C9-class.html" onclick="show_private();">timeside.tests.testcomponent.C9</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.core.Processor-class.html">timeside.core.Processor</a></strong>:
+      <em class="summary">Base component class of all processors</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.analyze.core.AudioProcessor-class.html">timeside.analyze.core.AudioProcessor</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.analyze.channels.ChannelAnalyser-class.html">timeside.analyze.channels.ChannelAnalyser</a></strong>:
+      <em class="summary">Media item analyzer driver interface</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.duration.DurationAnalyzer-class.html">timeside.analyze.duration.DurationAnalyzer</a></strong>:
+      <em class="summary">Media item analyzer driver interface</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.encoding.EncodingAnalyser-class.html">timeside.analyze.encoding.EncodingAnalyser</a></strong>:
+      <em class="summary">Media item analyzer driver interface</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.format.FormatAnalyser-class.html">timeside.analyze.format.FormatAnalyser</a></strong>:
+      <em class="summary">Media item analyzer driver interface</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html">timeside.analyze.max_level.MaxLevelAnalyzer</a></strong>:
+      <em class="summary">Media item analyzer driver interface</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html">timeside.analyze.dc.MeanDCShiftAnalyser</a></strong>:
+      <em class="summary">Media item analyzer driver interface</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html">timeside.analyze.mean_level.MeanLevelAnalyser</a></strong>:
+      <em class="summary">Media item analyzer driver interface</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.resolution.ResolutionAnalyser-class.html">timeside.analyze.resolution.ResolutionAnalyser</a></strong>:
+      <em class="summary">Media item analyzer driver interface</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html">timeside.analyze.samplerate.SampleRateAnalyzer</a></strong>:
+      <em class="summary">Media item analyzer driver interface</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.core.DecoderCore-class.html">timeside.decode.core.DecoderCore</a></strong>:
+      <em class="summary">Defines the main parts of the decoding tools : paths, metadata 
+        parsing, data streaming thru system command</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.decode.flac.FlacDecoder-class.html">timeside.decode.flac.FlacDecoder</a></strong>:
+      <em class="summary">Defines methods to decode from FLAC</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.mp3.Mp3Decoder-class.html">timeside.decode.mp3.Mp3Decoder</a></strong>:
+      <em class="summary">Defines methods to decode from MP3</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.ogg.OggDecoder-class.html">timeside.decode.ogg.OggDecoder</a></strong>:
+      <em class="summary">Defines methods to decode from OGG Vorbis</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.wav.WavDecoder-class.html">timeside.decode.wav.WavDecoder</a></strong>:
+      <em class="summary">Defines methods to decode from WAV</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.examples.Duration-class.html">timeside.tests.api.examples.Duration</a></strong>:
+      <em class="summary">A rather useless duration analyzer.</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.core.EncoderCore-class.html">timeside.encode.core.EncoderCore</a></strong>:
+      <em class="summary">Defines the main parts of the encoding tools : paths, metadata 
+        parsing, data streaming thru system command</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.encode.flac.FlacEncoder-class.html">timeside.encode.flac.FlacEncoder</a></strong>:
+      <em class="summary">Defines methods to encode to FLAC</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.mp3.Mp3Encoder-class.html">timeside.encode.mp3.Mp3Encoder</a></strong>:
+      <em class="summary">Defines methods to encode to MP3</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html">timeside.encode.ogg.OggVorbisEncoder</a></strong>:
+      <em class="summary">Defines methods to encode to OGG Vorbis</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.wav.WavEncoder-class.html">timeside.encode.wav.WavEncoder</a></strong>:
+      <em class="summary">Defines methods to encode to WAV</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html">timeside.tests.api.gstreamer.FileDecoder</a></strong>:
+      <em class="summary">gstreamer-based decoder</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.examples.FileDecoder-class.html">timeside.tests.api.examples.FileDecoder</a></strong>:
+      <em class="summary">A simple audiolab-based example decoder</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.examples.FixedInputProcessor-class.html">timeside.tests.api.examples.FixedInputProcessor</a></strong>:
+      <em class="summary">Processor which does absolutely nothing except illustrating the use
+        of the FixedInputSizeAdapter.</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.examples.Gain-class.html">timeside.tests.api.examples.Gain</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.examples.MaxLevel-class.html">timeside.tests.api.examples.MaxLevel</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.examples.Spectrogram-class.html">timeside.tests.api.examples.Spectrogram</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html">timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab</a></strong>:
+      <em class="summary">Spectrogram graph driver (python style thanks to wav2png.py and 
+        scikits.audiolab)</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html">timeside.tests.api.gstreamer.WavEncoder</a></strong>:
+      <em class="summary">gstreamer-based encoder</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.examples.WavEncoder-class.html">timeside.tests.api.examples.WavEncoder</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html">timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab</a></strong>:
+      <em class="summary">WaveForm graph driver (python style thanks to wav2png.py and 
+        scikits.audiolab)</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.examples.Waveform-class.html">timeside.tests.api.examples.Waveform</a></strong>
+    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.core.FixedSizeInputAdapter-class.html">timeside.core.FixedSizeInputAdapter</a></strong>:
+      <em class="summary">Utility to make it easier to write processors which require 
+        fixed-sized input buffers.</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.component.Interface-class.html">timeside.component.Interface</a></strong>:
+      <em class="summary">Marker base class for interfaces.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.I1-class.html" onclick="show_private();">timeside.tests.testcomponent.I1</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.I10-class.html" onclick="show_private();">timeside.tests.testcomponent.I10</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.I11-class.html" onclick="show_private();">timeside.tests.testcomponent.I11</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.I2-class.html" onclick="show_private();">timeside.tests.testcomponent.I2</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.I3-class.html" onclick="show_private();">timeside.tests.testcomponent.I3</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.I4-class.html" onclick="show_private();">timeside.tests.testcomponent.I4</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.I5-class.html" onclick="show_private();">timeside.tests.testcomponent.I5</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.I6-class.html" onclick="show_private();">timeside.tests.testcomponent.I6</a></strong>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.I7-class.html" onclick="show_private();">timeside.tests.testcomponent.I7</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.I8-class.html" onclick="show_private();">timeside.tests.testcomponent.I8</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.I9-class.html" onclick="show_private();">timeside.tests.testcomponent.I9</a></strong>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.api.IProcessor-class.html">timeside.api.IProcessor</a></strong>:
+      <em class="summary">Common processor interface</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.api.IAnalyzer-class.html">timeside.api.IAnalyzer</a></strong>:
+      <em class="summary">Media item analyzer driver interface.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.api.IValueAnalyzer-class.html">timeside.api.IValueAnalyzer</a></strong>:
+      <em class="summary">Interface for analyzers which return a single numeric value from 
+        result()</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.api.IDecoder-class.html">timeside.api.IDecoder</a></strong>:
+      <em class="summary">Decoder driver interface.</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.api.IEffect-class.html">timeside.api.IEffect</a></strong>:
+      <em class="summary">Effect processor interface</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.api.IEncoder-class.html">timeside.api.IEncoder</a></strong>:
+      <em class="summary">Encoder driver interface.</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.api.IGrapher-class.html">timeside.api.IGrapher</a></strong>:
+      <em class="summary">Media item visualizer driver interface</em>
+    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.metadata.Metadata-class.html">timeside.metadata.Metadata</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher.core.Noise-class.html">timeside.grapher.core.Noise</a></strong>:
+      <em class="summary">A class that mimics audiolab.sndfile but generates noise instead of
+        reading a wave file.</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.core.ProcessPipe-class.html">timeside.core.ProcessPipe</a></strong>:
+      <em class="summary">Handle a pipe of processors</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher.core.SpectralCentroid-class.html">timeside.grapher.core.SpectralCentroid</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher.core.SpectrogramImage-class.html">timeside.grapher.core.SpectrogramImage</a></strong>
+    </li>
+    <li> <strong class="uidlink">unittest.TestCase</strong>:
+      <em class="summary">A class whose instances are single test cases.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.tests.TestCase-class.html">timeside.tests.TestCase</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">timeside.tests.testcomponent.TestComponentArchitecture</a></strong>:
+      <em class="summary">Test the component and interface system</em>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html">timeside.tests.testinputadapter.TestFixedSizeInputAdapter</a></strong>:
+      <em class="summary">Test the fixed-sized input adapter</em>
+    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink">unittest.TestResult</strong>:
+      <em class="summary">Holder for test result information.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.tests._TextTestResult-class.html" onclick="show_private();">timeside.tests._TextTestResult</a></strong>:
+      <em class="summary">A test result class that can print formatted text results to a 
+        stream.</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher.core.WaveformImage-class.html">timeside.grapher.core.WaveformImage</a></strong>
+    </li>
+    <li> <strong class="uidlink">type</strong>:
+      <em class="summary">type(object) -&gt; the object's type type(name, bases, dict) -&gt; 
+        a new type</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.component.MetaComponent-class.html">timeside.component.MetaComponent</a></strong>:
+      <em class="summary">Metaclass of the Component class, used mainly to register the 
+        interface declared to be implemented by a component.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.core.MetaProcessor-class.html">timeside.core.MetaProcessor</a></strong>:
+      <em class="summary">Metaclass of the Processor class, used mainly for ensuring that 
+        processor id's are wellformed and unique</em>
+    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+</ul>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/crarr.png b/doc/epydoc/crarr.png
new file mode 100644 (file)
index 0000000..26b43c5
Binary files /dev/null and b/doc/epydoc/crarr.png differ
diff --git a/doc/epydoc/epydoc.css b/doc/epydoc/epydoc.css
new file mode 100644 (file)
index 0000000..86d4170
--- /dev/null
@@ -0,0 +1,322 @@
+
+
+/* Epydoc CSS Stylesheet
+ *
+ * This stylesheet can be used to customize the appearance of epydoc's
+ * HTML output.
+ *
+ */
+
+/* Default Colors & Styles
+ *   - Set the default foreground & background color with 'body'; and 
+ *     link colors with 'a:link' and 'a:visited'.
+ *   - Use bold for decision list terms.
+ *   - The heading styles defined here are used for headings *within*
+ *     docstring descriptions.  All headings used by epydoc itself use
+ *     either class='epydoc' or class='toc' (CSS styles for both
+ *     defined below).
+ */
+body                        { background: #ffffff; color: #000000; }
+p                           { margin-top: 0.5em; margin-bottom: 0.5em; }
+a:link                      { color: #0000ff; }
+a:visited                   { color: #204080; }
+dt                          { font-weight: bold; }
+h1                          { font-size: +140%; font-style: italic;
+                              font-weight: bold; }
+h2                          { font-size: +125%; font-style: italic;
+                              font-weight: bold; }
+h3                          { font-size: +110%; font-style: italic;
+                              font-weight: normal; }
+code                        { font-size: 100%; }
+/* N.B.: class, not pseudoclass */
+a.link                      { font-family: monospace; }
+/* Page Header & Footer
+ *   - The standard page header consists of a navigation bar (with
+ *     pointers to standard pages such as 'home' and 'trees'); a
+ *     breadcrumbs list, which can be used to navigate to containing
+ *     classes or modules; options links, to show/hide private
+ *     variables and to show/hide frames; and a page title (using
+ *     <h1>).  The page title may be followed by a link to the
+ *     corresponding source code (using 'span.codelink').
+ *   - The footer consists of a navigation bar, a timestamp, and a
+ *     pointer to epydoc's homepage.
+ */ 
+h1.epydoc                   { margin: 0; font-size: +140%; font-weight: bold; }
+h2.epydoc                   { font-size: +130%; font-weight: bold; }
+h3.epydoc                   { font-size: +115%; font-weight: bold;
+                              margin-top: 0.2em; }
+td h3.epydoc                { font-size: +115%; font-weight: bold;
+                              margin-bottom: 0; }
+table.navbar                { background: #a0c0ff; color: #000000;
+                              border: 2px groove #c0d0d0; }
+table.navbar table          { color: #000000; }
+th.navbar-select            { background: #70b0ff;
+                              color: #000000; } 
+table.navbar a              { text-decoration: none; }  
+table.navbar a:link         { color: #0000ff; }
+table.navbar a:visited      { color: #204080; }
+span.breadcrumbs            { font-size: 85%; font-weight: bold; }
+span.options                { font-size: 70%; }
+span.codelink               { font-size: 85%; }
+td.footer                   { font-size: 85%; }
+
+/* Table Headers
+ *   - Each summary table and details section begins with a 'header'
+ *     row.  This row contains a section title (marked by
+ *     'span.table-header') as well as a show/hide private link
+ *     (marked by 'span.options', defined above).
+ *   - Summary tables that contain user-defined groups mark those
+ *     groups using 'group header' rows.
+ */
+td.table-header             { background: #70b0ff; color: #000000;
+                              border: 1px solid #608090; }
+td.table-header table       { color: #000000; }
+td.table-header table a:link      { color: #0000ff; }
+td.table-header table a:visited   { color: #204080; }
+span.table-header           { font-size: 120%; font-weight: bold; }
+th.group-header             { background: #c0e0f8; color: #000000;
+                              text-align: left; font-style: italic; 
+                              font-size: 115%; 
+                              border: 1px solid #608090; }
+
+/* Summary Tables (functions, variables, etc)
+ *   - Each object is described by a single row of the table with
+ *     two cells.  The left cell gives the object's type, and is
+ *     marked with 'code.summary-type'.  The right cell gives the
+ *     object's name and a summary description.
+ *   - CSS styles for the table's header and group headers are
+ *     defined above, under 'Table Headers'
+ */
+table.summary               { border-collapse: collapse;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #608090;
+                              margin-bottom: 0.5em; }
+td.summary                  { border: 1px solid #608090; }
+code.summary-type           { font-size: 85%; }
+table.summary a:link        { color: #0000ff; }
+table.summary a:visited     { color: #204080; }
+
+
+/* Details Tables (functions, variables, etc)
+ *   - Each object is described in its own div.
+ *   - A single-row summary table w/ table-header is used as
+ *     a header for each details section (CSS style for table-header
+ *     is defined above, under 'Table Headers').
+ */
+table.details               { border-collapse: collapse;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #608090;
+                              margin: .2em 0 0 0; }
+table.details table         { color: #000000; }
+table.details a:link        { color: #0000ff; }
+table.details a:visited     { color: #204080; }
+
+/* Fields */
+dl.fields                   { margin-left: 2em; margin-top: 1em;
+                              margin-bottom: 1em; }
+dl.fields dd ul             { margin-left: 0em; padding-left: 0em; }
+dl.fields dd ul li ul       { margin-left: 2em; padding-left: 0em; }
+div.fields                  { margin-left: 2em; }
+div.fields p                { margin-bottom: 0.5em; }
+
+/* Index tables (identifier index, term index, etc)
+ *   - link-index is used for indices containing lists of links
+ *     (namely, the identifier index & term index).
+ *   - index-where is used in link indices for the text indicating
+ *     the container/source for each link.
+ *   - metadata-index is used for indices containing metadata
+ *     extracted from fields (namely, the bug index & todo index).
+ */
+table.link-index            { border-collapse: collapse;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #608090; }
+td.link-index               { border-width: 0px; }
+table.link-index a:link     { color: #0000ff; }
+table.link-index a:visited  { color: #204080; }
+span.index-where            { font-size: 70%; }
+table.metadata-index        { border-collapse: collapse;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #608090; 
+                              margin: .2em 0 0 0; }
+td.metadata-index           { border-width: 1px; border-style: solid; }
+table.metadata-index a:link { color: #0000ff; }
+table.metadata-index a:visited  { color: #204080; }
+
+/* Function signatures
+ *   - sig* is used for the signature in the details section.
+ *   - .summary-sig* is used for the signature in the summary 
+ *     table, and when listing property accessor functions.
+ * */
+.sig-name                   { color: #006080; }
+.sig-arg                    { color: #008060; }
+.sig-default                { color: #602000; }
+.summary-sig                { font-family: monospace; }
+.summary-sig-name           { color: #006080; font-weight: bold; }
+table.summary a.summary-sig-name:link
+                            { color: #006080; font-weight: bold; }
+table.summary a.summary-sig-name:visited
+                            { color: #006080; font-weight: bold; }
+.summary-sig-arg            { color: #006040; }
+.summary-sig-default        { color: #501800; }
+
+/* Subclass list
+ */
+ul.subclass-list { display: inline; }
+ul.subclass-list li { display: inline; }
+
+/* To render variables, classes etc. like functions */
+table.summary .summary-name { color: #006080; font-weight: bold;
+                              font-family: monospace; }
+table.summary
+     a.summary-name:link    { color: #006080; font-weight: bold;
+                              font-family: monospace; }
+table.summary
+    a.summary-name:visited  { color: #006080; font-weight: bold;
+                              font-family: monospace; }
+
+/* Variable values
+ *   - In the 'variable details' sections, each varaible's value is
+ *     listed in a 'pre.variable' box.  The width of this box is
+ *     restricted to 80 chars; if the value's repr is longer than
+ *     this it will be wrapped, using a backslash marked with
+ *     class 'variable-linewrap'.  If the value's repr is longer
+ *     than 3 lines, the rest will be ellided; and an ellipsis
+ *     marker ('...' marked with 'variable-ellipsis') will be used.
+ *   - If the value is a string, its quote marks will be marked
+ *     with 'variable-quote'.
+ *   - If the variable is a regexp, it is syntax-highlighted using
+ *     the re* CSS classes.
+ */
+pre.variable                { padding: .5em; margin: 0;
+                              background: #dce4ec; color: #000000;
+                              border: 1px solid #708890; }
+.variable-linewrap          { color: #604000; font-weight: bold; }
+.variable-ellipsis          { color: #604000; font-weight: bold; }
+.variable-quote             { color: #604000; font-weight: bold; }
+.variable-group             { color: #008000; font-weight: bold; }
+.variable-op                { color: #604000; font-weight: bold; }
+.variable-string            { color: #006030; }
+.variable-unknown           { color: #a00000; font-weight: bold; }
+.re                         { color: #000000; }
+.re-char                    { color: #006030; }
+.re-op                      { color: #600000; }
+.re-group                   { color: #003060; }
+.re-ref                     { color: #404040; }
+
+/* Base tree
+ *   - Used by class pages to display the base class hierarchy.
+ */
+pre.base-tree               { font-size: 80%; margin: 0; }
+
+/* Frames-based table of contents headers
+ *   - Consists of two frames: one for selecting modules; and
+ *     the other listing the contents of the selected module.
+ *   - h1.toc is used for each frame's heading
+ *   - h2.toc is used for subheadings within each frame.
+ */
+h1.toc                      { text-align: center; font-size: 105%;
+                              margin: 0; font-weight: bold;
+                              padding: 0; }
+h2.toc                      { font-size: 100%; font-weight: bold; 
+                              margin: 0.5em 0 0 -0.3em; }
+
+/* Syntax Highlighting for Source Code
+ *   - doctest examples are displayed in a 'pre.py-doctest' block.
+ *     If the example is in a details table entry, then it will use
+ *     the colors specified by the 'table pre.py-doctest' line.
+ *   - Source code listings are displayed in a 'pre.py-src' block.
+ *     Each line is marked with 'span.py-line' (used to draw a line
+ *     down the left margin, separating the code from the line
+ *     numbers).  Line numbers are displayed with 'span.py-lineno'.
+ *     The expand/collapse block toggle button is displayed with
+ *     'a.py-toggle' (Note: the CSS style for 'a.py-toggle' should not
+ *     modify the font size of the text.)
+ *   - If a source code page is opened with an anchor, then the
+ *     corresponding code block will be highlighted.  The code
+ *     block's header is highlighted with 'py-highlight-hdr'; and
+ *     the code block's body is highlighted with 'py-highlight'.
+ *   - The remaining py-* classes are used to perform syntax
+ *     highlighting (py-string for string literals, py-name for names,
+ *     etc.)
+ */
+pre.py-doctest              { padding: .5em; margin: 1em;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #708890; }
+table pre.py-doctest        { background: #dce4ec;
+                              color: #000000; }
+pre.py-src                  { border: 2px solid #000000; 
+                              background: #f0f0f0; color: #000000; }
+.py-line                    { border-left: 2px solid #000000; 
+                              margin-left: .2em; padding-left: .4em; }
+.py-lineno                  { font-style: italic; font-size: 90%;
+                              padding-left: .5em; }
+a.py-toggle                 { text-decoration: none; }
+div.py-highlight-hdr        { border-top: 2px solid #000000;
+                              border-bottom: 2px solid #000000;
+                              background: #d8e8e8; }
+div.py-highlight            { border-bottom: 2px solid #000000;
+                              background: #d0e0e0; }
+.py-prompt                  { color: #005050; font-weight: bold;}
+.py-more                    { color: #005050; font-weight: bold;}
+.py-string                  { color: #006030; }
+.py-comment                 { color: #003060; }
+.py-keyword                 { color: #600000; }
+.py-output                  { color: #404040; }
+.py-name                    { color: #000050; }
+.py-name:link               { color: #000050 !important; }
+.py-name:visited            { color: #000050 !important; }
+.py-number                  { color: #005000; }
+.py-defname                 { color: #000060; font-weight: bold; }
+.py-def-name                { color: #000060; font-weight: bold; }
+.py-base-class              { color: #000060; }
+.py-param                   { color: #000060; }
+.py-docstring               { color: #006030; }
+.py-decorator               { color: #804020; }
+/* Use this if you don't want links to names underlined: */
+/*a.py-name                   { text-decoration: none; }*/
+
+/* Graphs & Diagrams
+ *   - These CSS styles are used for graphs & diagrams generated using
+ *     Graphviz dot.  'img.graph-without-title' is used for bare
+ *     diagrams (to remove the border created by making the image
+ *     clickable).
+ */
+img.graph-without-title     { border: none; }
+img.graph-with-title        { border: 1px solid #000000; }
+span.graph-title            { font-weight: bold; }
+span.graph-caption          { }
+
+/* General-purpose classes
+ *   - 'p.indent-wrapped-lines' defines a paragraph whose first line
+ *     is not indented, but whose subsequent lines are.
+ *   - The 'nomargin-top' class is used to remove the top margin (e.g.
+ *     from lists).  The 'nomargin' class is used to remove both the
+ *     top and bottom margin (but not the left or right margin --
+ *     for lists, that would cause the bullets to disappear.)
+ */
+p.indent-wrapped-lines      { padding: 0 0 0 7em; text-indent: -7em; 
+                              margin: 0; }
+.nomargin-top               { margin-top: 0; }
+.nomargin                   { margin-top: 0; margin-bottom: 0; }
+
+/* HTML Log */
+div.log-block               { padding: 0; margin: .5em 0 .5em 0;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #000000; }
+div.log-error               { padding: .1em .3em .1em .3em; margin: 4px;
+                              background: #ffb0b0; color: #000000;
+                              border: 1px solid #000000; }
+div.log-warning             { padding: .1em .3em .1em .3em; margin: 4px;
+                              background: #ffffb0; color: #000000;
+                              border: 1px solid #000000; }
+div.log-info               { padding: .1em .3em .1em .3em; margin: 4px;
+                              background: #b0ffb0; color: #000000;
+                              border: 1px solid #000000; }
+h2.log-hdr                  { background: #70b0ff; color: #000000;
+                              margin: 0; padding: 0em 0.5em 0em 0.5em;
+                              border-bottom: 1px solid #000000; font-size: 110%; }
+p.log                       { font-weight: bold; margin: .5em 0 .5em 0; }
+tr.opt-changed              { color: #000000; font-weight: bold; }
+tr.opt-default              { color: #606060; }
+pre.log                     { margin: 0; padding: 0; padding-left: 1em; }
diff --git a/doc/epydoc/epydoc.js b/doc/epydoc/epydoc.js
new file mode 100644 (file)
index 0000000..e787dbc
--- /dev/null
@@ -0,0 +1,293 @@
+function toggle_private() {
+        // Search for any private/public links on this page.  Store
+        // their old text in "cmd," so we will know what action to
+        // take; and change their text to the opposite action.
+        var cmd = "?";
+        var elts = document.getElementsByTagName("a");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "privatelink") {
+            cmd = elts[i].innerHTML;
+            elts[i].innerHTML = ((cmd && cmd.substr(0,4)=="show")?
+                                    "hide&nbsp;private":"show&nbsp;private");
+          }
+        }
+        // Update all DIVs containing private objects.
+        var elts = document.getElementsByTagName("div");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "private") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
+          }
+          else if (elts[i].className == "public") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"block":"none");
+          }
+        }
+        // Update all table rows containing private objects.  Note, we
+        // use "" instead of "block" becaue IE & firefox disagree on what
+        // this should be (block vs table-row), and "" just gives the
+        // default for both browsers.
+        var elts = document.getElementsByTagName("tr");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "private") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"");
+          }
+        }
+        // Update all list items containing private objects.
+        var elts = document.getElementsByTagName("li");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "private") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?
+                                        "none":"");
+          }
+        }
+        // Update all list items containing private objects.
+        var elts = document.getElementsByTagName("ul");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "private") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
+          }
+        }
+        // Set a cookie to remember the current option.
+        document.cookie = "EpydocPrivate="+cmd;
+      }
+function show_private() {
+        var elts = document.getElementsByTagName("a");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "privatelink") {
+            cmd = elts[i].innerHTML;
+            if (cmd && cmd.substr(0,4)=="show")
+                toggle_private();
+          }
+        }
+      }
+function getCookie(name) {
+        var dc = document.cookie;
+        var prefix = name + "=";
+        var begin = dc.indexOf("; " + prefix);
+        if (begin == -1) {
+          begin = dc.indexOf(prefix);
+          if (begin != 0) return null;
+        } else
+        { begin += 2; }
+        var end = document.cookie.indexOf(";", begin);
+        if (end == -1)
+        { end = dc.length; }
+        return unescape(dc.substring(begin + prefix.length, end));
+      }
+function setFrame(url1, url2) {
+          parent.frames[1].location.href = url1;
+          parent.frames[2].location.href = url2;
+      }
+function checkCookie() {
+        var cmd=getCookie("EpydocPrivate");
+        if (cmd && cmd.substr(0,4)!="show" && location.href.indexOf("#_") < 0)
+            toggle_private();
+      }
+function toggleCallGraph(id) {
+        var elt = document.getElementById(id);
+        if (elt.style.display == "none")
+            elt.style.display = "block";
+        else
+            elt.style.display = "none";
+      }
+function expand(id) {
+  var elt = document.getElementById(id+"-expanded");
+  if (elt) elt.style.display = "block";
+  var elt = document.getElementById(id+"-expanded-linenums");
+  if (elt) elt.style.display = "block";
+  var elt = document.getElementById(id+"-collapsed");
+  if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
+  var elt = document.getElementById(id+"-collapsed-linenums");
+  if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
+  var elt = document.getElementById(id+"-toggle");
+  if (elt) { elt.innerHTML = "-"; }
+}
+
+function collapse(id) {
+  var elt = document.getElementById(id+"-expanded");
+  if (elt) elt.style.display = "none";
+  var elt = document.getElementById(id+"-expanded-linenums");
+  if (elt) elt.style.display = "none";
+  var elt = document.getElementById(id+"-collapsed-linenums");
+  if (elt) { elt.innerHTML = "<br />"; elt.style.display="block"; }
+  var elt = document.getElementById(id+"-toggle");
+  if (elt) { elt.innerHTML = "+"; }
+  var elt = document.getElementById(id+"-collapsed");
+  if (elt) {
+    elt.style.display = "block";
+    
+    var indent = elt.getAttribute("indent");
+    var pad = elt.getAttribute("pad");
+    var s = "<tt class='py-lineno'>";
+    for (var i=0; i<pad.length; i++) { s += "&nbsp;" }
+    s += "</tt>";
+    s += "&nbsp;&nbsp;<tt class='py-line'>";
+    for (var i=0; i<indent.length; i++) { s += "&nbsp;" }
+    s += "<a href='#' onclick='expand(\"" + id;
+    s += "\");return false'>...</a></tt><br />";
+    elt.innerHTML = s;
+  }
+}
+
+function toggle(id) {
+  elt = document.getElementById(id+"-toggle");
+  if (elt.innerHTML == "-")
+      collapse(id); 
+  else
+      expand(id);
+  return false;
+}
+
+function highlight(id) {
+  var elt = document.getElementById(id+"-def");
+  if (elt) elt.className = "py-highlight-hdr";
+  var elt = document.getElementById(id+"-expanded");
+  if (elt) elt.className = "py-highlight";
+  var elt = document.getElementById(id+"-collapsed");
+  if (elt) elt.className = "py-highlight";
+}
+
+function num_lines(s) {
+  var n = 1;
+  var pos = s.indexOf("\n");
+  while ( pos > 0) {
+    n += 1;
+    pos = s.indexOf("\n", pos+1);
+  }
+  return n;
+}
+
+// Collapse all blocks that mave more than `min_lines` lines.
+function collapse_all(min_lines) {
+  var elts = document.getElementsByTagName("div");
+  for (var i=0; i<elts.length; i++) {
+    var elt = elts[i];
+    var split = elt.id.indexOf("-");
+    if (split > 0)
+      if (elt.id.substring(split, elt.id.length) == "-expanded")
+        if (num_lines(elt.innerHTML) > min_lines)
+          collapse(elt.id.substring(0, split));
+  }
+}
+
+function expandto(href) {
+  var start = href.indexOf("#")+1;
+  if (start != 0 && start != href.length) {
+    if (href.substring(start, href.length) != "-") {
+      collapse_all(4);
+      pos = href.indexOf(".", start);
+      while (pos != -1) {
+        var id = href.substring(start, pos);
+        expand(id);
+        pos = href.indexOf(".", pos+1);
+      }
+      var id = href.substring(start, href.length);
+      expand(id);
+      highlight(id);
+    }
+  }
+}
+
+function kill_doclink(id) {
+  var parent = document.getElementById(id);
+  parent.removeChild(parent.childNodes.item(0));
+}
+function auto_kill_doclink(ev) {
+  if (!ev) var ev = window.event;
+  if (!this.contains(ev.toElement)) {
+    var parent = document.getElementById(this.parentID);
+    parent.removeChild(parent.childNodes.item(0));
+  }
+}
+
+function doclink(id, name, targets_id) {
+  var elt = document.getElementById(id);
+
+  // If we already opened the box, then destroy it.
+  // (This case should never occur, but leave it in just in case.)
+  if (elt.childNodes.length > 1) {
+    elt.removeChild(elt.childNodes.item(0));
+  }
+  else {
+    // The outer box: relative + inline positioning.
+    var box1 = document.createElement("div");
+    box1.style.position = "relative";
+    box1.style.display = "inline";
+    box1.style.top = 0;
+    box1.style.left = 0;
+  
+    // A shadow for fun
+    var shadow = document.createElement("div");
+    shadow.style.position = "absolute";
+    shadow.style.left = "-1.3em";
+    shadow.style.top = "-1.3em";
+    shadow.style.background = "#404040";
+    
+    // The inner box: absolute positioning.
+    var box2 = document.createElement("div");
+    box2.style.position = "relative";
+    box2.style.border = "1px solid #a0a0a0";
+    box2.style.left = "-.2em";
+    box2.style.top = "-.2em";
+    box2.style.background = "white";
+    box2.style.padding = ".3em .4em .3em .4em";
+    box2.style.fontStyle = "normal";
+    box2.onmouseout=auto_kill_doclink;
+    box2.parentID = id;
+
+    // Get the targets
+    var targets_elt = document.getElementById(targets_id);
+    var targets = targets_elt.getAttribute("targets");
+    var links = "";
+    target_list = targets.split(",");
+    for (var i=0; i<target_list.length; i++) {
+        var target = target_list[i].split("=");
+        links += "<li><a href='" + target[1] + 
+               "' style='text-decoration:none'>" +
+               target[0] + "</a></li>";
+    }
+  
+    // Put it all together.
+    elt.insertBefore(box1, elt.childNodes.item(0));
+    //box1.appendChild(box2);
+    box1.appendChild(shadow);
+    shadow.appendChild(box2);
+    box2.innerHTML =
+        "Which <b>"+name+"</b> do you want to see documentation for?" +
+        "<ul style='margin-bottom: 0;'>" +
+        links + 
+        "<li><a href='#' style='text-decoration:none' " +
+        "onclick='kill_doclink(\""+id+"\");return false;'>"+
+        "<i>None of the above</i></a></li></ul>";
+  }
+  return false;
+}
+
+function get_anchor() {
+          var href = location.href;
+          var start = href.indexOf("#")+1;
+          if ((start != 0) && (start != href.length))
+              return href.substring(start, href.length);
+      }
+function redirect_url(dottedName) {
+          // Scan through each element of the "pages" list, and check
+          // if "name" matches with any of them.
+          for (var i=0; i<pages.length; i++) {
+
+              // Each page has the form "<pagename>-m" or "<pagename>-c";
+              // extract the <pagename> portion & compare it to dottedName.
+              var pagename = pages[i].substring(0, pages[i].length-2);
+              if (pagename == dottedName.substring(0,pagename.length)) {
+
+                  // We've found a page that matches `dottedName`;
+                  // construct its URL, using leftover `dottedName`
+                  // content to form an anchor.
+                  var pagetype = pages[i].charAt(pages[i].length-1);
+                  var url = pagename + ((pagetype=="m")?"-module.html":
+                                                        "-class.html");
+                  if (dottedName.length > pagename.length)
+                      url += "#" + dottedName.substring(pagename.length+1,
+                                                        dottedName.length);
+                  return url;
+              }
+          }
+      }
diff --git a/doc/epydoc/exceptions.AssertionError-class.html b/doc/epydoc/exceptions.AssertionError-class.html
new file mode 100644 (file)
index 0000000..f05f676
--- /dev/null
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>exceptions.AssertionError</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        exceptions ::
+        AssertionError ::
+        Class&nbsp;AssertionError
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="exceptions.AssertionError-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class AssertionError</h1><p class="nomargin-top"></p>
+<pre class="base-tree">
+   object --+            
+            |            
+BaseException --+        
+                |        
+        Exception --+    
+                    |    
+        StandardError --+
+                        |
+                       <strong class="uidshort">AssertionError</strong>
+</pre>
+
+<hr />
+<p>Assertion failed.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="exceptions.AssertionError-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">a new object with type S, a subtype of T</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="exceptions.AssertionError-class.html#__new__" class="summary-sig-name">__new__</a>(<span class="summary-sig-arg">T</span>,
+        <span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">...</span>)</span></td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>BaseException</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__getitem__</code>,
+      <code>__getslice__</code>,
+      <code>__reduce__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__setstate__</code>,
+      <code>__str__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__hash__</code>,
+      <code>__reduce_ex__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>BaseException</code></b>:
+      <code>args</code>,
+      <code>message</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">...</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    >&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__new__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,
+        <span class="sig-arg">S</span>,
+        <span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    >&nbsp;
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Returns: a new object with type S, a subtype of T</dt>
+    <dt>Overrides:
+        object.__new__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/frames.html b/doc/epydoc/frames.html
new file mode 100644 (file)
index 0000000..d339ea3
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+          "DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title> API Documentation </title>
+</head>
+<frameset cols="20%,80%">
+  <frameset rows="30%,70%">
+    <frame src="toc.html" name="moduleListFrame"
+           id="moduleListFrame" />
+    <frame src="toc-everything.html" name="moduleFrame"
+           id="moduleFrame" />
+  </frameset>
+  <frame src="timeside-module.html" name="mainFrame" id="mainFrame" />
+</frameset>
+</html>
diff --git a/doc/epydoc/help.html b/doc/epydoc/help.html
new file mode 100644 (file)
index 0000000..0409ca9
--- /dev/null
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Help</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">&nbsp;</td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="help.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+
+<h1 class="epydoc"> API Documentation </h1>
+
+<p> This document contains the API (Application Programming Interface)
+documentation for this project.  Documentation for the Python
+objects defined by the project is divided into separate pages for each
+package, module, and class.  The API documentation also includes two
+pages containing information about the project as a whole: a trees
+page, and an index page.  </p>
+
+<h2> Object Documentation </h2>
+
+  <p>Each <strong>Package Documentation</strong> page contains: </p>
+  <ul>
+    <li> A description of the package. </li>
+    <li> A list of the modules and sub-packages contained by the
+    package.  </li>
+    <li> A summary of the classes defined by the package. </li>
+    <li> A summary of the functions defined by the package. </li>
+    <li> A summary of the variables defined by the package. </li>
+    <li> A detailed description of each function defined by the
+    package. </li>
+    <li> A detailed description of each variable defined by the
+    package. </li>
+  </ul>
+  
+  <p>Each <strong>Module Documentation</strong> page contains:</p>
+  <ul>
+    <li> A description of the module. </li>
+    <li> A summary of the classes defined by the module. </li>
+    <li> A summary of the functions defined by the module. </li>
+    <li> A summary of the variables defined by the module. </li>
+    <li> A detailed description of each function defined by the
+    module. </li>
+    <li> A detailed description of each variable defined by the
+    module. </li>
+  </ul>
+  
+  <p>Each <strong>Class Documentation</strong> page contains: </p>
+  <ul>
+    <li> A class inheritance diagram. </li>
+    <li> A list of known subclasses. </li>
+    <li> A description of the class. </li>
+    <li> A summary of the methods defined by the class. </li>
+    <li> A summary of the instance variables defined by the class. </li>
+    <li> A summary of the class (static) variables defined by the
+    class. </li> 
+    <li> A detailed description of each method defined by the
+    class. </li>
+    <li> A detailed description of each instance variable defined by the
+    class. </li> 
+    <li> A detailed description of each class (static) variable defined
+    by the class. </li> 
+  </ul>
+
+<h2> Project Documentation </h2>
+
+  <p> The <strong>Trees</strong> page contains the module and class hierarchies: </p>
+  <ul>
+    <li> The <em>module hierarchy</em> lists every package and module, with
+    modules grouped into packages.  At the top level, and within each
+    package, modules and sub-packages are listed alphabetically. </li>
+    <li> The <em>class hierarchy</em> lists every class, grouped by base
+    class.  If a class has more than one base class, then it will be
+    listed under each base class.  At the top level, and under each base
+    class, classes are listed alphabetically. </li>
+  </ul>
+  
+  <p> The <strong>Index</strong> page contains indices of terms and
+  identifiers: </p>
+  <ul>
+    <li> The <em>term index</em> lists every term indexed by any object's
+    documentation.  For each term, the index provides links to each
+    place where the term is indexed. </li>
+    <li> The <em>identifier index</em> lists the (short) name of every package,
+    module, class, method, function, variable, and parameter.  For each
+    identifier, the index provides a short description, and a link to
+    its documentation. </li>
+  </ul>
+
+<h2> The Table of Contents </h2>
+
+<p> The table of contents occupies the two frames on the left side of
+the window.  The upper-left frame displays the <em>project
+contents</em>, and the lower-left frame displays the <em>module
+contents</em>: </p>
+
+<table class="help summary" border="1" cellspacing="0" cellpadding="3">
+  <tr style="height: 30%">
+    <td align="center" style="font-size: small">
+       Project<br />Contents<hr />...</td>
+    <td align="center" style="font-size: small" rowspan="2" width="70%">
+      API<br />Documentation<br />Frame<br /><br /><br />
+    </td>
+  </tr>
+  <tr>
+    <td align="center" style="font-size: small">
+      Module<br />Contents<hr />&nbsp;<br />...<br />&nbsp;
+    </td>
+  </tr>
+</table><br />
+
+<p> The <strong>project contents frame</strong> contains a list of all packages
+and modules that are defined by the project.  Clicking on an entry
+will display its contents in the module contents frame.  Clicking on a
+special entry, labeled "Everything," will display the contents of
+the entire project. </p>
+
+<p> The <strong>module contents frame</strong> contains a list of every
+submodule, class, type, exception, function, and variable defined by a
+module or package.  Clicking on an entry will display its
+documentation in the API documentation frame.  Clicking on the name of
+the module, at the top of the frame, will display the documentation
+for the module itself. </p>
+
+<p> The "<strong>frames</strong>" and "<strong>no frames</strong>" buttons below the top
+navigation bar can be used to control whether the table of contents is
+displayed or not. </p>
+
+<h2> The Navigation Bar </h2>
+
+<p> A navigation bar is located at the top and bottom of every page.
+It indicates what type of page you are currently viewing, and allows
+you to go to related pages.  The following table describes the labels
+on the navigation bar.  Note that not some labels (such as
+[Parent]) are not displayed on all pages. </p>
+
+<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">
+<tr class="summary">
+  <th>Label</th>
+  <th>Highlighted when...</th>
+  <th>Links to...</th>
+</tr>
+  <tr><td valign="top"><strong>[Parent]</strong></td>
+      <td valign="top"><em>(never highlighted)</em></td>
+      <td valign="top"> the parent of the current package </td></tr>
+  <tr><td valign="top"><strong>[Package]</strong></td>
+      <td valign="top">viewing a package</td>
+      <td valign="top">the package containing the current object
+      </td></tr>
+  <tr><td valign="top"><strong>[Module]</strong></td>
+      <td valign="top">viewing a module</td>
+      <td valign="top">the module containing the current object
+      </td></tr> 
+  <tr><td valign="top"><strong>[Class]</strong></td>
+      <td valign="top">viewing a class </td>
+      <td valign="top">the class containing the current object</td></tr>
+  <tr><td valign="top"><strong>[Trees]</strong></td>
+      <td valign="top">viewing the trees page</td>
+      <td valign="top"> the trees page </td></tr>
+  <tr><td valign="top"><strong>[Index]</strong></td>
+      <td valign="top">viewing the index page</td>
+      <td valign="top"> the index page </td></tr>
+  <tr><td valign="top"><strong>[Help]</strong></td>
+      <td valign="top">viewing the help page</td>
+      <td valign="top"> the help page </td></tr>
+</table>
+
+<p> The "<strong>show private</strong>" and "<strong>hide private</strong>" buttons below
+the top navigation bar can be used to control whether documentation
+for private objects is displayed.  Private objects are usually defined
+as objects whose (short) names begin with a single underscore, but do
+not end with an underscore.  For example, "<code>_x</code>",
+"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"
+are private objects; but "<code>re.sub</code>",
+"<code>__init__</code>", and "<code>type_</code>" are not.  However,
+if a module defines the "<code>__all__</code>" variable, then its
+contents are used to decide which objects are private. </p>
+
+<p> A timestamp below the bottom navigation bar indicates when each
+page was last updated. </p>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/identifier-index.html b/doc/epydoc/identifier-index.html
new file mode 100644 (file)
index 0000000..7c30b72
--- /dev/null
@@ -0,0 +1,1665 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Identifier Index</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">&nbsp;</td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="identifier-index.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table border="0" width="100%">
+<tr valign="bottom"><td>
+<h1 class="epydoc">Identifier Index</h1>
+</td><td>
+[
+ <a href="#A">A</a>
+ <a href="#B">B</a>
+ <a href="#C">C</a>
+ <a href="#D">D</a>
+ <a href="#E">E</a>
+ <a href="#F">F</a>
+ <a href="#G">G</a>
+  H
+ <a href="#I">I</a>
+  J
+  K
+ <a href="#L">L</a>
+ <a href="#M">M</a>
+ <a href="#N">N</a>
+ <a href="#O">O</a>
+ <a href="#P">P</a>
+  Q
+ <a href="#R">R</a>
+ <a href="#S">S</a>
+ <a href="#T">T</a>
+ <a href="#U">U</a>
+ <a href="#V">V</a>
+ <a href="#W">W</a>
+  X
+  Y
+  Z
+ <a href="#_">_</a>
+]
+</td></table>
+<table border="0" width="100%">
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="A">A</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.component.MetaComponent-class.html#abstract">abstract</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component.MetaComponent-class.html">MetaComponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#analyzer">analyzer</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.TestCase-class.html#assertSameList">assertSameList()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.TestCase-class.html">TestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.component-module.html#abstract">abstract()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component-module.html">timeside.component</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestAnalyzers-class.html#analyzers">analyzers</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestAnalyzers-class.html">TestAnalyzers</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#audiochannels">audiochannels</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests._TextTestResult-class.html#addError">addError()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests._TextTestResult-class.html" onclick="show_private();">_TextTestResult</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api-module.html">api</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside-module.html">timeside</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#audioformat">audioformat</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests._TextTestResult-class.html#addFailure">addFailure()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests._TextTestResult-class.html" onclick="show_private();">_TextTestResult</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api-module.html">api</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests-module.html">timeside.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#audionframes">audionframes</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests._TextTestResult-class.html#addSuccess">addSuccess()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests._TextTestResult-class.html" onclick="show_private();">_TextTestResult</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.exceptions.ApiError-class.html">ApiError</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.exceptions-module.html">timeside.exceptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.core.AudioProcessor-class.html">AudioProcessor</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.core-module.html">timeside.analyze.core</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.alltests-module.html">alltests</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests-module.html">timeside.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#assertIOEquals">assertIOEquals()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html">TestFixedSizeInputAdapter</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#audiorate">audiorate</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze-module.html">analyze</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside-module.html">timeside</a>)</span></td>
+<td width="33%" class="link-index"><a href="exceptions.AssertionError-class.html">AssertionError</a></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="B">B</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#bg_color">bg_color</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html">SpectrogramGrapherAudiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#bg_color">bg_color</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html">WaveFormGrapherAudiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FixedInputProcessor-class.html#BUFFER_SIZE">BUFFER_SIZE</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FixedInputProcessor-class.html">FixedInputProcessor</a>)</span></td>
+</tr>
+<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="C">C</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.C1-class.html">C1</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.channels-module.html">channels</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze-module.html">timeside.analyze</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples-module.html#color_schemes">color_schemes</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples-module.html">timeside.tests.api.examples</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.C10-class.html">C10</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IProcessor-class.html#channels">channels()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IProcessor-class.html">IProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.component-module.html">component</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside-module.html">timeside</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.C11-class.html">C11</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core.Processor-class.html#channels">channels()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.Processor-class.html">Processor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.component.Component-class.html">Component</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component-module.html">timeside.component</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.C2-class.html">C2</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FileDecoder-class.html#channels">channels()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.component.ComponentError-class.html">ComponentError</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component-module.html">timeside.component</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.C3-class.html">C3</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#channels">channels()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.core-module.html">core</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze-module.html">timeside.analyze</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.C4-class.html">C4</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.WaveformImage-class.html#color_from_value">color_from_value()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.WaveformImage-class.html">WaveformImage</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.vamp.core-module.html">core</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.vamp-module.html">timeside.analyze.vamp</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.C5-class.html">C5</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#color_scheme">color_scheme</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html">SpectrogramGrapherAudiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core-module.html">core</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside-module.html">timeside</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.C6-class.html">C6</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#color_scheme">color_scheme</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html">WaveFormGrapherAudiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.core-module.html">core</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode-module.html">timeside.decode</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.C7-class.html">C7</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher-module.html#color_schemes">color_schemes</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher-module.html">timeside.grapher</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.core-module.html">core</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode-module.html">timeside.encode</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.C8-class.html">C8</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core-module.html#color_schemes">color_schemes</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core-module.html">timeside.grapher.core</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core-module.html">core</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher-module.html">timeside.grapher</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.C9-class.html">C9</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.spectrogram_audiolab-module.html#color_schemes">color_schemes</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.spectrogram_audiolab-module.html">timeside.grapher.spectrogram_audiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#core_process">core_process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html">VampCoreAnalyzer</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.channels.ChannelAnalyser-class.html">ChannelAnalyser</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.channels-module.html">timeside.analyze.channels</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.waveform_audiolab-module.html#color_schemes">color_schemes</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.waveform_audiolab-module.html">timeside.grapher.waveform_audiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.core.EncoderCore-class.html#core_process">core_process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.core.EncoderCore-class.html">EncoderCore</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="D">D</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.dc-module.html">dc</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze-module.html">timeside.analyze</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.mp3.Mp3Decoder-class.html#description">description()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.mp3.Mp3Decoder-class.html">Mp3Decoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#discover">discover()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode-module.html">decode</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside-module.html">timeside</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.ogg.OggDecoder-class.html#description">description()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.ogg.OggDecoder-class.html">OggDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#discovered">discovered()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#decoder">decoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.wav.WavDecoder-class.html#description">description()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.wav.WavDecoder-class.html">WavDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.WaveformImage-class.html#draw_anti_aliased_pixels">draw_anti_aliased_pixels()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.WaveformImage-class.html">WaveformImage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe-module.html#decoder">decoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe-module.html">timeside.tests.api.test_pipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.flac.FlacEncoder-class.html#description">description()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.flac.FlacEncoder-class.html">FlacEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.WaveformImage-class.html#draw_peaks">draw_peaks()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.WaveformImage-class.html">WaveformImage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe_spectrogram-module.html#decoder">decoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe_spectrogram-module.html">timeside.tests.api.test_pipe_spectrogram</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.mp3.Mp3Encoder-class.html#description">description()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.mp3.Mp3Encoder-class.html">Mp3Encoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.SpectrogramImage-class.html#draw_spectrum">draw_spectrum()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.SpectrogramImage-class.html">SpectrogramImage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe_waveform-module.html#decoder">decoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe_waveform-module.html">timeside.tests.api.test_pipe_waveform</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html#description">description()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.ogg.OggVorbisEncoder-class.html">OggVorbisEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.duration-module.html">duration</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze-module.html">timeside.analyze</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.core.DecoderCore-class.html">DecoderCore</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.core-module.html">timeside.decode.core</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.wav.WavEncoder-class.html#description">description()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.wav.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Duration-class.html">Duration</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples-module.html">timeside.tests.api.examples</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestDecoders-class.html#decoders">decoders</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestDecoders-class.html">TestDecoders</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.WavEncoder-class.html#description">description()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe-module.html#duration">duration</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe-module.html">timeside.tests.api.test_pipe</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.api.IEncoder-class.html#description">description()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IEncoder-class.html">IEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#description">description()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.duration.DurationAnalyzer-class.html">DurationAnalyzer</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.duration-module.html">timeside.analyze.duration</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.flac.FlacDecoder-class.html#description">description()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.flac.FlacDecoder-class.html">FlacDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#destination">destination</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="E">E</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#effect">effect</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.encoding-module.html">encoding</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze-module.html">timeside.analyze</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.exceptions.Error-class.html">Error</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.exceptions-module.html">timeside.exceptions</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.encode-module.html">encode</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside-module.html">timeside</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IDecoder-class.html#encoding">encoding()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IDecoder-class.html">IDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples-module.html">examples</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api-module.html">timeside.tests.api</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#encoder">encoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FileDecoder-class.html#encoding">encoding()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.exceptions-module.html">exceptions</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside-module.html">timeside</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe-module.html#encoder">encoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe-module.html">timeside.tests.api.test_pipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#encoding">encoding()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestDecoders-class.html#export">export()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestDecoders-class.html">TestDecoders</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.encode.core.EncoderCore-class.html">EncoderCore</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.core-module.html">timeside.encode.core</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.encoding.EncodingAnalyser-class.html">EncodingAnalyser</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.encoding-module.html">timeside.analyze.encoding</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.component-module.html#extend_unique">extend_unique()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component-module.html">timeside.component</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestEncoders-class.html#encoders">encoders</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestEncoders-class.html">TestEncoders</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#eod">eod</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="F">F</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Spectrogram-class.html#FFT_SIZE">FFT_SIZE</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Spectrogram-class.html">Spectrogram</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples-module.html">timeside.tests.api.examples</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.flac.FlacDecoder-class.html#format">format()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.flac.FlacDecoder-class.html">FlacDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Waveform-class.html#FFT_SIZE">FFT_SIZE</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Waveform-class.html">Waveform</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer-module.html">timeside.tests.api.gstreamer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.mp3.Mp3Decoder-class.html#format">format()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.mp3.Mp3Decoder-class.html">Mp3Decoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.api.IEncoder-class.html#file_extension">file_extension()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IEncoder-class.html">IEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.component-module.html#find_implementations">find_implementations()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component-module.html">timeside.component</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.ogg.OggDecoder-class.html#format">format()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.ogg.OggDecoder-class.html">OggDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.flac.FlacDecoder-class.html#file_extension">file_extension()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.flac.FlacDecoder-class.html">FlacDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe-module.html#fixed">fixed</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe-module.html">timeside.tests.api.test_pipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.wav.WavDecoder-class.html#format">format()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.wav.WavDecoder-class.html">WavDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.mp3.Mp3Decoder-class.html#file_extension">file_extension()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.mp3.Mp3Decoder-class.html">Mp3Decoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FixedInputProcessor-class.html">FixedInputProcessor</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples-module.html">timeside.tests.api.examples</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.flac.FlacEncoder-class.html#format">format()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.flac.FlacEncoder-class.html">FlacEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.ogg.OggDecoder-class.html#file_extension">file_extension()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.ogg.OggDecoder-class.html">OggDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core.FixedSizeInputAdapter-class.html">FixedSizeInputAdapter</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core-module.html">timeside.core</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.mp3.Mp3Encoder-class.html#format">format()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.mp3.Mp3Encoder-class.html">Mp3Encoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.wav.WavDecoder-class.html#file_extension">file_extension()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.wav.WavDecoder-class.html">WavDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.flac-module.html">flac</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode-module.html">timeside.decode</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html#format">format()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.ogg.OggVorbisEncoder-class.html">OggVorbisEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.encode.flac.FlacEncoder-class.html#file_extension">file_extension()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.flac.FlacEncoder-class.html">FlacEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.flac-module.html">flac</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode-module.html">timeside.encode</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.wav.WavEncoder-class.html#format">format()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.wav.WavEncoder-class.html">WavEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.encode.mp3.Mp3Encoder-class.html#file_extension">file_extension()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.mp3.Mp3Encoder-class.html">Mp3Encoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.flac.FlacDecoder-class.html">FlacDecoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.flac-module.html">timeside.decode.flac</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FileDecoder-class.html#format">format()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html#file_extension">file_extension()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.ogg.OggVorbisEncoder-class.html">OggVorbisEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.flac.FlacEncoder-class.html">FlacEncoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.flac-module.html">timeside.encode.flac</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#format">format()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.encode.wav.WavEncoder-class.html#file_extension">file_extension()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.wav.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.format-module.html">format</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze-module.html">timeside.analyze</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.format.FormatAnalyser-class.html">FormatAnalyser</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.format-module.html">timeside.analyze.format</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.WavEncoder-class.html#file_extension">file_extension()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IDecoder-class.html#format">format()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IDecoder-class.html">IDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#frames">frames</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#file_extension">file_extension()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IEncoder-class.html#format">format()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IEncoder-class.html">IEncoder</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="G">G</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Gain-class.html">Gain</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples-module.html">timeside.tests.api.examples</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.mp3.Mp3Decoder-class.html#get_file_info">get_file_info()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.mp3.Mp3Decoder-class.html">Mp3Decoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core-module.html#get_processor">get_processor()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core-module.html">timeside.core</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#gain">gain</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.ogg.OggDecoder-class.html#get_file_info">get_file_info()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.ogg.OggDecoder-class.html">OggDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.Noise-class.html#get_samplerate">get_samplerate()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.Noise-class.html">Noise</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe-module.html#gain">gain</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe-module.html">timeside.tests.api.test_pipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.wav.WavDecoder-class.html#get_file_info">get_file_info()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.wav.WavDecoder-class.html">WavDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.core.AudioProcessor-class.html#get_samples">get_samples()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.core.AudioProcessor-class.html">AudioProcessor</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.encode.flac.FlacEncoder-class.html#get_args">get_args()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.flac.FlacEncoder-class.html">FlacEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.flac.FlacEncoder-class.html#get_file_info">get_file_info()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.flac.FlacEncoder-class.html">FlacEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#get_wav_path">get_wav_path()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html">VampCoreAnalyzer</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.encode.mp3.Mp3Encoder-class.html#get_args">get_args()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.mp3.Mp3Encoder-class.html">Mp3Encoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.mp3.Mp3Encoder-class.html#get_file_info">get_file_info()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.mp3.Mp3Encoder-class.html">Mp3Encoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests._TextTestResult-class.html#getDescription">getDescription()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests._TextTestResult-class.html" onclick="show_private();">_TextTestResult</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html#get_args">get_args()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.ogg.OggVorbisEncoder-class.html">OggVorbisEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html#get_file_info">get_file_info()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.ogg.OggVorbisEncoder-class.html">OggVorbisEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher-module.html">grapher</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside-module.html">timeside</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.Noise-class.html#get_channels">get_channels()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.Noise-class.html">Noise</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.wav.WavEncoder-class.html#get_file_info">get_file_info()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.wav.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestGraphers-class.html#graphers">graphers</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestGraphers-class.html">TestGraphers</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestDecoders-class.html#get_decoder">get_decoder()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestDecoders-class.html">TestDecoders</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.core.AudioProcessor-class.html#get_mono_samples">get_mono_samples()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.core.AudioProcessor-class.html">AudioProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#gst_buffer_to_numpy_array">gst_buffer_to_numpy_array()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestEncoders-class.html#get_encoder">get_encoder()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestEncoders-class.html">TestEncoders</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.Noise-class.html#get_nframes">get_nframes()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.Noise-class.html">Noise</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer-module.html">gstreamer</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api-module.html">timeside.tests.api</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.flac.FlacDecoder-class.html#get_file_info">get_file_info()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.flac.FlacDecoder-class.html">FlacDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#get_plugins_list">get_plugins_list()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html">VampCoreAnalyzer</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="I">I</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.I1-class.html">I1</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html">SampleRateAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Waveform-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Waveform-class.html">Waveform</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.I10-class.html">I10</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html">VampCoreAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.I11-class.html">I11</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IProcessor-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IProcessor-class.html">IProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.WavEncoder-class.html">WavEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.I2-class.html">I2</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.flac.FlacDecoder-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.flac.FlacDecoder-class.html">FlacDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IDecoder-class.html">IDecoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api-module.html">timeside.api</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.I3-class.html">I3</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.mp3.Mp3Decoder-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.mp3.Mp3Decoder-class.html">Mp3Decoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IEffect-class.html">IEffect</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api-module.html">timeside.api</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.I4-class.html">I4</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.ogg.OggDecoder-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.ogg.OggDecoder-class.html">OggDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IEncoder-class.html">IEncoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api-module.html">timeside.api</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.I5-class.html">I5</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.wav.WavDecoder-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.wav.WavDecoder-class.html">WavDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IGrapher-class.html">IGrapher</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api-module.html">timeside.api</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.I6-class.html">I6</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.flac.FlacEncoder-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.flac.FlacEncoder-class.html">FlacEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe_spectrogram-module.html#image_file">image_file</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe_spectrogram-module.html">timeside.tests.api.test_pipe_spectrogram</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.I7-class.html">I7</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.mp3.Mp3Encoder-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.mp3.Mp3Encoder-class.html">Mp3Encoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe_waveform-module.html#image_file">image_file</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe_waveform-module.html">timeside.tests.api.test_pipe_waveform</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.I8-class.html">I8</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.ogg.OggVorbisEncoder-class.html">OggVorbisEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.component.MetaComponent-class.html#implementations">implementations</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component.MetaComponent-class.html">MetaComponent</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.I9-class.html">I9</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.wav.WavEncoder-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.wav.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.component-module.html#implementations">implementations()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component-module.html">timeside.component</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.api.IAnalyzer-class.html">IAnalyzer</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api-module.html">timeside.api</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html">SpectrogramGrapherAudiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.component.MetaComponent-class.html#implements">implements</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component.MetaComponent-class.html">MetaComponent</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.channels.ChannelAnalyser-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.channels.ChannelAnalyser-class.html">ChannelAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html">WaveFormGrapherAudiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.component-module.html#implements">implements()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component-module.html">timeside.component</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html">MeanDCShiftAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Duration-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Duration-class.html">Duration</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.component.Interface-class.html">Interface</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component-module.html">timeside.component</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.duration.DurationAnalyzer-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.duration.DurationAnalyzer-class.html">DurationAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FileDecoder-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.component-module.html#interfacedoc">interfacedoc()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component-module.html">timeside.component</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.encoding.EncodingAnalyser-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.encoding.EncodingAnalyser-class.html">EncodingAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FixedInputProcessor-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FixedInputProcessor-class.html">FixedInputProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core-module.html#interpolate_colors">interpolate_colors()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core-module.html">timeside.grapher.core</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.format.FormatAnalyser-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.format.FormatAnalyser-class.html">FormatAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Gain-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Gain-class.html">Gain</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IProcessor-class.html">IProcessor</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api-module.html">timeside.api</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html">MaxLevelAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.MaxLevel-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.MaxLevel-class.html">MaxLevel</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IValueAnalyzer-class.html">IValueAnalyzer</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api-module.html">timeside.api</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html">MeanLevelAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Spectrogram-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Spectrogram-class.html">Spectrogram</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.resolution.ResolutionAnalyser-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.resolution.ResolutionAnalyser-class.html">ResolutionAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.WavEncoder-class.html#id">id()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="L">L</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestAnalyzers-class.html#list">list()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestAnalyzers-class.html">TestAnalyzers</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestEncoders-class.html#list">list()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestEncoders-class.html">TestEncoders</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.listprocessors-module.html#list_processors">list_processors()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.listprocessors-module.html">timeside.tests.listprocessors</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestDecoders-class.html#list">list()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestDecoders-class.html">TestDecoders</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestGraphers-class.html#list">list()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestGraphers-class.html">TestGraphers</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.listprocessors-module.html">listprocessors</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests-module.html">timeside.tests</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="M">M</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#MAX_DISCOVERY_TIME">MAX_DISCOVERY_TIME</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.metadata.Metadata-class.html">Metadata</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.metadata-module.html">timeside.metadata</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.mp3.Mp3Encoder-class.html#mime_type">mime_type()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.mp3.Mp3Encoder-class.html">Mp3Encoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.max_level-module.html">max_level</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze-module.html">timeside.analyze</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IDecoder-class.html#metadata">metadata()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IDecoder-class.html">IDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html#mime_type">mime_type()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.ogg.OggVorbisEncoder-class.html">OggVorbisEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#max_level">max_level</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FileDecoder-class.html#metadata">metadata()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.wav.WavEncoder-class.html#mime_type">mime_type()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.wav.WavEncoder-class.html">WavEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.MaxLevel-class.html">MaxLevel</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples-module.html">timeside.tests.api.examples</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#metadata">metadata()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.WavEncoder-class.html#mime_type">mime_type()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.WavEncoder-class.html">WavEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe-module.html#maxlevel">maxlevel</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe-module.html">timeside.tests.api.test_pipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core.MetaProcessor-class.html">MetaProcessor</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core-module.html">timeside.core</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#mime_type">mime_type()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.WavEncoder-class.html">WavEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html">MaxLevelAnalyzer</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.max_level-module.html">timeside.analyze.max_level</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IEncoder-class.html#mime_type">mime_type()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IEncoder-class.html">IEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#mimetype">mimetype</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.mean_level-module.html">mean_level</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze-module.html">timeside.analyze</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.flac.FlacDecoder-class.html#mime_type">mime_type()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.flac.FlacDecoder-class.html">FlacDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.test-module.html#mimetype">mimetype()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test-module.html">timeside.tests.test</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html">MeanDCShiftAnalyser</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.dc-module.html">timeside.analyze.dc</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.mp3.Mp3Decoder-class.html#mime_type">mime_type()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.mp3.Mp3Decoder-class.html">Mp3Decoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.mp3-module.html">mp3</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode-module.html">timeside.decode</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html">MeanLevelAnalyser</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.mean_level-module.html">timeside.analyze.mean_level</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.ogg.OggDecoder-class.html#mime_type">mime_type()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.ogg.OggDecoder-class.html">OggDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.mp3-module.html">mp3</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode-module.html">timeside.encode</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.component.MetaComponent-class.html">MetaComponent</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component-module.html">timeside.component</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.wav.WavDecoder-class.html#mime_type">mime_type()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.wav.WavDecoder-class.html">WavDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.mp3.Mp3Decoder-class.html">Mp3Decoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.mp3-module.html">timeside.decode.mp3</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.metadata-module.html">metadata</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside-module.html">timeside</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.flac.FlacEncoder-class.html#mime_type">mime_type()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.flac.FlacEncoder-class.html">FlacEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.mp3.Mp3Encoder-class.html">Mp3Encoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.mp3-module.html">timeside.encode.mp3</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="N">N</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.channels.ChannelAnalyser-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.channels.ChannelAnalyser-class.html">ChannelAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IAnalyzer-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IAnalyzer-class.html">IAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#nchannels">nchannels</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html">MeanDCShiftAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IEffect-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IEffect-class.html">IEffect</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#nframes">nframes</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.duration.DurationAnalyzer-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.duration.DurationAnalyzer-class.html">DurationAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IGrapher-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IGrapher-class.html">IGrapher</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IProcessor-class.html#nframes">nframes()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IProcessor-class.html">IProcessor</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.encoding.EncodingAnalyser-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.encoding.EncodingAnalyser-class.html">EncodingAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html">SpectrogramGrapherAudiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core.FixedSizeInputAdapter-class.html#nframes">nframes()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.FixedSizeInputAdapter-class.html">FixedSizeInputAdapter</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.format.FormatAnalyser-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.format.FormatAnalyser-class.html">FormatAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html">WaveFormGrapherAudiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core.Processor-class.html#nframes">nframes()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.Processor-class.html">Processor</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html">MaxLevelAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Duration-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Duration-class.html">Duration</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FileDecoder-class.html#nframes">nframes()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html">MeanLevelAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Gain-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Gain-class.html">Gain</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#nframes">nframes()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.resolution.ResolutionAnalyser-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.resolution.ResolutionAnalyser-class.html">ResolutionAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.MaxLevel-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.MaxLevel-class.html">MaxLevel</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.Noise-class.html">Noise</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core-module.html">timeside.grapher.core</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html">SampleRateAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Spectrogram-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Spectrogram-class.html">Spectrogram</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#numpy_array_to_gst_buffer">numpy_array_to_gst_buffer()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.WavEncoder-class.html">WavEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html">VampCoreAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Waveform-class.html#name">name()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Waveform-class.html">Waveform</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="O">O</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.ogg-module.html">ogg</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode-module.html">timeside.decode</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.ogg.OggDecoder-class.html">OggDecoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.ogg-module.html">timeside.decode.ogg</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.encode.ogg-module.html">ogg</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode-module.html">timeside.encode</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html">OggVorbisEncoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.ogg-module.html">timeside.encode.ogg</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="P">P</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.core.AudioProcessor-class.html#peaks">peaks()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.core.AudioProcessor-class.html">AudioProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.mp3.Mp3Encoder-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.mp3.Mp3Encoder-class.html">Mp3Encoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Spectrogram-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Spectrogram-class.html">Spectrogram</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.WaveformImage-class.html#peaks">peaks()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.WaveformImage-class.html">WaveformImage</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.ogg.OggVorbisEncoder-class.html">OggVorbisEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.WavEncoder-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.WavEncoder-class.html">WavEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.core.AudioProcessor-class.html#pre_process">pre_process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.core.AudioProcessor-class.html">AudioProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.wav.WavEncoder-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.wav.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Waveform-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Waveform-class.html">Waveform</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests._TextTestResult-class.html#printErrorList">printErrorList()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests._TextTestResult-class.html" onclick="show_private();">_TextTestResult</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.SpectralCentroid-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.SpectralCentroid-class.html">SpectralCentroid</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests._TextTestResult-class.html#printErrors">printErrors()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests._TextTestResult-class.html" onclick="show_private();">_TextTestResult</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.SpectrogramImage-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.SpectrogramImage-class.html">SpectrogramImage</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.WavEncoder-class.html">WavEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.api.IProcessor-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IProcessor-class.html">IProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.WaveformImage-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.WaveformImage-class.html">WaveformImage</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core.Processor-class.html">Processor</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core-module.html">timeside.core</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.core.FixedSizeInputAdapter-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.FixedSizeInputAdapter-class.html">FixedSizeInputAdapter</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FileDecoder-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core-module.html#processors">processors()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core-module.html">timeside.core</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.core.Processor-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.Processor-class.html">Processor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FixedInputProcessor-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FixedInputProcessor-class.html">FixedInputProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core.ProcessPipe-class.html">ProcessPipe</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core-module.html">timeside.core</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.core.DecoderCore-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.core.DecoderCore-class.html">DecoderCore</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Gain-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Gain-class.html">Gain</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.encode.flac.FlacEncoder-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.flac.FlacEncoder-class.html">FlacEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.MaxLevel-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.MaxLevel-class.html">MaxLevel</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="R">R</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.core.AudioProcessor-class.html#read">read()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.core.AudioProcessor-class.html">AudioProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html">MeanLevelAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#resolution">resolution()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.Noise-class.html#read_frames">read_frames()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.Noise-class.html">Noise</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.resolution.ResolutionAnalyser-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.resolution.ResolutionAnalyser-class.html">ResolutionAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.resolution.ResolutionAnalyser-class.html">ResolutionAnalyser</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.resolution-module.html">timeside.analyze.resolution</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.api.IProcessor-class.html#release">release()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IProcessor-class.html">IProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html">SampleRateAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IValueAnalyzer-class.html#result">result()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IValueAnalyzer-class.html">IValueAnalyzer</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.core.Processor-class.html#release">release()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.Processor-class.html">Processor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html">VampCoreAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Duration-class.html#result">result()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Duration-class.html">Duration</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FileDecoder-class.html#release">release()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IGrapher-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IGrapher-class.html">IGrapher</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.MaxLevel-class.html#result">result()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.MaxLevel-class.html">MaxLevel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#release">release()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html">SpectrogramGrapherAudiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core.ProcessPipe-class.html#run">run()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.ProcessPipe-class.html">ProcessPipe</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.channels.ChannelAnalyser-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.channels.ChannelAnalyser-class.html">ChannelAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html">WaveFormGrapherAudiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.TestRunner-class.html#run">run()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.TestRunner-class.html">TestRunner</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html">MeanDCShiftAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Spectrogram-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Spectrogram-class.html">Spectrogram</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestAnalyzers-class.html#run">run()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestAnalyzers-class.html">TestAnalyzers</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.duration.DurationAnalyzer-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.duration.DurationAnalyzer-class.html">DurationAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Waveform-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Waveform-class.html">Waveform</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestEncoders-class.html#run">run()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestEncoders-class.html">TestEncoders</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.encoding.EncodingAnalyser-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.encoding.EncodingAnalyser-class.html">EncodingAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.resolution-module.html">resolution</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze-module.html">timeside.analyze</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestGraphers-class.html#run">run()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test.TestGraphers-class.html">TestGraphers</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.format.FormatAnalyser-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.format.FormatAnalyser-class.html">FormatAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IDecoder-class.html#resolution">resolution()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IDecoder-class.html">IDecoder</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html#render">render()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html">MaxLevelAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FileDecoder-class.html#resolution">resolution()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="S">S</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.samplerate-module.html">samplerate</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze-module.html">timeside.analyze</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Waveform-class.html#set_colors">set_colors()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Waveform-class.html">Waveform</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#source">source</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#samplerate">samplerate</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IEncoder-class.html#set_metadata">set_metadata()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IEncoder-class.html">IEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe-module.html#source">source</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe-module.html">timeside.tests.api.test_pipe</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.api.IProcessor-class.html#samplerate">samplerate()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IProcessor-class.html">IProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.WavEncoder-class.html#set_metadata">set_metadata()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe_spectrogram-module.html#source">source</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe_spectrogram-module.html">timeside.tests.api.test_pipe_spectrogram</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.core.Processor-class.html#samplerate">samplerate()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.Processor-class.html">Processor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#set_metadata">set_metadata()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe_waveform-module.html#source">source</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe_waveform-module.html">timeside.tests.api.test_pipe_waveform</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FileDecoder-class.html#samplerate">samplerate()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IProcessor-class.html#setup">setup()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IProcessor-class.html">IProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.core.AudioProcessor-class.html#spectral_centroid">spectral_centroid()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.core.AudioProcessor-class.html">AudioProcessor</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#samplerate">samplerate()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core.Processor-class.html#setup">setup()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.Processor-class.html">Processor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.SpectralCentroid-class.html">SpectralCentroid</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core-module.html">timeside.grapher.core</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html">SampleRateAnalyzer</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.samplerate-module.html">timeside.analyze.samplerate</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Duration-class.html#setup">setup()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Duration-class.html">Duration</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Spectrogram-class.html">Spectrogram</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples-module.html">timeside.tests.api.examples</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.SpectrogramImage-class.html#save">save()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.SpectrogramImage-class.html">SpectrogramImage</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FileDecoder-class.html#setup">setup()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe_spectrogram-module.html#spectrogram">spectrogram</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe_spectrogram-module.html">timeside.tests.api.test_pipe_spectrogram</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.WaveformImage-class.html#save">save()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.WaveformImage-class.html">WaveformImage</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FixedInputProcessor-class.html#setup">setup()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FixedInputProcessor-class.html">FixedInputProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.spectrogram_audiolab-module.html">spectrogram_audiolab</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher-module.html">timeside.grapher</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.Noise-class.html#seek">seek()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.Noise-class.html">Noise</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.MaxLevel-class.html#setup">setup()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.MaxLevel-class.html">MaxLevel</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html">SpectrogramGrapherAudiolab</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.spectrogram_audiolab-module.html">timeside.grapher.spectrogram_audiolab</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests._TextTestResult-class.html#separator1">separator1</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests._TextTestResult-class.html" onclick="show_private();">_TextTestResult</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Spectrogram-class.html#setup">setup()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Spectrogram-class.html">Spectrogram</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.SpectrogramImage-class.html">SpectrogramImage</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core-module.html">timeside.grapher.core</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests._TextTestResult-class.html#separator2">separator2</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests._TextTestResult-class.html" onclick="show_private();">_TextTestResult</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.WavEncoder-class.html#setup">setup()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests._TextTestResult-class.html#startTest">startTest()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests._TextTestResult-class.html" onclick="show_private();">_TextTestResult</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.api.IGrapher-class.html#set_colors">set_colors()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IGrapher-class.html">IGrapher</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Waveform-class.html#setup">setup()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Waveform-class.html">Waveform</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe-module.html#subpipe">subpipe</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe-module.html">timeside.tests.api.test_pipe</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#set_colors">set_colors()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html">SpectrogramGrapherAudiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#setup">setup()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.exceptions.SubProcessError-class.html">SubProcessError</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.exceptions-module.html">timeside.exceptions</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#set_colors">set_colors()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html">WaveFormGrapherAudiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#setup">setup()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.decode.core.SubProcessPipe-class.html">SubProcessPipe</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.core-module.html">timeside.decode.core</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Spectrogram-class.html#set_colors">set_colors()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Spectrogram-class.html">Spectrogram</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#setUp">setUp()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html">TestFixedSizeInputAdapter</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.core.SubProcessPipe-class.html">SubProcessPipe</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.core-module.html">timeside.encode.core</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="T">T</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.test-module.html">test</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests-module.html">timeside.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestDecoders-class.html">TestDecoders</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test-module.html">timeside.tests.test</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testOneInterface">testOneInterface()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">TestComponentArchitecture</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.C10-class.html#test">test()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.C10-class.html" onclick="show_private();">C10</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestEncoders-class.html">TestEncoders</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test-module.html">timeside.tests.test</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#testPadding">testPadding()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html">TestFixedSizeInputAdapter</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.I10-class.html#test">test()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.I10-class.html" onclick="show_private();">I10</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html">TestFixedSizeInputAdapter</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testinputadapter-module.html">timeside.tests.testinputadapter</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.TestRunner-class.html">TestRunner</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests-module.html">timeside.tests</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html">test_lolevel</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api-module.html">timeside.tests.api</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestGraphers-class.html">TestGraphers</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test-module.html">timeside.tests.test</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests-module.html">tests</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside-module.html">timeside</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe-module.html">test_pipe</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api-module.html">timeside.tests.api</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testImplementationInheritance">testImplementationInheritance()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">TestComponentArchitecture</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#testSizeMultiple">testSizeMultiple()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html">TestFixedSizeInputAdapter</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe_spectrogram-module.html">test_pipe_spectrogram</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api-module.html">timeside.tests.api</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testImplementationRedundancy">testImplementationRedundancy()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">TestComponentArchitecture</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.C10-class.html#teststatic">teststatic()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.C10-class.html" onclick="show_private();">C10</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe_waveform-module.html">test_pipe_waveform</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api-module.html">timeside.tests.api</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testinputadapter-module.html">testinputadapter</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests-module.html">timeside.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.I10-class.html#teststatic">teststatic()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.I10-class.html" onclick="show_private();">I10</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testAbstractImplementation">testAbstractImplementation()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">TestComponentArchitecture</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testIntefaceDocReversed">testIntefaceDocReversed()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">TestComponentArchitecture</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#testTwoChannels">testTwoChannels()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html">TestFixedSizeInputAdapter</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.test.TestAnalyzers-class.html">TestAnalyzers</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.test-module.html">timeside.tests.test</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testInterfaceDoc">testInterfaceDoc()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">TestComponentArchitecture</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testTwoImplementations">testTwoImplementations()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">TestComponentArchitecture</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.TestCase-class.html">TestCase</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests-module.html">timeside.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testInterfaceDocBadMethod">testInterfaceDocBadMethod()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">TestComponentArchitecture</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testTwoInterfaces">testTwoInterfaces()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">TestComponentArchitecture</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent-module.html">testcomponent</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests-module.html">timeside.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testInterfaceDocStatic">testInterfaceDocStatic()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">TestComponentArchitecture</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside-module.html">timeside</a></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">TestComponentArchitecture</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testInterfaceInheritance">testInterfaceInheritance()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">TestComponentArchitecture</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="U">U</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.channels.ChannelAnalyser-class.html#unit">unit()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.channels.ChannelAnalyser-class.html">ChannelAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html#unit">unit()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html">MeanLevelAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.MaxLevel-class.html#unit">unit()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.MaxLevel-class.html">MaxLevel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html#unit">unit()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html">MeanDCShiftAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.resolution.ResolutionAnalyser-class.html#unit">unit()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.resolution.ResolutionAnalyser-class.html">ResolutionAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_lolevel-module.html#use_gst">use_gst</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.duration.DurationAnalyzer-class.html#unit">unit()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.duration.DurationAnalyzer-class.html">DurationAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html#unit">unit()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html">SampleRateAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe-module.html#use_gst">use_gst</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe-module.html">timeside.tests.api.test_pipe</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.encoding.EncodingAnalyser-class.html#unit">unit()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.encoding.EncodingAnalyser-class.html">EncodingAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#unit">unit()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html">VampCoreAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe_spectrogram-module.html#use_gst">use_gst</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe_spectrogram-module.html">timeside.tests.api.test_pipe_spectrogram</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.format.FormatAnalyser-class.html#unit">unit()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.format.FormatAnalyser-class.html">FormatAnalyser</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IAnalyzer-class.html#unit">unit()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IAnalyzer-class.html">IAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe_waveform-module.html#use_gst">use_gst</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe_waveform-module.html">timeside.tests.api.test_pipe_waveform</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html#unit">unit()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html">MaxLevelAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Duration-class.html#unit">unit()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Duration-class.html">Duration</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="V">V</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.core.MetaProcessor-class.html#valid_id">valid_id</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.MetaProcessor-class.html">MetaProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.vamp-module.html">vamp</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze-module.html">timeside.analyze</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html">VampCoreAnalyzer</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.vamp.core-module.html">timeside.analyze.vamp.core</a>)</span></td>
+</tr>
+<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="W">W</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.wav-module.html">wav</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode-module.html">timeside.decode</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.waveform_audiolab-module.html">waveform_audiolab</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher-module.html">timeside.grapher</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html">WavEncoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer-module.html">timeside.tests.api.gstreamer</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.encode.wav-module.html">wav</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode-module.html">timeside.encode</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html">WaveFormGrapherAudiolab</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.waveform_audiolab-module.html">timeside.grapher.waveform_audiolab</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.flac.FlacEncoder-class.html#write_tags">write_tags()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.flac.FlacEncoder-class.html">FlacEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.wav.WavDecoder-class.html">WavDecoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.wav-module.html">timeside.decode.wav</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.WaveformImage-class.html">WaveformImage</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core-module.html">timeside.grapher.core</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.mp3.Mp3Encoder-class.html#write_tags">write_tags()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.mp3.Mp3Encoder-class.html">Mp3Encoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Waveform-class.html">Waveform</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples-module.html">timeside.tests.api.examples</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.wav.WavEncoder-class.html">WavEncoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.wav-module.html">timeside.encode.wav</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html#write_tags">write_tags()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.ogg.OggVorbisEncoder-class.html">OggVorbisEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests.api.test_pipe_waveform-module.html#waveform">waveform</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.test_pipe_waveform-module.html">timeside.tests.api.test_pipe_waveform</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.WavEncoder-class.html">WavEncoder</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples-module.html">timeside.tests.api.examples</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests._WritelnDecorator-class.html#writeln">writeln()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests._WritelnDecorator-class.html" onclick="show_private();">_WritelnDecorator</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="_">_</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="timeside.core.Processor-class.html#__del__">__del__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.Processor-class.html">Processor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.flac.FlacEncoder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.flac.FlacEncoder-class.html">FlacEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.WavEncoder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.WavEncoder-class.html">WavEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.tests._WritelnDecorator-class.html#__getattr__">__getattr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests._WritelnDecorator-class.html" onclick="show_private();">_WritelnDecorator</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.mp3.Mp3Encoder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.mp3.Mp3Encoder-class.html">Mp3Encoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Waveform-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Waveform-class.html">Waveform</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.core.AudioProcessor-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.core.AudioProcessor-class.html">AudioProcessor</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.ogg.OggVorbisEncoder-class.html">OggVorbisEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html">VampCoreAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.encode.wav.WavEncoder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.wav.WavEncoder-class.html">WavEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.gstreamer.WavEncoder-class.html">WavEncoder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.api.IAnalyzer-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IAnalyzer-class.html">IAnalyzer</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.exceptions.SubProcessError-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.exceptions.SubProcessError-class.html">SubProcessError</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core.ProcessPipe-class.html#__ior__">__ior__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.ProcessPipe-class.html">ProcessPipe</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.api.IDecoder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IDecoder-class.html">IDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.Noise-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.Noise-class.html">Noise</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.component.MetaComponent-class.html#__new__">__new__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.component.MetaComponent-class.html">MetaComponent</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.api.IEffect-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IEffect-class.html">IEffect</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.SpectralCentroid-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.SpectralCentroid-class.html">SpectralCentroid</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core.MetaProcessor-class.html#__new__">__new__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.MetaProcessor-class.html">MetaProcessor</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.api.IEncoder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IEncoder-class.html">IEncoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.SpectrogramImage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.SpectrogramImage-class.html">SpectrogramImage</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core.ProcessPipe-class.html#__or__">__or__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.ProcessPipe-class.html">ProcessPipe</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.api.IGrapher-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IGrapher-class.html">IGrapher</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.grapher.core.WaveformImage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.grapher.core.WaveformImage-class.html">WaveformImage</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core.Processor-class.html#__or__">__or__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.Processor-class.html">Processor</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.core.FixedSizeInputAdapter-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.FixedSizeInputAdapter-class.html">FixedSizeInputAdapter</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.TestRunner-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.TestRunner-class.html">TestRunner</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.api.IValueAnalyzer-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.api.IValueAnalyzer-class.html">IValueAnalyzer</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.core.ProcessPipe-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core.ProcessPipe-class.html">ProcessPipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests._TextTestResult-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests._TextTestResult-class.html" onclick="show_private();">_TextTestResult</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.exceptions.SubProcessError-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.exceptions.SubProcessError-class.html">SubProcessError</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.core.DecoderCore-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.core.DecoderCore-class.html">DecoderCore</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests._WritelnDecorator-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests._WritelnDecorator-class.html" onclick="show_private();">_WritelnDecorator</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.TestRunner-class.html#_makeResult">_makeResult()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.TestRunner-class.html">TestRunner</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.core.SubProcessPipe-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.core.SubProcessPipe-class.html">SubProcessPipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.FileDecoder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.core-module.html#_processors">_processors</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.core-module.html">timeside.core</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.decode.mp3.Mp3Decoder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.decode.mp3.Mp3Decoder-class.html">Mp3Decoder</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Gain-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Gain-class.html">Gain</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests._TextTestResult-class.html">_TextTestResult</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests-module.html">timeside.tests</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="timeside.encode.core.SubProcessPipe-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.encode.core.SubProcessPipe-class.html">SubProcessPipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests.api.examples.Spectrogram-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests.api.examples.Spectrogram-class.html">Spectrogram</a>)</span></td>
+<td width="33%" class="link-index"><a href="timeside.tests._WritelnDecorator-class.html">_WritelnDecorator</a><br />
+<span class="index-where">(in&nbsp;<a href="timeside.tests-module.html">timeside.tests</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+</table>
+<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/index.html b/doc/epydoc/index.html
new file mode 100644 (file)
index 0000000..d339ea3
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+          "DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title> API Documentation </title>
+</head>
+<frameset cols="20%,80%">
+  <frameset rows="30%,70%">
+    <frame src="toc.html" name="moduleListFrame"
+           id="moduleListFrame" />
+    <frame src="toc-everything.html" name="moduleFrame"
+           id="moduleFrame" />
+  </frameset>
+  <frame src="timeside-module.html" name="mainFrame" id="mainFrame" />
+</frameset>
+</html>
diff --git a/doc/epydoc/module-tree.html b/doc/epydoc/module-tree.html
new file mode 100644 (file)
index 0000000..c419144
--- /dev/null
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Module Hierarchy</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">&nbsp;</td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="module-tree.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<center><b>
+ [ <a href="module-tree.html">Module Hierarchy</a>
+ | <a href="class-tree.html">Class Hierarchy</a> ]
+</b></center><br />
+<h1 class="epydoc">Module Hierarchy</h1>
+<ul class="nomargin-top">
+    <li> <strong class="uidlink"><a href="timeside-module.html">timeside</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.analyze-module.html">timeside.analyze</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.analyze.channels-module.html">timeside.analyze.channels</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.core-module.html">timeside.analyze.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.dc-module.html">timeside.analyze.dc</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.duration-module.html">timeside.analyze.duration</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.encoding-module.html">timeside.analyze.encoding</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.format-module.html">timeside.analyze.format</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.max_level-module.html">timeside.analyze.max_level</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.mean_level-module.html">timeside.analyze.mean_level</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.resolution-module.html">timeside.analyze.resolution</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.samplerate-module.html">timeside.analyze.samplerate</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.vamp-module.html">timeside.analyze.vamp</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.analyze.vamp.core-module.html">timeside.analyze.vamp.core</a></strong>    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.api-module.html">timeside.api</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.component-module.html">timeside.component</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.core-module.html">timeside.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode-module.html">timeside.decode</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.decode.core-module.html">timeside.decode.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.flac-module.html">timeside.decode.flac</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.mp3-module.html">timeside.decode.mp3</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.ogg-module.html">timeside.decode.ogg</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.wav-module.html">timeside.decode.wav</a></strong>    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode-module.html">timeside.encode</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.encode.core-module.html">timeside.encode.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.flac-module.html">timeside.encode.flac</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.mp3-module.html">timeside.encode.mp3</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.ogg-module.html">timeside.encode.ogg</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.wav-module.html">timeside.encode.wav</a></strong>    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.exceptions-module.html">timeside.exceptions</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher-module.html">timeside.grapher</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.grapher.core-module.html">timeside.grapher.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher.spectrogram_audiolab-module.html">timeside.grapher.spectrogram_audiolab</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher.waveform_audiolab-module.html">timeside.grapher.waveform_audiolab</a></strong>    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.metadata-module.html">timeside.metadata</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests-module.html">timeside.tests</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.tests.alltests-module.html">timeside.tests.alltests</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api-module.html">timeside.tests.api</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.examples-module.html">timeside.tests.api.examples</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.gstreamer-module.html">timeside.tests.api.gstreamer</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_pipe-module.html">timeside.tests.api.test_pipe</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_pipe_spectrogram-module.html">timeside.tests.api.test_pipe_spectrogram</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_pipe_waveform-module.html">timeside.tests.api.test_pipe_waveform</a></strong>    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.listprocessors-module.html">timeside.tests.listprocessors</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.test-module.html">timeside.tests.test</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testinputadapter-module.html">timeside.tests.testinputadapter</a></strong>    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+</ul>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/redirect.html b/doc/epydoc/redirect.html
new file mode 100644 (file)
index 0000000..52cf83a
--- /dev/null
@@ -0,0 +1,38 @@
+<html><head><title>Epydoc Redirect Page</title>
+<meta http-equiv="cache-control" content="no-cache" />
+<meta http-equiv="expires" content="0" />
+<meta http-equiv="pragma" content="no-cache" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+<body>
+<script type="text/javascript">
+<!--
+var pages = ["timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-c", "timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-c", "timeside.tests.testinputadapter.TestFixedSizeInputAdapter-c", "timeside.tests.testcomponent.TestComponentArchitecture-c", "timeside.tests.api.examples.FixedInputProcessor-c", "timeside.analyze.resolution.ResolutionAnalyser-c", "timeside.analyze.samplerate.SampleRateAnalyzer-c", "timeside.analyze.mean_level.MeanLevelAnalyser-c", "timeside.analyze.max_level.MaxLevelAnalyzer-c", "timeside.analyze.vamp.core.VampCoreAnalyzer-c", "timeside.analyze.duration.DurationAnalyzer-c", "timeside.analyze.encoding.EncodingAnalyser-c", "timeside.analyze.channels.ChannelAnalyser-c", "timeside.tests.api.test_pipe_spectrogram-m", "timeside.tests.api.gstreamer.FileDecoder-c", "timeside.analyze.dc.MeanDCShiftAnalyser-c", "timeside.tests.api.examples.FileDecoder-c", "timeside.tests.api.examples.Spectrogram-c", "timeside.tests.api.gstreamer.WavEncoder-c", "timeside.analyze.format.FormatAnalyser-c", "timeside.grapher.core.SpectralCentroid-c", "timeside.grapher.core.SpectrogramImage-c", "timeside.tests.api.examples.WavEncoder-c", "timeside.grapher.spectrogram_audiolab-m", "timeside.tests.api.test_pipe_waveform-m", "timeside.analyze.core.AudioProcessor-c", "timeside.encode.ogg.OggVorbisEncoder-c", "timeside.tests.api.examples.Duration-c", "timeside.tests.api.examples.MaxLevel-c", "timeside.tests.api.examples.Waveform-c", "timeside.core.FixedSizeInputAdapter-c", "timeside.decode.core.SubProcessPipe-c", "timeside.encode.core.SubProcessPipe-c", "timeside.exceptions.SubProcessError-c", "timeside.grapher.core.WaveformImage-c", "timeside.grapher.waveform_audiolab-m", "timeside.component.ComponentError-c", "timeside.tests.test.TestAnalyzers-c", "timeside.component.MetaComponent-c", "timeside.decode.core.DecoderCore-c", "timeside.decode.flac.FlacDecoder-c", "timeside.encode.core.EncoderCore-c", "timeside.encode.flac.FlacEncoder-c", "timeside.tests._WritelnDecorator-c", "timeside.tests.api.examples.Gain-c", "timeside.tests.test.TestDecoders-c", "timeside.tests.test.TestEncoders-c", "timeside.tests.test.TestGraphers-c", "timeside.tests.testcomponent.C10-c", "timeside.tests.testcomponent.C11-c", "timeside.tests.testcomponent.I10-c", "timeside.tests.testcomponent.I11-c", "timeside.tests.api.test_lolevel-m", "timeside.tests.testinputadapter-m", "timeside.tests.testcomponent.C1-c", "timeside.tests.testcomponent.C2-c", "timeside.tests.testcomponent.C3-c", "timeside.tests.testcomponent.C4-c", "timeside.tests.testcomponent.C5-c", "timeside.tests.testcomponent.C6-c", "timeside.tests.testcomponent.C7-c", "timeside.tests.testcomponent.C8-c", "timeside.tests.testcomponent.C9-c", "timeside.tests.testcomponent.I1-c", "timeside.tests.testcomponent.I2-c", "timeside.tests.testcomponent.I3-c", "timeside.tests.testcomponent.I4-c", "timeside.tests.testcomponent.I5-c", "timeside.tests.testcomponent.I6-c", "timeside.tests.testcomponent.I7-c", "timeside.tests.testcomponent.I8-c", "timeside.tests.testcomponent.I9-c", "timeside.decode.mp3.Mp3Decoder-c", "timeside.decode.ogg.OggDecoder-c", "timeside.decode.wav.WavDecoder-c", "timeside.encode.mp3.Mp3Encoder-c", "timeside.encode.wav.WavEncoder-c", "timeside.tests._TextTestResult-c", "timeside.tests.listprocessors-m", "timeside.tests.api.gstreamer-m", "timeside.tests.api.test_pipe-m", "timeside.tests.testcomponent-m", "timeside.component.Component-c", "timeside.component.Interface-c", "timeside.exceptions.ApiError-c", "timeside.analyze.mean_level-m", "timeside.analyze.resolution-m", "timeside.analyze.samplerate-m", "timeside.tests.api.examples-m", "timeside.api.IValueAnalyzer-c", "timeside.core.MetaProcessor-c", "timeside.grapher.core.Noise-c", "timeside.analyze.max_level-m", "timeside.analyze.vamp.core-m", "timeside.metadata.Metadata-c", "timeside.analyze.channels-m", "timeside.analyze.duration-m", "timeside.analyze.encoding-m", "exceptions.AssertionError-c", "timeside.core.ProcessPipe-c", "timeside.exceptions.Error-c", "timeside.tests.TestRunner-c", "timeside.analyze.format-m", "timeside.tests.alltests-m", "timeside.api.IProcessor-c", "timeside.core.Processor-c", "timeside.tests.TestCase-c", "timeside.api.IAnalyzer-c", "timeside.analyze.core-m", "timeside.analyze.vamp-m", "timeside.grapher.core-m", "timeside.api.IDecoder-c", "timeside.api.IEncoder-c", "timeside.api.IGrapher-c", "timeside.decode.core-m", "timeside.decode.flac-m", "timeside.encode.core-m", "timeside.encode.flac-m", "timeside.api.IEffect-c", "timeside.analyze.dc-m", "timeside.decode.mp3-m", "timeside.decode.ogg-m", "timeside.decode.wav-m", "timeside.encode.mp3-m", "timeside.encode.ogg-m", "timeside.encode.wav-m", "timeside.exceptions-m", "timeside.tests.test-m", "timeside.component-m", "timeside.tests.api-m", "timeside.metadata-m", "timeside.analyze-m", "timeside.grapher-m", "timeside.decode-m", "timeside.encode-m", "timeside.tests-m", "timeside.core-m", "timeside.api-m", "timeside-m"];
+var dottedName = get_anchor();
+if (dottedName) {
+    var target = redirect_url(dottedName);
+    if (target) window.location.replace(target);
+}
+// -->
+</script>
+
+<h3>Epydoc Auto-redirect page</h3>
+
+<p>When javascript is enabled, this page will redirect URLs of
+the form <tt>redirect.html#<i>dotted.name</i></tt> to the
+documentation for the object with the given fully-qualified
+dotted name.</p>
+<p><a id="message"> &nbsp; </a></p>
+
+<script type="text/javascript">
+<!--
+if (dottedName) {
+    var msg = document.getElementById("message");
+    msg.innerHTML = "No documentation found for <tt>"+
+                    dottedName+"</tt>";
+}
+// -->
+</script>
+
+</body>
+</html>
diff --git a/doc/epydoc/timeside-module.html b/doc/epydoc/timeside-module.html
new file mode 100644 (file)
index 0000000..60edb0d
--- /dev/null
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        Package&nbsp;timeside
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PACKAGE DESCRIPTION ==================== -->
+<h1 class="epydoc">Package timeside</h1><p class="nomargin-top"><span class="codelink"><a href="timeside-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== SUBMODULES ==================== -->
+<a name="section-Submodules"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Submodules</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Submodules"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr><td class="summary">
+  <ul class="nomargin">
+    <li> <strong class="uidlink"><a href="timeside.analyze-module.html">timeside.analyze</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.analyze.channels-module.html">timeside.analyze.channels</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.core-module.html">timeside.analyze.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.dc-module.html">timeside.analyze.dc</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.duration-module.html">timeside.analyze.duration</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.encoding-module.html">timeside.analyze.encoding</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.format-module.html">timeside.analyze.format</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.max_level-module.html">timeside.analyze.max_level</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.mean_level-module.html">timeside.analyze.mean_level</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.resolution-module.html">timeside.analyze.resolution</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.samplerate-module.html">timeside.analyze.samplerate</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.vamp-module.html">timeside.analyze.vamp</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.analyze.vamp.core-module.html">timeside.analyze.vamp.core</a></strong>    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.api-module.html">timeside.api</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.component-module.html">timeside.component</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.core-module.html">timeside.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode-module.html">timeside.decode</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.decode.core-module.html">timeside.decode.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.flac-module.html">timeside.decode.flac</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.mp3-module.html">timeside.decode.mp3</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.ogg-module.html">timeside.decode.ogg</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.wav-module.html">timeside.decode.wav</a></strong>    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode-module.html">timeside.encode</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.encode.core-module.html">timeside.encode.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.flac-module.html">timeside.encode.flac</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.mp3-module.html">timeside.encode.mp3</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.ogg-module.html">timeside.encode.ogg</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.wav-module.html">timeside.encode.wav</a></strong>    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.exceptions-module.html">timeside.exceptions</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher-module.html">timeside.grapher</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.grapher.core-module.html">timeside.grapher.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher.spectrogram_audiolab-module.html">timeside.grapher.spectrogram_audiolab</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher.waveform_audiolab-module.html">timeside.grapher.waveform_audiolab</a></strong>    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.metadata-module.html">timeside.metadata</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests-module.html">timeside.tests</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.tests.alltests-module.html">timeside.tests.alltests</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api-module.html">timeside.tests.api</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.examples-module.html">timeside.tests.api.examples</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.gstreamer-module.html">timeside.tests.api.gstreamer</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_pipe-module.html">timeside.tests.api.test_pipe</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_pipe_spectrogram-module.html">timeside.tests.api.test_pipe_spectrogram</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_pipe_waveform-module.html">timeside.tests.api.test_pipe_waveform</a></strong>    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.listprocessors-module.html">timeside.tests.listprocessors</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.test-module.html">timeside.tests.test</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testinputadapter-module.html">timeside.tests.testinputadapter</a></strong>    </li>
+    </ul>
+    </li>
+  </ul></td></tr>
+</table>
+
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside-pysrc.html b/doc/epydoc/timeside-pysrc.html
new file mode 100644 (file)
index 0000000..44db7b1
--- /dev/null
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        Package&nbsp;timeside
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside-module.html">Package timeside</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-0', 'core', 'link-0');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Method timeside.api.IDecoder.metadata()=timeside.api.IDecoder-class.html#metadata,Module timeside.metadata=timeside.metadata-module.html,Method timeside.tests.api.examples.FileDecoder.metadata()=timeside.tests.api.examples.FileDecoder-class.html#metadata,Method timeside.tests.api.gstreamer.FileDecoder.metadata()=timeside.tests.api.gstreamer.FileDecoder-class.html#metadata"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-1', 'metadata', 'link-1');">metadata</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class timeside.metadata.Metadata=timeside.metadata.Metadata-class.html"><a title="timeside.metadata.Metadata" class="py-name" href="#" onclick="return doclink('link-2', 'Metadata', 'link-2');">Metadata</a></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Package timeside.decode=timeside.decode-module.html"><a title="timeside.decode" class="py-name" href="#" onclick="return doclink('link-3', 'decode', 'link-3');">decode</a></tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Package timeside.encode=timeside.encode-module.html"><a title="timeside.encode" class="py-name" href="#" onclick="return doclink('link-4', 'encode', 'link-4');">encode</a></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Package timeside.analyze=timeside.analyze-module.html"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-5', 'analyze', 'link-5');">analyze</a></tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Package timeside.grapher=timeside.grapher-module.html"><a title="timeside.grapher" class="py-name" href="#" onclick="return doclink('link-6', 'grapher', 'link-6');">grapher</a></tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze-module.html b/doc/epydoc/timeside.analyze-module.html
new file mode 100644 (file)
index 0000000..81e2708
--- /dev/null
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Package&nbsp;analyze
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PACKAGE DESCRIPTION ==================== -->
+<h1 class="epydoc">Package analyze</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== SUBMODULES ==================== -->
+<a name="section-Submodules"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Submodules</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Submodules"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr><td class="summary">
+  <ul class="nomargin">
+    <li> <strong class="uidlink"><a href="timeside.analyze.channels-module.html">timeside.analyze.channels</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.core-module.html">timeside.analyze.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.dc-module.html">timeside.analyze.dc</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.duration-module.html">timeside.analyze.duration</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.encoding-module.html">timeside.analyze.encoding</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.format-module.html">timeside.analyze.format</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.max_level-module.html">timeside.analyze.max_level</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.mean_level-module.html">timeside.analyze.mean_level</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.resolution-module.html">timeside.analyze.resolution</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.samplerate-module.html">timeside.analyze.samplerate</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.analyze.vamp-module.html">timeside.analyze.vamp</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.analyze.vamp.core-module.html">timeside.analyze.vamp.core</a></strong>    </li>
+    </ul>
+    </li>
+  </ul></td></tr>
+</table>
+
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze-pysrc.html b/doc/epydoc/timeside.analyze-pysrc.html
new file mode 100644 (file)
index 0000000..85f6307
--- /dev/null
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Package&nbsp;analyze
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.analyze-module.html">Package timeside.analyze</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.analyze=timeside.analyze-module.html"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-1', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-4', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module timeside.analyze.channels=timeside.analyze.channels-module.html,Method timeside.api.IProcessor.channels()=timeside.api.IProcessor-class.html#channels,Method timeside.core.Processor.channels()=timeside.core.Processor-class.html#channels,Method timeside.tests.api.examples.FileDecoder.channels()=timeside.tests.api.examples.FileDecoder-class.html#channels,Method timeside.tests.api.gstreamer.FileDecoder.channels()=timeside.tests.api.gstreamer.FileDecoder-class.html#channels"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-5', 'channels', 'link-5');">channels</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-6', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-7', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Module timeside.analyze.format=timeside.analyze.format-module.html,Method timeside.api.IDecoder.format()=timeside.api.IDecoder-class.html#format,Static Method timeside.api.IEncoder.format()=timeside.api.IEncoder-class.html#format,Method timeside.decode.flac.FlacDecoder.format()=timeside.decode.flac.FlacDecoder-class.html#format,Method timeside.decode.mp3.Mp3Decoder.format()=timeside.decode.mp3.Mp3Decoder-class.html#format,Method timeside.decode.ogg.OggDecoder.format()=timeside.decode.ogg.OggDecoder-class.html#format,Method timeside.decode.wav.WavDecoder.format()=timeside.decode.wav.WavDecoder-class.html#format,Method timeside.encode.flac.FlacEncoder.format()=timeside.encode.flac.FlacEncoder-class.html#format,Method timeside.encode.mp3.Mp3Encoder.format()=timeside.encode.mp3.Mp3Encoder-class.html#format,Method timeside.encode.ogg.OggVorbisEncoder.format()=timeside.encode.ogg.OggVorbisEncoder-class.html#format,Method timeside.encode.wav.WavEncoder.format()=timeside.encode.wav.WavEncoder-class.html#format,Method timeside.tests.api.examples.FileDecoder.format()=timeside.tests.api.examples.FileDecoder-class.html#format,Method timeside.tests.api.gstreamer.FileDecoder.format()=timeside.tests.api.gstreamer.FileDecoder-class.html#format"><a title="timeside.analyze.format
+timeside.api.IDecoder.format
+timeside.api.IEncoder.format
+timeside.decode.flac.FlacDecoder.format
+timeside.decode.mp3.Mp3Decoder.format
+timeside.decode.ogg.OggDecoder.format
+timeside.decode.wav.WavDecoder.format
+timeside.encode.flac.FlacEncoder.format
+timeside.encode.mp3.Mp3Encoder.format
+timeside.encode.ogg.OggVorbisEncoder.format
+timeside.encode.wav.WavEncoder.format
+timeside.tests.api.examples.FileDecoder.format
+timeside.tests.api.gstreamer.FileDecoder.format" class="py-name" href="#" onclick="return doclink('link-8', 'format', 'link-8');">format</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-9" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-9', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-10', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Module timeside.analyze.encoding=timeside.analyze.encoding-module.html,Method timeside.api.IDecoder.encoding()=timeside.api.IDecoder-class.html#encoding,Method timeside.tests.api.examples.FileDecoder.encoding()=timeside.tests.api.examples.FileDecoder-class.html#encoding,Method timeside.tests.api.gstreamer.FileDecoder.encoding()=timeside.tests.api.gstreamer.FileDecoder-class.html#encoding"><a title="timeside.analyze.encoding
+timeside.api.IDecoder.encoding
+timeside.tests.api.examples.FileDecoder.encoding
+timeside.tests.api.gstreamer.FileDecoder.encoding" class="py-name" href="#" onclick="return doclink('link-11', 'encoding', 'link-11');">encoding</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-12" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-12', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-13', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Module timeside.analyze.resolution=timeside.analyze.resolution-module.html,Method timeside.api.IDecoder.resolution()=timeside.api.IDecoder-class.html#resolution,Method timeside.tests.api.examples.FileDecoder.resolution()=timeside.tests.api.examples.FileDecoder-class.html#resolution,Method timeside.tests.api.gstreamer.FileDecoder.resolution()=timeside.tests.api.gstreamer.FileDecoder-class.html#resolution"><a title="timeside.analyze.resolution
+timeside.api.IDecoder.resolution
+timeside.tests.api.examples.FileDecoder.resolution
+timeside.tests.api.gstreamer.FileDecoder.resolution" class="py-name" href="#" onclick="return doclink('link-14', 'resolution', 'link-14');">resolution</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-15" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-15', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-16', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Module timeside.analyze.samplerate=timeside.analyze.samplerate-module.html,Method timeside.api.IProcessor.samplerate()=timeside.api.IProcessor-class.html#samplerate,Method timeside.core.Processor.samplerate()=timeside.core.Processor-class.html#samplerate,Method timeside.tests.api.examples.FileDecoder.samplerate()=timeside.tests.api.examples.FileDecoder-class.html#samplerate,Method timeside.tests.api.gstreamer.FileDecoder.samplerate()=timeside.tests.api.gstreamer.FileDecoder-class.html#samplerate,Variable timeside.tests.api.test_lolevel.samplerate=timeside.tests.api.test_lolevel-module.html#samplerate"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-17', 'samplerate', 'link-17');">samplerate</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-18" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-18', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-19', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Module timeside.analyze.duration=timeside.analyze.duration-module.html,Variable timeside.tests.api.test_pipe.duration=timeside.tests.api.test_pipe-module.html#duration"><a title="timeside.analyze.duration
+timeside.tests.api.test_pipe.duration" class="py-name" href="#" onclick="return doclink('link-20', 'duration', 'link-20');">duration</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-21" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-21', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-22', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Module timeside.analyze.max_level=timeside.analyze.max_level-module.html,Variable timeside.tests.api.test_lolevel.max_level=timeside.tests.api.test_lolevel-module.html#max_level"><a title="timeside.analyze.max_level
+timeside.tests.api.test_lolevel.max_level" class="py-name" href="#" onclick="return doclink('link-23', 'max_level', 'link-23');">max_level</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-24" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-24', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-25', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Module timeside.analyze.mean_level=timeside.analyze.mean_level-module.html"><a title="timeside.analyze.mean_level" class="py-name" href="#" onclick="return doclink('link-26', 'mean_level', 'link-26');">mean_level</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-27" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-27', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-28', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Module timeside.analyze.dc=timeside.analyze.dc-module.html"><a title="timeside.analyze.dc" class="py-name" href="#" onclick="return doclink('link-29', 'dc', 'link-29');">dc</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.channels-module.html b/doc/epydoc/timeside.analyze.channels-module.html
new file mode 100644 (file)
index 0000000..67fad1a
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.channels</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;channels
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.channels-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module channels</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.channels-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.analyze.channels.ChannelAnalyser-class.html" class="summary-name">ChannelAnalyser</a><br />
+      Media item analyzer driver interface
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.channels-pysrc.html b/doc/epydoc/timeside.analyze.channels-pysrc.html
new file mode 100644 (file)
index 0000000..4f4a5d0
--- /dev/null
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.channels</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;channels
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.channels-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.analyze.channels-module.html">Module timeside.analyze.channels</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.analyze=timeside.analyze-module.html"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-1', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IAnalyzer=timeside.api.IAnalyzer-class.html"><a title="timeside.api.IAnalyzer" class="py-name" href="#" onclick="return doclink('link-5', 'IAnalyzer', 'link-5');">IAnalyzer</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="ChannelAnalyser"></a><div id="ChannelAnalyser-def"><a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt> <a class="py-toggle" href="#" id="ChannelAnalyser-toggle" onclick="return toggle('ChannelAnalyser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.analyze.channels.ChannelAnalyser-class.html">ChannelAnalyser</a><tt class="py-op">(</tt><tt class="py-base-class">AudioProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelAnalyser-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="ChannelAnalyser-expanded"><a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">    <tt class="py-docstring">"""Media item analyzer driver interface"""</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IAnalyzer" class="py-name" href="#" onclick="return doclink('link-7', 'IAnalyzer', 'link-5');">IAnalyzer</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="ChannelAnalyser.id"></a><div id="ChannelAnalyser.id-def"><a name="L32"></a><tt class="py-lineno">32</tt> <a class="py-toggle" href="#" id="ChannelAnalyser.id-toggle" onclick="return toggle('ChannelAnalyser.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.channels.ChannelAnalyser-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelAnalyser.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ChannelAnalyser.id-expanded"><a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"nchannels"</tt> </tt>
+</div><a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="ChannelAnalyser.name"></a><div id="ChannelAnalyser.name-def"><a name="L35"></a><tt class="py-lineno">35</tt> <a class="py-toggle" href="#" id="ChannelAnalyser.name-toggle" onclick="return toggle('ChannelAnalyser.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.channels.ChannelAnalyser-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelAnalyser.name-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ChannelAnalyser.name-expanded"><a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Channels"</tt> </tt>
+</div><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"> </tt>
+<a name="ChannelAnalyser.unit"></a><div id="ChannelAnalyser.unit-def"><a name="L38"></a><tt class="py-lineno">38</tt> <a class="py-toggle" href="#" id="ChannelAnalyser.unit-toggle" onclick="return toggle('ChannelAnalyser.unit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.channels.ChannelAnalyser-class.html#unit">unit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelAnalyser.unit-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ChannelAnalyser.unit-expanded"><a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">""</tt> </tt>
+</div><a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"> </tt>
+<a name="ChannelAnalyser.render"></a><div id="ChannelAnalyser.render-def"><a name="L41"></a><tt class="py-lineno">41</tt> <a class="py-toggle" href="#" id="ChannelAnalyser.render-toggle" onclick="return toggle('ChannelAnalyser.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.channels.ChannelAnalyser-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelAnalyser.render-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ChannelAnalyser.render-expanded"><a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.pre_process()=timeside.analyze.core.AudioProcessor-class.html#pre_process"><a title="timeside.analyze.core.AudioProcessor.pre_process" class="py-name" href="#" onclick="return doclink('link-8', 'pre_process', 'link-8');">pre_process</a></tt><tt class="py-op">(</tt><tt class="py-name">media_item</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Module timeside.analyze.channels=timeside.analyze.channels-module.html,Method timeside.api.IProcessor.channels()=timeside.api.IProcessor-class.html#channels,Method timeside.core.Processor.channels()=timeside.core.Processor-class.html#channels,Method timeside.tests.api.examples.FileDecoder.channels()=timeside.tests.api.examples.FileDecoder-class.html#channels,Method timeside.tests.api.gstreamer.FileDecoder.channels()=timeside.tests.api.gstreamer.FileDecoder-class.html#channels"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-9', 'channels', 'link-9');">channels</a></tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'mono'</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-10', 'channels', 'link-9');">channels</a></tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'stereo'</tt> </tt>
+<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-11', 'channels', 'link-9');">channels</a></tt> </tt>
+</div></div><a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:42 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.channels.ChannelAnalyser-class.html b/doc/epydoc/timeside.analyze.channels.ChannelAnalyser-class.html
new file mode 100644 (file)
index 0000000..c252b5f
--- /dev/null
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.channels.ChannelAnalyser</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        <a href="timeside.analyze.channels-module.html">Module&nbsp;channels</a> ::
+        Class&nbsp;ChannelAnalyser
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.channels.ChannelAnalyser-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ChannelAnalyser</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.channels-pysrc.html#ChannelAnalyser">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+        <a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a> --+
+                              |
+                             <strong class="uidshort">ChannelAnalyser</strong>
+</pre>
+
+<hr />
+<p>Media item analyzer driver interface</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.channels-pysrc.html#ChannelAnalyser.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="unit"></a><span class="summary-sig-name">unit</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.channels-pysrc.html#ChannelAnalyser.unit">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="render"></a><span class="summary-sig-name">render</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_item</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.channels-pysrc.html#ChannelAnalyser.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a></code></b>:
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#__init__">__init__</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_mono_samples">get_mono_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_samples">get_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#peaks">peaks</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#pre_process">pre_process</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#read">read</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#spectral_centroid">spectral_centroid</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.channels-pysrc.html#ChannelAnalyser.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.core-module.html b/doc/epydoc/timeside.analyze.core-module.html
new file mode 100644 (file)
index 0000000..30f54dc
--- /dev/null
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;core
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.core-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module core</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.core-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.analyze.core.AudioProcessor-class.html" class="summary-name">AudioProcessor</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.core-pysrc.html b/doc/epydoc/timeside.analyze.core-pysrc.html
new file mode 100644 (file)
index 0000000..8676d52
--- /dev/null
@@ -0,0 +1,351 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;core
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.core-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.analyze.core-module.html">Module timeside.analyze.core</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-comment"># Authors:</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#   Bram de Jong &lt;bram.dejong at domain.com where domain in gmail&gt;</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#   Guillaume Pellerin &lt;yomguy at parisson.com&gt;</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-1', 'core', 'link-1');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">optparse</tt><tt class="py-op">,</tt> <tt class="py-name">math</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">scikits</tt><tt class="py-op">.</tt><tt class="py-name">audiolab</tt> <tt class="py-keyword">as</tt> <tt class="py-name">audiolab</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-comment"># FIXME: AudioProcessor: wrong name, should be Analyzer or AnalyzerCore</tt> </tt>
+<a name="AudioProcessor"></a><div id="AudioProcessor-def"><a name="L30"></a><tt class="py-lineno"> 30</tt> <a class="py-toggle" href="#" id="AudioProcessor-toggle" onclick="return toggle('AudioProcessor');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.analyze.core.AudioProcessor-class.html">AudioProcessor</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AudioProcessor-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AudioProcessor-expanded"><a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
+<a name="AudioProcessor.__init__"></a><div id="AudioProcessor.__init__-def"><a name="L32"></a><tt class="py-lineno"> 32</tt> <a class="py-toggle" href="#" id="AudioProcessor.__init__-toggle" onclick="return toggle('AudioProcessor.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.core.AudioProcessor-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AudioProcessor.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AudioProcessor.__init__-expanded"><a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt> <tt class="py-op">=</tt> <tt class="py-number">2048</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window_function</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">ones</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window_function</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">spectrum_range</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt> <tt class="py-op">=</tt> <tt class="py-number">100</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher</tt> <tt class="py-op">=</tt> <tt class="py-number">22050</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower_log</tt> <tt class="py-op">=</tt> <tt class="py-name">math</tt><tt class="py-op">.</tt><tt class="py-name">log10</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">)</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher_log</tt> <tt class="py-op">=</tt> <tt class="py-name">math</tt><tt class="py-op">.</tt><tt class="py-name">log10</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher</tt><tt class="py-op">)</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clip</tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">low</tt><tt class="py-op">,</tt> <tt class="py-name">high</tt><tt class="py-op">:</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">high</tt><tt class="py-op">,</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">low</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"> </tt>
+<a name="AudioProcessor.pre_process"></a><div id="AudioProcessor.pre_process-def"><a name="L43"></a><tt class="py-lineno"> 43</tt> <a class="py-toggle" href="#" id="AudioProcessor.pre_process-toggle" onclick="return toggle('AudioProcessor.pre_process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.core.AudioProcessor-class.html#pre_process">pre_process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AudioProcessor.pre_process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AudioProcessor.pre_process-expanded"><a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">        <tt class="py-name">wav_file</tt> <tt class="py-op">=</tt> <tt class="py-name">media_item</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">audio_file</tt> <tt class="py-op">=</tt> <tt class="py-name">audiolab</tt><tt class="py-op">.</tt><tt class="py-name">sndfile</tt><tt class="py-op">(</tt><tt class="py-name">wav_file</tt><tt class="py-op">,</tt> <tt class="py-string">'read'</tt><tt class="py-op">)</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Variable timeside.tests.api.test_lolevel.frames=timeside.tests.api.test_lolevel-module.html#frames"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-2', 'frames', 'link-2');">frames</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">audio_file</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Method timeside.grapher.core.Noise.get_nframes()=timeside.grapher.core.Noise-class.html#get_nframes"><a title="timeside.grapher.core.Noise.get_nframes" class="py-name" href="#" onclick="return doclink('link-3', 'get_nframes', 'link-3');">get_nframes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.analyze.samplerate=timeside.analyze.samplerate-module.html,Method timeside.api.IProcessor.samplerate()=timeside.api.IProcessor-class.html#samplerate,Method timeside.core.Processor.samplerate()=timeside.core.Processor-class.html#samplerate,Method timeside.tests.api.examples.FileDecoder.samplerate()=timeside.tests.api.examples.FileDecoder-class.html#samplerate,Method timeside.tests.api.gstreamer.FileDecoder.samplerate()=timeside.tests.api.gstreamer.FileDecoder-class.html#samplerate,Variable timeside.tests.api.test_lolevel.samplerate=timeside.tests.api.test_lolevel-module.html#samplerate"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-4', 'samplerate', 'link-4');">samplerate</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">audio_file</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method timeside.grapher.core.Noise.get_samplerate()=timeside.grapher.core.Noise-class.html#get_samplerate"><a title="timeside.grapher.core.Noise.get_samplerate" class="py-name" href="#" onclick="return doclink('link-5', 'get_samplerate', 'link-5');">get_samplerate</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Module timeside.analyze.channels=timeside.analyze.channels-module.html,Method timeside.api.IProcessor.channels()=timeside.api.IProcessor-class.html#channels,Method timeside.core.Processor.channels()=timeside.core.Processor-class.html#channels,Method timeside.tests.api.examples.FileDecoder.channels()=timeside.tests.api.examples.FileDecoder-class.html#channels,Method timeside.tests.api.gstreamer.FileDecoder.channels()=timeside.tests.api.gstreamer.FileDecoder-class.html#channels"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-6', 'channels', 'link-6');">channels</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">audio_file</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method timeside.grapher.core.Noise.get_channels()=timeside.grapher.core.Noise-class.html#get_channels"><a title="timeside.grapher.core.Noise.get_channels" class="py-name" href="#" onclick="return doclink('link-7', 'get_channels', 'link-7');">get_channels</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Module timeside.analyze.format=timeside.analyze.format-module.html,Method timeside.api.IDecoder.format()=timeside.api.IDecoder-class.html#format,Static Method timeside.api.IEncoder.format()=timeside.api.IEncoder-class.html#format,Method timeside.decode.flac.FlacDecoder.format()=timeside.decode.flac.FlacDecoder-class.html#format,Method timeside.decode.mp3.Mp3Decoder.format()=timeside.decode.mp3.Mp3Decoder-class.html#format,Method timeside.decode.ogg.OggDecoder.format()=timeside.decode.ogg.OggDecoder-class.html#format,Method timeside.decode.wav.WavDecoder.format()=timeside.decode.wav.WavDecoder-class.html#format,Method timeside.encode.flac.FlacEncoder.format()=timeside.encode.flac.FlacEncoder-class.html#format,Method timeside.encode.mp3.Mp3Encoder.format()=timeside.encode.mp3.Mp3Encoder-class.html#format,Method timeside.encode.ogg.OggVorbisEncoder.format()=timeside.encode.ogg.OggVorbisEncoder-class.html#format,Method timeside.encode.wav.WavEncoder.format()=timeside.encode.wav.WavEncoder-class.html#format,Method timeside.tests.api.examples.FileDecoder.format()=timeside.tests.api.examples.FileDecoder-class.html#format,Method timeside.tests.api.gstreamer.FileDecoder.format()=timeside.tests.api.gstreamer.FileDecoder-class.html#format"><a title="timeside.analyze.format
+timeside.api.IDecoder.format
+timeside.api.IEncoder.format
+timeside.decode.flac.FlacDecoder.format
+timeside.decode.mp3.Mp3Decoder.format
+timeside.decode.ogg.OggDecoder.format
+timeside.decode.wav.WavDecoder.format
+timeside.encode.flac.FlacEncoder.format
+timeside.encode.mp3.Mp3Encoder.format
+timeside.encode.ogg.OggVorbisEncoder.format
+timeside.encode.wav.WavEncoder.format
+timeside.tests.api.examples.FileDecoder.format
+timeside.tests.api.gstreamer.FileDecoder.format" class="py-name" href="#" onclick="return doclink('link-8', 'format', 'link-8');">format</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">audio_file</tt><tt class="py-op">.</tt><tt class="py-name">get_file_format</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Module timeside.analyze.encoding=timeside.analyze.encoding-module.html,Method timeside.api.IDecoder.encoding()=timeside.api.IDecoder-class.html#encoding,Method timeside.tests.api.examples.FileDecoder.encoding()=timeside.tests.api.examples.FileDecoder-class.html#encoding,Method timeside.tests.api.gstreamer.FileDecoder.encoding()=timeside.tests.api.gstreamer.FileDecoder-class.html#encoding"><a title="timeside.analyze.encoding
+timeside.api.IDecoder.encoding
+timeside.tests.api.examples.FileDecoder.encoding
+timeside.tests.api.gstreamer.FileDecoder.encoding" class="py-name" href="#" onclick="return doclink('link-9', 'encoding', 'link-9');">encoding</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">audio_file</tt><tt class="py-op">.</tt><tt class="py-name">get_encoding</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"> </tt>
+<a name="AudioProcessor.get_samples"></a><div id="AudioProcessor.get_samples-def"><a name="L52"></a><tt class="py-lineno"> 52</tt> <a class="py-toggle" href="#" id="AudioProcessor.get_samples-toggle" onclick="return toggle('AudioProcessor.get_samples');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.core.AudioProcessor-class.html#get_samples">get_samples</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AudioProcessor.get_samples-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AudioProcessor.get_samples-expanded"><a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">        <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">audio_file</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method timeside.grapher.core.Noise.read_frames()=timeside.grapher.core.Noise-class.html#read_frames"><a title="timeside.grapher.core.Noise.read_frames" class="py-name" href="#" onclick="return doclink('link-10', 'read_frames', 'link-10');">read_frames</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-11', 'frames', 'link-2');">frames</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">samples</tt> </tt>
+</div><a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"> </tt>
+<a name="AudioProcessor.get_mono_samples"></a><div id="AudioProcessor.get_mono_samples-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="AudioProcessor.get_mono_samples-toggle" onclick="return toggle('AudioProcessor.get_mono_samples');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.core.AudioProcessor-class.html#get_mono_samples">get_mono_samples</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AudioProcessor.get_mono_samples-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AudioProcessor.get_mono_samples-expanded"><a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-comment"># convert to mono by selecting left channel only</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.get_samples()=timeside.analyze.core.AudioProcessor-class.html#get_samples"><a title="timeside.analyze.core.AudioProcessor.get_samples" class="py-name" href="#" onclick="return doclink('link-12', 'get_samples', 'link-12');">get_samples</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-13', 'channels', 'link-6');">channels</a></tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">samples</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">samples</tt> </tt>
+</div><a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"> </tt>
+<a name="AudioProcessor.read"></a><div id="AudioProcessor.read-def"><a name="L64"></a><tt class="py-lineno"> 64</tt> <a class="py-toggle" href="#" id="AudioProcessor.read-toggle" onclick="return toggle('AudioProcessor.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.core.AudioProcessor-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">start</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">,</tt> <tt class="py-param">resize_if_less</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AudioProcessor.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AudioProcessor.read-expanded"><a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">        <tt class="py-docstring">""" read size samples starting at start, if resize_if_less is True and less than size</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-docstring">        samples are read, resize the array to size and fill with zeros """</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-comment"># number of zeros to add to start and end of the buffer</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">add_to_start</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-name">add_to_end</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">start</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">            <tt class="py-comment"># the first FFT window starts centered around zero</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">if</tt> <tt class="py-name">size</tt> <tt class="py-op">+</tt> <tt class="py-name">start</tt> <tt class="py-op">&lt;=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">resize_if_less</tt><tt class="py-op">:</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">audio_file</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method timeside.grapher.core.Noise.seek()=timeside.grapher.core.Noise-class.html#seek"><a title="timeside.grapher.core.Noise.seek" class="py-name" href="#" onclick="return doclink('link-14', 'seek', 'link-14');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line"> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">                <tt class="py-name">add_to_start</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-name">start</tt> <tt class="py-comment"># remember: start is negative!</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">                <tt class="py-name">to_read</tt> <tt class="py-op">=</tt> <tt class="py-name">size</tt> <tt class="py-op">+</tt> <tt class="py-name">start</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">to_read</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-15', 'frames', 'link-2');">frames</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">                    <tt class="py-name">add_to_end</tt> <tt class="py-op">=</tt> <tt class="py-name">to_read</tt> <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-16', 'frames', 'link-2');">frames</a></tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">                    <tt class="py-name">to_read</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-17', 'frames', 'link-2');">frames</a></tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">audio_file</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="timeside.grapher.core.Noise.seek" class="py-name" href="#" onclick="return doclink('link-18', 'seek', 'link-14');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">start</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">            <tt class="py-name">to_read</tt> <tt class="py-op">=</tt> <tt class="py-name">size</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">start</tt> <tt class="py-op">+</tt> <tt class="py-name">to_read</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-19', 'frames', 'link-2');">frames</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">                <tt class="py-name">to_read</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-20', 'frames', 'link-2');">frames</a></tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">                <tt class="py-name">add_to_end</tt> <tt class="py-op">=</tt> <tt class="py-name">size</tt> <tt class="py-op">-</tt> <tt class="py-name">to_read</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">            <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">audio_file</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="timeside.grapher.core.Noise.read_frames" class="py-name" href="#" onclick="return doclink('link-21', 'read_frames', 'link-10');">read_frames</a></tt><tt class="py-op">(</tt><tt class="py-name">to_read</tt><tt class="py-op">)</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">            <tt class="py-comment"># this can happen for wave files with broken headers...</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">if</tt> <tt class="py-name">resize_if_less</tt><tt class="py-op">:</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">)</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-comment"># convert to mono by selecting left channel only</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-22', 'channels', 'link-6');">channels</a></tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">            <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">samples</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">resize_if_less</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">add_to_start</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt> <tt class="py-keyword">or</tt> <tt class="py-name">add_to_end</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">add_to_start</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">                <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">concatenate</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-name">add_to_start</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">samples</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">axis</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">add_to_end</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">                <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">resize</tt><tt class="py-op">(</tt><tt class="py-name">samples</tt><tt class="py-op">,</tt> <tt class="py-name">size</tt><tt class="py-op">)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">                <tt class="py-name">samples</tt><tt class="py-op">[</tt><tt class="py-name">size</tt> <tt class="py-op">-</tt> <tt class="py-name">add_to_end</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">samples</tt> </tt>
+</div><a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"> </tt>
+<a name="AudioProcessor.spectral_centroid"></a><div id="AudioProcessor.spectral_centroid-def"><a name="L120"></a><tt class="py-lineno">120</tt> <a class="py-toggle" href="#" id="AudioProcessor.spectral_centroid-toggle" onclick="return toggle('AudioProcessor.spectral_centroid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.core.AudioProcessor-class.html#spectral_centroid">spectral_centroid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">seek_point</tt><tt class="py-op">,</tt> <tt class="py-param">spec_range</tt><tt class="py-op">=</tt><tt class="py-number">120.0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AudioProcessor.spectral_centroid-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AudioProcessor.spectral_centroid-expanded"><a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt class="py-docstring">""" starting at seek_point read fft_size samples, and calculate the spectral centroid """</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.read()=timeside.analyze.core.AudioProcessor-class.html#read"><a title="timeside.analyze.core.AudioProcessor.read" class="py-name" href="#" onclick="return doclink('link-23', 'read', 'link-23');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">seek_point</tt> <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-name">samples</tt> <tt class="py-op">*=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">        <tt class="py-name">fft</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fft</tt><tt class="py-op">.</tt><tt class="py-name">fft</tt><tt class="py-op">(</tt><tt class="py-name">samples</tt><tt class="py-op">)</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-name">spectrum</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">abs</tt><tt class="py-op">(</tt><tt class="py-name">fft</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">fft</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">/</tt> <tt class="py-number">2</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt><tt class="py-op">)</tt> <tt class="py-comment"># normalized abs(FFT) between 0 and 1</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-name">length</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">(</tt><tt class="py-name">spectrum</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-comment"># scale the db spectrum from [- spec_range db ... 0 db] &gt; [0..1]</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">db_spectrum</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">*</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">log10</tt><tt class="py-op">(</tt><tt class="py-name">spectrum</tt> <tt class="py-op">+</tt> <tt class="py-number">1e-30</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">clip</tt><tt class="py-op">(</tt><tt class="py-op">-</tt><tt class="py-name">spec_range</tt><tt class="py-op">,</tt> <tt class="py-number">0.0</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">spec_range</tt><tt class="py-op">)</tt><tt class="py-op">/</tt><tt class="py-name">spec_range</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">        <tt class="py-name">energy</tt> <tt class="py-op">=</tt> <tt class="py-name">spectrum</tt><tt class="py-op">.</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">        <tt id="link-24" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.spectral_centroid()=timeside.analyze.core.AudioProcessor-class.html#spectral_centroid"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-24', 'spectral_centroid', 'link-24');">spectral_centroid</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">energy</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1e-20</tt><tt class="py-op">:</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">            <tt class="py-comment"># calculate the spectral centroid</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">spectrum_range</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">spectrum_range</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">arange</tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">            <tt id="link-25" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-25', 'spectral_centroid', 'link-24');">spectral_centroid</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">spectrum</tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">spectrum_range</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-op">(</tt><tt class="py-name">energy</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">length</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-26', 'samplerate', 'link-4');">samplerate</a></tt> <tt class="py-op">*</tt> <tt class="py-number">0.5</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">            <tt class="py-comment"># clip &gt; log10 &gt; scale between 0 and 1</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt id="link-27" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-27', 'spectral_centroid', 'link-24');">spectral_centroid</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">math</tt><tt class="py-op">.</tt><tt class="py-name">log10</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clip</tt><tt class="py-op">(</tt><tt id="link-28" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-28', 'spectral_centroid', 'link-24');">spectral_centroid</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower_log</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher_log</tt> <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower_log</tt><tt class="py-op">)</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-29" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-29', 'spectral_centroid', 'link-24');">spectral_centroid</a></tt><tt class="py-op">,</tt> <tt class="py-name">db_spectrum</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"> </tt>
+<a name="AudioProcessor.peaks"></a><div id="AudioProcessor.peaks-def"><a name="L150"></a><tt class="py-lineno">150</tt> <a class="py-toggle" href="#" id="AudioProcessor.peaks-toggle" onclick="return toggle('AudioProcessor.peaks');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.core.AudioProcessor-class.html#peaks">peaks</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">start_seek</tt><tt class="py-op">,</tt> <tt class="py-param">end_seek</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AudioProcessor.peaks-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AudioProcessor.peaks-expanded"><a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">        <tt class="py-docstring">""" read all samples between start_seek and end_seek, then find the minimum and maximum peak</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-docstring">        in that range. Returns that pair in the order they were found. So if min was found first,</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-docstring">        it returns (min, max) else the other way around. """</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">        <tt class="py-comment"># larger blocksizes are faster but take more mem...</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># Aha, Watson, a clue, a tradeof!</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">block_size</tt> <tt class="py-op">=</tt> <tt class="py-number">4096</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">        <tt class="py-name">max_index</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">        <tt class="py-name">max_value</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">        <tt class="py-name">min_index</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">        <tt class="py-name">min_value</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">end_seek</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-30', 'frames', 'link-2');">frames</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">            <tt class="py-name">end_seek</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-31', 'frames', 'link-2');">frames</a></tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">block_size</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">end_seek</tt> <tt class="py-op">-</tt> <tt class="py-name">start_seek</tt><tt class="py-op">:</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">            <tt class="py-name">block_size</tt> <tt class="py-op">=</tt> <tt class="py-name">end_seek</tt> <tt class="py-op">-</tt> <tt class="py-name">start_seek</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">block_size</tt> <tt class="py-op">&lt;=</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">            <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="timeside.analyze.core.AudioProcessor.read" class="py-name" href="#" onclick="return doclink('link-32', 'read', 'link-23');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">start_seek</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">samples</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">samples</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">block_size</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">            <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="timeside.analyze.core.AudioProcessor.read" class="py-name" href="#" onclick="return doclink('link-33', 'read', 'link-23');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">start_seek</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">samples</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">samples</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">start_seek</tt><tt class="py-op">,</tt> <tt class="py-name">end_seek</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">            <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="timeside.analyze.core.AudioProcessor.read" class="py-name" href="#" onclick="return doclink('link-34', 'read', 'link-23');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">            <tt class="py-name">local_max_index</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">argmax</tt><tt class="py-op">(</tt><tt class="py-name">samples</tt><tt class="py-op">)</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">            <tt class="py-name">local_max_value</tt> <tt class="py-op">=</tt> <tt class="py-name">samples</tt><tt class="py-op">[</tt><tt class="py-name">local_max_index</tt><tt class="py-op">]</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line"> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">local_max_value</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">max_value</tt><tt class="py-op">:</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">                <tt class="py-name">max_value</tt> <tt class="py-op">=</tt> <tt class="py-name">local_max_value</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">                <tt class="py-name">max_index</tt> <tt class="py-op">=</tt> <tt class="py-name">local_max_index</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">            <tt class="py-name">local_min_index</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">argmin</tt><tt class="py-op">(</tt><tt class="py-name">samples</tt><tt class="py-op">)</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">            <tt class="py-name">local_min_value</tt> <tt class="py-op">=</tt> <tt class="py-name">samples</tt><tt class="py-op">[</tt><tt class="py-name">local_min_index</tt><tt class="py-op">]</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">local_min_value</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">min_value</tt><tt class="py-op">:</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">                <tt class="py-name">min_value</tt> <tt class="py-op">=</tt> <tt class="py-name">local_min_value</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">                <tt class="py-name">min_index</tt> <tt class="py-op">=</tt> <tt class="py-name">local_min_index</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">min_index</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">max_index</tt><tt class="py-op">:</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">min_value</tt><tt class="py-op">,</tt> <tt class="py-name">max_value</tt><tt class="py-op">)</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">max_value</tt><tt class="py-op">,</tt> <tt class="py-name">min_value</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.core.AudioProcessor-class.html b/doc/epydoc/timeside.analyze.core.AudioProcessor-class.html
new file mode 100644 (file)
index 0000000..971a89b
--- /dev/null
@@ -0,0 +1,412 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.core.AudioProcessor</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        <a href="timeside.analyze.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;AudioProcessor
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.core.AudioProcessor-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class AudioProcessor</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.core-pysrc.html#AudioProcessor">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">AudioProcessor</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html">samplerate.SampleRateAnalyzer</a></li><li>, <a href="timeside.analyze.format.FormatAnalyser-class.html">format.FormatAnalyser</a></li><li>, <a href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html">dc.MeanDCShiftAnalyser</a></li><li>, <a href="timeside.analyze.encoding.EncodingAnalyser-class.html">encoding.EncodingAnalyser</a></li><li>, <a href="timeside.analyze.resolution.ResolutionAnalyser-class.html">resolution.ResolutionAnalyser</a></li><li>, <a href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html">mean_level.MeanLevelAnalyser</a></li><li>, <a href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html">max_level.MaxLevelAnalyzer</a></li><li>, <a href="timeside.analyze.duration.DurationAnalyzer-class.html">duration.DurationAnalyzer</a></li><li>, <a href="timeside.analyze.channels.ChannelAnalyser-class.html">channels.ChannelAnalyser</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.analyze.core.AudioProcessor-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.core-pysrc.html#AudioProcessor.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_mono_samples"></a><span class="summary-sig-name">get_mono_samples</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.core-pysrc.html#AudioProcessor.get_mono_samples">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_samples"></a><span class="summary-sig-name">get_samples</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.core-pysrc.html#AudioProcessor.get_samples">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.analyze.core.AudioProcessor-class.html#peaks" class="summary-sig-name">peaks</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">start_seek</span>,
+        <span class="summary-sig-arg">end_seek</span>)</span><br />
+      read all samples between start_seek and end_seek, then find the 
+      minimum and maximum peak in that range.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.core-pysrc.html#AudioProcessor.peaks">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="pre_process"></a><span class="summary-sig-name">pre_process</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_item</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.core-pysrc.html#AudioProcessor.pre_process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="read"></a><span class="summary-sig-name">read</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">start</span>,
+        <span class="summary-sig-arg">size</span>,
+        <span class="summary-sig-arg">resize_if_less</span>=<span class="summary-sig-default">False</span>)</span><br />
+      read size samples starting at start, if resize_if_less is True and 
+      less than size samples are read, resize the array to size and fill 
+      with zeros</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.core-pysrc.html#AudioProcessor.read">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="spectral_centroid"></a><span class="summary-sig-name">spectral_centroid</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">seek_point</span>,
+        <span class="summary-sig-arg">spec_range</span>=<span class="summary-sig-default">120.0</span>)</span><br />
+      starting at seek_point read fft_size samples, and calculate the 
+      spectral centroid</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.core-pysrc.html#AudioProcessor.spectral_centroid">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.analyze.core-pysrc.html#AudioProcessor.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="peaks"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">peaks</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">start_seek</span>,
+        <span class="sig-arg">end_seek</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.analyze.core-pysrc.html#AudioProcessor.peaks">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>read all samples between start_seek and end_seek, then find the 
+  minimum and maximum peak in that range. Returns that pair in the order 
+  they were found. So if min was found first, it returns (min, max) else 
+  the other way around.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.dc-module.html b/doc/epydoc/timeside.analyze.dc-module.html
new file mode 100644 (file)
index 0000000..b642f1d
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.dc</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;dc
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.dc-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module dc</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.dc-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html" class="summary-name">MeanDCShiftAnalyser</a><br />
+      Media item analyzer driver interface
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.dc-pysrc.html b/doc/epydoc/timeside.analyze.dc-pysrc.html
new file mode 100644 (file)
index 0000000..9e46392
--- /dev/null
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.dc</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;dc
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.dc-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.analyze.dc-module.html">Module timeside.analyze.dc</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.analyze=timeside.analyze-module.html"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-1', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IValueAnalyzer=timeside.api.IValueAnalyzer-class.html"><a title="timeside.api.IValueAnalyzer" class="py-name" href="#" onclick="return doclink('link-5', 'IValueAnalyzer', 'link-5');">IValueAnalyzer</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="MeanDCShiftAnalyser"></a><div id="MeanDCShiftAnalyser-def"><a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt> <a class="py-toggle" href="#" id="MeanDCShiftAnalyser-toggle" onclick="return toggle('MeanDCShiftAnalyser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html">MeanDCShiftAnalyser</a><tt class="py-op">(</tt><tt class="py-base-class">AudioProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MeanDCShiftAnalyser-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="MeanDCShiftAnalyser-expanded"><a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">    <tt class="py-docstring">"""Media item analyzer driver interface"""</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IValueAnalyzer" class="py-name" href="#" onclick="return doclink('link-7', 'IValueAnalyzer', 'link-5');">IValueAnalyzer</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="MeanDCShiftAnalyser.id"></a><div id="MeanDCShiftAnalyser.id-def"><a name="L32"></a><tt class="py-lineno">32</tt> <a class="py-toggle" href="#" id="MeanDCShiftAnalyser.id-toggle" onclick="return toggle('MeanDCShiftAnalyser.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MeanDCShiftAnalyser.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="MeanDCShiftAnalyser.id-expanded"><a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"dc"</tt> </tt>
+</div><a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="MeanDCShiftAnalyser.name"></a><div id="MeanDCShiftAnalyser.name-def"><a name="L35"></a><tt class="py-lineno">35</tt> <a class="py-toggle" href="#" id="MeanDCShiftAnalyser.name-toggle" onclick="return toggle('MeanDCShiftAnalyser.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MeanDCShiftAnalyser.name-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="MeanDCShiftAnalyser.name-expanded"><a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Mean DC shift"</tt> </tt>
+</div><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"> </tt>
+<a name="MeanDCShiftAnalyser.unit"></a><div id="MeanDCShiftAnalyser.unit-def"><a name="L38"></a><tt class="py-lineno">38</tt> <a class="py-toggle" href="#" id="MeanDCShiftAnalyser.unit-toggle" onclick="return toggle('MeanDCShiftAnalyser.unit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html#unit">unit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MeanDCShiftAnalyser.unit-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="MeanDCShiftAnalyser.unit-expanded"><a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"%"</tt> </tt>
+</div><a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"> </tt>
+<a name="MeanDCShiftAnalyser.render"></a><div id="MeanDCShiftAnalyser.render-def"><a name="L41"></a><tt class="py-lineno">41</tt> <a class="py-toggle" href="#" id="MeanDCShiftAnalyser.render-toggle" onclick="return toggle('MeanDCShiftAnalyser.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MeanDCShiftAnalyser.render-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="MeanDCShiftAnalyser.render-expanded"><a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.pre_process()=timeside.analyze.core.AudioProcessor-class.html#pre_process"><a title="timeside.analyze.core.AudioProcessor.pre_process" class="py-name" href="#" onclick="return doclink('link-8', 'pre_process', 'link-8');">pre_process</a></tt><tt class="py-op">(</tt><tt class="py-name">media_item</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.get_mono_samples()=timeside.analyze.core.AudioProcessor-class.html#get_mono_samples"><a title="timeside.analyze.core.AudioProcessor.get_mono_samples" class="py-name" href="#" onclick="return doclink('link-9', 'get_mono_samples', 'link-9');">get_mono_samples</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">round</tt><tt class="py-op">(</tt><tt class="py-number">100</tt><tt class="py-op">*</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">mean</tt><tt class="py-op">(</tt><tt class="py-name">samples</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.dc.MeanDCShiftAnalyser-class.html b/doc/epydoc/timeside.analyze.dc.MeanDCShiftAnalyser-class.html
new file mode 100644 (file)
index 0000000..9f65dd0
--- /dev/null
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.dc.MeanDCShiftAnalyser</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        <a href="timeside.analyze.dc-module.html">Module&nbsp;dc</a> ::
+        Class&nbsp;MeanDCShiftAnalyser
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class MeanDCShiftAnalyser</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.dc-pysrc.html#MeanDCShiftAnalyser">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+        <a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a> --+
+                              |
+                             <strong class="uidshort">MeanDCShiftAnalyser</strong>
+</pre>
+
+<hr />
+<p>Media item analyzer driver interface</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.dc-pysrc.html#MeanDCShiftAnalyser.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="unit"></a><span class="summary-sig-name">unit</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.dc-pysrc.html#MeanDCShiftAnalyser.unit">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="render"></a><span class="summary-sig-name">render</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_item</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.dc-pysrc.html#MeanDCShiftAnalyser.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a></code></b>:
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#__init__">__init__</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_mono_samples">get_mono_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_samples">get_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#peaks">peaks</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#pre_process">pre_process</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#read">read</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#spectral_centroid">spectral_centroid</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.dc-pysrc.html#MeanDCShiftAnalyser.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.duration-module.html b/doc/epydoc/timeside.analyze.duration-module.html
new file mode 100644 (file)
index 0000000..9c19dc2
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.duration</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;duration
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.duration-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module duration</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.duration-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.analyze.duration.DurationAnalyzer-class.html" class="summary-name">DurationAnalyzer</a><br />
+      Media item analyzer driver interface
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.duration-pysrc.html b/doc/epydoc/timeside.analyze.duration-pysrc.html
new file mode 100644 (file)
index 0000000..bd455b1
--- /dev/null
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.duration</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;duration
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.duration-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.analyze.duration-module.html">Module timeside.analyze.duration</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.analyze=timeside.analyze-module.html"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-1', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IAnalyzer=timeside.api.IAnalyzer-class.html"><a title="timeside.api.IAnalyzer" class="py-name" href="#" onclick="return doclink('link-5', 'IAnalyzer', 'link-5');">IAnalyzer</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">datetime</tt> </tt>
+<a name="DurationAnalyzer"></a><div id="DurationAnalyzer-def"><a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt> <a class="py-toggle" href="#" id="DurationAnalyzer-toggle" onclick="return toggle('DurationAnalyzer');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.analyze.duration.DurationAnalyzer-class.html">DurationAnalyzer</a><tt class="py-op">(</tt><tt class="py-base-class">AudioProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DurationAnalyzer-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="DurationAnalyzer-expanded"><a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line">    <tt class="py-docstring">"""Media item analyzer driver interface"""</tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IAnalyzer" class="py-name" href="#" onclick="return doclink('link-7', 'IAnalyzer', 'link-5');">IAnalyzer</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line"> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="DurationAnalyzer.id"></a><div id="DurationAnalyzer.id-def"><a name="L33"></a><tt class="py-lineno">33</tt> <a class="py-toggle" href="#" id="DurationAnalyzer.id-toggle" onclick="return toggle('DurationAnalyzer.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.duration.DurationAnalyzer-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DurationAnalyzer.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="DurationAnalyzer.id-expanded"><a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"duration"</tt> </tt>
+</div><a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line"> </tt>
+<a name="DurationAnalyzer.name"></a><div id="DurationAnalyzer.name-def"><a name="L36"></a><tt class="py-lineno">36</tt> <a class="py-toggle" href="#" id="DurationAnalyzer.name-toggle" onclick="return toggle('DurationAnalyzer.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.duration.DurationAnalyzer-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DurationAnalyzer.name-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="DurationAnalyzer.name-expanded"><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Duration"</tt> </tt>
+</div><a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"> </tt>
+<a name="DurationAnalyzer.unit"></a><div id="DurationAnalyzer.unit-def"><a name="L39"></a><tt class="py-lineno">39</tt> <a class="py-toggle" href="#" id="DurationAnalyzer.unit-toggle" onclick="return toggle('DurationAnalyzer.unit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.duration.DurationAnalyzer-class.html#unit">unit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DurationAnalyzer.unit-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="DurationAnalyzer.unit-expanded"><a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"h:m:s"</tt> </tt>
+</div><a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line"> </tt>
+<a name="DurationAnalyzer.render"></a><div id="DurationAnalyzer.render-def"><a name="L42"></a><tt class="py-lineno">42</tt> <a class="py-toggle" href="#" id="DurationAnalyzer.render-toggle" onclick="return toggle('DurationAnalyzer.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.duration.DurationAnalyzer-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DurationAnalyzer.render-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="DurationAnalyzer.render-expanded"><a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.pre_process()=timeside.analyze.core.AudioProcessor-class.html#pre_process"><a title="timeside.analyze.core.AudioProcessor.pre_process" class="py-name" href="#" onclick="return doclink('link-8', 'pre_process', 'link-8');">pre_process</a></tt><tt class="py-op">(</tt><tt class="py-name">media_item</tt><tt class="py-op">)</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-name">media_time</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">round</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Variable timeside.tests.api.test_lolevel.frames=timeside.tests.api.test_lolevel-module.html#frames"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-9', 'frames', 'link-9');">frames</a></tt><tt class="py-op">)</tt><tt class="py-op">/</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Module timeside.analyze.samplerate=timeside.analyze.samplerate-module.html,Method timeside.api.IProcessor.samplerate()=timeside.api.IProcessor-class.html#samplerate,Method timeside.core.Processor.samplerate()=timeside.core.Processor-class.html#samplerate,Method timeside.tests.api.examples.FileDecoder.samplerate()=timeside.tests.api.examples.FileDecoder-class.html#samplerate,Method timeside.tests.api.gstreamer.FileDecoder.samplerate()=timeside.tests.api.gstreamer.FileDecoder-class.html#samplerate,Variable timeside.tests.api.test_lolevel.samplerate=timeside.tests.api.test_lolevel-module.html#samplerate"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-10', 'samplerate', 'link-10');">samplerate</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">timedelta</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">media_time</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.duration.DurationAnalyzer-class.html b/doc/epydoc/timeside.analyze.duration.DurationAnalyzer-class.html
new file mode 100644 (file)
index 0000000..027e2ef
--- /dev/null
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.duration.DurationAnalyzer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        <a href="timeside.analyze.duration-module.html">Module&nbsp;duration</a> ::
+        Class&nbsp;DurationAnalyzer
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.duration.DurationAnalyzer-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class DurationAnalyzer</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.duration-pysrc.html#DurationAnalyzer">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+        <a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a> --+
+                              |
+                             <strong class="uidshort">DurationAnalyzer</strong>
+</pre>
+
+<hr />
+<p>Media item analyzer driver interface</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.duration-pysrc.html#DurationAnalyzer.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="unit"></a><span class="summary-sig-name">unit</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.duration-pysrc.html#DurationAnalyzer.unit">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="render"></a><span class="summary-sig-name">render</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_item</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.duration-pysrc.html#DurationAnalyzer.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a></code></b>:
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#__init__">__init__</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_mono_samples">get_mono_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_samples">get_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#peaks">peaks</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#pre_process">pre_process</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#read">read</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#spectral_centroid">spectral_centroid</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.duration-pysrc.html#DurationAnalyzer.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.encoding-module.html b/doc/epydoc/timeside.analyze.encoding-module.html
new file mode 100644 (file)
index 0000000..37902f2
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.encoding</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;encoding
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.encoding-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module encoding</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.encoding-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.analyze.encoding.EncodingAnalyser-class.html" class="summary-name">EncodingAnalyser</a><br />
+      Media item analyzer driver interface
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.encoding-pysrc.html b/doc/epydoc/timeside.analyze.encoding-pysrc.html
new file mode 100644 (file)
index 0000000..ff343b5
--- /dev/null
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.encoding</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;encoding
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.encoding-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.analyze.encoding-module.html">Module timeside.analyze.encoding</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.analyze=timeside.analyze-module.html"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-1', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IAnalyzer=timeside.api.IAnalyzer-class.html"><a title="timeside.api.IAnalyzer" class="py-name" href="#" onclick="return doclink('link-5', 'IAnalyzer', 'link-5');">IAnalyzer</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="EncodingAnalyser"></a><div id="EncodingAnalyser-def"><a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt> <a class="py-toggle" href="#" id="EncodingAnalyser-toggle" onclick="return toggle('EncodingAnalyser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.analyze.encoding.EncodingAnalyser-class.html">EncodingAnalyser</a><tt class="py-op">(</tt><tt class="py-base-class">AudioProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="EncodingAnalyser-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="EncodingAnalyser-expanded"><a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">    <tt class="py-docstring">"""Media item analyzer driver interface"""</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IAnalyzer" class="py-name" href="#" onclick="return doclink('link-7', 'IAnalyzer', 'link-5');">IAnalyzer</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="EncodingAnalyser.id"></a><div id="EncodingAnalyser.id-def"><a name="L32"></a><tt class="py-lineno">32</tt> <a class="py-toggle" href="#" id="EncodingAnalyser.id-toggle" onclick="return toggle('EncodingAnalyser.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.encoding.EncodingAnalyser-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="EncodingAnalyser.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="EncodingAnalyser.id-expanded"><a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"encoding"</tt> </tt>
+</div><a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="EncodingAnalyser.name"></a><div id="EncodingAnalyser.name-def"><a name="L35"></a><tt class="py-lineno">35</tt> <a class="py-toggle" href="#" id="EncodingAnalyser.name-toggle" onclick="return toggle('EncodingAnalyser.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.encoding.EncodingAnalyser-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="EncodingAnalyser.name-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="EncodingAnalyser.name-expanded"><a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Encoding format"</tt> </tt>
+</div><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"> </tt>
+<a name="EncodingAnalyser.unit"></a><div id="EncodingAnalyser.unit-def"><a name="L38"></a><tt class="py-lineno">38</tt> <a class="py-toggle" href="#" id="EncodingAnalyser.unit-toggle" onclick="return toggle('EncodingAnalyser.unit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.encoding.EncodingAnalyser-class.html#unit">unit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="EncodingAnalyser.unit-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="EncodingAnalyser.unit-expanded"><a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">""</tt> </tt>
+</div><a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"> </tt>
+<a name="EncodingAnalyser.render"></a><div id="EncodingAnalyser.render-def"><a name="L41"></a><tt class="py-lineno">41</tt> <a class="py-toggle" href="#" id="EncodingAnalyser.render-toggle" onclick="return toggle('EncodingAnalyser.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.encoding.EncodingAnalyser-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="EncodingAnalyser.render-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="EncodingAnalyser.render-expanded"><a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.pre_process()=timeside.analyze.core.AudioProcessor-class.html#pre_process"><a title="timeside.analyze.core.AudioProcessor.pre_process" class="py-name" href="#" onclick="return doclink('link-8', 'pre_process', 'link-8');">pre_process</a></tt><tt class="py-op">(</tt><tt class="py-name">media_item</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Module timeside.analyze.encoding=timeside.analyze.encoding-module.html,Method timeside.api.IDecoder.encoding()=timeside.api.IDecoder-class.html#encoding,Method timeside.tests.api.examples.FileDecoder.encoding()=timeside.tests.api.examples.FileDecoder-class.html#encoding,Method timeside.tests.api.gstreamer.FileDecoder.encoding()=timeside.tests.api.gstreamer.FileDecoder-class.html#encoding"><a title="timeside.analyze.encoding
+timeside.api.IDecoder.encoding
+timeside.tests.api.examples.FileDecoder.encoding
+timeside.tests.api.gstreamer.FileDecoder.encoding" class="py-name" href="#" onclick="return doclink('link-9', 'encoding', 'link-9');">encoding</a></tt> </tt>
+</div></div><a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.encoding.EncodingAnalyser-class.html b/doc/epydoc/timeside.analyze.encoding.EncodingAnalyser-class.html
new file mode 100644 (file)
index 0000000..f28abc4
--- /dev/null
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.encoding.EncodingAnalyser</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        <a href="timeside.analyze.encoding-module.html">Module&nbsp;encoding</a> ::
+        Class&nbsp;EncodingAnalyser
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.encoding.EncodingAnalyser-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class EncodingAnalyser</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.encoding-pysrc.html#EncodingAnalyser">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+        <a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a> --+
+                              |
+                             <strong class="uidshort">EncodingAnalyser</strong>
+</pre>
+
+<hr />
+<p>Media item analyzer driver interface</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.encoding-pysrc.html#EncodingAnalyser.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="unit"></a><span class="summary-sig-name">unit</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.encoding-pysrc.html#EncodingAnalyser.unit">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="render"></a><span class="summary-sig-name">render</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_item</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.encoding-pysrc.html#EncodingAnalyser.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a></code></b>:
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#__init__">__init__</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_mono_samples">get_mono_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_samples">get_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#peaks">peaks</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#pre_process">pre_process</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#read">read</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#spectral_centroid">spectral_centroid</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.encoding-pysrc.html#EncodingAnalyser.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.format-module.html b/doc/epydoc/timeside.analyze.format-module.html
new file mode 100644 (file)
index 0000000..3593afe
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.format</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;format
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.format-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module format</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.format-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.analyze.format.FormatAnalyser-class.html" class="summary-name">FormatAnalyser</a><br />
+      Media item analyzer driver interface
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.format-pysrc.html b/doc/epydoc/timeside.analyze.format-pysrc.html
new file mode 100644 (file)
index 0000000..998f3b3
--- /dev/null
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.format</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;format
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.format-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.analyze.format-module.html">Module timeside.analyze.format</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.analyze=timeside.analyze-module.html"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-1', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IAnalyzer=timeside.api.IAnalyzer-class.html"><a title="timeside.api.IAnalyzer" class="py-name" href="#" onclick="return doclink('link-5', 'IAnalyzer', 'link-5');">IAnalyzer</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="FormatAnalyser"></a><div id="FormatAnalyser-def"><a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt> <a class="py-toggle" href="#" id="FormatAnalyser-toggle" onclick="return toggle('FormatAnalyser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.analyze.format.FormatAnalyser-class.html">FormatAnalyser</a><tt class="py-op">(</tt><tt class="py-base-class">AudioProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormatAnalyser-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="FormatAnalyser-expanded"><a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">    <tt class="py-docstring">"""Media item analyzer driver interface"""</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IAnalyzer" class="py-name" href="#" onclick="return doclink('link-7', 'IAnalyzer', 'link-5');">IAnalyzer</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="FormatAnalyser.id"></a><div id="FormatAnalyser.id-def"><a name="L32"></a><tt class="py-lineno">32</tt> <a class="py-toggle" href="#" id="FormatAnalyser.id-toggle" onclick="return toggle('FormatAnalyser.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.format.FormatAnalyser-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormatAnalyser.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="FormatAnalyser.id-expanded"><a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"format"</tt> </tt>
+</div><a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="FormatAnalyser.name"></a><div id="FormatAnalyser.name-def"><a name="L35"></a><tt class="py-lineno">35</tt> <a class="py-toggle" href="#" id="FormatAnalyser.name-toggle" onclick="return toggle('FormatAnalyser.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.format.FormatAnalyser-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormatAnalyser.name-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="FormatAnalyser.name-expanded"><a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"File format"</tt> </tt>
+</div><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"> </tt>
+<a name="FormatAnalyser.unit"></a><div id="FormatAnalyser.unit-def"><a name="L38"></a><tt class="py-lineno">38</tt> <a class="py-toggle" href="#" id="FormatAnalyser.unit-toggle" onclick="return toggle('FormatAnalyser.unit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.format.FormatAnalyser-class.html#unit">unit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormatAnalyser.unit-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="FormatAnalyser.unit-expanded"><a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">""</tt> </tt>
+</div><a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"> </tt>
+<a name="FormatAnalyser.render"></a><div id="FormatAnalyser.render-def"><a name="L41"></a><tt class="py-lineno">41</tt> <a class="py-toggle" href="#" id="FormatAnalyser.render-toggle" onclick="return toggle('FormatAnalyser.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.format.FormatAnalyser-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormatAnalyser.render-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="FormatAnalyser.render-expanded"><a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.pre_process()=timeside.analyze.core.AudioProcessor-class.html#pre_process"><a title="timeside.analyze.core.AudioProcessor.pre_process" class="py-name" href="#" onclick="return doclink('link-8', 'pre_process', 'link-8');">pre_process</a></tt><tt class="py-op">(</tt><tt class="py-name">media_item</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Module timeside.analyze.format=timeside.analyze.format-module.html,Method timeside.api.IDecoder.format()=timeside.api.IDecoder-class.html#format,Static Method timeside.api.IEncoder.format()=timeside.api.IEncoder-class.html#format,Method timeside.decode.flac.FlacDecoder.format()=timeside.decode.flac.FlacDecoder-class.html#format,Method timeside.decode.mp3.Mp3Decoder.format()=timeside.decode.mp3.Mp3Decoder-class.html#format,Method timeside.decode.ogg.OggDecoder.format()=timeside.decode.ogg.OggDecoder-class.html#format,Method timeside.decode.wav.WavDecoder.format()=timeside.decode.wav.WavDecoder-class.html#format,Method timeside.encode.flac.FlacEncoder.format()=timeside.encode.flac.FlacEncoder-class.html#format,Method timeside.encode.mp3.Mp3Encoder.format()=timeside.encode.mp3.Mp3Encoder-class.html#format,Method timeside.encode.ogg.OggVorbisEncoder.format()=timeside.encode.ogg.OggVorbisEncoder-class.html#format,Method timeside.encode.wav.WavEncoder.format()=timeside.encode.wav.WavEncoder-class.html#format,Method timeside.tests.api.examples.FileDecoder.format()=timeside.tests.api.examples.FileDecoder-class.html#format,Method timeside.tests.api.gstreamer.FileDecoder.format()=timeside.tests.api.gstreamer.FileDecoder-class.html#format"><a title="timeside.analyze.format
+timeside.api.IDecoder.format
+timeside.api.IEncoder.format
+timeside.decode.flac.FlacDecoder.format
+timeside.decode.mp3.Mp3Decoder.format
+timeside.decode.ogg.OggDecoder.format
+timeside.decode.wav.WavDecoder.format
+timeside.encode.flac.FlacEncoder.format
+timeside.encode.mp3.Mp3Encoder.format
+timeside.encode.ogg.OggVorbisEncoder.format
+timeside.encode.wav.WavEncoder.format
+timeside.tests.api.examples.FileDecoder.format
+timeside.tests.api.gstreamer.FileDecoder.format" class="py-name" href="#" onclick="return doclink('link-9', 'format', 'link-9');">format</a></tt> </tt>
+</div></div><a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.format.FormatAnalyser-class.html b/doc/epydoc/timeside.analyze.format.FormatAnalyser-class.html
new file mode 100644 (file)
index 0000000..c7c8542
--- /dev/null
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.format.FormatAnalyser</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        <a href="timeside.analyze.format-module.html">Module&nbsp;format</a> ::
+        Class&nbsp;FormatAnalyser
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.format.FormatAnalyser-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class FormatAnalyser</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.format-pysrc.html#FormatAnalyser">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+        <a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a> --+
+                              |
+                             <strong class="uidshort">FormatAnalyser</strong>
+</pre>
+
+<hr />
+<p>Media item analyzer driver interface</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.format-pysrc.html#FormatAnalyser.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="unit"></a><span class="summary-sig-name">unit</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.format-pysrc.html#FormatAnalyser.unit">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="render"></a><span class="summary-sig-name">render</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_item</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.format-pysrc.html#FormatAnalyser.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a></code></b>:
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#__init__">__init__</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_mono_samples">get_mono_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_samples">get_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#peaks">peaks</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#pre_process">pre_process</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#read">read</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#spectral_centroid">spectral_centroid</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.format-pysrc.html#FormatAnalyser.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.max_level-module.html b/doc/epydoc/timeside.analyze.max_level-module.html
new file mode 100644 (file)
index 0000000..7a8ee9d
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.max_level</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;max_level
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.max_level-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module max_level</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.max_level-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html" class="summary-name">MaxLevelAnalyzer</a><br />
+      Media item analyzer driver interface
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.max_level-pysrc.html b/doc/epydoc/timeside.analyze.max_level-pysrc.html
new file mode 100644 (file)
index 0000000..7343c28
--- /dev/null
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.max_level</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;max_level
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.max_level-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.analyze.max_level-module.html">Module timeside.analyze.max_level</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.analyze=timeside.analyze-module.html"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-1', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IValueAnalyzer=timeside.api.IValueAnalyzer-class.html"><a title="timeside.api.IValueAnalyzer" class="py-name" href="#" onclick="return doclink('link-5', 'IValueAnalyzer', 'link-5');">IValueAnalyzer</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="MaxLevelAnalyzer"></a><div id="MaxLevelAnalyzer-def"><a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt> <a class="py-toggle" href="#" id="MaxLevelAnalyzer-toggle" onclick="return toggle('MaxLevelAnalyzer');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html">MaxLevelAnalyzer</a><tt class="py-op">(</tt><tt class="py-base-class">AudioProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MaxLevelAnalyzer-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="MaxLevelAnalyzer-expanded"><a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">    <tt class="py-docstring">"""Media item analyzer driver interface"""</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IValueAnalyzer" class="py-name" href="#" onclick="return doclink('link-7', 'IValueAnalyzer', 'link-5');">IValueAnalyzer</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="MaxLevelAnalyzer.id"></a><div id="MaxLevelAnalyzer.id-def"><a name="L32"></a><tt class="py-lineno">32</tt> <a class="py-toggle" href="#" id="MaxLevelAnalyzer.id-toggle" onclick="return toggle('MaxLevelAnalyzer.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MaxLevelAnalyzer.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="MaxLevelAnalyzer.id-expanded"><a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"max_level"</tt> </tt>
+</div><a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="MaxLevelAnalyzer.name"></a><div id="MaxLevelAnalyzer.name-def"><a name="L36"></a><tt class="py-lineno">36</tt> <a class="py-toggle" href="#" id="MaxLevelAnalyzer.name-toggle" onclick="return toggle('MaxLevelAnalyzer.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MaxLevelAnalyzer.name-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="MaxLevelAnalyzer.name-expanded"><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Maximum peak level"</tt> </tt>
+</div><a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"> </tt>
+<a name="MaxLevelAnalyzer.unit"></a><div id="MaxLevelAnalyzer.unit-def"><a name="L39"></a><tt class="py-lineno">39</tt> <a class="py-toggle" href="#" id="MaxLevelAnalyzer.unit-toggle" onclick="return toggle('MaxLevelAnalyzer.unit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html#unit">unit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MaxLevelAnalyzer.unit-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="MaxLevelAnalyzer.unit-expanded"><a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"dB"</tt> </tt>
+</div><a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line"> </tt>
+<a name="MaxLevelAnalyzer.render"></a><div id="MaxLevelAnalyzer.render-def"><a name="L42"></a><tt class="py-lineno">42</tt> <a class="py-toggle" href="#" id="MaxLevelAnalyzer.render-toggle" onclick="return toggle('MaxLevelAnalyzer.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MaxLevelAnalyzer.render-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="MaxLevelAnalyzer.render-expanded"><a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.pre_process()=timeside.analyze.core.AudioProcessor-class.html#pre_process"><a title="timeside.analyze.core.AudioProcessor.pre_process" class="py-name" href="#" onclick="return doclink('link-8', 'pre_process', 'link-8');">pre_process</a></tt><tt class="py-op">(</tt><tt class="py-name">media_item</tt><tt class="py-op">)</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.get_samples()=timeside.analyze.core.AudioProcessor-class.html#get_samples"><a title="timeside.analyze.core.AudioProcessor.get_samples" class="py-name" href="#" onclick="return doclink('link-9', 'get_samples', 'link-9');">get_samples</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">round</tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">*</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">log10</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">samples</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.max_level.MaxLevelAnalyzer-class.html b/doc/epydoc/timeside.analyze.max_level.MaxLevelAnalyzer-class.html
new file mode 100644 (file)
index 0000000..6592c8e
--- /dev/null
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.max_level.MaxLevelAnalyzer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        <a href="timeside.analyze.max_level-module.html">Module&nbsp;max_level</a> ::
+        Class&nbsp;MaxLevelAnalyzer
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class MaxLevelAnalyzer</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.max_level-pysrc.html#MaxLevelAnalyzer">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+        <a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a> --+
+                              |
+                             <strong class="uidshort">MaxLevelAnalyzer</strong>
+</pre>
+
+<hr />
+<p>Media item analyzer driver interface</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="unit"></a><span class="summary-sig-name">unit</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.max_level-pysrc.html#MaxLevelAnalyzer.unit">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="render"></a><span class="summary-sig-name">render</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_item</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.max_level-pysrc.html#MaxLevelAnalyzer.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a></code></b>:
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#__init__">__init__</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_mono_samples">get_mono_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_samples">get_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#peaks">peaks</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#pre_process">pre_process</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#read">read</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#spectral_centroid">spectral_centroid</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.max_level-pysrc.html#MaxLevelAnalyzer.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.max_level-pysrc.html#MaxLevelAnalyzer.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.mean_level-module.html b/doc/epydoc/timeside.analyze.mean_level-module.html
new file mode 100644 (file)
index 0000000..6ddc5b8
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.mean_level</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;mean_level
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.mean_level-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module mean_level</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.mean_level-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html" class="summary-name">MeanLevelAnalyser</a><br />
+      Media item analyzer driver interface
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.mean_level-pysrc.html b/doc/epydoc/timeside.analyze.mean_level-pysrc.html
new file mode 100644 (file)
index 0000000..ff15aa7
--- /dev/null
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.mean_level</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;mean_level
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.mean_level-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.analyze.mean_level-module.html">Module timeside.analyze.mean_level</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.analyze=timeside.analyze-module.html"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-1', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IValueAnalyzer=timeside.api.IValueAnalyzer-class.html"><a title="timeside.api.IValueAnalyzer" class="py-name" href="#" onclick="return doclink('link-5', 'IValueAnalyzer', 'link-5');">IValueAnalyzer</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="MeanLevelAnalyser"></a><div id="MeanLevelAnalyser-def"><a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt> <a class="py-toggle" href="#" id="MeanLevelAnalyser-toggle" onclick="return toggle('MeanLevelAnalyser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html">MeanLevelAnalyser</a><tt class="py-op">(</tt><tt class="py-base-class">AudioProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MeanLevelAnalyser-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="MeanLevelAnalyser-expanded"><a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">    <tt class="py-docstring">"""Media item analyzer driver interface"""</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IValueAnalyzer" class="py-name" href="#" onclick="return doclink('link-7', 'IValueAnalyzer', 'link-5');">IValueAnalyzer</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="MeanLevelAnalyser.id"></a><div id="MeanLevelAnalyser.id-def"><a name="L32"></a><tt class="py-lineno">32</tt> <a class="py-toggle" href="#" id="MeanLevelAnalyser.id-toggle" onclick="return toggle('MeanLevelAnalyser.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MeanLevelAnalyser.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="MeanLevelAnalyser.id-expanded"><a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"meanlevel"</tt> </tt>
+</div><a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="MeanLevelAnalyser.name"></a><div id="MeanLevelAnalyser.name-def"><a name="L35"></a><tt class="py-lineno">35</tt> <a class="py-toggle" href="#" id="MeanLevelAnalyser.name-toggle" onclick="return toggle('MeanLevelAnalyser.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MeanLevelAnalyser.name-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="MeanLevelAnalyser.name-expanded"><a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Mean RMS level"</tt> </tt>
+</div><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"> </tt>
+<a name="MeanLevelAnalyser.unit"></a><div id="MeanLevelAnalyser.unit-def"><a name="L38"></a><tt class="py-lineno">38</tt> <a class="py-toggle" href="#" id="MeanLevelAnalyser.unit-toggle" onclick="return toggle('MeanLevelAnalyser.unit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html#unit">unit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MeanLevelAnalyser.unit-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="MeanLevelAnalyser.unit-expanded"><a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"dB"</tt> </tt>
+</div><a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"> </tt>
+<a name="MeanLevelAnalyser.render"></a><div id="MeanLevelAnalyser.render-def"><a name="L41"></a><tt class="py-lineno">41</tt> <a class="py-toggle" href="#" id="MeanLevelAnalyser.render-toggle" onclick="return toggle('MeanLevelAnalyser.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MeanLevelAnalyser.render-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="MeanLevelAnalyser.render-expanded"><a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.pre_process()=timeside.analyze.core.AudioProcessor-class.html#pre_process"><a title="timeside.analyze.core.AudioProcessor.pre_process" class="py-name" href="#" onclick="return doclink('link-8', 'pre_process', 'link-8');">pre_process</a></tt><tt class="py-op">(</tt><tt class="py-name">media_item</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.get_mono_samples()=timeside.analyze.core.AudioProcessor-class.html#get_mono_samples"><a title="timeside.analyze.core.AudioProcessor.get_mono_samples" class="py-name" href="#" onclick="return doclink('link-9', 'get_mono_samples', 'link-9');">get_mono_samples</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">round</tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">*</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">log10</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">mean</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">sqrt</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">square</tt><tt class="py-op">(</tt><tt class="py-name">samples</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:42 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.mean_level.MeanLevelAnalyser-class.html b/doc/epydoc/timeside.analyze.mean_level.MeanLevelAnalyser-class.html
new file mode 100644 (file)
index 0000000..1965326
--- /dev/null
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.mean_level.MeanLevelAnalyser</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        <a href="timeside.analyze.mean_level-module.html">Module&nbsp;mean_level</a> ::
+        Class&nbsp;MeanLevelAnalyser
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class MeanLevelAnalyser</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.mean_level-pysrc.html#MeanLevelAnalyser">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+        <a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a> --+
+                              |
+                             <strong class="uidshort">MeanLevelAnalyser</strong>
+</pre>
+
+<hr />
+<p>Media item analyzer driver interface</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.mean_level-pysrc.html#MeanLevelAnalyser.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="unit"></a><span class="summary-sig-name">unit</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.mean_level-pysrc.html#MeanLevelAnalyser.unit">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="render"></a><span class="summary-sig-name">render</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_item</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.mean_level-pysrc.html#MeanLevelAnalyser.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a></code></b>:
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#__init__">__init__</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_mono_samples">get_mono_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_samples">get_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#peaks">peaks</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#pre_process">pre_process</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#read">read</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#spectral_centroid">spectral_centroid</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.mean_level-pysrc.html#MeanLevelAnalyser.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.resolution-module.html b/doc/epydoc/timeside.analyze.resolution-module.html
new file mode 100644 (file)
index 0000000..7c3c2da
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.resolution</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;resolution
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.resolution-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module resolution</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.resolution-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.analyze.resolution.ResolutionAnalyser-class.html" class="summary-name">ResolutionAnalyser</a><br />
+      Media item analyzer driver interface
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.resolution-pysrc.html b/doc/epydoc/timeside.analyze.resolution-pysrc.html
new file mode 100644 (file)
index 0000000..1519167
--- /dev/null
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.resolution</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;resolution
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.resolution-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.analyze.resolution-module.html">Module timeside.analyze.resolution</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.analyze=timeside.analyze-module.html"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-1', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IAnalyzer=timeside.api.IAnalyzer-class.html"><a title="timeside.api.IAnalyzer" class="py-name" href="#" onclick="return doclink('link-5', 'IAnalyzer', 'link-5');">IAnalyzer</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="ResolutionAnalyser"></a><div id="ResolutionAnalyser-def"><a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt> <a class="py-toggle" href="#" id="ResolutionAnalyser-toggle" onclick="return toggle('ResolutionAnalyser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.analyze.resolution.ResolutionAnalyser-class.html">ResolutionAnalyser</a><tt class="py-op">(</tt><tt class="py-base-class">AudioProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ResolutionAnalyser-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="ResolutionAnalyser-expanded"><a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">    <tt class="py-docstring">"""Media item analyzer driver interface"""</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IAnalyzer" class="py-name" href="#" onclick="return doclink('link-7', 'IAnalyzer', 'link-5');">IAnalyzer</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="ResolutionAnalyser.id"></a><div id="ResolutionAnalyser.id-def"><a name="L32"></a><tt class="py-lineno">32</tt> <a class="py-toggle" href="#" id="ResolutionAnalyser.id-toggle" onclick="return toggle('ResolutionAnalyser.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.resolution.ResolutionAnalyser-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ResolutionAnalyser.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ResolutionAnalyser.id-expanded"><a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"resolution"</tt> </tt>
+</div><a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="ResolutionAnalyser.name"></a><div id="ResolutionAnalyser.name-def"><a name="L35"></a><tt class="py-lineno">35</tt> <a class="py-toggle" href="#" id="ResolutionAnalyser.name-toggle" onclick="return toggle('ResolutionAnalyser.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.resolution.ResolutionAnalyser-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ResolutionAnalyser.name-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ResolutionAnalyser.name-expanded"><a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Resolution"</tt> </tt>
+</div><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"> </tt>
+<a name="ResolutionAnalyser.unit"></a><div id="ResolutionAnalyser.unit-def"><a name="L38"></a><tt class="py-lineno">38</tt> <a class="py-toggle" href="#" id="ResolutionAnalyser.unit-toggle" onclick="return toggle('ResolutionAnalyser.unit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.resolution.ResolutionAnalyser-class.html#unit">unit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ResolutionAnalyser.unit-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ResolutionAnalyser.unit-expanded"><a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"bits"</tt> </tt>
+</div><a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"> </tt>
+<a name="ResolutionAnalyser.render"></a><div id="ResolutionAnalyser.render-def"><a name="L41"></a><tt class="py-lineno">41</tt> <a class="py-toggle" href="#" id="ResolutionAnalyser.render-toggle" onclick="return toggle('ResolutionAnalyser.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.resolution.ResolutionAnalyser-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ResolutionAnalyser.render-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ResolutionAnalyser.render-expanded"><a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.pre_process()=timeside.analyze.core.AudioProcessor-class.html#pre_process"><a title="timeside.analyze.core.AudioProcessor.pre_process" class="py-name" href="#" onclick="return doclink('link-8', 'pre_process', 'link-8');">pre_process</a></tt><tt class="py-op">(</tt><tt class="py-name">media_item</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'8'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Module timeside.analyze.encoding=timeside.analyze.encoding-module.html,Method timeside.api.IDecoder.encoding()=timeside.api.IDecoder-class.html#encoding,Method timeside.tests.api.examples.FileDecoder.encoding()=timeside.tests.api.examples.FileDecoder-class.html#encoding,Method timeside.tests.api.gstreamer.FileDecoder.encoding()=timeside.tests.api.gstreamer.FileDecoder-class.html#encoding"><a title="timeside.analyze.encoding
+timeside.api.IDecoder.encoding
+timeside.tests.api.examples.FileDecoder.encoding
+timeside.tests.api.gstreamer.FileDecoder.encoding" class="py-name" href="#" onclick="return doclink('link-9', 'encoding', 'link-9');">encoding</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-number">8</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'16'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="timeside.analyze.encoding
+timeside.api.IDecoder.encoding
+timeside.tests.api.examples.FileDecoder.encoding
+timeside.tests.api.gstreamer.FileDecoder.encoding" class="py-name" href="#" onclick="return doclink('link-10', 'encoding', 'link-9');">encoding</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-number">16</tt> </tt>
+<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'24'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="timeside.analyze.encoding
+timeside.api.IDecoder.encoding
+timeside.tests.api.examples.FileDecoder.encoding
+timeside.tests.api.gstreamer.FileDecoder.encoding" class="py-name" href="#" onclick="return doclink('link-11', 'encoding', 'link-9');">encoding</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-number">24</tt> </tt>
+<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'32'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="timeside.analyze.encoding
+timeside.api.IDecoder.encoding
+timeside.tests.api.examples.FileDecoder.encoding
+timeside.tests.api.gstreamer.FileDecoder.encoding" class="py-name" href="#" onclick="return doclink('link-12', 'encoding', 'link-9');">encoding</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-number">32</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
+</div></div><a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.resolution.ResolutionAnalyser-class.html b/doc/epydoc/timeside.analyze.resolution.ResolutionAnalyser-class.html
new file mode 100644 (file)
index 0000000..8061845
--- /dev/null
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.resolution.ResolutionAnalyser</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        <a href="timeside.analyze.resolution-module.html">Module&nbsp;resolution</a> ::
+        Class&nbsp;ResolutionAnalyser
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.resolution.ResolutionAnalyser-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ResolutionAnalyser</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.resolution-pysrc.html#ResolutionAnalyser">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+        <a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a> --+
+                              |
+                             <strong class="uidshort">ResolutionAnalyser</strong>
+</pre>
+
+<hr />
+<p>Media item analyzer driver interface</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.resolution-pysrc.html#ResolutionAnalyser.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="unit"></a><span class="summary-sig-name">unit</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.resolution-pysrc.html#ResolutionAnalyser.unit">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="render"></a><span class="summary-sig-name">render</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_item</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.resolution-pysrc.html#ResolutionAnalyser.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a></code></b>:
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#__init__">__init__</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_mono_samples">get_mono_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_samples">get_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#peaks">peaks</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#pre_process">pre_process</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#read">read</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#spectral_centroid">spectral_centroid</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.resolution-pysrc.html#ResolutionAnalyser.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.samplerate-module.html b/doc/epydoc/timeside.analyze.samplerate-module.html
new file mode 100644 (file)
index 0000000..c9905bf
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.samplerate</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;samplerate
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.samplerate-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module samplerate</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.samplerate-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html" class="summary-name">SampleRateAnalyzer</a><br />
+      Media item analyzer driver interface
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.samplerate-pysrc.html b/doc/epydoc/timeside.analyze.samplerate-pysrc.html
new file mode 100644 (file)
index 0000000..7baa3ff
--- /dev/null
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.samplerate</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Module&nbsp;samplerate
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.samplerate-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.analyze.samplerate-module.html">Module timeside.analyze.samplerate</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.analyze=timeside.analyze-module.html"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-1', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IAnalyzer=timeside.api.IAnalyzer-class.html"><a title="timeside.api.IAnalyzer" class="py-name" href="#" onclick="return doclink('link-5', 'IAnalyzer', 'link-5');">IAnalyzer</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="SampleRateAnalyzer"></a><div id="SampleRateAnalyzer-def"><a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt> <a class="py-toggle" href="#" id="SampleRateAnalyzer-toggle" onclick="return toggle('SampleRateAnalyzer');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html">SampleRateAnalyzer</a><tt class="py-op">(</tt><tt class="py-base-class">AudioProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SampleRateAnalyzer-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="SampleRateAnalyzer-expanded"><a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">    <tt class="py-docstring">"""Media item analyzer driver interface"""</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IAnalyzer" class="py-name" href="#" onclick="return doclink('link-7', 'IAnalyzer', 'link-5');">IAnalyzer</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="SampleRateAnalyzer.id"></a><div id="SampleRateAnalyzer.id-def"><a name="L32"></a><tt class="py-lineno">32</tt> <a class="py-toggle" href="#" id="SampleRateAnalyzer.id-toggle" onclick="return toggle('SampleRateAnalyzer.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SampleRateAnalyzer.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SampleRateAnalyzer.id-expanded"><a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"samplerate"</tt> </tt>
+</div><a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="SampleRateAnalyzer.name"></a><div id="SampleRateAnalyzer.name-def"><a name="L35"></a><tt class="py-lineno">35</tt> <a class="py-toggle" href="#" id="SampleRateAnalyzer.name-toggle" onclick="return toggle('SampleRateAnalyzer.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SampleRateAnalyzer.name-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SampleRateAnalyzer.name-expanded"><a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Samplerate"</tt> </tt>
+</div><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"> </tt>
+<a name="SampleRateAnalyzer.unit"></a><div id="SampleRateAnalyzer.unit-def"><a name="L38"></a><tt class="py-lineno">38</tt> <a class="py-toggle" href="#" id="SampleRateAnalyzer.unit-toggle" onclick="return toggle('SampleRateAnalyzer.unit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html#unit">unit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SampleRateAnalyzer.unit-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SampleRateAnalyzer.unit-expanded"><a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Hz"</tt> </tt>
+</div><a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"> </tt>
+<a name="SampleRateAnalyzer.render"></a><div id="SampleRateAnalyzer.render-def"><a name="L41"></a><tt class="py-lineno">41</tt> <a class="py-toggle" href="#" id="SampleRateAnalyzer.render-toggle" onclick="return toggle('SampleRateAnalyzer.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SampleRateAnalyzer.render-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SampleRateAnalyzer.render-expanded"><a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.pre_process()=timeside.analyze.core.AudioProcessor-class.html#pre_process"><a title="timeside.analyze.core.AudioProcessor.pre_process" class="py-name" href="#" onclick="return doclink('link-8', 'pre_process', 'link-8');">pre_process</a></tt><tt class="py-op">(</tt><tt class="py-name">media_item</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Module timeside.analyze.samplerate=timeside.analyze.samplerate-module.html,Method timeside.api.IProcessor.samplerate()=timeside.api.IProcessor-class.html#samplerate,Method timeside.core.Processor.samplerate()=timeside.core.Processor-class.html#samplerate,Method timeside.tests.api.examples.FileDecoder.samplerate()=timeside.tests.api.examples.FileDecoder-class.html#samplerate,Method timeside.tests.api.gstreamer.FileDecoder.samplerate()=timeside.tests.api.gstreamer.FileDecoder-class.html#samplerate,Variable timeside.tests.api.test_lolevel.samplerate=timeside.tests.api.test_lolevel-module.html#samplerate"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-9', 'samplerate', 'link-9');">samplerate</a></tt> </tt>
+</div></div><a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.samplerate.SampleRateAnalyzer-class.html b/doc/epydoc/timeside.analyze.samplerate.SampleRateAnalyzer-class.html
new file mode 100644 (file)
index 0000000..3137531
--- /dev/null
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.samplerate.SampleRateAnalyzer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        <a href="timeside.analyze.samplerate-module.html">Module&nbsp;samplerate</a> ::
+        Class&nbsp;SampleRateAnalyzer
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SampleRateAnalyzer</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.samplerate-pysrc.html#SampleRateAnalyzer">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+        <a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a> --+
+                              |
+                             <strong class="uidshort">SampleRateAnalyzer</strong>
+</pre>
+
+<hr />
+<p>Media item analyzer driver interface</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.samplerate-pysrc.html#SampleRateAnalyzer.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="unit"></a><span class="summary-sig-name">unit</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.samplerate-pysrc.html#SampleRateAnalyzer.unit">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="render"></a><span class="summary-sig-name">render</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_item</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.samplerate-pysrc.html#SampleRateAnalyzer.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.analyze.core.AudioProcessor-class.html">core.AudioProcessor</a></code></b>:
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#__init__">__init__</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_mono_samples">get_mono_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#get_samples">get_samples</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#peaks">peaks</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#pre_process">pre_process</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#read">read</a></code>,
+      <code><a href="timeside.analyze.core.AudioProcessor-class.html#spectral_centroid">spectral_centroid</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.samplerate-pysrc.html#SampleRateAnalyzer.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.vamp-module.html b/doc/epydoc/timeside.analyze.vamp-module.html
new file mode 100644 (file)
index 0000000..6564692
--- /dev/null
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.vamp</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Package&nbsp;vamp
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.vamp-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PACKAGE DESCRIPTION ==================== -->
+<h1 class="epydoc">Package vamp</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.vamp-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== SUBMODULES ==================== -->
+<a name="section-Submodules"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Submodules</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Submodules"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr><td class="summary">
+  <ul class="nomargin">
+    <li> <strong class="uidlink"><a href="timeside.analyze.vamp.core-module.html">timeside.analyze.vamp.core</a></strong>    </li>
+  </ul></td></tr>
+</table>
+
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.vamp-pysrc.html b/doc/epydoc/timeside.analyze.vamp-pysrc.html
new file mode 100644 (file)
index 0000000..e09308e
--- /dev/null
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.vamp</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        Package&nbsp;vamp
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.vamp-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.analyze.vamp-module.html">Package timeside.analyze.vamp</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">2</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L3"></a><tt class="py-lineno">3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.analyze=timeside.analyze-module.html"><a title="timeside.analyze" class="py-name" href="#" onclick="return doclink('link-1', 'analyze', 'link-1');">analyze</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Package timeside.analyze.vamp=timeside.analyze.vamp-module.html"><a title="timeside.analyze.vamp" class="py-name" href="#" onclick="return doclink('link-2', 'vamp', 'link-2');">vamp</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-3', 'core', 'link-3');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">4</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:42 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.vamp.core-module.html b/doc/epydoc/timeside.analyze.vamp.core-module.html
new file mode 100644 (file)
index 0000000..5bb292f
--- /dev/null
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.vamp.core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        <a href="timeside.analyze.vamp-module.html">Package&nbsp;vamp</a> ::
+        Module&nbsp;core
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.vamp.core-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module core</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.vamp.core-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html" class="summary-name">VampCoreAnalyzer</a><br />
+      Parent class for Vamp plugin drivers
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.vamp.core-pysrc.html b/doc/epydoc/timeside.analyze.vamp.core-pysrc.html
new file mode 100644 (file)
index 0000000..a441bd8
--- /dev/null
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.vamp.core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        <a href="timeside.analyze.vamp-module.html">Package&nbsp;vamp</a> ::
+        Module&nbsp;core
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.vamp.core-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.analyze.vamp.core-module.html">Module timeside.analyze.vamp.core</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-1', 'core', 'link-1');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">tempfile</tt> <tt class="py-keyword">import</tt> <tt class="py-name">NamedTemporaryFile</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-2', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module timeside.exceptions=timeside.exceptions-module.html"><a title="timeside.exceptions" class="py-name" href="#" onclick="return doclink('link-3', 'exceptions', 'link-3');">exceptions</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class timeside.exceptions.SubProcessError=timeside.exceptions.SubProcessError-class.html"><a title="timeside.exceptions.SubProcessError" class="py-name" href="#" onclick="return doclink('link-4', 'SubProcessError', 'link-4');">SubProcessError</a></tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">random</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">subprocess</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">signal</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">time</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"> </tt>
+<a name="VampCoreAnalyzer"></a><div id="VampCoreAnalyzer-def"><a name="L31"></a><tt class="py-lineno"> 31</tt> <a class="py-toggle" href="#" id="VampCoreAnalyzer-toggle" onclick="return toggle('VampCoreAnalyzer');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html">VampCoreAnalyzer</a><tt class="py-op">:</tt> </tt>
+</div><div id="VampCoreAnalyzer-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="VampCoreAnalyzer-expanded"><a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">    <tt class="py-docstring">"""Parent class for Vamp plugin drivers"""</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"> </tt>
+<a name="VampCoreAnalyzer.__init__"></a><div id="VampCoreAnalyzer.__init__-def"><a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="VampCoreAnalyzer.__init__-toggle" onclick="return toggle('VampCoreAnalyzer.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="VampCoreAnalyzer.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="VampCoreAnalyzer.__init__-expanded"><a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vamp_path</tt> <tt class="py-op">=</tt> <tt class="py-string">'/usr/lib/vamp/'</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt class="py-comment"># needs vamp-examples package</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host</tt> <tt class="py-op">=</tt> <tt class="py-string">'vamp-simple-host'</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt> <tt class="py-op">=</tt> <tt class="py-number">0xFFFF</tt> </tt>
+</div><a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">                </tt>
+<a name="VampCoreAnalyzer.id"></a><div id="VampCoreAnalyzer.id-def"><a name="L40"></a><tt class="py-lineno"> 40</tt> <a class="py-toggle" href="#" id="VampCoreAnalyzer.id-toggle" onclick="return toggle('VampCoreAnalyzer.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="VampCoreAnalyzer.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="VampCoreAnalyzer.id-expanded"><a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"vamp_plugins"</tt> </tt>
+</div><a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"> </tt>
+<a name="VampCoreAnalyzer.name"></a><div id="VampCoreAnalyzer.name-def"><a name="L43"></a><tt class="py-lineno"> 43</tt> <a class="py-toggle" href="#" id="VampCoreAnalyzer.name-toggle" onclick="return toggle('VampCoreAnalyzer.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="VampCoreAnalyzer.name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="VampCoreAnalyzer.name-expanded"><a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Vamp plugins"</tt> </tt>
+</div><a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"> </tt>
+<a name="VampCoreAnalyzer.unit"></a><div id="VampCoreAnalyzer.unit-def"><a name="L46"></a><tt class="py-lineno"> 46</tt> <a class="py-toggle" href="#" id="VampCoreAnalyzer.unit-toggle" onclick="return toggle('VampCoreAnalyzer.unit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#unit">unit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="VampCoreAnalyzer.unit-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="VampCoreAnalyzer.unit-expanded"><a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">""</tt> </tt>
+</div><a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"> </tt>
+<a name="VampCoreAnalyzer.get_plugins_list"></a><div id="VampCoreAnalyzer.get_plugins_list-def"><a name="L49"></a><tt class="py-lineno"> 49</tt> <a class="py-toggle" href="#" id="VampCoreAnalyzer.get_plugins_list-toggle" onclick="return toggle('VampCoreAnalyzer.get_plugins_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#get_plugins_list">get_plugins_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="VampCoreAnalyzer.get_plugins_list-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="VampCoreAnalyzer.get_plugins_list-expanded"><a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">exists</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vamp_path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">            <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-string">' --list-outputs'</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">            <tt class="py-name">command</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host</tt> <tt class="py-op">+</tt> <tt class="py-name">args</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">            <tt class="py-comment">#tmp_file = NamedTemporaryFile()</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method timeside.analyze.vamp.core.VampCoreAnalyzer.core_process()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#core_process,Method timeside.encode.core.EncoderCore.core_process()=timeside.encode.core.EncoderCore-class.html#core_process"><a title="timeside.analyze.vamp.core.VampCoreAnalyzer.core_process
+timeside.encode.core.EncoderCore.core_process" class="py-name" href="#" onclick="return doclink('link-5', 'core_process', 'link-5');">core_process</a></tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">            <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">            <tt class="py-name">plugins</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">                <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-name">text</tt> <tt class="py-op">+</tt> <tt class="py-name">chunk</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">            <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-name">text</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">lines</tt><tt class="py-op">:</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">line</tt> <tt class="py-op">!=</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">                    <tt class="py-name">struct</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">)</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">                    <tt class="py-name">struct</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">                    <tt class="py-name">plugins</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">plugins</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"> </tt>
+<a name="VampCoreAnalyzer.get_wav_path"></a><div id="VampCoreAnalyzer.get_wav_path-def"><a name="L69"></a><tt class="py-lineno"> 69</tt> <a class="py-toggle" href="#" id="VampCoreAnalyzer.get_wav_path-toggle" onclick="return toggle('VampCoreAnalyzer.get_wav_path');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#get_wav_path">get_wav_path</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="VampCoreAnalyzer.get_wav_path-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="VampCoreAnalyzer.get_wav_path-expanded"><a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">settings</tt><tt class="py-op">.</tt><tt class="py-name">MEDIA_ROOT</tt> <tt class="py-op">+</tt> <tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt class="py-name">media_item</tt><tt class="py-op">.</tt><tt class="py-name">file</tt> </tt>
+</div><a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-comment">#return media_item</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"><tt class="py-comment"></tt>         </tt>
+<a name="VampCoreAnalyzer.render"></a><div id="VampCoreAnalyzer.render-def"><a name="L73"></a><tt class="py-lineno"> 73</tt> <a class="py-toggle" href="#" id="VampCoreAnalyzer.render-toggle" onclick="return toggle('VampCoreAnalyzer.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">plugin</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="VampCoreAnalyzer.render-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="VampCoreAnalyzer.render-expanded"><a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">wavFile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method timeside.analyze.vamp.core.VampCoreAnalyzer.get_wav_path()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#get_wav_path"><a title="timeside.analyze.vamp.core.VampCoreAnalyzer.get_wav_path" class="py-name" href="#" onclick="return doclink('link-6', 'get_wav_path', 'link-6');">get_wav_path</a></tt><tt class="py-op">(</tt><tt class="py-name">media_item</tt><tt class="py-op">)</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-string">' -s '</tt> <tt class="py-op">+</tt> <tt class="py-string">':'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">plugin</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">wavFile</tt><tt class="py-op">)</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">        <tt class="py-name">command</tt> <tt class="py-op">=</tt> <tt class="py-name">command</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host</tt> <tt class="py-op">+</tt> <tt class="py-name">args</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">        <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="timeside.analyze.vamp.core.VampCoreAnalyzer.core_process
+timeside.encode.core.EncoderCore.core_process" class="py-name" href="#" onclick="return doclink('link-7', 'core_process', 'link-5');">core_process</a></tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">        <tt class="py-name">string</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">            <tt class="py-name">string</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt> <tt class="py-op">+</tt> <tt class="py-name">chunk</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">lines</tt><tt class="py-op">:</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">line</tt> <tt class="py-op">!=</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">                <tt class="py-name">struct</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">)</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">                <tt class="py-name">values</tt><tt class="py-op">[</tt><tt class="py-name">struct</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">values</tt> </tt>
+</div><a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"> </tt>
+<a name="VampCoreAnalyzer.core_process"></a><div id="VampCoreAnalyzer.core_process-def"><a name="L89"></a><tt class="py-lineno"> 89</tt> <a class="py-toggle" href="#" id="VampCoreAnalyzer.core_process-toggle" onclick="return toggle('VampCoreAnalyzer.core_process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#core_process">core_process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">command</tt><tt class="py-op">,</tt> <tt class="py-param">buffer_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="VampCoreAnalyzer.core_process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="VampCoreAnalyzer.core_process-expanded"><a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-docstring">"""Encode and stream audio data through a generator"""</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">         </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-name">__chunk</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">            <tt class="py-name">proc</tt> <tt class="py-op">=</tt> <tt class="py-name">subprocess</tt><tt class="py-op">.</tt><tt class="py-name">Popen</tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">,</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">                    <tt class="py-name">shell</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">                    <tt class="py-name">bufsize</tt> <tt class="py-op">=</tt> <tt class="py-name">buffer_size</tt><tt class="py-op">,</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">                    <tt class="py-name">stdin</tt> <tt class="py-op">=</tt> <tt class="py-name">subprocess</tt><tt class="py-op">.</tt><tt class="py-name">PIPE</tt><tt class="py-op">,</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">                    <tt class="py-name">stdout</tt> <tt class="py-op">=</tt> <tt class="py-name">subprocess</tt><tt class="py-op">.</tt><tt class="py-name">PIPE</tt><tt class="py-op">,</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">                    <tt class="py-name">close_fds</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt id="link-8" class="py-name"><a title="timeside.exceptions.SubProcessError" class="py-name" href="#" onclick="return doclink('link-8', 'SubProcessError', 'link-4');">SubProcessError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Command failure:'</tt><tt class="py-op">,</tt> <tt class="py-name">command</tt><tt class="py-op">,</tt> <tt class="py-name">proc</tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">             </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-comment"># Core processing</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">            <tt class="py-name">__chunk</tt> <tt class="py-op">=</tt> <tt class="py-name">proc</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.read()=timeside.analyze.core.AudioProcessor-class.html#read"><a title="timeside.analyze.core.AudioProcessor.read" class="py-name" href="#" onclick="return doclink('link-9', 'read', 'link-9');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">buffer_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">            <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt class="py-name">proc</tt><tt class="py-op">.</tt><tt class="py-name">poll</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">status</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">status</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt id="link-10" class="py-name"><a title="timeside.exceptions.SubProcessError" class="py-name" href="#" onclick="return doclink('link-10', 'SubProcessError', 'link-4');">SubProcessError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Command failure:'</tt><tt class="py-op">,</tt> <tt class="py-name">command</tt><tt class="py-op">,</tt> <tt class="py-name">proc</tt><tt class="py-op">)</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">__chunk</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">__chunk</tt> </tt>
+</div></div><a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.analyze.vamp.core.VampCoreAnalyzer-class.html b/doc/epydoc/timeside.analyze.vamp.core.VampCoreAnalyzer-class.html
new file mode 100644 (file)
index 0000000..74d9c99
--- /dev/null
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.analyze.vamp.core.VampCoreAnalyzer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.analyze-module.html">Package&nbsp;analyze</a> ::
+        <a href="timeside.analyze.vamp-module.html">Package&nbsp;vamp</a> ::
+        <a href="timeside.analyze.vamp.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;VampCoreAnalyzer
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class VampCoreAnalyzer</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.analyze.vamp.core-pysrc.html#VampCoreAnalyzer">source&nbsp;code</a></span></p>
+<p>Parent class for Vamp plugin drivers</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__init__"></a><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.vamp.core-pysrc.html#VampCoreAnalyzer.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.vamp.core-pysrc.html#VampCoreAnalyzer.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.vamp.core-pysrc.html#VampCoreAnalyzer.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="unit"></a><span class="summary-sig-name">unit</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.vamp.core-pysrc.html#VampCoreAnalyzer.unit">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_plugins_list"></a><span class="summary-sig-name">get_plugins_list</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.vamp.core-pysrc.html#VampCoreAnalyzer.get_plugins_list">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_wav_path"></a><span class="summary-sig-name">get_wav_path</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_item</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.vamp.core-pysrc.html#VampCoreAnalyzer.get_wav_path">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="render"></a><span class="summary-sig-name">render</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">plugin</span>,
+        <span class="summary-sig-arg">media_item</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.vamp.core-pysrc.html#VampCoreAnalyzer.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="core_process"></a><span class="summary-sig-name">core_process</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">command</span>,
+        <span class="summary-sig-arg">buffer_size</span>)</span><br />
+      Encode and stream audio data through a generator</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.analyze.vamp.core-pysrc.html#VampCoreAnalyzer.core_process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.api-module.html b/doc/epydoc/timeside.api-module.html
new file mode 100644 (file)
index 0000000..1f319e9
--- /dev/null
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.api</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Module&nbsp;api
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.api-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module api</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.api-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.api.IProcessor-class.html" class="summary-name">IProcessor</a><br />
+      Common processor interface
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.api.IEncoder-class.html" class="summary-name">IEncoder</a><br />
+      Encoder driver interface.
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.api.IDecoder-class.html" class="summary-name">IDecoder</a><br />
+      Decoder driver interface.
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.api.IGrapher-class.html" class="summary-name">IGrapher</a><br />
+      Media item visualizer driver interface
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.api.IAnalyzer-class.html" class="summary-name">IAnalyzer</a><br />
+      Media item analyzer driver interface.
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.api.IValueAnalyzer-class.html" class="summary-name">IValueAnalyzer</a><br />
+      Interface for analyzers which return a single numeric value from 
+        result()
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.api.IEffect-class.html" class="summary-name">IEffect</a><br />
+      Effect processor interface
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.api-pysrc.html b/doc/epydoc/timeside.api-pysrc.html
new file mode 100644 (file)
index 0000000..dcaa83f
--- /dev/null
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.api</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Module&nbsp;api
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.api-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.api-module.html">Module timeside.api</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (C) 2007-2009 Parisson</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007 Olivier Guilyardi &lt;olivier@samalyse.com&gt;</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;pellerin@parisson.com&gt;</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module timeside.component=timeside.component-module.html"><a title="timeside.component" class="py-name" href="#" onclick="return doclink('link-1', 'component', 'link-1');">component</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class timeside.component.Interface=timeside.component.Interface-class.html"><a title="timeside.component.Interface" class="py-name" href="#" onclick="return doclink('link-2', 'Interface', 'link-2');">Interface</a></tt> </tt>
+<a name="IProcessor"></a><div id="IProcessor-def"><a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <a class="py-toggle" href="#" id="IProcessor-toggle" onclick="return toggle('IProcessor');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.api.IProcessor-class.html">IProcessor</a><tt class="py-op">(</tt><tt class="py-base-class">Interface</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IProcessor-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="IProcessor-expanded"><a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">    <tt class="py-docstring">"""Common processor interface"""</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="IProcessor.id"></a><div id="IProcessor.id-def"><a name="L28"></a><tt class="py-lineno"> 28</tt> <a class="py-toggle" href="#" id="IProcessor.id-toggle" onclick="return toggle('IProcessor.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IProcessor-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IProcessor.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IProcessor.id-expanded"><a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">        <tt class="py-docstring">"""Short alphanumeric, lower-case string which uniquely identify this </tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-docstring">        processor, suitable for use as an HTTP/GET argument value, in filenames, </tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-docstring">        etc..."""</tt> </tt>
+</div><a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt class="py-comment"># implementation: only letters and digits are allowed. An exception will</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># be raised by MetaProcessor if the id is malformed or not unique amongst</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># registered processors.</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="IProcessor.setup"></a><div id="IProcessor.setup-def"><a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="IProcessor.setup-toggle" onclick="return toggle('IProcessor.setup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IProcessor-class.html#setup">setup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channels</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">samplerate</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">nframes</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IProcessor.setup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IProcessor.setup-expanded"><a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-docstring">"""Allocate internal resources and reset state, so that this processor is</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-docstring">        ready for a new run. </tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-docstring">        The channels, samplerate and/or nframes arguments may be required by </tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"><tt class="py-docstring">        processors which accept input. An error will occur if any of</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"><tt class="py-docstring">        these arguments is passed to an output-only processor such as a decoder.</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+</div><a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">        <tt class="py-comment"># implementations should always call the parent method</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="IProcessor.channels"></a><div id="IProcessor.channels-def"><a name="L48"></a><tt class="py-lineno"> 48</tt> <a class="py-toggle" href="#" id="IProcessor.channels-toggle" onclick="return toggle('IProcessor.channels');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IProcessor-class.html#channels">channels</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IProcessor.channels-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IProcessor.channels-expanded"><a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">        <tt class="py-docstring">"""Number of channels in the data returned by process(). May be different from</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt class="py-docstring">        the number of channels passed to setup()"""</tt> </tt>
+</div><a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"> </tt>
+<a name="IProcessor.samplerate"></a><div id="IProcessor.samplerate-def"><a name="L52"></a><tt class="py-lineno"> 52</tt> <a class="py-toggle" href="#" id="IProcessor.samplerate-toggle" onclick="return toggle('IProcessor.samplerate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IProcessor-class.html#samplerate">samplerate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IProcessor.samplerate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IProcessor.samplerate-expanded"><a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">        <tt class="py-docstring">"""Samplerate of the data returned by process(). May be different from</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"><tt class="py-docstring">        the samplerate passed to setup()"""</tt> </tt>
+</div><a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"> </tt>
+<a name="IProcessor.nframes"></a><div id="IProcessor.nframes-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="IProcessor.nframes-toggle" onclick="return toggle('IProcessor.nframes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IProcessor-class.html#nframes">nframes</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IProcessor.nframes-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IProcessor.nframes-expanded"><a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-docstring">"""The total number of frames that this processor can output, or None if</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-docstring">        the duration is unknown."""</tt> </tt>
+</div><a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"> </tt>
+<a name="IProcessor.process"></a><div id="IProcessor.process-def"><a name="L60"></a><tt class="py-lineno"> 60</tt> <a class="py-toggle" href="#" id="IProcessor.process-toggle" onclick="return toggle('IProcessor.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IProcessor-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IProcessor.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IProcessor.process-expanded"><a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-docstring">"""Process input frames and return a (output_frames, eod) tuple.</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"><tt class="py-docstring">        Both input and output frames are 2D numpy arrays, where columns are </tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"><tt class="py-docstring">        channels, and containing an undetermined number of frames.  eod=True </tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-docstring">        means that the end-of-data has been reached.</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-docstring">        Output-only processors (such as decoders) will raise an exception if the</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-docstring">        frames argument is not None. All processors (even encoders) return data,</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-docstring">        even if that means returning the input unchanged.</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"><tt class="py-docstring">        Warning: it is required to call setup() before this method."""</tt> </tt>
+</div><a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"> </tt>
+<a name="IProcessor.release"></a><div id="IProcessor.release-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="IProcessor.release-toggle" onclick="return toggle('IProcessor.release');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IProcessor-class.html#release">release</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IProcessor.release-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IProcessor.release-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        <tt class="py-docstring">"""Release resources owned by this processor. The processor cannot</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"><tt class="py-docstring">        be used anymore after calling this method."""</tt> </tt>
+</div></div><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"> </tt>
+<a name="IEncoder"></a><div id="IEncoder-def"><a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">        <tt class="py-comment"># implementations should always call the parent method</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <a class="py-toggle" href="#" id="IEncoder-toggle" onclick="return toggle('IEncoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.api.IEncoder-class.html">IEncoder</a><tt class="py-op">(</tt><tt class="py-base-class">IProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IEncoder-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="IEncoder-expanded"><a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">    <tt class="py-docstring">"""Encoder driver interface. Each encoder is expected to support a specific</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"><tt class="py-docstring">    format."""</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line"> </tt>
+<a name="IEncoder.__init__"></a><div id="IEncoder.__init__-def"><a name="L82"></a><tt class="py-lineno"> 82</tt> <a class="py-toggle" href="#" id="IEncoder.__init__-toggle" onclick="return toggle('IEncoder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IEncoder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">output</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IEncoder.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IEncoder.__init__-expanded"><a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-docstring">"""Create a new encoder. output can either be a filename or a python callback </tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"><tt class="py-docstring">        function/method for streaming mode.</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"><tt class="py-docstring">        The streaming callback prototype is: callback(data, eod)</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-docstring">        Where data is a block of binary data of an undetermined size, and eod</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"><tt class="py-docstring">        True when end-of-data is reached."""</tt> </tt>
+</div><a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-comment"># implementation: the constructor must always accept the output argument. It may </tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># accept extra arguments such as bitrate, depth, etc.., but these must be optionnal </tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="IEncoder.format"></a><div id="IEncoder.format-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="IEncoder.format-toggle" onclick="return toggle('IEncoder.format');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IEncoder-class.html#format">format</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IEncoder.format-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IEncoder.format-expanded"><a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return the encode/encoding format as a short string</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"><tt class="py-docstring">        Example: "MP3", "OGG", "AVI", ...</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+</div><a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="IEncoder.description"></a><div id="IEncoder.description-def"><a name="L100"></a><tt class="py-lineno">100</tt> <a class="py-toggle" href="#" id="IEncoder.description-toggle" onclick="return toggle('IEncoder.description');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IEncoder-class.html#description">description</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IEncoder.description-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IEncoder.description-expanded"><a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return a string describing what this encode format provides, is good</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"><tt class="py-docstring">        for, etc... The description is meant to help the end user decide what</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"><tt class="py-docstring">        format is good for him/her</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+</div><a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="IEncoder.file_extension"></a><div id="IEncoder.file_extension-def"><a name="L107"></a><tt class="py-lineno">107</tt> <a class="py-toggle" href="#" id="IEncoder.file_extension-toggle" onclick="return toggle('IEncoder.file_extension');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IEncoder-class.html#file_extension">file_extension</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IEncoder.file_extension-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IEncoder.file_extension-expanded"><a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return the filename extension corresponding to this encode format"""</tt> </tt>
+</div><a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="IEncoder.mime_type"></a><div id="IEncoder.mime_type-def"><a name="L111"></a><tt class="py-lineno">111</tt> <a class="py-toggle" href="#" id="IEncoder.mime_type-toggle" onclick="return toggle('IEncoder.mime_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IEncoder-class.html#mime_type">mime_type</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IEncoder.mime_type-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IEncoder.mime_type-expanded"><a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return the mime type corresponding to this encode format"""</tt> </tt>
+</div><a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"> </tt>
+<a name="IEncoder.set_metadata"></a><div id="IEncoder.set_metadata-def"><a name="L114"></a><tt class="py-lineno">114</tt> <a class="py-toggle" href="#" id="IEncoder.set_metadata-toggle" onclick="return toggle('IEncoder.set_metadata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IEncoder-class.html#set_metadata">set_metadata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">metadata</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IEncoder.set_metadata-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IEncoder.set_metadata-expanded"><a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-docstring">"""Set the metadata to be embedded in the encoded output.</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-docstring">        In non-streaming mode, this method updates the metadata directly into the </tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring">        output file, without re-encoding the audio data, provided this file already </tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">        exists.</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-docstring">        It isn't required to call this method, but if called, it must be before </tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring">        process()."""</tt> </tt>
+</div></div><a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"> </tt>
+<a name="IDecoder"></a><div id="IDecoder-def"><a name="L124"></a><tt class="py-lineno">124</tt> <a class="py-toggle" href="#" id="IDecoder-toggle" onclick="return toggle('IDecoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.api.IDecoder-class.html">IDecoder</a><tt class="py-op">(</tt><tt class="py-base-class">IProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDecoder-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="IDecoder-expanded"><a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">    <tt class="py-docstring">"""Decoder driver interface. Decoders are different of encoders in that</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-docstring">    a given driver may support several input formats, hence this interface doesn't</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"><tt class="py-docstring">    export any static method, all informations are dynamic."""</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"> </tt>
+<a name="IDecoder.__init__"></a><div id="IDecoder.__init__-def"><a name="L129"></a><tt class="py-lineno">129</tt> <a class="py-toggle" href="#" id="IDecoder.__init__-toggle" onclick="return toggle('IDecoder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IDecoder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDecoder.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDecoder.__init__-expanded"><a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-docstring">"""Create a new decoder for filename."""</tt> </tt>
+</div><a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">        <tt class="py-comment"># implementation: additional optionnal arguments are allowed </tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="IDecoder.format"></a><div id="IDecoder.format-def"><a name="L133"></a><tt class="py-lineno">133</tt> <a class="py-toggle" href="#" id="IDecoder.format-toggle" onclick="return toggle('IDecoder.format');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IDecoder-class.html#format">format</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDecoder.format-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDecoder.format-expanded"><a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return a user-friendly file format string"""</tt> </tt>
+</div><a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">    </tt>
+<a name="IDecoder.encoding"></a><div id="IDecoder.encoding-def"><a name="L136"></a><tt class="py-lineno">136</tt> <a class="py-toggle" href="#" id="IDecoder.encoding-toggle" onclick="return toggle('IDecoder.encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IDecoder-class.html#encoding">encoding</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDecoder.encoding-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDecoder.encoding-expanded"><a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return a user-friendly encoding string"""</tt> </tt>
+</div><a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"> </tt>
+<a name="IDecoder.resolution"></a><div id="IDecoder.resolution-def"><a name="L139"></a><tt class="py-lineno">139</tt> <a class="py-toggle" href="#" id="IDecoder.resolution-toggle" onclick="return toggle('IDecoder.resolution');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IDecoder-class.html#resolution">resolution</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDecoder.resolution-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDecoder.resolution-expanded"><a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return the sample width (8, 16, etc..) of original audio file/stream,</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"><tt class="py-docstring">           or None if not applicable/known"""</tt> </tt>
+</div><a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"> </tt>
+<a name="IDecoder.metadata"></a><div id="IDecoder.metadata-def"><a name="L143"></a><tt class="py-lineno">143</tt> <a class="py-toggle" href="#" id="IDecoder.metadata-toggle" onclick="return toggle('IDecoder.metadata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IDecoder-class.html#metadata">metadata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDecoder.metadata-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDecoder.metadata-expanded"><a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return the metadata embedded into the encoded stream, if any."""</tt> </tt>
+</div></div><a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"> </tt>
+<a name="IGrapher"></a><div id="IGrapher-def"><a name="L146"></a><tt class="py-lineno">146</tt> <a class="py-toggle" href="#" id="IGrapher-toggle" onclick="return toggle('IGrapher');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.api.IGrapher-class.html">IGrapher</a><tt class="py-op">(</tt><tt class="py-base-class">IProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IGrapher-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="IGrapher-expanded"><a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">    <tt class="py-docstring">"""Media item visualizer driver interface"""</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">    <tt class="py-comment"># implementation: graphers which need to know the total number of frames</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment"># should raise an exception in setup() if the nframes&#160;argument is None </tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="IGrapher.__init__"></a><div id="IGrapher.__init__-def"><a name="L152"></a><tt class="py-lineno">152</tt> <a class="py-toggle" href="#" id="IGrapher.__init__-toggle" onclick="return toggle('IGrapher.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IGrapher-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">,</tt> <tt class="py-param">height</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IGrapher.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IGrapher.__init__-expanded"><a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">        <tt class="py-docstring">"""Create a new grapher. width and height are generally</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring">        in pixels but could be something else for eg. svg rendering, etc.. """</tt> </tt>
+</div><a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">        <tt class="py-comment"># implementation: additional optionnal arguments are allowed </tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="IGrapher.name"></a><div id="IGrapher.name-def"><a name="L159"></a><tt class="py-lineno">159</tt> <a class="py-toggle" href="#" id="IGrapher.name-toggle" onclick="return toggle('IGrapher.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IGrapher-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IGrapher.name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IGrapher.name-expanded"><a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return the graph name, such as "Waveform", "Spectral view",</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"><tt class="py-docstring">        etc..  """</tt> </tt>
+</div><a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line"> </tt>
+<a name="IGrapher.set_colors"></a><div id="IGrapher.set_colors-def"><a name="L163"></a><tt class="py-lineno">163</tt> <a class="py-toggle" href="#" id="IGrapher.set_colors-toggle" onclick="return toggle('IGrapher.set_colors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IGrapher-class.html#set_colors">set_colors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">background</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">scheme</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IGrapher.set_colors-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IGrapher.set_colors-expanded"><a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">        <tt class="py-docstring">"""Set the colors used for image generation. background is a RGB tuple,</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"><tt class="py-docstring">        and scheme a a predefined color theme name"""</tt> </tt>
+</div><a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"> </tt>
+<a name="IGrapher.render"></a><div id="IGrapher.render-def"><a name="L167"></a><tt class="py-lineno">167</tt> <a class="py-toggle" href="#" id="IGrapher.render-toggle" onclick="return toggle('IGrapher.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IGrapher-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IGrapher.render-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IGrapher.render-expanded"><a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return a PIL Image object visually representing all of the data passed</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-docstring">        by repeatedly calling process()"""</tt> </tt>
+</div></div><a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"> </tt>
+<a name="IAnalyzer"></a><div id="IAnalyzer-def"><a name="L171"></a><tt class="py-lineno">171</tt> <a class="py-toggle" href="#" id="IAnalyzer-toggle" onclick="return toggle('IAnalyzer');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.api.IAnalyzer-class.html">IAnalyzer</a><tt class="py-op">(</tt><tt class="py-base-class">IProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IAnalyzer-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="IAnalyzer-expanded"><a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">    <tt class="py-docstring">"""Media item analyzer driver interface. This interface is abstract, it doesn't</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-docstring">    describe a particular type of analyzer but is rather meant to group analyzers.</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"><tt class="py-docstring">    In particular, the way the result is returned may greatly vary from sub-interface</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"><tt class="py-docstring">    to sub-interface. For example the IValueAnalyzer returns a final single numeric</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"><tt class="py-docstring">    result at the end of the whole analysis. But some other analyzers may return</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-docstring">    numpy arrays, and this, either at the end of the analysis, or from process()</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"><tt class="py-docstring">    for each block of data (as in Vamp)."""</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"> </tt>
+<a name="IAnalyzer.__init__"></a><div id="IAnalyzer.__init__-def"><a name="L180"></a><tt class="py-lineno">180</tt> <a class="py-toggle" href="#" id="IAnalyzer.__init__-toggle" onclick="return toggle('IAnalyzer.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IAnalyzer-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IAnalyzer.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IAnalyzer.__init__-expanded"><a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-docstring">"""Create a new analyzer."""</tt> </tt>
+</div><a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">        <tt class="py-comment"># implementation: additional optionnal arguments are allowed </tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="IAnalyzer.name"></a><div id="IAnalyzer.name-def"><a name="L185"></a><tt class="py-lineno">185</tt> <a class="py-toggle" href="#" id="IAnalyzer.name-toggle" onclick="return toggle('IAnalyzer.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IAnalyzer-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IAnalyzer.name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IAnalyzer.name-expanded"><a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return the analyzer name, such as "Mean Level", "Max level",</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"><tt class="py-docstring">        "Total length, etc..  """</tt> </tt>
+</div><a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="IAnalyzer.unit"></a><div id="IAnalyzer.unit-def"><a name="L190"></a><tt class="py-lineno">190</tt> <a class="py-toggle" href="#" id="IAnalyzer.unit-toggle" onclick="return toggle('IAnalyzer.unit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IAnalyzer-class.html#unit">unit</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IAnalyzer.unit-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IAnalyzer.unit-expanded"><a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return the unit of the data such as "dB", "seconds", etc...  """</tt> </tt>
+</div></div><a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"> </tt>
+<a name="IValueAnalyzer"></a><div id="IValueAnalyzer-def"><a name="L193"></a><tt class="py-lineno">193</tt> <a class="py-toggle" href="#" id="IValueAnalyzer-toggle" onclick="return toggle('IValueAnalyzer');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.api.IValueAnalyzer-class.html">IValueAnalyzer</a><tt class="py-op">(</tt><tt class="py-base-class">IAnalyzer</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IValueAnalyzer-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="IValueAnalyzer-expanded"><a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">    <tt class="py-docstring">"""Interface for analyzers which return a single numeric value from result()"""</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line"> </tt>
+<a name="IValueAnalyzer.result"></a><div id="IValueAnalyzer.result-def"><a name="L196"></a><tt class="py-lineno">196</tt> <a class="py-toggle" href="#" id="IValueAnalyzer.result-toggle" onclick="return toggle('IValueAnalyzer.result');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IValueAnalyzer-class.html#result">result</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IValueAnalyzer.result-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IValueAnalyzer.result-expanded"><a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return the final result of the analysis performed over the data passed by</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line"><tt class="py-docstring">        repeatedly calling process()"""</tt> </tt>
+</div><a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line"> </tt>
+<a name="IValueAnalyzer.__str__"></a><div id="IValueAnalyzer.__str__-def"><a name="L200"></a><tt class="py-lineno">200</tt> <a class="py-toggle" href="#" id="IValueAnalyzer.__str__-toggle" onclick="return toggle('IValueAnalyzer.__str__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IValueAnalyzer-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IValueAnalyzer.__str__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IValueAnalyzer.__str__-expanded"><a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return a human readable string containing both result and unit </tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line"><tt class="py-docstring">        ('5.30dB', '4.2s', etc...)"""</tt> </tt>
+</div></div><a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line"> </tt>
+<a name="IEffect"></a><div id="IEffect-def"><a name="L204"></a><tt class="py-lineno">204</tt> <a class="py-toggle" href="#" id="IEffect-toggle" onclick="return toggle('IEffect');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.api.IEffect-class.html">IEffect</a><tt class="py-op">(</tt><tt class="py-base-class">IProcessor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IEffect-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="IEffect-expanded"><a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">    <tt class="py-docstring">"""Effect processor interface"""</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line"> </tt>
+<a name="IEffect.__init__"></a><div id="IEffect.__init__-def"><a name="L207"></a><tt class="py-lineno">207</tt> <a class="py-toggle" href="#" id="IEffect.__init__-toggle" onclick="return toggle('IEffect.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IEffect-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IEffect.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IEffect.__init__-expanded"><a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">        <tt class="py-docstring">"""Create a new effect."""</tt> </tt>
+</div><a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">        <tt class="py-comment"># implementation: additional optionnal arguments are allowed </tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="IEffect.name"></a><div id="IEffect.name-def"><a name="L212"></a><tt class="py-lineno">212</tt> <a class="py-toggle" href="#" id="IEffect.name-toggle" onclick="return toggle('IEffect.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.api.IEffect-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IEffect.name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IEffect.name-expanded"><a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return the effect name"""</tt> </tt>
+</div></div><a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.api.IAnalyzer-class.html b/doc/epydoc/timeside.api.IAnalyzer-class.html
new file mode 100644 (file)
index 0000000..d7f7d93
--- /dev/null
@@ -0,0 +1,317 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.api.IAnalyzer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.api-module.html">Module&nbsp;api</a> ::
+        Class&nbsp;IAnalyzer
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.api.IAnalyzer-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class IAnalyzer</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.api-pysrc.html#IAnalyzer">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+    
+                      |    
+             <a href="timeside.api.IProcessor-class.html">IProcessor</a> --+
+                          |
+                         <strong class="uidshort">IAnalyzer</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="timeside.api.IValueAnalyzer-class.html">IValueAnalyzer</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<p>Media item analyzer driver interface. This interface is abstract, it 
+  doesn't describe a particular type of analyzer but is rather meant to 
+  group analyzers. In particular, the way the result is returned may 
+  greatly vary from sub-interface to sub-interface. For example the 
+  IValueAnalyzer returns a final single numeric result at the end of the 
+  whole analysis. But some other analyzers may return numpy arrays, and 
+  this, either at the end of the analysis, or from process() for each block
+  of data (as in Vamp).</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IAnalyzer-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Create a new analyzer.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IAnalyzer.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IProcessor-class.html">IProcessor</a></code></b>:
+      <code><a href="timeside.api.IProcessor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#process">process</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#release">release</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>()</span><br />
+      Return the analyzer name, such as &quot;Mean Level&quot;, &quot;Max 
+      level&quot;, &quot;Total length, etc..</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IAnalyzer.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="unit"></a><span class="summary-sig-name">unit</span>()</span><br />
+      Return the unit of the data such as &quot;dB&quot;, 
+      &quot;seconds&quot;, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IAnalyzer.unit">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IProcessor-class.html">IProcessor</a></code></b>:
+      <code><a href="timeside.api.IProcessor-class.html#id">id</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IAnalyzer.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Create a new analyzer.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.api.IDecoder-class.html b/doc/epydoc/timeside.api.IDecoder-class.html
new file mode 100644 (file)
index 0000000..d33683e
--- /dev/null
@@ -0,0 +1,341 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.api.IDecoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.api-module.html">Module&nbsp;api</a> ::
+        Class&nbsp;IDecoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.api.IDecoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class IDecoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.api-pysrc.html#IDecoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+    
+                      |    
+             <a href="timeside.api.IProcessor-class.html">IProcessor</a> --+
+                          |
+                         <strong class="uidshort">IDecoder</strong>
+</pre>
+
+<hr />
+<p>Decoder driver interface. Decoders are different of encoders in that a
+  given driver may support several input formats, hence this interface 
+  doesn't export any static method, all informations are dynamic.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IDecoder-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>)</span><br />
+      Create a new decoder for filename.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IDecoder.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="format"></a><span class="summary-sig-name">format</span>()</span><br />
+      Return a user-friendly file format string</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IDecoder.format">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="encoding"></a><span class="summary-sig-name">encoding</span>()</span><br />
+      Return a user-friendly encoding string</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IDecoder.encoding">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="resolution"></a><span class="summary-sig-name">resolution</span>()</span><br />
+      Return the sample width (8, 16, etc..) of original audio file/stream,
+      or None if not applicable/known</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IDecoder.resolution">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="metadata"></a><span class="summary-sig-name">metadata</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return the metadata embedded into the encoded stream, if any.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IDecoder.metadata">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IProcessor-class.html">IProcessor</a></code></b>:
+      <code><a href="timeside.api.IProcessor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#process">process</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#release">release</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IProcessor-class.html">IProcessor</a></code></b>:
+      <code><a href="timeside.api.IProcessor-class.html#id">id</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">filename</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IDecoder.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Create a new decoder for filename.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.api.IEffect-class.html b/doc/epydoc/timeside.api.IEffect-class.html
new file mode 100644 (file)
index 0000000..7abce71
--- /dev/null
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.api.IEffect</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.api-module.html">Module&nbsp;api</a> ::
+        Class&nbsp;IEffect
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.api.IEffect-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class IEffect</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.api-pysrc.html#IEffect">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+    
+                      |    
+             <a href="timeside.api.IProcessor-class.html">IProcessor</a> --+
+                          |
+                         <strong class="uidshort">IEffect</strong>
+</pre>
+
+<hr />
+<p>Effect processor interface</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IEffect-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Create a new effect.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IEffect.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IProcessor-class.html">IProcessor</a></code></b>:
+      <code><a href="timeside.api.IProcessor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#process">process</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#release">release</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>()</span><br />
+      Return the effect name</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IEffect.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IProcessor-class.html">IProcessor</a></code></b>:
+      <code><a href="timeside.api.IProcessor-class.html#id">id</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IEffect.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Create a new effect.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.api.IEncoder-class.html b/doc/epydoc/timeside.api.IEncoder-class.html
new file mode 100644 (file)
index 0000000..018348b
--- /dev/null
@@ -0,0 +1,410 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.api.IEncoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.api-module.html">Module&nbsp;api</a> ::
+        Class&nbsp;IEncoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.api.IEncoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class IEncoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.api-pysrc.html#IEncoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+    
+                      |    
+             <a href="timeside.api.IProcessor-class.html">IProcessor</a> --+
+                          |
+                         <strong class="uidshort">IEncoder</strong>
+</pre>
+
+<hr />
+<p>Encoder driver interface. Each encoder is expected to support a 
+  specific format.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IEncoder-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">output</span>)</span><br />
+      Create a new encoder.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IEncoder.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IEncoder-class.html#set_metadata" class="summary-sig-name">set_metadata</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">metadata</span>)</span><br />
+      Set the metadata to be embedded in the encoded output.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IEncoder.set_metadata">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IProcessor-class.html">IProcessor</a></code></b>:
+      <code><a href="timeside.api.IProcessor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#process">process</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#release">release</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="format"></a><span class="summary-sig-name">format</span>()</span><br />
+      Return the encode/encoding format as a short string Example: 
+      &quot;MP3&quot;, &quot;OGG&quot;, &quot;AVI&quot;, ...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IEncoder.format">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IEncoder-class.html#description" class="summary-sig-name">description</a>()</span><br />
+      Return a string describing what this encode format provides, is good 
+      for, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IEncoder.description">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="file_extension"></a><span class="summary-sig-name">file_extension</span>()</span><br />
+      Return the filename extension corresponding to this encode format</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IEncoder.file_extension">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="mime_type"></a><span class="summary-sig-name">mime_type</span>()</span><br />
+      Return the mime type corresponding to this encode format</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IEncoder.mime_type">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IProcessor-class.html">IProcessor</a></code></b>:
+      <code><a href="timeside.api.IProcessor-class.html#id">id</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">output</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IEncoder.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Create a new encoder. output can either be a filename or a python 
+  callback function/method for streaming mode.</p>
+  <p>The streaming callback prototype is: callback(data, eod) Where data is
+  a block of binary data of an undetermined size, and eod True when 
+  end-of-data is reached.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="description"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">description</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IEncoder.description">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return a string describing what this encode format provides, is good 
+  for, etc... The description is meant to help the end user decide what 
+  format is good for him/her</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="set_metadata"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">set_metadata</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">metadata</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IEncoder.set_metadata">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Set the metadata to be embedded in the encoded output.</p>
+  <p>In non-streaming mode, this method updates the metadata directly into 
+  the output file, without re-encoding the audio data, provided this file 
+  already exists.</p>
+  <p>It isn't required to call this method, but if called, it must be 
+  before process().</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.api.IGrapher-class.html b/doc/epydoc/timeside.api.IGrapher-class.html
new file mode 100644 (file)
index 0000000..b943a55
--- /dev/null
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.api.IGrapher</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.api-module.html">Module&nbsp;api</a> ::
+        Class&nbsp;IGrapher
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.api.IGrapher-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class IGrapher</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.api-pysrc.html#IGrapher">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+    
+                      |    
+             <a href="timeside.api.IProcessor-class.html">IProcessor</a> --+
+                          |
+                         <strong class="uidshort">IGrapher</strong>
+</pre>
+
+<hr />
+<p>Media item visualizer driver interface</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IGrapher-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">width</span>,
+        <span class="summary-sig-arg">height</span>)</span><br />
+      Create a new grapher.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IGrapher.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IGrapher-class.html#set_colors" class="summary-sig-name">set_colors</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">background</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">scheme</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Set the colors used for image generation.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IGrapher.set_colors">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="render"></a><span class="summary-sig-name">render</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return a PIL Image object visually representing all of the data 
+      passed by repeatedly calling process()</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IGrapher.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IProcessor-class.html">IProcessor</a></code></b>:
+      <code><a href="timeside.api.IProcessor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#process">process</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#release">release</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>()</span><br />
+      Return the graph name, such as &quot;Waveform&quot;, &quot;Spectral 
+      view&quot;, etc..</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IGrapher.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IProcessor-class.html">IProcessor</a></code></b>:
+      <code><a href="timeside.api.IProcessor-class.html#id">id</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">width</span>,
+        <span class="sig-arg">height</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IGrapher.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Create a new grapher. width and height are generally in pixels but 
+  could be something else for eg. svg rendering, etc..</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="set_colors"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">set_colors</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">background</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">scheme</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IGrapher.set_colors">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Set the colors used for image generation. background is a RGB tuple, 
+  and scheme a a predefined color theme name</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.api.IProcessor-class.html b/doc/epydoc/timeside.api.IProcessor-class.html
new file mode 100644 (file)
index 0000000..b89a7c8
--- /dev/null
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.api.IProcessor</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.api-module.html">Module&nbsp;api</a> ::
+        Class&nbsp;IProcessor
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.api.IProcessor-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class IProcessor</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.api-pysrc.html#IProcessor">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+
+                      |
+                     <strong class="uidshort">IProcessor</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="timeside.api.IAnalyzer-class.html">IAnalyzer</a></li><li>, <a href="timeside.api.IDecoder-class.html">IDecoder</a></li><li>, <a href="timeside.api.IEffect-class.html">IEffect</a></li><li>, <a href="timeside.api.IEncoder-class.html">IEncoder</a></li><li>, <a href="timeside.api.IGrapher-class.html">IGrapher</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<p>Common processor interface</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IProcessor-class.html#setup" class="summary-sig-name">setup</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">channels</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">samplerate</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">nframes</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Allocate internal resources and reset state, so that this processor 
+      is ready for a new run.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IProcessor.setup">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IProcessor-class.html#channels" class="summary-sig-name">channels</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Number of channels in the data returned by process().</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IProcessor.channels">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IProcessor-class.html#samplerate" class="summary-sig-name">samplerate</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Samplerate of the data returned by process().</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IProcessor.samplerate">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="nframes"></a><span class="summary-sig-name">nframes</span>()</span><br />
+      The total number of frames that this processor can output, or None if
+      the duration is unknown.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IProcessor.nframes">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IProcessor-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">eod</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IProcessor.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IProcessor-class.html#release" class="summary-sig-name">release</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Release resources owned by this processor.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IProcessor.release">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span><br />
+      Short alphanumeric, lower-case string which uniquely identify this 
+      processor, suitable for use as an HTTP/GET argument value, in 
+      filenames, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IProcessor.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="setup"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setup</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">channels</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">samplerate</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">nframes</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IProcessor.setup">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Allocate internal resources and reset state, so that this processor is
+  ready for a new run.</p>
+  <p>The channels, samplerate and/or nframes arguments may be required by 
+  processors which accept input. An error will occur if any of these 
+  arguments is passed to an output-only processor such as a decoder.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="channels"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">channels</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IProcessor.channels">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Number of channels in the data returned by process(). May be different
+  from the number of channels passed to setup()</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="samplerate"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">samplerate</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IProcessor.samplerate">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Samplerate of the data returned by process(). May be different from 
+  the samplerate passed to setup()</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frames</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">eod</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IProcessor.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="release"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">release</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IProcessor.release">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Release resources owned by this processor. The processor cannot be 
+  used anymore after calling this method.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.api.IValueAnalyzer-class.html b/doc/epydoc/timeside.api.IValueAnalyzer-class.html
new file mode 100644 (file)
index 0000000..6e6c568
--- /dev/null
@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.api.IValueAnalyzer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.api-module.html">Module&nbsp;api</a> ::
+        Class&nbsp;IValueAnalyzer
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.api.IValueAnalyzer-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class IValueAnalyzer</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.api-pysrc.html#IValueAnalyzer">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+        
+                      |        
+             <a href="timeside.api.IProcessor-class.html">IProcessor</a> --+    
+                          |    
+                  <a href="timeside.api.IAnalyzer-class.html">IAnalyzer</a> --+
+                              |
+                             <strong class="uidshort">IValueAnalyzer</strong>
+</pre>
+
+<hr />
+<p>Interface for analyzers which return a single numeric value from 
+  result()</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="result"></a><span class="summary-sig-name">result</span>()</span><br />
+      Return the final result of the analysis performed over the data 
+      passed by repeatedly calling process()</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IValueAnalyzer.result">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.api.IValueAnalyzer-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return a human readable string containing both result and unit 
+      ('5.30dB', '4.2s', etc...)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.api-pysrc.html#IValueAnalyzer.__str__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IAnalyzer-class.html">IAnalyzer</a></code></b>:
+      <code><a href="timeside.api.IAnalyzer-class.html#__init__">__init__</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IProcessor-class.html">IProcessor</a></code></b>:
+      <code><a href="timeside.api.IProcessor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#process">process</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#release">release</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.api.IProcessor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IAnalyzer-class.html">IAnalyzer</a></code></b>:
+      <code><a href="timeside.api.IAnalyzer-class.html#name">name</a></code>,
+      <code><a href="timeside.api.IAnalyzer-class.html#unit">unit</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.api.IProcessor-class.html">IProcessor</a></code></b>:
+      <code><a href="timeside.api.IProcessor-class.html#id">id</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__str__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Informal representation operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.api-pysrc.html#IValueAnalyzer.__str__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return a human readable string containing both result and unit 
+  ('5.30dB', '4.2s', etc...)</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__str__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.component-module.html b/doc/epydoc/timeside.component-module.html
new file mode 100644 (file)
index 0000000..0398fdf
--- /dev/null
@@ -0,0 +1,325 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.component</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Module&nbsp;component
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.component-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module component</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.component-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.component.Interface-class.html" class="summary-name">Interface</a><br />
+      Marker base class for interfaces.
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.component.MetaComponent-class.html" class="summary-name">MetaComponent</a><br />
+      Metaclass of the Component class, used mainly to register the 
+        interface declared to be implemented by a component.
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.component.Component-class.html" class="summary-name">Component</a><br />
+      Base class of all components
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.component.ComponentError-class.html" class="summary-name">ComponentError</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="implements"></a><span class="summary-sig-name">implements</span>(<span class="summary-sig-arg">*interfaces</span>)</span><br />
+      Registers the interfaces implemented by a component when placed in 
+      the class header</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.component-pysrc.html#implements">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="abstract"></a><span class="summary-sig-name">abstract</span>()</span><br />
+      Declare a component as abstract when placed in the class header</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.component-pysrc.html#abstract">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.component-module.html#implementations" class="summary-sig-name">implementations</a>(<span class="summary-sig-arg">interface</span>,
+        <span class="summary-sig-arg">recurse</span>=<span class="summary-sig-default">True</span>,
+        <span class="summary-sig-arg">abstract</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Returns the components implementing interface, and if recurse, any of
+      the descendants of interface.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.component-pysrc.html#implementations">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="interfacedoc"></a><span class="summary-sig-name">interfacedoc</span>(<span class="summary-sig-arg">func</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.component-pysrc.html#interfacedoc">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="extend_unique"></a><span class="summary-sig-name">extend_unique</span>(<span class="summary-sig-arg">list1</span>,
+        <span class="summary-sig-arg">list2</span>)</span><br />
+      Extend list1 with list2 as list.extend(), but doesn't append 
+      duplicates to list1</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.component-pysrc.html#extend_unique">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="find_implementations"></a><span class="summary-sig-name">find_implementations</span>(<span class="summary-sig-arg">interface</span>,
+        <span class="summary-sig-arg">recurse</span>,
+        <span class="summary-sig-arg">abstract</span>,
+        <span class="summary-sig-arg">result</span>)</span><br />
+      Find implementations of an interface or of one of its descendants and
+      extend result with the classes found.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.component-pysrc.html#find_implementations">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Function Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-FunctionDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="implementations"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">implementations</span>(<span class="sig-arg">interface</span>,
+        <span class="sig-arg">recurse</span>=<span class="sig-default">True</span>,
+        <span class="sig-arg">abstract</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.component-pysrc.html#implementations">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Returns the components implementing interface, and if recurse, any of 
+  the descendants of interface. If abstract is True, also return the 
+  abstract implementations.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.component-pysrc.html b/doc/epydoc/timeside.component-pysrc.html
new file mode 100644 (file)
index 0000000..f596e6e
--- /dev/null
@@ -0,0 +1,414 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.component</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Module&nbsp;component
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.component-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.component-module.html">Module timeside.component</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2009 Olivier Guilyardi &lt;olivier@samalyse.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-comment"># This file defines a generic object interface mechanism and </tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#&#160;a way to determine which components implements a given interface.</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># For example, the following defines the Music class as implementing the</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># listenable interface.</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># class Listenable(Interface):</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#     pass</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># class Music(Component):</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#    implements(Listenable)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Several class can implements a such interface, and it is possible to </tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># discover which class implements it with implementations():</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># list_of_classes = implementations(Listenable)</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This mechanism support inheritance of interfaces: a class implementing a given </tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># interface is also considered to implement all the ascendants of this interface.</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># However, inheritance is not supported for components. The descendants of a class </tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># implementing a given interface are not automatically considered to implement this </tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># interface too. </tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"><tt class="py-name">__all__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'Component'</tt><tt class="py-op">,</tt> <tt class="py-string">'MetaComponent'</tt><tt class="py-op">,</tt> <tt class="py-string">'implements'</tt><tt class="py-op">,</tt> <tt class="py-string">'abstract'</tt><tt class="py-op">,</tt>  </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">           <tt class="py-string">'interfacedoc'</tt><tt class="py-op">,</tt> <tt class="py-string">'Interface'</tt><tt class="py-op">,</tt> <tt class="py-string">'implementations'</tt><tt class="py-op">,</tt> <tt class="py-string">'ComponentError'</tt><tt class="py-op">]</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"> </tt>
+<a name="Interface"></a><div id="Interface-def"><a name="L48"></a><tt class="py-lineno"> 48</tt> <a class="py-toggle" href="#" id="Interface-toggle" onclick="return toggle('Interface');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.component.Interface-class.html">Interface</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Interface-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Interface-expanded"><a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">    <tt class="py-docstring">"""Marker base class for interfaces."""</tt> </tt>
+</div><a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"> </tt>
+<a name="implements"></a><div id="implements-def"><a name="L51"></a><tt class="py-lineno"> 51</tt> <a class="py-toggle" href="#" id="implements-toggle" onclick="return toggle('implements');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.component-module.html#implements">implements</a><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-param">interfaces</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="implements-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="implements-expanded"><a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">    <tt class="py-docstring">"""Registers the interfaces implemented by a component when placed in the</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"><tt class="py-docstring">    class header"""</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">    <tt id="link-0" class="py-name" targets="Class timeside.component.MetaComponent=timeside.component.MetaComponent-class.html"><a title="timeside.component.MetaComponent" class="py-name" href="#" onclick="return doclink('link-0', 'MetaComponent', 'link-0');">MetaComponent</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-1', 'implements', 'link-1');">implements</a></tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-name">interfaces</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"> </tt>
+<a name="abstract"></a><div id="abstract-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="abstract-toggle" onclick="return toggle('abstract');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.component-module.html#abstract">abstract</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="abstract-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="abstract-expanded"><a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">    <tt class="py-docstring">"""Declare a component as abstract when placed in the class header"""</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">    <tt id="link-2" class="py-name"><a title="timeside.component.MetaComponent" class="py-name" href="#" onclick="return doclink('link-2', 'MetaComponent', 'link-0');">MetaComponent</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Variable timeside.component.MetaComponent.abstract=timeside.component.MetaComponent-class.html#abstract,Function timeside.component.abstract()=timeside.component-module.html#abstract"><a title="timeside.component.MetaComponent.abstract
+timeside.component.abstract" class="py-name" href="#" onclick="return doclink('link-3', 'abstract', 'link-3');">abstract</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"> </tt>
+<a name="implementations"></a><div id="implementations-def"><a name="L60"></a><tt class="py-lineno"> 60</tt> <a class="py-toggle" href="#" id="implementations-toggle" onclick="return toggle('implementations');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.component-module.html#implementations">implementations</a><tt class="py-op">(</tt><tt class="py-param">interface</tt><tt class="py-op">,</tt> <tt class="py-param">recurse</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-param">abstract</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="implementations-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="implementations-expanded"><a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">    <tt class="py-docstring">"""Returns the components implementing interface, and if recurse, any of </tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"><tt class="py-docstring">    the descendants of interface. If abstract is True, also return the </tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"><tt class="py-docstring">    abstract implementations."""</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">    <tt id="link-4" class="py-name" targets="Method timeside.api.IValueAnalyzer.result()=timeside.api.IValueAnalyzer-class.html#result,Method timeside.tests.api.examples.Duration.result()=timeside.tests.api.examples.Duration-class.html#result,Method timeside.tests.api.examples.MaxLevel.result()=timeside.tests.api.examples.MaxLevel-class.html#result"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-4', 'result', 'link-4');">result</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">    <tt id="link-5" class="py-name" targets="Function timeside.component.find_implementations()=timeside.component-module.html#find_implementations"><a title="timeside.component.find_implementations" class="py-name" href="#" onclick="return doclink('link-5', 'find_implementations', 'link-5');">find_implementations</a></tt><tt class="py-op">(</tt><tt class="py-name">interface</tt><tt class="py-op">,</tt> <tt class="py-name">recurse</tt><tt class="py-op">,</tt> <tt id="link-6" class="py-name"><a title="timeside.component.MetaComponent.abstract
+timeside.component.abstract" class="py-name" href="#" onclick="return doclink('link-6', 'abstract', 'link-3');">abstract</a></tt><tt class="py-op">,</tt> <tt id="link-7" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-7', 'result', 'link-4');">result</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-8" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-8', 'result', 'link-4');">result</a></tt> </tt>
+</div><a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"> </tt>
+<a name="interfacedoc"></a><div id="interfacedoc-def"><a name="L68"></a><tt class="py-lineno"> 68</tt> <a class="py-toggle" href="#" id="interfacedoc-toggle" onclick="return toggle('interfacedoc');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.component-module.html#interfacedoc">interfacedoc</a><tt class="py-op">(</tt><tt class="py-param">func</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="interfacedoc-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="interfacedoc-expanded"><a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">func</tt><tt class="py-op">,</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-9" class="py-name" targets="Class timeside.component.ComponentError=timeside.component.ComponentError-class.html"><a title="timeside.component.ComponentError" class="py-name" href="#" onclick="return doclink('link-9', 'ComponentError', 'link-9');">ComponentError</a></tt><tt class="py-op">(</tt><tt class="py-string">"@interfacedoc can't handle staticmethod (try to put @staticmethod above @interfacedoc)"</tt><tt class="py-op">)</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">func</tt><tt class="py-op">.</tt><tt class="py-name">__doc__</tt><tt class="py-op">:</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        <tt class="py-name">func</tt><tt class="py-op">.</tt><tt class="py-name">__doc__</tt> <tt class="py-op">=</tt> <tt class="py-string">"@interfacedoc"</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-name">func</tt><tt class="py-op">.</tt><tt class="py-name">_interfacedoc</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">func</tt> </tt>
+</div><a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"> </tt>
+<a name="MetaComponent"></a><div id="MetaComponent-def"><a name="L77"></a><tt class="py-lineno"> 77</tt> <a class="py-toggle" href="#" id="MetaComponent-toggle" onclick="return toggle('MetaComponent');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.component.MetaComponent-class.html">MetaComponent</a><tt class="py-op">(</tt><tt class="py-base-class">type</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MetaComponent-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="MetaComponent-expanded"><a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">    <tt class="py-docstring">"""Metaclass of the Component class, used mainly to register the interface</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"><tt class="py-docstring">    declared to be implemented by a component."""</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">    <tt id="link-10" class="py-name" targets="Variable timeside.component.MetaComponent.implementations=timeside.component.MetaComponent-class.html#implementations,Function timeside.component.implementations()=timeside.component-module.html#implementations"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-10', 'implementations', 'link-10');">implementations</a></tt>     <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">    <tt id="link-11" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-11', 'implements', 'link-1');">implements</a></tt>          <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">    <tt id="link-12" class="py-name"><a title="timeside.component.MetaComponent.abstract
+timeside.component.abstract" class="py-name" href="#" onclick="return doclink('link-12', 'abstract', 'link-3');">abstract</a></tt>            <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"> </tt>
+<a name="MetaComponent.__new__"></a><div id="MetaComponent.__new__-def"><a name="L85"></a><tt class="py-lineno"> 85</tt> <a class="py-toggle" href="#" id="MetaComponent.__new__-toggle" onclick="return toggle('MetaComponent.__new__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.component.MetaComponent-class.html#__new__">__new__</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">bases</tt><tt class="py-op">,</tt> <tt class="py-param">d</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MetaComponent.__new__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="MetaComponent.__new__-expanded"><a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">        <tt class="py-name">new_class</tt> <tt class="py-op">=</tt> <tt class="py-name">type</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Static Method timeside.component.MetaComponent.__new__()=timeside.component.MetaComponent-class.html#__new__,Static Method timeside.core.MetaProcessor.__new__()=timeside.core.MetaProcessor-class.html#__new__"><a title="timeside.component.MetaComponent.__new__
+timeside.core.MetaProcessor.__new__" class="py-name" href="#" onclick="return doclink('link-13', '__new__', 'link-13');">__new__</a></tt><tt class="py-op">(</tt><tt class="py-name">cls</tt><tt class="py-op">,</tt> <tt id="link-14" class="py-name" targets="Method timeside.analyze.channels.ChannelAnalyser.name()=timeside.analyze.channels.ChannelAnalyser-class.html#name,Method timeside.analyze.dc.MeanDCShiftAnalyser.name()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#name,Method timeside.analyze.duration.DurationAnalyzer.name()=timeside.analyze.duration.DurationAnalyzer-class.html#name,Method timeside.analyze.encoding.EncodingAnalyser.name()=timeside.analyze.encoding.EncodingAnalyser-class.html#name,Method timeside.analyze.format.FormatAnalyser.name()=timeside.analyze.format.FormatAnalyser-class.html#name,Static Method timeside.analyze.max_level.MaxLevelAnalyzer.name()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#name,Method timeside.analyze.mean_level.MeanLevelAnalyser.name()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#name,Method timeside.analyze.resolution.ResolutionAnalyser.name()=timeside.analyze.resolution.ResolutionAnalyser-class.html#name,Method timeside.analyze.samplerate.SampleRateAnalyzer.name()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#name,Method timeside.analyze.vamp.core.VampCoreAnalyzer.name()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#name,Static Method timeside.api.IAnalyzer.name()=timeside.api.IAnalyzer-class.html#name,Static Method timeside.api.IEffect.name()=timeside.api.IEffect-class.html#name,Static Method timeside.api.IGrapher.name()=timeside.api.IGrapher-class.html#name,Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#name,Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#name,Static Method timeside.tests.api.examples.Duration.name()=timeside.tests.api.examples.Duration-class.html#name,Static Method timeside.tests.api.examples.Gain.name()=timeside.tests.api.examples.Gain-class.html#name,Static Method timeside.tests.api.examples.MaxLevel.name()=timeside.tests.api.examples.MaxLevel-class.html#name,Static Method timeside.tests.api.examples.Spectrogram.name()=timeside.tests.api.examples.Spectrogram-class.html#name,Static Method timeside.tests.api.examples.Waveform.name()=timeside.tests.api.examples.Waveform-class.html#name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-14', 'name', 'link-14');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">bases</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-comment"># Register implementations</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt id="link-15" class="py-name"><a title="timeside.component.MetaComponent" class="py-name" href="#" onclick="return doclink('link-15', 'MetaComponent', 'link-0');">MetaComponent</a></tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-16', 'implements', 'link-1');">implements</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt id="link-17" class="py-name"><a title="timeside.component.MetaComponent" class="py-name" href="#" onclick="return doclink('link-17', 'MetaComponent', 'link-0');">MetaComponent</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-18', 'implements', 'link-1');">implements</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">                <tt id="link-19" class="py-name"><a title="timeside.component.MetaComponent" class="py-name" href="#" onclick="return doclink('link-19', 'MetaComponent', 'link-0');">MetaComponent</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-20', 'implementations', 'link-10');">implementations</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">{</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">                    <tt class="py-string">'interface'</tt><tt class="py-op">:</tt> <tt class="py-name">i</tt><tt class="py-op">,</tt>  </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">                    <tt class="py-string">'class'</tt><tt class="py-op">:</tt>     <tt class="py-name">new_class</tt><tt class="py-op">,</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">                    <tt class="py-string">'abstract'</tt><tt class="py-op">:</tt>  <tt id="link-21" class="py-name"><a title="timeside.component.MetaComponent" class="py-name" href="#" onclick="return doclink('link-21', 'MetaComponent', 'link-0');">MetaComponent</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="timeside.component.MetaComponent.abstract
+timeside.component.abstract" class="py-name" href="#" onclick="return doclink('link-22', 'abstract', 'link-3');">abstract</a></tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-comment"># Propagate @interfacedoc</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">for</tt> <tt id="link-23" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-23', 'name', 'link-14');">name</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">new_class</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">            <tt class="py-name">member</tt> <tt class="py-op">=</tt> <tt class="py-name">new_class</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">[</tt><tt id="link-24" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-24', 'name', 'link-14');">name</a></tt><tt class="py-op">]</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">member</tt><tt class="py-op">,</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">                <tt class="py-name">member</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">new_class</tt><tt class="py-op">,</tt> <tt id="link-25" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-25', 'name', 'link-14');">name</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">member</tt><tt class="py-op">.</tt><tt class="py-name">__doc__</tt> <tt class="py-op">==</tt> <tt class="py-string">"@interfacedoc"</tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">                <tt class="py-name">if_member</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt id="link-26" class="py-name"><a title="timeside.component.MetaComponent" class="py-name" href="#" onclick="return doclink('link-26', 'MetaComponent', 'link-0');">MetaComponent</a></tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-27', 'implements', 'link-1');">implements</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt id="link-28" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-28', 'name', 'link-14');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">                        <tt class="py-name">if_member</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt id="link-29" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-29', 'name', 'link-14');">name</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">if_member</tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">                    <tt class="py-keyword">raise</tt> <tt id="link-30" class="py-name"><a title="timeside.component.ComponentError" class="py-name" href="#" onclick="return doclink('link-30', 'ComponentError', 'link-9');">ComponentError</a></tt><tt class="py-op">(</tt><tt class="py-string">"@interfacedoc: %s.%s: no such member in implemented interfaces: %s"</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">                                         <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">new_class</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> <tt id="link-31" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-31', 'name', 'link-14');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-32" class="py-name"><a title="timeside.component.MetaComponent" class="py-name" href="#" onclick="return doclink('link-32', 'MetaComponent', 'link-0');">MetaComponent</a></tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-33', 'implements', 'link-1');">implements</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">                <tt class="py-name">member</tt><tt class="py-op">.</tt><tt class="py-name">__doc__</tt> <tt class="py-op">=</tt> <tt class="py-name">if_member</tt><tt class="py-op">.</tt><tt class="py-name">__doc__</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">                 </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt id="link-34" class="py-name"><a title="timeside.component.MetaComponent" class="py-name" href="#" onclick="return doclink('link-34', 'MetaComponent', 'link-0');">MetaComponent</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-35', 'implements', 'link-1');">implements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">        <tt id="link-36" class="py-name"><a title="timeside.component.MetaComponent" class="py-name" href="#" onclick="return doclink('link-36', 'MetaComponent', 'link-0');">MetaComponent</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="timeside.component.MetaComponent.abstract
+timeside.component.abstract" class="py-name" href="#" onclick="return doclink('link-37', 'abstract', 'link-3');">abstract</a></tt>   <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">new_class</tt> </tt>
+</div></div><a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"> </tt>
+<a name="Component"></a><div id="Component-def"><a name="L117"></a><tt class="py-lineno">117</tt> <a class="py-toggle" href="#" id="Component-toggle" onclick="return toggle('Component');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.component.Component-class.html">Component</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Component-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Component-expanded"><a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">    <tt class="py-docstring">"""Base class of all components"""</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">    <tt class="py-name">__metaclass__</tt> <tt class="py-op">=</tt> <tt id="link-38" class="py-name"><a title="timeside.component.MetaComponent" class="py-name" href="#" onclick="return doclink('link-38', 'MetaComponent', 'link-0');">MetaComponent</a></tt> </tt>
+</div><a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"> </tt>
+<a name="extend_unique"></a><div id="extend_unique-def"><a name="L121"></a><tt class="py-lineno">121</tt> <a class="py-toggle" href="#" id="extend_unique-toggle" onclick="return toggle('extend_unique');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.component-module.html#extend_unique">extend_unique</a><tt class="py-op">(</tt><tt class="py-param">list1</tt><tt class="py-op">,</tt> <tt class="py-param">list2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="extend_unique-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="extend_unique-expanded"><a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">    <tt class="py-docstring">"""Extend list1 with list2 as list.extend(), but doesn't append duplicates</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring">    to list1"""</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list2</tt><tt class="py-op">:</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">item</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list1</tt><tt class="py-op">:</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">            <tt class="py-name">list1</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"> </tt>
+<a name="find_implementations"></a><div id="find_implementations-def"><a name="L128"></a><tt class="py-lineno">128</tt> <a class="py-toggle" href="#" id="find_implementations-toggle" onclick="return toggle('find_implementations');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.component-module.html#find_implementations">find_implementations</a><tt class="py-op">(</tt><tt class="py-param">interface</tt><tt class="py-op">,</tt> <tt class="py-param">recurse</tt><tt class="py-op">,</tt> <tt class="py-param">abstract</tt><tt class="py-op">,</tt> <tt class="py-param">result</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="find_implementations-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="find_implementations-expanded"><a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">    <tt class="py-docstring">"""Find implementations of an interface or of one of its descendants and</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-docstring">    extend result with the classes found."""</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt id="link-39" class="py-name"><a title="timeside.component.MetaComponent" class="py-name" href="#" onclick="return doclink('link-39', 'MetaComponent', 'link-0');">MetaComponent</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-40', 'implementations', 'link-10');">implementations</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">[</tt><tt class="py-string">'interface'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">interface</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt id="link-41" class="py-name"><a title="timeside.component.MetaComponent.abstract
+timeside.component.abstract" class="py-name" href="#" onclick="return doclink('link-41', 'abstract', 'link-3');">abstract</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">item</tt><tt class="py-op">[</tt><tt class="py-string">'abstract'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">            <tt id="link-42" class="py-name" targets="Function timeside.component.extend_unique()=timeside.component-module.html#extend_unique"><a title="timeside.component.extend_unique" class="py-name" href="#" onclick="return doclink('link-42', 'extend_unique', 'link-42');">extend_unique</a></tt><tt class="py-op">(</tt><tt id="link-43" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-43', 'result', 'link-4');">result</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">[</tt><tt class="py-string">'class'</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">recurse</tt><tt class="py-op">:</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">        <tt class="py-name">subinterfaces</tt> <tt class="py-op">=</tt> <tt class="py-name">interface</tt><tt class="py-op">.</tt><tt class="py-name">__subclasses__</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">subinterfaces</tt><tt class="py-op">:</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">subinterfaces</tt><tt class="py-op">:</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">                <tt id="link-44" class="py-name"><a title="timeside.component.find_implementations" class="py-name" href="#" onclick="return doclink('link-44', 'find_implementations', 'link-5');">find_implementations</a></tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">recurse</tt><tt class="py-op">,</tt> <tt id="link-45" class="py-name"><a title="timeside.component.MetaComponent.abstract
+timeside.component.abstract" class="py-name" href="#" onclick="return doclink('link-45', 'abstract', 'link-3');">abstract</a></tt><tt class="py-op">,</tt> <tt id="link-46" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-46', 'result', 'link-4');">result</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"> </tt>
+<a name="ComponentError"></a><div id="ComponentError-def"><a name="L141"></a><tt class="py-lineno">141</tt> <a class="py-toggle" href="#" id="ComponentError-toggle" onclick="return toggle('ComponentError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.component.ComponentError-class.html">ComponentError</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ComponentError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ComponentError-expanded"><a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.component.Component-class.html b/doc/epydoc/timeside.component.Component-class.html
new file mode 100644 (file)
index 0000000..54df831
--- /dev/null
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.component.Component</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.component-module.html">Module&nbsp;component</a> ::
+        Class&nbsp;Component
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.component.Component-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Component</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.component-pysrc.html#Component">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">Component</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="timeside.core.Processor-class.html">core.Processor</a></li><li class="private">, <a href="timeside.tests.testcomponent.C1-class.html" onclick="show_private();">tests.testcomponent.C1</a></li><li class="private">, <a href="timeside.tests.testcomponent.C10-class.html" onclick="show_private();">tests.testcomponent.C10</a></li><li class="private">, <a href="timeside.tests.testcomponent.C11-class.html" onclick="show_private();">tests.testcomponent.C11</a></li><li class="private">, <a href="timeside.tests.testcomponent.C2-class.html" onclick="show_private();">tests.testcomponent.C2</a></li><li class="private">, <a href="timeside.tests.testcomponent.C3-class.html" onclick="show_private();">tests.testcomponent.C3</a></li><li class="private">, <a href="timeside.tests.testcomponent.C4-class.html" onclick="show_private();">tests.testcomponent.C4</a></li><li class="private">, <a href="timeside.tests.testcomponent.C5-class.html" onclick="show_private();">tests.testcomponent.C5</a></li><li class="private">, <a href="timeside.tests.testcomponent.C6-class.html" onclick="show_private();">tests.testcomponent.C6</a></li><li class="private">, <a href="timeside.tests.testcomponent.C8-class.html" onclick="show_private();">tests.testcomponent.C8</a></li><li class="private">, <a href="timeside.tests.testcomponent.C9-class.html" onclick="show_private();">tests.testcomponent.C9</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<p>Base class of all components</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.component.MetaComponent-class.html" class="summary-name">__metaclass__</a><br />
+      Metaclass of the Component class, used mainly to register the 
+        interface declared to be implemented by a component.
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.component.ComponentError-class.html b/doc/epydoc/timeside.component.ComponentError-class.html
new file mode 100644 (file)
index 0000000..e411324
--- /dev/null
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.component.ComponentError</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.component-module.html">Module&nbsp;component</a> ::
+        Class&nbsp;ComponentError
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.component.ComponentError-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ComponentError</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.component-pysrc.html#ComponentError">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+              object --+        
+                       |        
+exceptions.BaseException --+    
+                           |    
+        exceptions.Exception --+
+                               |
+                              <strong class="uidshort">ComponentError</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.Exception</code></b>:
+      <code>__init__</code>,
+      <code>__new__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__getitem__</code>,
+      <code>__getslice__</code>,
+      <code>__reduce__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__setstate__</code>,
+      <code>__str__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__hash__</code>,
+      <code>__reduce_ex__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+      <code>args</code>,
+      <code>message</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.component.Interface-class.html b/doc/epydoc/timeside.component.Interface-class.html
new file mode 100644 (file)
index 0000000..2064035
--- /dev/null
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.component.Interface</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.component-module.html">Module&nbsp;component</a> ::
+        Class&nbsp;Interface
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.component.Interface-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Interface</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.component-pysrc.html#Interface">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">Interface</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="timeside.api.IProcessor-class.html">api.IProcessor</a></li><li class="private">, <a href="timeside.tests.testcomponent.I1-class.html" onclick="show_private();">tests.testcomponent.I1</a></li><li class="private">, <a href="timeside.tests.testcomponent.I10-class.html" onclick="show_private();">tests.testcomponent.I10</a></li><li class="private">, <a href="timeside.tests.testcomponent.I11-class.html" onclick="show_private();">tests.testcomponent.I11</a></li><li class="private">, <a href="timeside.tests.testcomponent.I2-class.html" onclick="show_private();">tests.testcomponent.I2</a></li><li class="private">, <a href="timeside.tests.testcomponent.I3-class.html" onclick="show_private();">tests.testcomponent.I3</a></li><li class="private">, <a href="timeside.tests.testcomponent.I4-class.html" onclick="show_private();">tests.testcomponent.I4</a></li><li class="private">, <a href="timeside.tests.testcomponent.I5-class.html" onclick="show_private();">tests.testcomponent.I5</a></li><li class="private">, <a href="timeside.tests.testcomponent.I7-class.html" onclick="show_private();">tests.testcomponent.I7</a></li><li class="private">, <a href="timeside.tests.testcomponent.I8-class.html" onclick="show_private();">tests.testcomponent.I8</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<p>Marker base class for interfaces.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.component.MetaComponent-class.html b/doc/epydoc/timeside.component.MetaComponent-class.html
new file mode 100644 (file)
index 0000000..c208d94
--- /dev/null
@@ -0,0 +1,374 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.component.MetaComponent</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.component-module.html">Module&nbsp;component</a> ::
+        Class&nbsp;MetaComponent
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.component.MetaComponent-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== TYPE DESCRIPTION ==================== -->
+<h1 class="epydoc">Type MetaComponent</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.component-pysrc.html#MetaComponent">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+    
+         |    
+      type --+
+             |
+            <strong class="uidshort">MetaComponent</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="timeside.core.MetaProcessor-class.html">core.MetaProcessor</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<p>Metaclass of the Component class, used mainly to register the 
+  interface declared to be implemented by a component.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>type</code></b>:
+      <code>__call__</code>,
+      <code>__cmp__</code>,
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__subclasses__</code>,
+      <code>mro</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__init__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">a new object with type S, a subtype of T</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.component.MetaComponent-class.html#__new__" class="summary-sig-name">__new__</a>(<span class="summary-sig-arg">cls</span>,
+        <span class="summary-sig-arg">name</span>,
+        <span class="summary-sig-arg">bases</span>,
+        <span class="summary-sig-arg">d</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.component-pysrc.html#MetaComponent.__new__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="abstract"></a><span class="summary-name">abstract</span> = <code title="False">False</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.component.MetaComponent-class.html#implementations" class="summary-name">implementations</a> = <code title="[{'abstract': True,
+  'class': &lt;class 'timeside.core.Processor'&gt;,
+  'interface': &lt;class 'timeside.api.IProcessor'&gt;},
+ {'abstract': False,
+  'class': &lt;class 'timeside.decode.ogg.OggDecoder'&gt;,
+  'interface': &lt;class 'timeside.api.IDecoder'&gt;},
+ {'abstract': False,
+  'class': &lt;class 'timeside.decode.flac.FlacDecoder'&gt;,
+..."><code class="variable-group">[</code><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">abstract</code><code class="variable-quote">'</code><code class="variable-op">: </code>True<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">class</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timesid<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="implements"></a><span class="summary-name">implements</span> = <code title="[&lt;class 'timeside.tests.testcomponent.I1'&gt;]"><code class="variable-group">[</code>&lt;class 'timeside.tests.testcomponent.I1'&gt;<code class="variable-group">]</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>type</code></b>:
+      <code>__base__</code>,
+      <code>__bases__</code>,
+      <code>__basicsize__</code>,
+      <code>__dictoffset__</code>,
+      <code>__flags__</code>,
+      <code>__itemsize__</code>,
+      <code>__mro__</code>,
+      <code>__name__</code>,
+      <code>__weakrefoffset__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__new__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">cls</span>,
+        <span class="sig-arg">name</span>,
+        <span class="sig-arg">bases</span>,
+        <span class="sig-arg">d</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.component-pysrc.html#MetaComponent.__new__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Returns: a new object with type S, a subtype of T</dt>
+    <dt>Overrides:
+        object.__new__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== CLASS VARIABLE DETAILS ==================== -->
+<a name="section-ClassVariableDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variable Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariableDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="implementations"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">implementations</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">abstract</code><code class="variable-quote">'</code><code class="variable-op">: </code>True<code class="variable-op">,</code>
+  <code class="variable-quote">'</code><code class="variable-string">class</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.core.Processor'&gt;<code class="variable-op">,</code>
+  <code class="variable-quote">'</code><code class="variable-string">interface</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.api.IProcessor'&gt;<code class="variable-group">}</code><code class="variable-op">,</code>
+ <code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">abstract</code><code class="variable-quote">'</code><code class="variable-op">: </code>False<code class="variable-op">,</code>
+  <code class="variable-quote">'</code><code class="variable-string">class</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.decode.ogg.OggDecoder'&gt;<code class="variable-op">,</code>
+  <code class="variable-quote">'</code><code class="variable-string">interface</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.api.IDecoder'&gt;<code class="variable-group">}</code><code class="variable-op">,</code>
+ <code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">abstract</code><code class="variable-quote">'</code><code class="variable-op">: </code>False<code class="variable-op">,</code>
+  <code class="variable-quote">'</code><code class="variable-string">class</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.decode.flac.FlacDecoder'&gt;<code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.core-module.html b/doc/epydoc/timeside.core-module.html
new file mode 100644 (file)
index 0000000..a178470
--- /dev/null
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Module&nbsp;core
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.core-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module core</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.core-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.core.MetaProcessor-class.html" class="summary-name">MetaProcessor</a><br />
+      Metaclass of the Processor class, used mainly for ensuring that 
+        processor id's are wellformed and unique
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.core.Processor-class.html" class="summary-name">Processor</a><br />
+      Base component class of all processors
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.core.FixedSizeInputAdapter-class.html" class="summary-name">FixedSizeInputAdapter</a><br />
+      Utility to make it easier to write processors which require 
+        fixed-sized input buffers.
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.core.ProcessPipe-class.html" class="summary-name">ProcessPipe</a><br />
+      Handle a pipe of processors
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="processors"></a><span class="summary-sig-name">processors</span>(<span class="summary-sig-arg">interface</span>=<span class="summary-sig-default">&lt;class 'timeside.api.IProcessor'&gt;</span>,
+        <span class="summary-sig-arg">recurse</span>=<span class="summary-sig-default">True</span>)</span><br />
+      Returns the processors implementing a given interface and, if 
+      recurse, any of the descendants of this interface.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#processors">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_processor"></a><span class="summary-sig-name">get_processor</span>(<span class="summary-sig-arg">processor_id</span>)</span><br />
+      Return a processor by its id</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#get_processor">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="abstract"></a><span class="summary-sig-name">abstract</span>()</span><br />
+      Declare a component as abstract when placed in the class header</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.component-pysrc.html#abstract">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="implements"></a><span class="summary-sig-name">implements</span>(<span class="summary-sig-arg">*interfaces</span>)</span><br />
+      Registers the interfaces implemented by a component when placed in 
+      the class header</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.component-pysrc.html#implements">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="interfacedoc"></a><span class="summary-sig-name">interfacedoc</span>(<span class="summary-sig-arg">func</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.component-pysrc.html#interfacedoc">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.core-module.html#_processors" class="summary-name" onclick="show_private();">_processors</a> = <code title="{'dc': &lt;class 'timeside.analyze.dc.MeanDCShiftAnalyser'&gt;,
+ 'duration': &lt;class 'timeside.analyze.duration.DurationAnalyzer'&gt;,
+ 'encoding': &lt;class 'timeside.analyze.encoding.EncodingAnalyser'&gt;,
+ 'flacdec': &lt;class 'timeside.decode.flac.FlacDecoder'&gt;,
+ 'flacenc': &lt;class 'timeside.encode.flac.FlacEncoder'&gt;,
+ 'format': &lt;class 'timeside.analyze.format.FormatAnalyser'&gt;,
+ 'max_level': &lt;class 'timeside.analyze.max_level.MaxLevelAnalyzer'&gt;,
+ 'meanlevel': &lt;class 'timeside.analyze.mean_level.MeanLevelAnalyser'&gt;,
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">dc</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.analyze.dc.MeanDCShiftAn<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="_processors"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">_processors</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">dc</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.analyze.dc.MeanDCShiftAnalyser'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">duration</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.analyze.duration.DurationAnalyzer'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">encoding</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.analyze.encoding.EncodingAnalyser'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">flacdec</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.decode.flac.FlacDecoder'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">flacenc</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.encode.flac.FlacEncoder'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">format</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.analyze.format.FormatAnalyser'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">max_level</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.analyze.max_level.MaxLevelAnalyzer'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">meanlevel</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'timeside.analyze.mean_level.MeanLevelAnalyser'&gt;<code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.core-pysrc.html b/doc/epydoc/timeside.core-pysrc.html
new file mode 100644 (file)
index 0000000..5bc23d4
--- /dev/null
@@ -0,0 +1,716 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Module&nbsp;core
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.core-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.core-module.html">Module timeside.core</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2009 Olivier Guilyardi &lt;olivier@samalyse.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module timeside.component=timeside.component-module.html"><a title="timeside.component" class="py-name" href="#" onclick="return doclink('link-1', 'component', 'link-1');">component</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-2', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-3', 'api', 'link-3');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class timeside.api.IProcessor=timeside.api.IProcessor-class.html"><a title="timeside.api.IProcessor" class="py-name" href="#" onclick="return doclink('link-4', 'IProcessor', 'link-4');">IProcessor</a></tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-5" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-5', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Module timeside.exceptions=timeside.exceptions-module.html"><a title="timeside.exceptions" class="py-name" href="#" onclick="return doclink('link-6', 'exceptions', 'link-6');">exceptions</a></tt> <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Class timeside.exceptions.Error=timeside.exceptions.Error-class.html"><a title="timeside.exceptions.Error" class="py-name" href="#" onclick="return doclink('link-7', 'Error', 'link-7');">Error</a></tt><tt class="py-op">,</tt> <tt id="link-8" class="py-name" targets="Class timeside.exceptions.ApiError=timeside.exceptions.ApiError-class.html"><a title="timeside.exceptions.ApiError" class="py-name" href="#" onclick="return doclink('link-8', 'ApiError', 'link-8');">ApiError</a></tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-name">__all__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'Processor'</tt><tt class="py-op">,</tt> <tt class="py-string">'MetaProcessor'</tt><tt class="py-op">,</tt> <tt class="py-string">'implements'</tt><tt class="py-op">,</tt> <tt class="py-string">'abstract'</tt><tt class="py-op">,</tt>  </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">           <tt class="py-string">'interfacedoc'</tt><tt class="py-op">,</tt> <tt class="py-string">'processors'</tt><tt class="py-op">,</tt> <tt class="py-string">'get_processor'</tt><tt class="py-op">,</tt> <tt class="py-string">'ProcessPipe'</tt><tt class="py-op">,</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">           <tt class="py-string">'FixedSizeInputAdapter'</tt><tt class="py-op">]</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt id="link-9" class="py-name" targets="Variable timeside.core._processors=timeside.core-module.html#_processors"><a title="timeside.core._processors" class="py-name" href="#" onclick="return doclink('link-9', '_processors', 'link-9');">_processors</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="MetaProcessor"></a><div id="MetaProcessor-def"><a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <a class="py-toggle" href="#" id="MetaProcessor-toggle" onclick="return toggle('MetaProcessor');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.core.MetaProcessor-class.html">MetaProcessor</a><tt class="py-op">(</tt><tt class="py-base-class">MetaComponent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MetaProcessor-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="MetaProcessor-expanded"><a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">    <tt class="py-docstring">"""Metaclass of the Processor class, used mainly for ensuring that processor</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-docstring">    id's are wellformed and unique"""</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">    <tt id="link-10" class="py-name" targets="Variable timeside.core.MetaProcessor.valid_id=timeside.core.MetaProcessor-class.html#valid_id"><a title="timeside.core.MetaProcessor.valid_id" class="py-name" href="#" onclick="return doclink('link-10', 'valid_id', 'link-10');">valid_id</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">"^[a-z][_a-z0-9]*$"</tt><tt class="py-op">)</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"> </tt>
+<a name="MetaProcessor.__new__"></a><div id="MetaProcessor.__new__-def"><a name="L38"></a><tt class="py-lineno"> 38</tt> <a class="py-toggle" href="#" id="MetaProcessor.__new__-toggle" onclick="return toggle('MetaProcessor.__new__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.MetaProcessor-class.html#__new__">__new__</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">bases</tt><tt class="py-op">,</tt> <tt class="py-param">d</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MetaProcessor.__new__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="MetaProcessor.__new__-expanded"><a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">        <tt class="py-name">new_class</tt> <tt class="py-op">=</tt> <tt id="link-11" class="py-name" targets="Class timeside.component.MetaComponent=timeside.component.MetaComponent-class.html"><a title="timeside.component.MetaComponent" class="py-name" href="#" onclick="return doclink('link-11', 'MetaComponent', 'link-11');">MetaComponent</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Static Method timeside.component.MetaComponent.__new__()=timeside.component.MetaComponent-class.html#__new__,Static Method timeside.core.MetaProcessor.__new__()=timeside.core.MetaProcessor-class.html#__new__"><a title="timeside.component.MetaComponent.__new__
+timeside.core.MetaProcessor.__new__" class="py-name" href="#" onclick="return doclink('link-12', '__new__', 'link-12');">__new__</a></tt><tt class="py-op">(</tt><tt class="py-name">cls</tt><tt class="py-op">,</tt> <tt id="link-13" class="py-name" targets="Method timeside.analyze.channels.ChannelAnalyser.name()=timeside.analyze.channels.ChannelAnalyser-class.html#name,Method timeside.analyze.dc.MeanDCShiftAnalyser.name()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#name,Method timeside.analyze.duration.DurationAnalyzer.name()=timeside.analyze.duration.DurationAnalyzer-class.html#name,Method timeside.analyze.encoding.EncodingAnalyser.name()=timeside.analyze.encoding.EncodingAnalyser-class.html#name,Method timeside.analyze.format.FormatAnalyser.name()=timeside.analyze.format.FormatAnalyser-class.html#name,Static Method timeside.analyze.max_level.MaxLevelAnalyzer.name()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#name,Method timeside.analyze.mean_level.MeanLevelAnalyser.name()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#name,Method timeside.analyze.resolution.ResolutionAnalyser.name()=timeside.analyze.resolution.ResolutionAnalyser-class.html#name,Method timeside.analyze.samplerate.SampleRateAnalyzer.name()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#name,Method timeside.analyze.vamp.core.VampCoreAnalyzer.name()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#name,Static Method timeside.api.IAnalyzer.name()=timeside.api.IAnalyzer-class.html#name,Static Method timeside.api.IEffect.name()=timeside.api.IEffect-class.html#name,Static Method timeside.api.IGrapher.name()=timeside.api.IGrapher-class.html#name,Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#name,Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#name,Static Method timeside.tests.api.examples.Duration.name()=timeside.tests.api.examples.Duration-class.html#name,Static Method timeside.tests.api.examples.Gain.name()=timeside.tests.api.examples.Gain-class.html#name,Static Method timeside.tests.api.examples.MaxLevel.name()=timeside.tests.api.examples.MaxLevel-class.html#name,Static Method timeside.tests.api.examples.Spectrogram.name()=timeside.tests.api.examples.Spectrogram-class.html#name,Static Method timeside.tests.api.examples.Waveform.name()=timeside.tests.api.examples.Waveform-class.html#name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-13', 'name', 'link-13');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">bases</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">new_class</tt> <tt class="py-keyword">in</tt> <tt id="link-14" class="py-name" targets="Variable timeside.component.MetaComponent.implementations=timeside.component.MetaComponent-class.html#implementations,Function timeside.component.implementations()=timeside.component-module.html#implementations"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-14', 'implementations', 'link-14');">implementations</a></tt><tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="timeside.api.IProcessor" class="py-name" href="#" onclick="return doclink('link-15', 'IProcessor', 'link-4');">IProcessor</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">            <tt id="link-16" class="py-name" targets="Static Method timeside.analyze.channels.ChannelAnalyser.id()=timeside.analyze.channels.ChannelAnalyser-class.html#id,Static Method timeside.analyze.dc.MeanDCShiftAnalyser.id()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#id,Static Method timeside.analyze.duration.DurationAnalyzer.id()=timeside.analyze.duration.DurationAnalyzer-class.html#id,Static Method timeside.analyze.encoding.EncodingAnalyser.id()=timeside.analyze.encoding.EncodingAnalyser-class.html#id,Static Method timeside.analyze.format.FormatAnalyser.id()=timeside.analyze.format.FormatAnalyser-class.html#id,Static Method timeside.analyze.max_level.MaxLevelAnalyzer.id()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#id,Static Method timeside.analyze.mean_level.MeanLevelAnalyser.id()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#id,Static Method timeside.analyze.resolution.ResolutionAnalyser.id()=timeside.analyze.resolution.ResolutionAnalyser-class.html#id,Static Method timeside.analyze.samplerate.SampleRateAnalyzer.id()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#id,Method timeside.analyze.vamp.core.VampCoreAnalyzer.id()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#id,Static Method timeside.api.IProcessor.id()=timeside.api.IProcessor-class.html#id,Static Method timeside.decode.flac.FlacDecoder.id()=timeside.decode.flac.FlacDecoder-class.html#id,Static Method timeside.decode.mp3.Mp3Decoder.id()=timeside.decode.mp3.Mp3Decoder-class.html#id,Static Method timeside.decode.ogg.OggDecoder.id()=timeside.decode.ogg.OggDecoder-class.html#id,Static Method timeside.decode.wav.WavDecoder.id()=timeside.decode.wav.WavDecoder-class.html#id,Static Method timeside.encode.flac.FlacEncoder.id()=timeside.encode.flac.FlacEncoder-class.html#id,Static Method timeside.encode.mp3.Mp3Encoder.id()=timeside.encode.mp3.Mp3Encoder-class.html#id,Static Method timeside.encode.ogg.OggVorbisEncoder.id()=timeside.encode.ogg.OggVorbisEncoder-class.html#id,Static Method timeside.encode.wav.WavEncoder.id()=timeside.encode.wav.WavEncoder-class.html#id,Static Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#id,Static Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#id,Static Method timeside.tests.api.examples.Duration.id()=timeside.tests.api.examples.Duration-class.html#id,Static Method timeside.tests.api.examples.FileDecoder.id()=timeside.tests.api.examples.FileDecoder-class.html#id,Static Method timeside.tests.api.examples.FixedInputProcessor.id()=timeside.tests.api.examples.FixedInputProcessor-class.html#id,Static Method timeside.tests.api.examples.Gain.id()=timeside.tests.api.examples.Gain-class.html#id,Static Method timeside.tests.api.examples.MaxLevel.id()=timeside.tests.api.examples.MaxLevel-class.html#id,Static Method timeside.tests.api.examples.Spectrogram.id()=timeside.tests.api.examples.Spectrogram-class.html#id,Static Method timeside.tests.api.examples.WavEncoder.id()=timeside.tests.api.examples.WavEncoder-class.html#id,Static Method timeside.tests.api.examples.Waveform.id()=timeside.tests.api.examples.Waveform-class.html#id,Static Method timeside.tests.api.gstreamer.FileDecoder.id()=timeside.tests.api.gstreamer.FileDecoder-class.html#id,Static Method timeside.tests.api.gstreamer.WavEncoder.id()=timeside.tests.api.gstreamer.WavEncoder-class.html#id"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-16', 'id', 'link-16');">id</a></tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">new_class</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-17', 'id', 'link-16');">id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-18" class="py-name"><a title="timeside.core._processors" class="py-name" href="#" onclick="return doclink('link-18', '_processors', 'link-9');">_processors</a></tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt id="link-19" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-19', 'id', 'link-16');">id</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt id="link-20" class="py-name"><a title="timeside.exceptions.ApiError" class="py-name" href="#" onclick="return doclink('link-20', 'ApiError', 'link-8');">ApiError</a></tt><tt class="py-op">(</tt><tt class="py-string">"%s and %s have the same id: '%s'"</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">                    <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">new_class</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> <tt id="link-21" class="py-name"><a title="timeside.core._processors" class="py-name" href="#" onclick="return doclink('link-21', '_processors', 'link-9');">_processors</a></tt><tt class="py-op">[</tt><tt id="link-22" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-22', 'id', 'link-16');">id</a></tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> <tt id="link-23" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-23', 'id', 'link-16');">id</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-24" class="py-name" targets="Class timeside.core.MetaProcessor=timeside.core.MetaProcessor-class.html"><a title="timeside.core.MetaProcessor" class="py-name" href="#" onclick="return doclink('link-24', 'MetaProcessor', 'link-24');">MetaProcessor</a></tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="timeside.core.MetaProcessor.valid_id" class="py-name" href="#" onclick="return doclink('link-25', 'valid_id', 'link-10');">valid_id</a></tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt id="link-26" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-26', 'id', 'link-16');">id</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt id="link-27" class="py-name"><a title="timeside.exceptions.ApiError" class="py-name" href="#" onclick="return doclink('link-27', 'ApiError', 'link-8');">ApiError</a></tt><tt class="py-op">(</tt><tt class="py-string">"%s has a malformed id: '%s'"</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">                    <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">new_class</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> <tt id="link-28" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-28', 'id', 'link-16');">id</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">            <tt id="link-29" class="py-name"><a title="timeside.core._processors" class="py-name" href="#" onclick="return doclink('link-29', '_processors', 'link-9');">_processors</a></tt><tt class="py-op">[</tt><tt id="link-30" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-30', 'id', 'link-16');">id</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">new_class</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">new_class</tt> </tt>
+</div></div><a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"> </tt>
+<a name="Processor"></a><div id="Processor-def"><a name="L53"></a><tt class="py-lineno"> 53</tt> <a class="py-toggle" href="#" id="Processor-toggle" onclick="return toggle('Processor');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.core.Processor-class.html">Processor</a><tt class="py-op">(</tt><tt class="py-base-class">Component</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Processor-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Processor-expanded"><a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">    <tt class="py-docstring">"""Base component class of all processors"""</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">    <tt class="py-name">__metaclass__</tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name"><a title="timeside.core.MetaProcessor" class="py-name" href="#" onclick="return doclink('link-31', 'MetaProcessor', 'link-24');">MetaProcessor</a></tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">    <tt id="link-32" class="py-name" targets="Variable timeside.component.MetaComponent.abstract=timeside.component.MetaComponent-class.html#abstract,Function timeside.component.abstract()=timeside.component-module.html#abstract"><a title="timeside.component.MetaComponent.abstract
+timeside.component.abstract" class="py-name" href="#" onclick="return doclink('link-32', 'abstract', 'link-32');">abstract</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">    <tt id="link-33" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-33', 'implements', 'link-33');">implements</a></tt><tt class="py-op">(</tt><tt id="link-34" class="py-name"><a title="timeside.api.IProcessor" class="py-name" href="#" onclick="return doclink('link-34', 'IProcessor', 'link-4');">IProcessor</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Processor.setup"></a><div id="Processor.setup-def"><a name="L61"></a><tt class="py-lineno"> 61</tt> <a class="py-toggle" href="#" id="Processor.setup-toggle" onclick="return toggle('Processor.setup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.Processor-class.html#setup">setup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channels</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">samplerate</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">nframes</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Processor.setup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Processor.setup-expanded"><a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">input_channels</tt>   <tt class="py-op">=</tt> <tt id="link-35" class="py-name" targets="Module timeside.analyze.channels=timeside.analyze.channels-module.html,Method timeside.api.IProcessor.channels()=timeside.api.IProcessor-class.html#channels,Method timeside.core.Processor.channels()=timeside.core.Processor-class.html#channels,Method timeside.tests.api.examples.FileDecoder.channels()=timeside.tests.api.examples.FileDecoder-class.html#channels,Method timeside.tests.api.gstreamer.FileDecoder.channels()=timeside.tests.api.gstreamer.FileDecoder-class.html#channels"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-35', 'channels', 'link-35');">channels</a></tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">input_samplerate</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name" targets="Module timeside.analyze.samplerate=timeside.analyze.samplerate-module.html,Method timeside.api.IProcessor.samplerate()=timeside.api.IProcessor-class.html#samplerate,Method timeside.core.Processor.samplerate()=timeside.core.Processor-class.html#samplerate,Method timeside.tests.api.examples.FileDecoder.samplerate()=timeside.tests.api.examples.FileDecoder-class.html#samplerate,Method timeside.tests.api.gstreamer.FileDecoder.samplerate()=timeside.tests.api.gstreamer.FileDecoder-class.html#samplerate,Variable timeside.tests.api.test_lolevel.samplerate=timeside.tests.api.test_lolevel-module.html#samplerate"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-36', 'samplerate', 'link-36');">samplerate</a></tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">input_nframes</tt>    <tt class="py-op">=</tt> <tt id="link-37" class="py-name" targets="Method timeside.api.IProcessor.nframes()=timeside.api.IProcessor-class.html#nframes,Method timeside.core.FixedSizeInputAdapter.nframes()=timeside.core.FixedSizeInputAdapter-class.html#nframes,Method timeside.core.Processor.nframes()=timeside.core.Processor-class.html#nframes,Method timeside.tests.api.examples.FileDecoder.nframes()=timeside.tests.api.examples.FileDecoder-class.html#nframes,Method timeside.tests.api.gstreamer.FileDecoder.nframes()=timeside.tests.api.gstreamer.FileDecoder-class.html#nframes,Variable timeside.tests.api.test_lolevel.nframes=timeside.tests.api.test_lolevel-module.html#nframes"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-37', 'nframes', 'link-37');">nframes</a></tt> </tt>
+</div><a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">    <tt class="py-comment"># default channels(), samplerate() and nframes() implementations returns </tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment"># the input characteristics, but processors may change this behaviour by </tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment"># overloading those methods</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Processor.channels"></a><div id="Processor.channels-def"><a name="L70"></a><tt class="py-lineno"> 70</tt> <a class="py-toggle" href="#" id="Processor.channels-toggle" onclick="return toggle('Processor.channels');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.Processor-class.html#channels">channels</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Processor.channels-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Processor.channels-expanded"><a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">input_channels</tt> </tt>
+</div><a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Processor.samplerate"></a><div id="Processor.samplerate-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="Processor.samplerate-toggle" onclick="return toggle('Processor.samplerate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.Processor-class.html#samplerate">samplerate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Processor.samplerate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Processor.samplerate-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">input_samplerate</tt> </tt>
+</div><a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Processor.nframes"></a><div id="Processor.nframes-def"><a name="L78"></a><tt class="py-lineno"> 78</tt> <a class="py-toggle" href="#" id="Processor.nframes-toggle" onclick="return toggle('Processor.nframes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.Processor-class.html#nframes">nframes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Processor.nframes-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Processor.nframes-expanded"><a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">input_nframes</tt> </tt>
+</div><a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Processor.process"></a><div id="Processor.process-def"><a name="L82"></a><tt class="py-lineno"> 82</tt> <a class="py-toggle" href="#" id="Processor.process-toggle" onclick="return toggle('Processor.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.Processor-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Processor.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Processor.process-expanded"><a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-38" class="py-name" targets="Variable timeside.tests.api.test_lolevel.frames=timeside.tests.api.test_lolevel-module.html#frames"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-38', 'frames', 'link-38');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-39" class="py-name" targets="Variable timeside.tests.api.test_lolevel.eod=timeside.tests.api.test_lolevel-module.html#eod"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-39', 'eod', 'link-39');">eod</a></tt> </tt>
+</div><a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Processor.release"></a><div id="Processor.release-def"><a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="Processor.release-toggle" onclick="return toggle('Processor.release');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.Processor-class.html#release">release</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Processor.release-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Processor.release-expanded"><a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"> </tt>
+<a name="Processor.__del__"></a><div id="Processor.__del__-def"><a name="L89"></a><tt class="py-lineno"> 89</tt> <a class="py-toggle" href="#" id="Processor.__del__-toggle" onclick="return toggle('Processor.__del__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.Processor-class.html#__del__">__del__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Processor.__del__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Processor.__del__-expanded"><a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Method timeside.api.IProcessor.release()=timeside.api.IProcessor-class.html#release,Method timeside.core.Processor.release()=timeside.core.Processor-class.html#release,Method timeside.tests.api.examples.FileDecoder.release()=timeside.tests.api.examples.FileDecoder-class.html#release,Method timeside.tests.api.gstreamer.FileDecoder.release()=timeside.tests.api.gstreamer.FileDecoder-class.html#release"><a title="timeside.api.IProcessor.release
+timeside.core.Processor.release
+timeside.tests.api.examples.FileDecoder.release
+timeside.tests.api.gstreamer.FileDecoder.release" class="py-name" href="#" onclick="return doclink('link-40', 'release', 'link-40');">release</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"> </tt>
+<a name="Processor.__or__"></a><div id="Processor.__or__-def"><a name="L92"></a><tt class="py-lineno"> 92</tt> <a class="py-toggle" href="#" id="Processor.__or__-toggle" onclick="return toggle('Processor.__or__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.Processor-class.html#__or__">__or__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Processor.__or__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Processor.__or__-expanded"><a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-41" class="py-name" targets="Class timeside.core.ProcessPipe=timeside.core.ProcessPipe-class.html"><a title="timeside.core.ProcessPipe" class="py-name" href="#" onclick="return doclink('link-41', 'ProcessPipe', 'link-41');">ProcessPipe</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"> </tt>
+<a name="FixedSizeInputAdapter"></a><div id="FixedSizeInputAdapter-def"><a name="L95"></a><tt class="py-lineno"> 95</tt> <a class="py-toggle" href="#" id="FixedSizeInputAdapter-toggle" onclick="return toggle('FixedSizeInputAdapter');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.core.FixedSizeInputAdapter-class.html">FixedSizeInputAdapter</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FixedSizeInputAdapter-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="FixedSizeInputAdapter-expanded"><a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">    <tt class="py-docstring">"""Utility to make it easier to write processors which require fixed-sized</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"><tt class="py-docstring">    input buffers."""</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"> </tt>
+<a name="FixedSizeInputAdapter.__init__"></a><div id="FixedSizeInputAdapter.__init__-def"><a name="L99"></a><tt class="py-lineno"> 99</tt> <a class="py-toggle" href="#" id="FixedSizeInputAdapter.__init__-toggle" onclick="return toggle('FixedSizeInputAdapter.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.FixedSizeInputAdapter-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">buffer_size</tt><tt class="py-op">,</tt> <tt class="py-param">channels</tt><tt class="py-op">,</tt> <tt class="py-param">pad</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FixedSizeInputAdapter.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FixedSizeInputAdapter.__init__-expanded"><a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-docstring">"""Construct a new adapter: buffer_size is the desired buffer size in frames,</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"><tt class="py-docstring">        channels the number of channels, and pad indicates whether the last block should </tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"><tt class="py-docstring">        be padded with zeros."""</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer</tt>      <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">empty</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">buffer_size</tt><tt class="py-op">,</tt> <tt id="link-42" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-42', 'channels', 'link-35');">channels</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt> <tt class="py-op">=</tt> <tt class="py-name">buffer_size</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">len</tt>         <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pad</tt>         <tt class="py-op">=</tt> <tt class="py-name">pad</tt> </tt>
+</div><a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"> </tt>
+<a name="FixedSizeInputAdapter.nframes"></a><div id="FixedSizeInputAdapter.nframes-def"><a name="L109"></a><tt class="py-lineno">109</tt> <a class="py-toggle" href="#" id="FixedSizeInputAdapter.nframes-toggle" onclick="return toggle('FixedSizeInputAdapter.nframes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.FixedSizeInputAdapter-class.html#nframes">nframes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">input_nframes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FixedSizeInputAdapter.nframes-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FixedSizeInputAdapter.nframes-expanded"><a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return the total number of frames that this adapter will output according to the</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"><tt class="py-docstring">        input_nframes argument"""</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">        <tt id="link-43" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-43', 'nframes', 'link-37');">nframes</a></tt> <tt class="py-op">=</tt> <tt class="py-name">input_nframes</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pad</tt><tt class="py-op">:</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">            <tt class="py-name">mod</tt> <tt class="py-op">=</tt> <tt class="py-name">input_nframes</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">mod</tt><tt class="py-op">:</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">                <tt id="link-44" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-44', 'nframes', 'link-37');">nframes</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt> <tt class="py-op">-</tt> <tt class="py-name">mod</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-45" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-45', 'nframes', 'link-37');">nframes</a></tt>                 </tt>
+</div><a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"> </tt>
+<a name="FixedSizeInputAdapter.process"></a><div id="FixedSizeInputAdapter.process-def"><a name="L122"></a><tt class="py-lineno">122</tt> <a class="py-toggle" href="#" id="FixedSizeInputAdapter.process-toggle" onclick="return toggle('FixedSizeInputAdapter.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.FixedSizeInputAdapter-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FixedSizeInputAdapter.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FixedSizeInputAdapter.process-expanded"><a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-docstring">"""Returns an iterator over tuples of the form (buffer, eod) where buffer is a </tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">        fixed-sized block of data, and eod indicates whether this is the last block.</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"><tt class="py-docstring">        In case padding is deactivated the last block may be smaller than the buffer size.</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-name">src_index</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-name">remaining</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-46" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-46', 'frames', 'link-38');">frames</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">remaining</tt><tt class="py-op">:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">            <tt class="py-name">space</tt>   <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt> <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">len</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">            <tt class="py-name">copylen</tt> <tt class="py-op">=</tt> <tt class="py-name">remaining</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">space</tt> <tt class="py-keyword">and</tt> <tt class="py-name">remaining</tt> <tt class="py-keyword">or</tt> <tt class="py-name">space</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">            <tt class="py-name">src</tt>     <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-47', 'frames', 'link-38');">frames</a></tt><tt class="py-op">[</tt><tt class="py-name">src_index</tt><tt class="py-op">:</tt><tt class="py-name">src_index</tt> <tt class="py-op">+</tt> <tt class="py-name">copylen</tt><tt class="py-op">]</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">len</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt> <tt class="py-keyword">and</tt> <tt class="py-name">copylen</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt><tt class="py-op">:</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">                <tt class="py-comment"># avoid unnecessary copy</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-comment"></tt>                <tt class="py-name">buffer</tt> <tt class="py-op">=</tt> <tt class="py-name">src</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">                <tt class="py-name">buffer</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">                <tt class="py-name">buffer</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">len</tt><tt class="py-op">:</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">len</tt> <tt class="py-op">+</tt> <tt class="py-name">copylen</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">src</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">            <tt class="py-name">remaining</tt> <tt class="py-op">-=</tt> <tt class="py-name">copylen</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">            <tt class="py-name">src_index</tt> <tt class="py-op">+=</tt> <tt class="py-name">copylen</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">len</tt>  <tt class="py-op">+=</tt> <tt class="py-name">copylen</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">len</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt><tt class="py-op">:</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">                <tt class="py-keyword">yield</tt> <tt class="py-name">buffer</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt id="link-48" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-48', 'eod', 'link-39');">eod</a></tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">remaining</tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">len</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-49" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-49', 'eod', 'link-39');">eod</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">len</tt><tt class="py-op">:</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">            <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pad</tt><tt class="py-op">:</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">len</tt><tt class="py-op">:</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">                <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">len</tt><tt class="py-op">]</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">block</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">len</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+</div></div><a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">                             </tt>
+<a name="processors"></a><div id="processors-def"><a name="L159"></a><tt class="py-lineno">159</tt> <a class="py-toggle" href="#" id="processors-toggle" onclick="return toggle('processors');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core-module.html#processors">processors</a><tt class="py-op">(</tt><tt class="py-param">interface</tt><tt class="py-op">=</tt><tt id="link-50" class="py-name"><a title="timeside.api.IProcessor" class="py-name" href="#" onclick="return doclink('link-50', 'IProcessor', 'link-4');">IProcessor</a></tt><tt class="py-op">,</tt> <tt class="py-param">recurse</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="processors-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="processors-expanded"><a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">    <tt class="py-docstring">"""Returns the processors implementing a given interface and, if recurse,</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"><tt class="py-docstring">    any of the descendants of this interface."""</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-51" class="py-name"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-51', 'implementations', 'link-14');">implementations</a></tt><tt class="py-op">(</tt><tt class="py-name">interface</tt><tt class="py-op">,</tt> <tt class="py-name">recurse</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">     </tt>
+<a name="get_processor"></a><div id="get_processor-def"><a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <a class="py-toggle" href="#" id="get_processor-toggle" onclick="return toggle('get_processor');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core-module.html#get_processor">get_processor</a><tt class="py-op">(</tt><tt class="py-param">processor_id</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="get_processor-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_processor-expanded"><a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">    <tt class="py-docstring">"""Return a processor by its id"""</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-52" class="py-name"><a title="timeside.core._processors" class="py-name" href="#" onclick="return doclink('link-52', '_processors', 'link-9');">_processors</a></tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-name">processor_id</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-53" class="py-name"><a title="timeside.exceptions.Error" class="py-name" href="#" onclick="return doclink('link-53', 'Error', 'link-7');">Error</a></tt><tt class="py-op">(</tt><tt class="py-string">"No processor registered with id: '%s'"</tt>  </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">              <tt class="py-op">%</tt> <tt class="py-name">processor_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-54" class="py-name"><a title="timeside.core._processors" class="py-name" href="#" onclick="return doclink('link-54', '_processors', 'link-9');">_processors</a></tt><tt class="py-op">[</tt><tt class="py-name">processor_id</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"> </tt>
+<a name="ProcessPipe"></a><div id="ProcessPipe-def"><a name="L173"></a><tt class="py-lineno">173</tt> <a class="py-toggle" href="#" id="ProcessPipe-toggle" onclick="return toggle('ProcessPipe');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.core.ProcessPipe-class.html">ProcessPipe</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ProcessPipe-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ProcessPipe-expanded"><a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">    <tt class="py-docstring">"""Handle a pipe of processors"""</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"> </tt>
+<a name="ProcessPipe.__init__"></a><div id="ProcessPipe.__init__-def"><a name="L176"></a><tt class="py-lineno">176</tt> <a class="py-toggle" href="#" id="ProcessPipe.__init__-toggle" onclick="return toggle('ProcessPipe.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.ProcessPipe-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">others</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ProcessPipe.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ProcessPipe.__init__-expanded"><a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name" targets="Function timeside.core.processors()=timeside.core-module.html#processors"><a title="timeside.core.processors" class="py-name" href="#" onclick="return doclink('link-55', 'processors', 'link-55');">processors</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-name">self</tt> <tt class="py-op">|=</tt> <tt class="py-name">others</tt> </tt>
+</div><a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"> </tt>
+<a name="ProcessPipe.__or__"></a><div id="ProcessPipe.__or__-def"><a name="L180"></a><tt class="py-lineno">180</tt> <a class="py-toggle" href="#" id="ProcessPipe.__or__-toggle" onclick="return toggle('ProcessPipe.__or__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.ProcessPipe-class.html#__or__">__or__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ProcessPipe.__or__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ProcessPipe.__or__-expanded"><a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-56" class="py-name"><a title="timeside.core.ProcessPipe" class="py-name" href="#" onclick="return doclink('link-56', 'ProcessPipe', 'link-41');">ProcessPipe</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line"> </tt>
+<a name="ProcessPipe.__ior__"></a><div id="ProcessPipe.__ior__-def"><a name="L183"></a><tt class="py-lineno">183</tt> <a class="py-toggle" href="#" id="ProcessPipe.__ior__-toggle" onclick="return toggle('ProcessPipe.__ior__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.ProcessPipe-class.html#__ior__">__ior__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ProcessPipe.__ior__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ProcessPipe.__ior__-expanded"><a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">,</tt> <tt id="link-57" class="py-name" targets="Class timeside.core.Processor=timeside.core.Processor-class.html"><a title="timeside.core.Processor" class="py-name" href="#" onclick="return doclink('link-57', 'Processor', 'link-57');">Processor</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="timeside.core.processors" class="py-name" href="#" onclick="return doclink('link-58', 'processors', 'link-55');">processors</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">,</tt> <tt id="link-59" class="py-name"><a title="timeside.core.ProcessPipe" class="py-name" href="#" onclick="return doclink('link-59', 'ProcessPipe', 'link-41');">ProcessPipe</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="timeside.core.processors" class="py-name" href="#" onclick="return doclink('link-60', 'processors', 'link-55');">processors</a></tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="timeside.core.processors" class="py-name" href="#" onclick="return doclink('link-61', 'processors', 'link-55');">processors</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">                <tt class="py-name">iter</tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">TypeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt id="link-62" class="py-name"><a title="timeside.exceptions.Error" class="py-name" href="#" onclick="return doclink('link-62', 'Error', 'link-7');">Error</a></tt><tt class="py-op">(</tt><tt class="py-string">"Can not add this type of object to a pipe: %s"</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">other</tt><tt class="py-op">:</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">                <tt class="py-name">self</tt> <tt class="py-op">|=</tt> <tt class="py-name">item</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt>             </tt>
+</div><a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line"> </tt>
+<a name="ProcessPipe.run"></a><div id="ProcessPipe.run-def"><a name="L199"></a><tt class="py-lineno">199</tt> <a class="py-toggle" href="#" id="ProcessPipe.run-toggle" onclick="return toggle('ProcessPipe.run');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.core.ProcessPipe-class.html#run">run</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ProcessPipe.run-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ProcessPipe.run-expanded"><a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">        <tt class="py-docstring">"""Setup/reset all processors in cascade and stream audio data along</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line"><tt class="py-docstring">        the pipe. Also returns the pipe itself."""</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line"> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">        <tt id="link-63" class="py-name" targets="Variable timeside.tests.api.test_lolevel.source=timeside.tests.api.test_lolevel-module.html#source,Variable timeside.tests.api.test_pipe.source=timeside.tests.api.test_pipe-module.html#source,Variable timeside.tests.api.test_pipe_spectrogram.source=timeside.tests.api.test_pipe_spectrogram-module.html#source,Variable timeside.tests.api.test_pipe_waveform.source=timeside.tests.api.test_pipe_waveform-module.html#source"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-63', 'source', 'link-63');">source</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="timeside.core.processors" class="py-name" href="#" onclick="return doclink('link-64', 'processors', 'link-55');">processors</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">        <tt class="py-name">items</tt>  <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="timeside.core.processors" class="py-name" href="#" onclick="return doclink('link-65', 'processors', 'link-55');">processors</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line"> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">        <tt class="py-comment"># setup/reset processors and configure channels and samplerate throughout the pipe</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt id="link-66" class="py-name"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-66', 'source', 'link-63');">source</a></tt><tt class="py-op">.</tt><tt id="link-67" class="py-name" targets="Method timeside.api.IProcessor.setup()=timeside.api.IProcessor-class.html#setup,Method timeside.core.Processor.setup()=timeside.core.Processor-class.html#setup,Method timeside.tests.api.examples.Duration.setup()=timeside.tests.api.examples.Duration-class.html#setup,Method timeside.tests.api.examples.FileDecoder.setup()=timeside.tests.api.examples.FileDecoder-class.html#setup,Method timeside.tests.api.examples.FixedInputProcessor.setup()=timeside.tests.api.examples.FixedInputProcessor-class.html#setup,Method timeside.tests.api.examples.MaxLevel.setup()=timeside.tests.api.examples.MaxLevel-class.html#setup,Method timeside.tests.api.examples.Spectrogram.setup()=timeside.tests.api.examples.Spectrogram-class.html#setup,Method timeside.tests.api.examples.WavEncoder.setup()=timeside.tests.api.examples.WavEncoder-class.html#setup,Method timeside.tests.api.examples.Waveform.setup()=timeside.tests.api.examples.Waveform-class.html#setup,Method timeside.tests.api.gstreamer.FileDecoder.setup()=timeside.tests.api.gstreamer.FileDecoder-class.html#setup,Method timeside.tests.api.gstreamer.WavEncoder.setup()=timeside.tests.api.gstreamer.WavEncoder-class.html#setup"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-67', 'setup', 'link-67');">setup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">        <tt class="py-name">last</tt> <tt class="py-op">=</tt> <tt id="link-68" class="py-name"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-68', 'source', 'link-63');">source</a></tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">items</tt><tt class="py-op">:</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">            <tt class="py-name">item</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-69', 'setup', 'link-67');">setup</a></tt><tt class="py-op">(</tt><tt class="py-name">last</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-70', 'channels', 'link-35');">channels</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">last</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-71', 'samplerate', 'link-36');">samplerate</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">last</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-72', 'nframes', 'link-37');">nframes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">            <tt class="py-name">last</tt> <tt class="py-op">=</tt> <tt class="py-name">item</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line"> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">        <tt class="py-comment"># now stream audio data along the pipe</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt id="link-73" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-73', 'eod', 'link-39');">eod</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-keyword">not</tt> <tt id="link-74" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-74', 'eod', 'link-39');">eod</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">            <tt id="link-75" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-75', 'frames', 'link-38');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-76" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-76', 'eod', 'link-39');">eod</a></tt> <tt class="py-op">=</tt> <tt id="link-77" class="py-name"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-77', 'source', 'link-63');">source</a></tt><tt class="py-op">.</tt><tt id="link-78" class="py-name" targets="Method timeside.api.IProcessor.process()=timeside.api.IProcessor-class.html#process,Method timeside.core.FixedSizeInputAdapter.process()=timeside.core.FixedSizeInputAdapter-class.html#process,Method timeside.core.Processor.process()=timeside.core.Processor-class.html#process,Method timeside.decode.core.DecoderCore.process()=timeside.decode.core.DecoderCore-class.html#process,Method timeside.encode.flac.FlacEncoder.process()=timeside.encode.flac.FlacEncoder-class.html#process,Method timeside.encode.mp3.Mp3Encoder.process()=timeside.encode.mp3.Mp3Encoder-class.html#process,Method timeside.encode.ogg.OggVorbisEncoder.process()=timeside.encode.ogg.OggVorbisEncoder-class.html#process,Method timeside.encode.wav.WavEncoder.process()=timeside.encode.wav.WavEncoder-class.html#process,Method timeside.grapher.core.SpectralCentroid.process()=timeside.grapher.core.SpectralCentroid-class.html#process,Method timeside.grapher.core.SpectrogramImage.process()=timeside.grapher.core.SpectrogramImage-class.html#process,Method timeside.grapher.core.WaveformImage.process()=timeside.grapher.core.WaveformImage-class.html#process,Method timeside.tests.api.examples.FileDecoder.process()=timeside.tests.api.examples.FileDecoder-class.html#process,Method timeside.tests.api.examples.FixedInputProcessor.process()=timeside.tests.api.examples.FixedInputProcessor-class.html#process,Method timeside.tests.api.examples.Gain.process()=timeside.tests.api.examples.Gain-class.html#process,Method timeside.tests.api.examples.MaxLevel.process()=timeside.tests.api.examples.MaxLevel-class.html#process,Method timeside.tests.api.examples.Spectrogram.process()=timeside.tests.api.examples.Spectrogram-class.html#process,Method timeside.tests.api.examples.WavEncoder.process()=timeside.tests.api.examples.WavEncoder-class.html#process,Method timeside.tests.api.examples.Waveform.process()=timeside.tests.api.examples.Waveform-class.html#process,Method timeside.tests.api.gstreamer.FileDecoder.process()=timeside.tests.api.gstreamer.FileDecoder-class.html#process,Method timeside.tests.api.gstreamer.WavEncoder.process()=timeside.tests.api.gstreamer.WavEncoder-class.html#process"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-78', 'process', 'link-78');">process</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">items</tt><tt class="py-op">:</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">                <tt id="link-79" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-79', 'frames', 'link-38');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-80" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-80', 'eod', 'link-39');">eod</a></tt> <tt class="py-op">=</tt> <tt class="py-name">item</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-81', 'process', 'link-78');">process</a></tt><tt class="py-op">(</tt><tt id="link-82" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-82', 'frames', 'link-38');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-83" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-83', 'eod', 'link-39');">eod</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line"> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div></div><a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.core.FixedSizeInputAdapter-class.html b/doc/epydoc/timeside.core.FixedSizeInputAdapter-class.html
new file mode 100644 (file)
index 0000000..6c3b026
--- /dev/null
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.core.FixedSizeInputAdapter</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;FixedSizeInputAdapter
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.core.FixedSizeInputAdapter-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class FixedSizeInputAdapter</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.core-pysrc.html#FixedSizeInputAdapter">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">FixedSizeInputAdapter</strong>
+</pre>
+
+<hr />
+<p>Utility to make it easier to write processors which require 
+  fixed-sized input buffers.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.core.FixedSizeInputAdapter-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">buffer_size</span>,
+        <span class="summary-sig-arg">channels</span>,
+        <span class="summary-sig-arg">pad</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Construct a new adapter: buffer_size is the desired buffer size in 
+      frames, channels the number of channels, and pad indicates whether 
+      the last block should be padded with zeros.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#FixedSizeInputAdapter.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="nframes"></a><span class="summary-sig-name">nframes</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">input_nframes</span>)</span><br />
+      Return the total number of frames that this adapter will output 
+      according to the input_nframes argument</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#FixedSizeInputAdapter.nframes">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.core.FixedSizeInputAdapter-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>,
+        <span class="summary-sig-arg">eod</span>)</span><br />
+      Returns an iterator over tuples of the form (buffer, eod) where 
+      buffer is a fixed-sized block of data, and eod indicates whether this
+      is the last block.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#FixedSizeInputAdapter.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">buffer_size</span>,
+        <span class="sig-arg">channels</span>,
+        <span class="sig-arg">pad</span>=<span class="sig-default">False</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.core-pysrc.html#FixedSizeInputAdapter.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Construct a new adapter: buffer_size is the desired buffer size in 
+  frames, channels the number of channels, and pad indicates whether the 
+  last block should be padded with zeros.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frames</span>,
+        <span class="sig-arg">eod</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.core-pysrc.html#FixedSizeInputAdapter.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Returns an iterator over tuples of the form (buffer, eod) where buffer
+  is a fixed-sized block of data, and eod indicates whether this is the 
+  last block. In case padding is deactivated the last block may be smaller 
+  than the buffer size.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.core.MetaProcessor-class.html b/doc/epydoc/timeside.core.MetaProcessor-class.html
new file mode 100644 (file)
index 0000000..8ecd2a0
--- /dev/null
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.core.MetaProcessor</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;MetaProcessor
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.core.MetaProcessor-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== TYPE DESCRIPTION ==================== -->
+<h1 class="epydoc">Type MetaProcessor</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.core-pysrc.html#MetaProcessor">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+               type --+    
+                      |    
+<a href="timeside.component.MetaComponent-class.html">component.MetaComponent</a> --+
+                          |
+                         <strong class="uidshort">MetaProcessor</strong>
+</pre>
+
+<hr />
+<p>Metaclass of the Processor class, used mainly for ensuring that 
+  processor id's are wellformed and unique</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>type</code></b>:
+      <code>__call__</code>,
+      <code>__cmp__</code>,
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__subclasses__</code>,
+      <code>mro</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__init__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">a new object with type S, a subtype of T</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.core.MetaProcessor-class.html#__new__" class="summary-sig-name">__new__</a>(<span class="summary-sig-arg">cls</span>,
+        <span class="summary-sig-arg">name</span>,
+        <span class="summary-sig-arg">bases</span>,
+        <span class="summary-sig-arg">d</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#MetaProcessor.__new__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="valid_id"></a><span class="summary-name">valid_id</span> = <code title="re.compile(r'^[a-z][_a-z0-9]*$')">re.compile(r'^<code class="re-group">[</code>a<code class="re-op">-</code>z<code class="re-group">]</code><code class="re-group">[</code>_a<code class="re-op">-</code>z0<code class="re-op">-</code>9<code class="re-group">]</code><code class="re-op">*</code>$')</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.component.MetaComponent-class.html">component.MetaComponent</a></code></b>:
+      <code><a href="timeside.component.MetaComponent-class.html#abstract">abstract</a></code>,
+      <code><a href="timeside.component.MetaComponent-class.html#implementations">implementations</a></code>,
+      <code><a href="timeside.component.MetaComponent-class.html#implements">implements</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>type</code></b>:
+      <code>__base__</code>,
+      <code>__bases__</code>,
+      <code>__basicsize__</code>,
+      <code>__dictoffset__</code>,
+      <code>__flags__</code>,
+      <code>__itemsize__</code>,
+      <code>__mro__</code>,
+      <code>__name__</code>,
+      <code>__weakrefoffset__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__new__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">cls</span>,
+        <span class="sig-arg">name</span>,
+        <span class="sig-arg">bases</span>,
+        <span class="sig-arg">d</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.core-pysrc.html#MetaProcessor.__new__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Returns: a new object with type S, a subtype of T</dt>
+    <dt>Overrides:
+        object.__new__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.core.ProcessPipe-class.html b/doc/epydoc/timeside.core.ProcessPipe-class.html
new file mode 100644 (file)
index 0000000..290c709
--- /dev/null
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.core.ProcessPipe</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;ProcessPipe
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.core.ProcessPipe-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ProcessPipe</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.core-pysrc.html#ProcessPipe">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">ProcessPipe</strong>
+</pre>
+
+<hr />
+<p>Handle a pipe of processors</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.core.ProcessPipe-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">*others</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#ProcessPipe.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__or__"></a><span class="summary-sig-name">__or__</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">other</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#ProcessPipe.__or__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__ior__"></a><span class="summary-sig-name">__ior__</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">other</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#ProcessPipe.__ior__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.core.ProcessPipe-class.html#run" class="summary-sig-name">run</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Setup/reset all processors in cascade and stream audio data along the
+      pipe.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#ProcessPipe.run">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">*others</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.core-pysrc.html#ProcessPipe.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="run"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">run</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.core-pysrc.html#ProcessPipe.run">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Setup/reset all processors in cascade and stream audio data along the 
+  pipe. Also returns the pipe itself.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.core.Processor-class.html b/doc/epydoc/timeside.core.Processor-class.html
new file mode 100644 (file)
index 0000000..4576ebf
--- /dev/null
@@ -0,0 +1,527 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.core.Processor</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;Processor
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.core.Processor-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Processor</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.core-pysrc.html#Processor">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Component-class.html">component.Component</a> --+
+                      |
+                     <strong class="uidshort">Processor</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html">grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab</a></li><li>, <a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html">grapher.waveform_audiolab.WaveFormGrapherAudiolab</a></li><li>, <a href="timeside.decode.core.DecoderCore-class.html">decode.core.DecoderCore</a></li><li>, <a href="timeside.tests.api.examples.Duration-class.html">tests.api.examples.Duration</a></li><li>, <a href="timeside.tests.api.examples.FileDecoder-class.html">tests.api.examples.FileDecoder</a></li><li>, <a href="timeside.tests.api.examples.FixedInputProcessor-class.html">tests.api.examples.FixedInputProcessor</a></li><li>, <a href="timeside.tests.api.examples.Gain-class.html">tests.api.examples.Gain</a></li><li>, <a href="timeside.tests.api.examples.MaxLevel-class.html">tests.api.examples.MaxLevel</a></li><li>, <a href="timeside.tests.api.examples.Spectrogram-class.html">tests.api.examples.Spectrogram</a></li><li>, <a href="timeside.tests.api.examples.WavEncoder-class.html">tests.api.examples.WavEncoder</a></li><li>, <a href="timeside.tests.api.examples.Waveform-class.html">tests.api.examples.Waveform</a></li><li>, <a href="timeside.tests.api.gstreamer.FileDecoder-class.html">tests.api.gstreamer.FileDecoder</a></li><li>, <a href="timeside.tests.api.gstreamer.WavEncoder-class.html">tests.api.gstreamer.WavEncoder</a></li><li>, <a href="timeside.analyze.core.AudioProcessor-class.html">analyze.core.AudioProcessor</a></li><li>, <a href="timeside.encode.core.EncoderCore-class.html">encode.core.EncoderCore</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<p>Base component class of all processors</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.core.MetaProcessor-class.html" class="summary-name">__metaclass__</a><br />
+      Metaclass of the Processor class, used mainly for ensuring that 
+        processor id's are wellformed and unique
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__del__"></a><span class="summary-sig-name">__del__</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#Processor.__del__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__or__"></a><span class="summary-sig-name">__or__</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">other</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#Processor.__or__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.core.Processor-class.html#channels" class="summary-sig-name">channels</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Number of channels in the data returned by process().</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#Processor.channels">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.core.Processor-class.html#nframes" class="summary-sig-name">nframes</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      The total number of frames that this processor can output, or None if
+      the duration is unknown.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#Processor.nframes">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.core.Processor-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>,
+        <span class="summary-sig-arg">eod</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#Processor.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.core.Processor-class.html#release" class="summary-sig-name">release</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Release resources owned by this processor.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#Processor.release">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.core.Processor-class.html#samplerate" class="summary-sig-name">samplerate</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Samplerate of the data returned by process().</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#Processor.samplerate">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.core.Processor-class.html#setup" class="summary-sig-name">setup</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">channels</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">samplerate</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">nframes</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Allocate internal resources and reset state, so that this processor 
+      is ready for a new run.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.core-pysrc.html#Processor.setup">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="channels"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">channels</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.core-pysrc.html#Processor.channels">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Number of channels in the data returned by process(). May be different
+  from the number of channels passed to setup()</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="nframes"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">nframes</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.core-pysrc.html#Processor.nframes">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>The total number of frames that this processor can output, or None if 
+  the duration is unknown.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frames</span>,
+        <span class="sig-arg">eod</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.core-pysrc.html#Processor.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="release"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">release</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.core-pysrc.html#Processor.release">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Release resources owned by this processor. The processor cannot be 
+  used anymore after calling this method.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="samplerate"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">samplerate</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.core-pysrc.html#Processor.samplerate">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Samplerate of the data returned by process(). May be different from 
+  the samplerate passed to setup()</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="setup"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setup</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">channels</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">samplerate</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">nframes</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.core-pysrc.html#Processor.setup">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Allocate internal resources and reset state, so that this processor is
+  ready for a new run.</p>
+  <p>The channels, samplerate and/or nframes arguments may be required by 
+  processors which accept input. An error will occur if any of these 
+  arguments is passed to an output-only processor such as a decoder.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode-module.html b/doc/epydoc/timeside.decode-module.html
new file mode 100644 (file)
index 0000000..c273358
--- /dev/null
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Package&nbsp;decode
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PACKAGE DESCRIPTION ==================== -->
+<h1 class="epydoc">Package decode</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.decode-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== SUBMODULES ==================== -->
+<a name="section-Submodules"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Submodules</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Submodules"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr><td class="summary">
+  <ul class="nomargin">
+    <li> <strong class="uidlink"><a href="timeside.decode.core-module.html">timeside.decode.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.flac-module.html">timeside.decode.flac</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.mp3-module.html">timeside.decode.mp3</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.ogg-module.html">timeside.decode.ogg</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.decode.wav-module.html">timeside.decode.wav</a></strong>    </li>
+  </ul></td></tr>
+</table>
+
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode-pysrc.html b/doc/epydoc/timeside.decode-pysrc.html
new file mode 100644 (file)
index 0000000..b81763d
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Package&nbsp;decode
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.decode-module.html">Package timeside.decode</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">2</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L3"></a><tt class="py-lineno">3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.decode=timeside.decode-module.html"><a title="timeside.decode" class="py-name" href="#" onclick="return doclink('link-1', 'decode', 'link-1');">decode</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">4</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="timeside.decode" class="py-name" href="#" onclick="return doclink('link-4', 'decode', 'link-1');">decode</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module timeside.decode.ogg=timeside.decode.ogg-module.html,Module timeside.encode.ogg=timeside.encode.ogg-module.html"><a title="timeside.decode.ogg
+timeside.encode.ogg" class="py-name" href="#" onclick="return doclink('link-5', 'ogg', 'link-5');">ogg</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">5</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-6', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="timeside.decode" class="py-name" href="#" onclick="return doclink('link-7', 'decode', 'link-1');">decode</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Module timeside.decode.flac=timeside.decode.flac-module.html,Module timeside.encode.flac=timeside.encode.flac-module.html"><a title="timeside.decode.flac
+timeside.encode.flac" class="py-name" href="#" onclick="return doclink('link-8', 'flac', 'link-8');">flac</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">6</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-9" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-9', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="timeside.decode" class="py-name" href="#" onclick="return doclink('link-10', 'decode', 'link-1');">decode</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Module timeside.decode.wav=timeside.decode.wav-module.html,Module timeside.encode.wav=timeside.encode.wav-module.html"><a title="timeside.decode.wav
+timeside.encode.wav" class="py-name" href="#" onclick="return doclink('link-11', 'wav', 'link-11');">wav</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">7</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-12" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-12', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="timeside.decode" class="py-name" href="#" onclick="return doclink('link-13', 'decode', 'link-1');">decode</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Module timeside.decode.mp3=timeside.decode.mp3-module.html,Module timeside.encode.mp3=timeside.encode.mp3-module.html"><a title="timeside.decode.mp3
+timeside.encode.mp3" class="py-name" href="#" onclick="return doclink('link-14', 'mp3', 'link-14');">mp3</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">8</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.core-module.html b/doc/epydoc/timeside.decode.core-module.html
new file mode 100644 (file)
index 0000000..55237a4
--- /dev/null
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        Module&nbsp;core
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.core-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module core</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.decode.core-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.decode.core.SubProcessPipe-class.html" class="summary-name">SubProcessPipe</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.decode.core.DecoderCore-class.html" class="summary-name">DecoderCore</a><br />
+      Defines the main parts of the decoding tools : paths, metadata 
+        parsing, data streaming thru system command
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.core-pysrc.html b/doc/epydoc/timeside.decode.core-pysrc.html
new file mode 100644 (file)
index 0000000..6243eb2
--- /dev/null
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        Module&nbsp;core
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.core-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.decode.core-module.html">Module timeside.decode.core</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.decode=timeside.decode-module.html"><a title="timeside.decode" class="py-name" href="#" onclick="return doclink('link-1', 'decode', 'link-1');">decode</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-2', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-3', 'core', 'link-3');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">subprocess</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"> </tt>
+<a name="SubProcessPipe"></a><div id="SubProcessPipe-def"><a name="L27"></a><tt class="py-lineno">27</tt> <a class="py-toggle" href="#" id="SubProcessPipe-toggle" onclick="return toggle('SubProcessPipe');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.decode.core.SubProcessPipe-class.html">SubProcessPipe</a><tt class="py-op">:</tt> </tt>
+</div><div id="SubProcessPipe-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="SubProcessPipe-expanded"><a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="SubProcessPipe.__init__"></a><div id="SubProcessPipe.__init__-def"><a name="L29"></a><tt class="py-lineno">29</tt> <a class="py-toggle" href="#" id="SubProcessPipe.__init__-toggle" onclick="return toggle('SubProcessPipe.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.core.SubProcessPipe-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">command</tt><tt class="py-op">,</tt> <tt class="py-param">stdin</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SubProcessPipe.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SubProcessPipe.__init__-expanded"><a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">        <tt class="py-docstring">"""Read media and stream data through a generator.</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line"><tt class="py-docstring">        Taken from Telemeta (see http://telemeta.org)"""</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line"> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt> <tt class="py-op">=</tt> <tt class="py-number">0xFFFF</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">stdin</tt><tt class="py-op">:</tt> </tt>
+<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">            <tt class="py-name">stdin</tt> <tt class="py-op">=</tt>  <tt class="py-name">subprocess</tt><tt class="py-op">.</tt><tt class="py-name">PIPE</tt> </tt>
+<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proc</tt> <tt class="py-op">=</tt> <tt class="py-name">subprocess</tt><tt class="py-op">.</tt><tt class="py-name">Popen</tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Package timeside.encode=timeside.encode-module.html"><a title="timeside.encode" class="py-name" href="#" onclick="return doclink('link-4', 'encode', 'link-4');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">                    <tt class="py-name">shell</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">                    <tt class="py-name">bufsize</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt><tt class="py-op">,</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">                    <tt class="py-name">stdin</tt> <tt class="py-op">=</tt> <tt class="py-name">stdin</tt><tt class="py-op">,</tt> </tt>
+<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">                    <tt class="py-name">stdout</tt> <tt class="py-op">=</tt> <tt class="py-name">subprocess</tt><tt class="py-op">.</tt><tt class="py-name">PIPE</tt><tt class="py-op">,</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">                    <tt class="py-name">close_fds</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line"> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">input</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proc</tt><tt class="py-op">.</tt><tt class="py-name">stdin</tt> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">output</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proc</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt> </tt>
+</div></div><a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line"> </tt>
+<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line"> </tt>
+<a name="DecoderCore"></a><div id="DecoderCore-def"><a name="L49"></a><tt class="py-lineno">49</tt> <a class="py-toggle" href="#" id="DecoderCore-toggle" onclick="return toggle('DecoderCore');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.decode.core.DecoderCore-class.html">DecoderCore</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DecoderCore-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="DecoderCore-expanded"><a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">    <tt class="py-docstring">"""Defines the main parts of the decoding tools :</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"><tt class="py-docstring">    paths, metadata parsing, data streaming thru system command"""</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"> </tt>
+<a name="DecoderCore.__init__"></a><div id="DecoderCore.__init__-def"><a name="L53"></a><tt class="py-lineno">53</tt> <a class="py-toggle" href="#" id="DecoderCore.__init__-toggle" onclick="return toggle('DecoderCore.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.core.DecoderCore-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DecoderCore.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="DecoderCore.__init__-expanded"><a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">command</tt> <tt class="py-op">=</tt> <tt class="py-string">'ffmpeg -i "%s" -f wav - '</tt> </tt>
+</div><a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line"> </tt>
+<a name="DecoderCore.process"></a><div id="DecoderCore.process-def"><a name="L56"></a><tt class="py-lineno">56</tt> <a class="py-toggle" href="#" id="DecoderCore.process-toggle" onclick="return toggle('DecoderCore.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.core.DecoderCore-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DecoderCore.process-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="DecoderCore.process-expanded"><a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">        <tt class="py-docstring">"""Encode and stream audio data through a generator"""</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line"> </tt>
+<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">        <tt class="py-name">command</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">command</tt> <tt class="py-op">%</tt> <tt id="link-5" class="py-name" targets="Variable timeside.tests.api.test_lolevel.source=timeside.tests.api.test_lolevel-module.html#source,Variable timeside.tests.api.test_pipe.source=timeside.tests.api.test_pipe-module.html#source,Variable timeside.tests.api.test_pipe_spectrogram.source=timeside.tests.api.test_pipe_spectrogram-module.html#source,Variable timeside.tests.api.test_pipe_waveform.source=timeside.tests.api.test_pipe_waveform-module.html#source"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-5', 'source', 'link-5');">source</a></tt> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">        <tt class="py-name">proc</tt> <tt class="py-op">=</tt> <tt id="link-6" class="py-name" targets="Class timeside.decode.core.SubProcessPipe=timeside.decode.core.SubProcessPipe-class.html,Class timeside.encode.core.SubProcessPipe=timeside.encode.core.SubProcessPipe-class.html"><a title="timeside.decode.core.SubProcessPipe
+timeside.encode.core.SubProcessPipe" class="py-name" href="#" onclick="return doclink('link-6', 'SubProcessPipe', 'link-6');">SubProcessPipe</a></tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">)</tt> </tt>
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">proc</tt><tt class="py-op">.</tt><tt class="py-name">output</tt> </tt>
+</div></div><a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line"> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">        <tt class="py-comment">#while True:</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment">#__chunk = proc.output.read(self.proc.buffer_size)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment">#status = proc.poll()</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment">#if status != None and status != 0:</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line"><tt class="py-comment"></tt>                <tt class="py-comment">#raise ExportProcessError('Command failure:', command, proc)</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment">#if len(__chunk) == 0:</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line"><tt class="py-comment"></tt>                <tt class="py-comment">#break</tt> </tt>
+<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment">#yield __chunk</tt> </tt>
+<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.core.DecoderCore-class.html b/doc/epydoc/timeside.decode.core.DecoderCore-class.html
new file mode 100644 (file)
index 0000000..a9aca2f
--- /dev/null
@@ -0,0 +1,322 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.core.DecoderCore</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        <a href="timeside.decode.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;DecoderCore
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.core.DecoderCore-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class DecoderCore</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.decode.core-pysrc.html#DecoderCore">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">DecoderCore</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="timeside.decode.mp3.Mp3Decoder-class.html">mp3.Mp3Decoder</a></li><li>, <a href="timeside.decode.ogg.OggDecoder-class.html">ogg.OggDecoder</a></li><li>, <a href="timeside.decode.wav.WavDecoder-class.html">wav.WavDecoder</a></li><li>, <a href="timeside.decode.flac.FlacDecoder-class.html">flac.FlacDecoder</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<p>Defines the main parts of the decoding tools : paths, metadata 
+  parsing, data streaming thru system command</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.decode.core.DecoderCore-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.core-pysrc.html#DecoderCore.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.decode.core.DecoderCore-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">source</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Encode and stream audio data through a generator</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.core-pysrc.html#DecoderCore.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.decode.core-pysrc.html#DecoderCore.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">source</span>,
+        <span class="sig-arg">options</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.decode.core-pysrc.html#DecoderCore.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Encode and stream audio data through a generator</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.core.SubProcessPipe-class.html b/doc/epydoc/timeside.decode.core.SubProcessPipe-class.html
new file mode 100644 (file)
index 0000000..04ba727
--- /dev/null
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.core.SubProcessPipe</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        <a href="timeside.decode.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;SubProcessPipe
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.core.SubProcessPipe-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SubProcessPipe</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.decode.core-pysrc.html#SubProcessPipe">source&nbsp;code</a></span></p>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.decode.core.SubProcessPipe-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">command</span>,
+        <span class="summary-sig-arg">stdin</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read media and stream data through a generator.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.core-pysrc.html#SubProcessPipe.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">command</span>,
+        <span class="sig-arg">stdin</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.decode.core-pysrc.html#SubProcessPipe.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Read media and stream data through a generator. Taken from Telemeta 
+  (see http://telemeta.org)</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.flac-module.html b/doc/epydoc/timeside.decode.flac-module.html
new file mode 100644 (file)
index 0000000..915c6c3
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.flac</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        Module&nbsp;flac
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.flac-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module flac</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.decode.flac-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.decode.flac.FlacDecoder-class.html" class="summary-name">FlacDecoder</a><br />
+      Defines methods to decode from FLAC
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.flac-pysrc.html b/doc/epydoc/timeside.decode.flac-pysrc.html
new file mode 100644 (file)
index 0000000..8d887e1
--- /dev/null
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.flac</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        Module&nbsp;flac
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.flac-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.decode.flac-module.html">Module timeside.decode.flac</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">string</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">subprocess</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.decode=timeside.decode-module.html"><a title="timeside.decode" class="py-name" href="#" onclick="return doclink('link-1', 'decode', 'link-1');">decode</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IDecoder=timeside.api.IDecoder-class.html"><a title="timeside.api.IDecoder" class="py-name" href="#" onclick="return doclink('link-5', 'IDecoder', 'link-5');">IDecoder</a></tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">mutagen</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Module timeside.decode.flac=timeside.decode.flac-module.html,Module timeside.encode.flac=timeside.encode.flac-module.html"><a title="timeside.decode.flac
+timeside.encode.flac" class="py-name" href="#" onclick="return doclink('link-6', 'flac', 'link-6');">flac</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">FLAC</tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">tempfile</tt> <tt class="py-keyword">import</tt> <tt class="py-name">NamedTemporaryFile</tt> </tt>
+<a name="FlacDecoder"></a><div id="FlacDecoder-def"><a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt> <a class="py-toggle" href="#" id="FlacDecoder-toggle" onclick="return toggle('FlacDecoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.decode.flac.FlacDecoder-class.html">FlacDecoder</a><tt class="py-op">(</tt><tt class="py-base-class">DecoderCore</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacDecoder-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="FlacDecoder-expanded"><a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">    <tt class="py-docstring">"""Defines methods to decode from FLAC"""</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line"> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">    <tt id="link-7" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-7', 'implements', 'link-7');">implements</a></tt><tt class="py-op">(</tt><tt id="link-8" class="py-name"><a title="timeside.api.IDecoder" class="py-name" href="#" onclick="return doclink('link-8', 'IDecoder', 'link-5');">IDecoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line"> </tt>
+<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="FlacDecoder.id"></a><div id="FlacDecoder.id-def"><a name="L37"></a><tt class="py-lineno">37</tt> <a class="py-toggle" href="#" id="FlacDecoder.id-toggle" onclick="return toggle('FlacDecoder.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.flac.FlacDecoder-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacDecoder.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="FlacDecoder.id-expanded"><a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"flacdec"</tt> </tt>
+</div><a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">     </tt>
+<a name="FlacDecoder.format"></a><div id="FlacDecoder.format-def"><a name="L40"></a><tt class="py-lineno">40</tt> <a class="py-toggle" href="#" id="FlacDecoder.format-toggle" onclick="return toggle('FlacDecoder.format');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.flac.FlacDecoder-class.html#format">format</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacDecoder.format-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="FlacDecoder.format-expanded"><a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'FLAC'</tt> </tt>
+</div><a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line"> </tt>
+<a name="FlacDecoder.file_extension"></a><div id="FlacDecoder.file_extension-def"><a name="L43"></a><tt class="py-lineno">43</tt> <a class="py-toggle" href="#" id="FlacDecoder.file_extension-toggle" onclick="return toggle('FlacDecoder.file_extension');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.flac.FlacDecoder-class.html#file_extension">file_extension</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacDecoder.file_extension-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="FlacDecoder.file_extension-expanded"><a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'flac'</tt> </tt>
+</div><a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line"> </tt>
+<a name="FlacDecoder.mime_type"></a><div id="FlacDecoder.mime_type-def"><a name="L46"></a><tt class="py-lineno">46</tt> <a class="py-toggle" href="#" id="FlacDecoder.mime_type-toggle" onclick="return toggle('FlacDecoder.mime_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.flac.FlacDecoder-class.html#mime_type">mime_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacDecoder.mime_type-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="FlacDecoder.mime_type-expanded"><a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'audio/x-flac'</tt> </tt>
+</div><a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line"> </tt>
+<a name="FlacDecoder.description"></a><div id="FlacDecoder.description-def"><a name="L49"></a><tt class="py-lineno">49</tt> <a class="py-toggle" href="#" id="FlacDecoder.description-toggle" onclick="return toggle('FlacDecoder.description');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.flac.FlacDecoder-class.html#description">description</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacDecoder.description-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="FlacDecoder.description-expanded"><a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"""</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"><tt class="py-string">        Free Lossless Audio Codec (FLAC) is a file format for lossless audio</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"><tt class="py-string">        data compression. During compression, FLAC does not lose quality from</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"><tt class="py-string">        the audio stream, as lossy compression formats such as MP3, AAC, and</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line"><tt class="py-string">        Vorbis do. Josh Coalson is the primary author of FLAC.</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line"><tt class="py-string">        (source Wikipedia)</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line"><tt class="py-string">        """</tt> </tt>
+</div><a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line"> </tt>
+<a name="FlacDecoder.get_file_info"></a><div id="FlacDecoder.get_file_info-def"><a name="L58"></a><tt class="py-lineno">58</tt> <a class="py-toggle" href="#" id="FlacDecoder.get_file_info-toggle" onclick="return toggle('FlacDecoder.get_file_info');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.flac.FlacDecoder-class.html#get_file_info">get_file_info</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacDecoder.get_file_info-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="FlacDecoder.get_file_info-expanded"><a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">            <tt class="py-name">file1</tt><tt class="py-op">,</tt> <tt class="py-name">file2</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">popen4</tt><tt class="py-op">(</tt><tt class="py-string">'metaflac --list "'</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dest</tt><tt class="py-op">+</tt><tt class="py-string">'"'</tt><tt class="py-op">)</tt> </tt>
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">            <tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">file2</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">                <tt class="py-name">info</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">clean_word</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'DecoderError: metaflac is not installed or '</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">                           <tt class="py-string">'file does not exist.'</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:42 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.flac.FlacDecoder-class.html b/doc/epydoc/timeside.decode.flac.FlacDecoder-class.html
new file mode 100644 (file)
index 0000000..e6f245b
--- /dev/null
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.flac.FlacDecoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        <a href="timeside.decode.flac-module.html">Module&nbsp;flac</a> ::
+        Class&nbsp;FlacDecoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.flac.FlacDecoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class FlacDecoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.decode.flac-pysrc.html#FlacDecoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+           <a href="timeside.decode.core.DecoderCore-class.html">core.DecoderCore</a> --+
+                              |
+                             <strong class="uidshort">FlacDecoder</strong>
+</pre>
+
+<hr />
+<p>Defines methods to decode from FLAC</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="format"></a><span class="summary-sig-name">format</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.flac-pysrc.html#FlacDecoder.format">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="file_extension"></a><span class="summary-sig-name">file_extension</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.flac-pysrc.html#FlacDecoder.file_extension">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="mime_type"></a><span class="summary-sig-name">mime_type</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.flac-pysrc.html#FlacDecoder.mime_type">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="description"></a><span class="summary-sig-name">description</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.flac-pysrc.html#FlacDecoder.description">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_file_info"></a><span class="summary-sig-name">get_file_info</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.flac-pysrc.html#FlacDecoder.get_file_info">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.decode.core.DecoderCore-class.html">core.DecoderCore</a></code></b>:
+      <code><a href="timeside.decode.core.DecoderCore-class.html#__init__">__init__</a></code>,
+      <code><a href="timeside.decode.core.DecoderCore-class.html#process">process</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.flac-pysrc.html#FlacDecoder.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.mp3-module.html b/doc/epydoc/timeside.decode.mp3-module.html
new file mode 100644 (file)
index 0000000..7afaaa0
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.mp3</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        Module&nbsp;mp3
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.mp3-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module mp3</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.decode.mp3-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.decode.mp3.Mp3Decoder-class.html" class="summary-name">Mp3Decoder</a><br />
+      Defines methods to decode from MP3
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.mp3-pysrc.html b/doc/epydoc/timeside.decode.mp3-pysrc.html
new file mode 100644 (file)
index 0000000..7f5f1ef
--- /dev/null
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.mp3</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        Module&nbsp;mp3
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.mp3-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.decode.mp3-module.html">Module timeside.decode.mp3</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (C) 2007 Parisson SARL</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2006-2007 Guillaume Pellerin &lt;pellerin@parisson.com&gt;</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">string</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">subprocess</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.decode=timeside.decode-module.html"><a title="timeside.decode" class="py-name" href="#" onclick="return doclink('link-1', 'decode', 'link-1');">decode</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IDecoder=timeside.api.IDecoder-class.html"><a title="timeside.api.IDecoder" class="py-name" href="#" onclick="return doclink('link-5', 'IDecoder', 'link-5');">IDecoder</a></tt> </tt>
+<a name="Mp3Decoder"></a><div id="Mp3Decoder-def"><a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt> <a class="py-toggle" href="#" id="Mp3Decoder-toggle" onclick="return toggle('Mp3Decoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.decode.mp3.Mp3Decoder-class.html">Mp3Decoder</a><tt class="py-op">(</tt><tt class="py-base-class">DecoderCore</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Decoder-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="Mp3Decoder-expanded"><a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">    <tt class="py-docstring">"""Defines methods to decode from MP3"""</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line"> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IDecoder" class="py-name" href="#" onclick="return doclink('link-7', 'IDecoder', 'link-5');">IDecoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line"> </tt>
+<a name="Mp3Decoder.__init__"></a><div id="Mp3Decoder.__init__-def"><a name="L36"></a><tt class="py-lineno">36</tt> <a class="py-toggle" href="#" id="Mp3Decoder.__init__-toggle" onclick="return toggle('Mp3Decoder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.mp3.Mp3Decoder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Decoder.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="Mp3Decoder.__init__-expanded"><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">command</tt> <tt class="py-op">=</tt> <tt class="py-string">'sox -t mp3 "%s" -q -b 16 -r 44100 -t wav -c2 - '</tt> </tt>
+</div><a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="Mp3Decoder.id"></a><div id="Mp3Decoder.id-def"><a name="L40"></a><tt class="py-lineno">40</tt> <a class="py-toggle" href="#" id="Mp3Decoder.id-toggle" onclick="return toggle('Mp3Decoder.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.mp3.Mp3Decoder-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Decoder.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="Mp3Decoder.id-expanded"><a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"mp3dec"</tt> </tt>
+</div><a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">     </tt>
+<a name="Mp3Decoder.format"></a><div id="Mp3Decoder.format-def"><a name="L43"></a><tt class="py-lineno">43</tt> <a class="py-toggle" href="#" id="Mp3Decoder.format-toggle" onclick="return toggle('Mp3Decoder.format');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.mp3.Mp3Decoder-class.html#format">format</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Decoder.format-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="Mp3Decoder.format-expanded"><a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'MP3'</tt> </tt>
+</div><a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line"> </tt>
+<a name="Mp3Decoder.file_extension"></a><div id="Mp3Decoder.file_extension-def"><a name="L46"></a><tt class="py-lineno">46</tt> <a class="py-toggle" href="#" id="Mp3Decoder.file_extension-toggle" onclick="return toggle('Mp3Decoder.file_extension');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.mp3.Mp3Decoder-class.html#file_extension">file_extension</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Decoder.file_extension-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="Mp3Decoder.file_extension-expanded"><a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'mp3'</tt> </tt>
+</div><a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line"> </tt>
+<a name="Mp3Decoder.mime_type"></a><div id="Mp3Decoder.mime_type-def"><a name="L49"></a><tt class="py-lineno">49</tt> <a class="py-toggle" href="#" id="Mp3Decoder.mime_type-toggle" onclick="return toggle('Mp3Decoder.mime_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.mp3.Mp3Decoder-class.html#mime_type">mime_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Decoder.mime_type-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="Mp3Decoder.mime_type-expanded"><a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'audio/mpeg'</tt> </tt>
+</div><a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"> </tt>
+<a name="Mp3Decoder.description"></a><div id="Mp3Decoder.description-def"><a name="L52"></a><tt class="py-lineno">52</tt> <a class="py-toggle" href="#" id="Mp3Decoder.description-toggle" onclick="return toggle('Mp3Decoder.description');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.mp3.Mp3Decoder-class.html#description">description</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Decoder.description-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="Mp3Decoder.description-expanded"><a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"""</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line"><tt class="py-string">        MPEG-1 Audio Layer 3, more commonly referred to as MP3, is a patented</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line"><tt class="py-string">        digital audio encoding format using a form of lossy data compression.</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line"><tt class="py-string">        It is a common audio format for consumer audio storage, as well as a</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line"><tt class="py-string">        de facto standard of digital audio compression for the transfer and</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line"><tt class="py-string">        playback of music on digital audio players. MP3 is an audio-specific</tt> </tt>
+<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line"><tt class="py-string">        format that was designed by the Moving Picture Experts Group as part</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line"><tt class="py-string">        of its MPEG-1 standard. (source Wikipedia)</tt> </tt>
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line"><tt class="py-string">        """</tt> </tt>
+</div><a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line"> </tt>
+<a name="Mp3Decoder.get_file_info"></a><div id="Mp3Decoder.get_file_info-def"><a name="L63"></a><tt class="py-lineno">63</tt> <a class="py-toggle" href="#" id="Mp3Decoder.get_file_info-toggle" onclick="return toggle('Mp3Decoder.get_file_info');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.mp3.Mp3Decoder-class.html#get_file_info">get_file_info</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Decoder.get_file_info-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="Mp3Decoder.get_file_info-expanded"><a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">            <tt class="py-name">file_out1</tt><tt class="py-op">,</tt> <tt class="py-name">file_out2</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">popen4</tt><tt class="py-op">(</tt><tt class="py-string">'mp3info "'</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dest</tt><tt class="py-op">+</tt><tt class="py-string">'"'</tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">            <tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">file_out2</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">                <tt class="py-name">info</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">clean_word</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt> </tt>
+<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> </tt>
+<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'DecoderError: file does not exist.'</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L73"></a><tt class="py-lineno">73</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.mp3.Mp3Decoder-class.html b/doc/epydoc/timeside.decode.mp3.Mp3Decoder-class.html
new file mode 100644 (file)
index 0000000..924f48d
--- /dev/null
@@ -0,0 +1,391 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.mp3.Mp3Decoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        <a href="timeside.decode.mp3-module.html">Module&nbsp;mp3</a> ::
+        Class&nbsp;Mp3Decoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.mp3.Mp3Decoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Mp3Decoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.decode.mp3-pysrc.html#Mp3Decoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+           <a href="timeside.decode.core.DecoderCore-class.html">core.DecoderCore</a> --+
+                              |
+                             <strong class="uidshort">Mp3Decoder</strong>
+</pre>
+
+<hr />
+<p>Defines methods to decode from MP3</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.decode.mp3.Mp3Decoder-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.mp3-pysrc.html#Mp3Decoder.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="format"></a><span class="summary-sig-name">format</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.mp3-pysrc.html#Mp3Decoder.format">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="file_extension"></a><span class="summary-sig-name">file_extension</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.mp3-pysrc.html#Mp3Decoder.file_extension">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="mime_type"></a><span class="summary-sig-name">mime_type</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.mp3-pysrc.html#Mp3Decoder.mime_type">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="description"></a><span class="summary-sig-name">description</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.mp3-pysrc.html#Mp3Decoder.description">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_file_info"></a><span class="summary-sig-name">get_file_info</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.mp3-pysrc.html#Mp3Decoder.get_file_info">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.decode.core.DecoderCore-class.html">core.DecoderCore</a></code></b>:
+      <code><a href="timeside.decode.core.DecoderCore-class.html#process">process</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.mp3-pysrc.html#Mp3Decoder.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.decode.mp3-pysrc.html#Mp3Decoder.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.ogg-module.html b/doc/epydoc/timeside.decode.ogg-module.html
new file mode 100644 (file)
index 0000000..2172429
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.ogg</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        Module&nbsp;ogg
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.ogg-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module ogg</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.decode.ogg-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.decode.ogg.OggDecoder-class.html" class="summary-name">OggDecoder</a><br />
+      Defines methods to decode from OGG Vorbis
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.ogg-pysrc.html b/doc/epydoc/timeside.decode.ogg-pysrc.html
new file mode 100644 (file)
index 0000000..2e948e2
--- /dev/null
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.ogg</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        Module&nbsp;ogg
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.ogg-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.decode.ogg-module.html">Module timeside.decode.ogg</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">string</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">subprocess</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.decode=timeside.decode-module.html"><a title="timeside.decode" class="py-name" href="#" onclick="return doclink('link-1', 'decode', 'link-1');">decode</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IDecoder=timeside.api.IDecoder-class.html"><a title="timeside.api.IDecoder" class="py-name" href="#" onclick="return doclink('link-5', 'IDecoder', 'link-5');">IDecoder</a></tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">mutagen</tt><tt class="py-op">.</tt><tt class="py-name">oggvorbis</tt> <tt class="py-keyword">import</tt> <tt class="py-name">OggVorbis</tt> </tt>
+<a name="OggDecoder"></a><div id="OggDecoder-def"><a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt> <a class="py-toggle" href="#" id="OggDecoder-toggle" onclick="return toggle('OggDecoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.decode.ogg.OggDecoder-class.html">OggDecoder</a><tt class="py-op">(</tt><tt class="py-base-class">DecoderCore</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggDecoder-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="OggDecoder-expanded"><a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">    <tt class="py-docstring">"""Defines methods to decode from OGG Vorbis"""</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line"> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IDecoder" class="py-name" href="#" onclick="return doclink('link-7', 'IDecoder', 'link-5');">IDecoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="OggDecoder.id"></a><div id="OggDecoder.id-def"><a name="L36"></a><tt class="py-lineno">36</tt> <a class="py-toggle" href="#" id="OggDecoder.id-toggle" onclick="return toggle('OggDecoder.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.ogg.OggDecoder-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggDecoder.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="OggDecoder.id-expanded"><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"oggdec"</tt> </tt>
+</div><a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line">     </tt>
+<a name="OggDecoder.format"></a><div id="OggDecoder.format-def"><a name="L39"></a><tt class="py-lineno">39</tt> <a class="py-toggle" href="#" id="OggDecoder.format-toggle" onclick="return toggle('OggDecoder.format');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.ogg.OggDecoder-class.html#format">format</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggDecoder.format-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="OggDecoder.format-expanded"><a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'OggVorbis'</tt> </tt>
+</div><a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line"> </tt>
+<a name="OggDecoder.file_extension"></a><div id="OggDecoder.file_extension-def"><a name="L42"></a><tt class="py-lineno">42</tt> <a class="py-toggle" href="#" id="OggDecoder.file_extension-toggle" onclick="return toggle('OggDecoder.file_extension');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.ogg.OggDecoder-class.html#file_extension">file_extension</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggDecoder.file_extension-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="OggDecoder.file_extension-expanded"><a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'ogg'</tt> </tt>
+</div><a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line"> </tt>
+<a name="OggDecoder.mime_type"></a><div id="OggDecoder.mime_type-def"><a name="L45"></a><tt class="py-lineno">45</tt> <a class="py-toggle" href="#" id="OggDecoder.mime_type-toggle" onclick="return toggle('OggDecoder.mime_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.ogg.OggDecoder-class.html#mime_type">mime_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggDecoder.mime_type-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="OggDecoder.mime_type-expanded"><a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'application/ogg'</tt> </tt>
+</div><a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line"> </tt>
+<a name="OggDecoder.description"></a><div id="OggDecoder.description-def"><a name="L48"></a><tt class="py-lineno">48</tt> <a class="py-toggle" href="#" id="OggDecoder.description-toggle" onclick="return toggle('OggDecoder.description');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.ogg.OggDecoder-class.html#description">description</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggDecoder.description-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="OggDecoder.description-expanded"><a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"""</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line"><tt class="py-string">        Vorbis is a free software / open source project headed by the Xiph.Org</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"><tt class="py-string">        Foundation (formerly Xiphophorus company). The project produces an audio</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"><tt class="py-string">        format specification and software implementation (codec) for lossy audio</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"><tt class="py-string">        compression. Vorbis is most commonly used in conjunction with the Ogg</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line"><tt class="py-string">        container format and it is therefore often referred to as Ogg Vorbis.</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line"><tt class="py-string">        (source Wikipedia)</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line"><tt class="py-string">        """</tt> </tt>
+</div><a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line"> </tt>
+<a name="OggDecoder.get_file_info"></a><div id="OggDecoder.get_file_info-def"><a name="L58"></a><tt class="py-lineno">58</tt> <a class="py-toggle" href="#" id="OggDecoder.get_file_info-toggle" onclick="return toggle('OggDecoder.get_file_info');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.ogg.OggDecoder-class.html#get_file_info">get_file_info</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggDecoder.get_file_info-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="OggDecoder.get_file_info-expanded"><a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">            <tt class="py-name">file_out1</tt><tt class="py-op">,</tt> <tt class="py-name">file_out2</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">popen4</tt><tt class="py-op">(</tt><tt class="py-string">'ogginfo "'</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dest</tt><tt class="py-op">+</tt><tt class="py-string">'"'</tt><tt class="py-op">)</tt> </tt>
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">            <tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">file_out2</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">                <tt class="py-name">info</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">clean_word</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'DecoderError: file does not exist.'</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:42 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.ogg.OggDecoder-class.html b/doc/epydoc/timeside.decode.ogg.OggDecoder-class.html
new file mode 100644 (file)
index 0000000..974d5fe
--- /dev/null
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.ogg.OggDecoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        <a href="timeside.decode.ogg-module.html">Module&nbsp;ogg</a> ::
+        Class&nbsp;OggDecoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.ogg.OggDecoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class OggDecoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.decode.ogg-pysrc.html#OggDecoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+           <a href="timeside.decode.core.DecoderCore-class.html">core.DecoderCore</a> --+
+                              |
+                             <strong class="uidshort">OggDecoder</strong>
+</pre>
+
+<hr />
+<p>Defines methods to decode from OGG Vorbis</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="format"></a><span class="summary-sig-name">format</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.ogg-pysrc.html#OggDecoder.format">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="file_extension"></a><span class="summary-sig-name">file_extension</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.ogg-pysrc.html#OggDecoder.file_extension">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="mime_type"></a><span class="summary-sig-name">mime_type</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.ogg-pysrc.html#OggDecoder.mime_type">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="description"></a><span class="summary-sig-name">description</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.ogg-pysrc.html#OggDecoder.description">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_file_info"></a><span class="summary-sig-name">get_file_info</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.ogg-pysrc.html#OggDecoder.get_file_info">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.decode.core.DecoderCore-class.html">core.DecoderCore</a></code></b>:
+      <code><a href="timeside.decode.core.DecoderCore-class.html#__init__">__init__</a></code>,
+      <code><a href="timeside.decode.core.DecoderCore-class.html#process">process</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.ogg-pysrc.html#OggDecoder.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.wav-module.html b/doc/epydoc/timeside.decode.wav-module.html
new file mode 100644 (file)
index 0000000..2cdfaa5
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.wav</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        Module&nbsp;wav
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.wav-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module wav</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.decode.wav-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.decode.wav.WavDecoder-class.html" class="summary-name">WavDecoder</a><br />
+      Defines methods to decode from WAV
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.wav-pysrc.html b/doc/epydoc/timeside.decode.wav-pysrc.html
new file mode 100644 (file)
index 0000000..87028de
--- /dev/null
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.wav</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        Module&nbsp;wav
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.wav-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.decode.wav-module.html">Module timeside.decode.wav</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">string</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">subprocess</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.decode=timeside.decode-module.html"><a title="timeside.decode" class="py-name" href="#" onclick="return doclink('link-1', 'decode', 'link-1');">decode</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IDecoder=timeside.api.IDecoder-class.html"><a title="timeside.api.IDecoder" class="py-name" href="#" onclick="return doclink('link-5', 'IDecoder', 'link-5');">IDecoder</a></tt> </tt>
+<a name="WavDecoder"></a><div id="WavDecoder-def"><a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt> <a class="py-toggle" href="#" id="WavDecoder-toggle" onclick="return toggle('WavDecoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.decode.wav.WavDecoder-class.html">WavDecoder</a><tt class="py-op">(</tt><tt class="py-base-class">DecoderCore</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavDecoder-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="WavDecoder-expanded"><a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">    <tt class="py-docstring">"""Defines methods to decode from WAV"""</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line"> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IDecoder" class="py-name" href="#" onclick="return doclink('link-7', 'IDecoder', 'link-5');">IDecoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line"> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="WavDecoder.id"></a><div id="WavDecoder.id-def"><a name="L35"></a><tt class="py-lineno">35</tt> <a class="py-toggle" href="#" id="WavDecoder.id-toggle" onclick="return toggle('WavDecoder.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.wav.WavDecoder-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavDecoder.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavDecoder.id-expanded"><a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"wavdec"</tt> </tt>
+</div><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">     </tt>
+<a name="WavDecoder.format"></a><div id="WavDecoder.format-def"><a name="L38"></a><tt class="py-lineno">38</tt> <a class="py-toggle" href="#" id="WavDecoder.format-toggle" onclick="return toggle('WavDecoder.format');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.wav.WavDecoder-class.html#format">format</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavDecoder.format-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavDecoder.format-expanded"><a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'WAV'</tt> </tt>
+</div><a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"> </tt>
+<a name="WavDecoder.file_extension"></a><div id="WavDecoder.file_extension-def"><a name="L41"></a><tt class="py-lineno">41</tt> <a class="py-toggle" href="#" id="WavDecoder.file_extension-toggle" onclick="return toggle('WavDecoder.file_extension');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.wav.WavDecoder-class.html#file_extension">file_extension</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavDecoder.file_extension-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavDecoder.file_extension-expanded"><a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'wav'</tt> </tt>
+</div><a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line"> </tt>
+<a name="WavDecoder.mime_type"></a><div id="WavDecoder.mime_type-def"><a name="L44"></a><tt class="py-lineno">44</tt> <a class="py-toggle" href="#" id="WavDecoder.mime_type-toggle" onclick="return toggle('WavDecoder.mime_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.wav.WavDecoder-class.html#mime_type">mime_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavDecoder.mime_type-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavDecoder.mime_type-expanded"><a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'audio/x-wav'</tt> </tt>
+</div><a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line"> </tt>
+<a name="WavDecoder.description"></a><div id="WavDecoder.description-def"><a name="L47"></a><tt class="py-lineno">47</tt> <a class="py-toggle" href="#" id="WavDecoder.description-toggle" onclick="return toggle('WavDecoder.description');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.wav.WavDecoder-class.html#description">description</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavDecoder.description-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavDecoder.description-expanded"><a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"""</tt> </tt>
+<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line"><tt class="py-string">        WAV (or WAVE), short for Waveform audio format, also known as Audio for</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line"><tt class="py-string">        Windows, is a Microsoft and IBM audio file format standard for storing</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"><tt class="py-string">        an audio bitstream on PCs. It is an application of the RIFF bitstream</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"><tt class="py-string">        format method for storing data in &#8220;chunks&#8221;, and thus is also close to</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"><tt class="py-string">        the 8SVX and the AIFF format used on Amiga and Macintosh computers,</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line"><tt class="py-string">        respectively. It is the main format used on Windows systems for raw and</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line"><tt class="py-string">        typically uncompressed audio. The usual bitstream encoding is the Pulse</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line"><tt class="py-string">        Code Modulation (PCM) format.</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line"><tt class="py-string">        """</tt> </tt>
+</div><a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line"> </tt>
+<a name="WavDecoder.get_file_info"></a><div id="WavDecoder.get_file_info-def"><a name="L59"></a><tt class="py-lineno">59</tt> <a class="py-toggle" href="#" id="WavDecoder.get_file_info-toggle" onclick="return toggle('WavDecoder.get_file_info');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.decode.wav.WavDecoder-class.html#get_file_info">get_file_info</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavDecoder.get_file_info-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavDecoder.get_file_info-expanded"><a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">            <tt class="py-name">file1</tt><tt class="py-op">,</tt> <tt class="py-name">file2</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">popen4</tt><tt class="py-op">(</tt><tt class="py-string">'wavinfo "'</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dest</tt><tt class="py-op">+</tt><tt class="py-string">'"'</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">            <tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">file2</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">                <tt class="py-name">info</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">clean_word</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'DecoderError: wavinfo id not installed or file does not exist.'</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:42 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.decode.wav.WavDecoder-class.html b/doc/epydoc/timeside.decode.wav.WavDecoder-class.html
new file mode 100644 (file)
index 0000000..61c9286
--- /dev/null
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.decode.wav.WavDecoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.decode-module.html">Package&nbsp;decode</a> ::
+        <a href="timeside.decode.wav-module.html">Module&nbsp;wav</a> ::
+        Class&nbsp;WavDecoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.decode.wav.WavDecoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class WavDecoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.decode.wav-pysrc.html#WavDecoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+           <a href="timeside.decode.core.DecoderCore-class.html">core.DecoderCore</a> --+
+                              |
+                             <strong class="uidshort">WavDecoder</strong>
+</pre>
+
+<hr />
+<p>Defines methods to decode from WAV</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="format"></a><span class="summary-sig-name">format</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.wav-pysrc.html#WavDecoder.format">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="file_extension"></a><span class="summary-sig-name">file_extension</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.wav-pysrc.html#WavDecoder.file_extension">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="mime_type"></a><span class="summary-sig-name">mime_type</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.wav-pysrc.html#WavDecoder.mime_type">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="description"></a><span class="summary-sig-name">description</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.wav-pysrc.html#WavDecoder.description">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_file_info"></a><span class="summary-sig-name">get_file_info</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.wav-pysrc.html#WavDecoder.get_file_info">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.decode.core.DecoderCore-class.html">core.DecoderCore</a></code></b>:
+      <code><a href="timeside.decode.core.DecoderCore-class.html#__init__">__init__</a></code>,
+      <code><a href="timeside.decode.core.DecoderCore-class.html#process">process</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.decode.wav-pysrc.html#WavDecoder.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode-module.html b/doc/epydoc/timeside.encode-module.html
new file mode 100644 (file)
index 0000000..413d5a6
--- /dev/null
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Package&nbsp;encode
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PACKAGE DESCRIPTION ==================== -->
+<h1 class="epydoc">Package encode</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.encode-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== SUBMODULES ==================== -->
+<a name="section-Submodules"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Submodules</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Submodules"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr><td class="summary">
+  <ul class="nomargin">
+    <li> <strong class="uidlink"><a href="timeside.encode.core-module.html">timeside.encode.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.flac-module.html">timeside.encode.flac</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.mp3-module.html">timeside.encode.mp3</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.ogg-module.html">timeside.encode.ogg</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.encode.wav-module.html">timeside.encode.wav</a></strong>    </li>
+  </ul></td></tr>
+</table>
+
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode-pysrc.html b/doc/epydoc/timeside.encode-pysrc.html
new file mode 100644 (file)
index 0000000..742785e
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Package&nbsp;encode
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.encode-module.html">Package timeside.encode</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">2</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L3"></a><tt class="py-lineno">3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.encode=timeside.encode-module.html"><a title="timeside.encode" class="py-name" href="#" onclick="return doclink('link-1', 'encode', 'link-1');">encode</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">4</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="timeside.encode" class="py-name" href="#" onclick="return doclink('link-4', 'encode', 'link-1');">encode</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module timeside.decode.ogg=timeside.decode.ogg-module.html,Module timeside.encode.ogg=timeside.encode.ogg-module.html"><a title="timeside.decode.ogg
+timeside.encode.ogg" class="py-name" href="#" onclick="return doclink('link-5', 'ogg', 'link-5');">ogg</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">5</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-6', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="timeside.encode" class="py-name" href="#" onclick="return doclink('link-7', 'encode', 'link-1');">encode</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Module timeside.decode.wav=timeside.decode.wav-module.html,Module timeside.encode.wav=timeside.encode.wav-module.html"><a title="timeside.decode.wav
+timeside.encode.wav" class="py-name" href="#" onclick="return doclink('link-8', 'wav', 'link-8');">wav</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">6</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-9" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-9', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="timeside.encode" class="py-name" href="#" onclick="return doclink('link-10', 'encode', 'link-1');">encode</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Module timeside.decode.mp3=timeside.decode.mp3-module.html,Module timeside.encode.mp3=timeside.encode.mp3-module.html"><a title="timeside.decode.mp3
+timeside.encode.mp3" class="py-name" href="#" onclick="return doclink('link-11', 'mp3', 'link-11');">mp3</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">7</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-12" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-12', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="timeside.encode" class="py-name" href="#" onclick="return doclink('link-13', 'encode', 'link-1');">encode</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Module timeside.decode.flac=timeside.decode.flac-module.html,Module timeside.encode.flac=timeside.encode.flac-module.html"><a title="timeside.decode.flac
+timeside.encode.flac" class="py-name" href="#" onclick="return doclink('link-14', 'flac', 'link-14');">flac</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">8</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:42 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.core-module.html b/doc/epydoc/timeside.encode.core-module.html
new file mode 100644 (file)
index 0000000..271ccb7
--- /dev/null
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        Module&nbsp;core
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.core-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module core</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.encode.core-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.encode.core.SubProcessPipe-class.html" class="summary-name">SubProcessPipe</a><br />
+      Read media and stream data through a generator.
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.encode.core.EncoderCore-class.html" class="summary-name">EncoderCore</a><br />
+      Defines the main parts of the encoding tools : paths, metadata 
+        parsing, data streaming thru system command
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.core-pysrc.html b/doc/epydoc/timeside.encode.core-pysrc.html
new file mode 100644 (file)
index 0000000..1bc8d19
--- /dev/null
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        Module&nbsp;core
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.core-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.encode.core-module.html">Module timeside.encode.core</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.encode=timeside.encode-module.html"><a title="timeside.encode" class="py-name" href="#" onclick="return doclink('link-1', 'encode', 'link-1');">encode</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-2', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-3', 'core', 'link-3');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">subprocess</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="SubProcessPipe"></a><div id="SubProcessPipe-def"><a name="L29"></a><tt class="py-lineno">29</tt> <a class="py-toggle" href="#" id="SubProcessPipe-toggle" onclick="return toggle('SubProcessPipe');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.encode.core.SubProcessPipe-class.html">SubProcessPipe</a><tt class="py-op">:</tt> </tt>
+</div><div id="SubProcessPipe-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="SubProcessPipe-expanded"><a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">    <tt class="py-docstring">"""Read media and stream data through a generator.</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line"><tt class="py-docstring">    Taken from Telemeta (see http://telemeta.org)"""</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line"> </tt>
+<a name="SubProcessPipe.__init__"></a><div id="SubProcessPipe.__init__-def"><a name="L33"></a><tt class="py-lineno">33</tt> <a class="py-toggle" href="#" id="SubProcessPipe.__init__-toggle" onclick="return toggle('SubProcessPipe.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.core.SubProcessPipe-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">command</tt><tt class="py-op">,</tt> <tt class="py-param">stdin</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SubProcessPipe.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SubProcessPipe.__init__-expanded"><a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt> <tt class="py-op">=</tt> <tt class="py-number">0xFFFF</tt> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">stdin</tt><tt class="py-op">:</tt> </tt>
+<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">            <tt class="py-name">stdin</tt> <tt class="py-op">=</tt>  <tt class="py-name">subprocess</tt><tt class="py-op">.</tt><tt class="py-name">PIPE</tt> </tt>
+<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proc</tt> <tt class="py-op">=</tt> <tt class="py-name">subprocess</tt><tt class="py-op">.</tt><tt class="py-name">Popen</tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="timeside.encode" class="py-name" href="#" onclick="return doclink('link-4', 'encode', 'link-1');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">                    <tt class="py-name">shell</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">                    <tt class="py-name">bufsize</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt><tt class="py-op">,</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">                    <tt class="py-name">stdin</tt> <tt class="py-op">=</tt> <tt class="py-name">stdin</tt><tt class="py-op">,</tt> </tt>
+<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">                    <tt class="py-name">stdout</tt> <tt class="py-op">=</tt> <tt class="py-name">subprocess</tt><tt class="py-op">.</tt><tt class="py-name">PIPE</tt><tt class="py-op">,</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">                    <tt class="py-name">close_fds</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line"> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">input</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proc</tt><tt class="py-op">.</tt><tt class="py-name">stdin</tt> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">output</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proc</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt> </tt>
+</div></div><a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line"> </tt>
+<a name="EncoderCore"></a><div id="EncoderCore-def"><a name="L48"></a><tt class="py-lineno">48</tt> <a class="py-toggle" href="#" id="EncoderCore-toggle" onclick="return toggle('EncoderCore');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.encode.core.EncoderCore-class.html">EncoderCore</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="EncoderCore-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="EncoderCore-expanded"><a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">    <tt class="py-docstring">"""Defines the main parts of the encoding tools :</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line"><tt class="py-docstring">    paths, metadata parsing, data streaming thru system command"""</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"> </tt>
+<a name="EncoderCore.core_process"></a><div id="EncoderCore.core_process-def"><a name="L52"></a><tt class="py-lineno">52</tt> <a class="py-toggle" href="#" id="EncoderCore.core_process-toggle" onclick="return toggle('EncoderCore.core_process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.core.EncoderCore-class.html#core_process">core_process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">command</tt><tt class="py-op">,</tt> <tt class="py-param">stdin</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="EncoderCore.core_process-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="EncoderCore.core_process-expanded"><a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line">        <tt class="py-docstring">"""Encode and stream audio data through a generator"""</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line"> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">        <tt class="py-name">proc</tt> <tt class="py-op">=</tt> <tt id="link-5" class="py-name" targets="Class timeside.decode.core.SubProcessPipe=timeside.decode.core.SubProcessPipe-class.html,Class timeside.encode.core.SubProcessPipe=timeside.encode.core.SubProcessPipe-class.html"><a title="timeside.decode.core.SubProcessPipe
+timeside.encode.core.SubProcessPipe" class="py-name" href="#" onclick="return doclink('link-5', 'SubProcessPipe', 'link-5');">SubProcessPipe</a></tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">,</tt> <tt class="py-name">stdin</tt><tt class="py-op">)</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line"> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">            <tt class="py-name">__chunk</tt> <tt class="py-op">=</tt> <tt class="py-name">proc</tt><tt class="py-op">.</tt><tt class="py-name">output</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.read()=timeside.analyze.core.AudioProcessor-class.html#read"><a title="timeside.analyze.core.AudioProcessor.read" class="py-name" href="#" onclick="return doclink('link-6', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">proc</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">            <tt class="py-comment">#status = proc.poll()</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment">#if status != None and status != 0:</tt> </tt>
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line"><tt class="py-comment"></tt>                <tt class="py-comment">#raise EncodeProcessError('Command failure:', command, proc)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">__chunk</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">__chunk</tt> </tt>
+</div></div><a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.core.EncoderCore-class.html b/doc/epydoc/timeside.encode.core.EncoderCore-class.html
new file mode 100644 (file)
index 0000000..b45b9b1
--- /dev/null
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.core.EncoderCore</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        <a href="timeside.encode.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;EncoderCore
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.core.EncoderCore-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class EncoderCore</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.encode.core-pysrc.html#EncoderCore">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">EncoderCore</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="timeside.encode.wav.WavEncoder-class.html">wav.WavEncoder</a></li><li>, <a href="timeside.encode.mp3.Mp3Encoder-class.html">mp3.Mp3Encoder</a></li><li>, <a href="timeside.encode.flac.FlacEncoder-class.html">flac.FlacEncoder</a></li><li>, <a href="timeside.encode.ogg.OggVorbisEncoder-class.html">ogg.OggVorbisEncoder</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<p>Defines the main parts of the encoding tools : paths, metadata 
+  parsing, data streaming thru system command</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="core_process"></a><span class="summary-sig-name">core_process</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">command</span>,
+        <span class="summary-sig-arg">stdin</span>)</span><br />
+      Encode and stream audio data through a generator</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.core-pysrc.html#EncoderCore.core_process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.core.SubProcessPipe-class.html b/doc/epydoc/timeside.encode.core.SubProcessPipe-class.html
new file mode 100644 (file)
index 0000000..915a14e
--- /dev/null
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.core.SubProcessPipe</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        <a href="timeside.encode.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;SubProcessPipe
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.core.SubProcessPipe-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SubProcessPipe</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.encode.core-pysrc.html#SubProcessPipe">source&nbsp;code</a></span></p>
+<p>Read media and stream data through a generator. Taken from Telemeta 
+  (see http://telemeta.org)</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__init__"></a><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">command</span>,
+        <span class="summary-sig-arg">stdin</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.core-pysrc.html#SubProcessPipe.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.flac-module.html b/doc/epydoc/timeside.encode.flac-module.html
new file mode 100644 (file)
index 0000000..db310f8
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.flac</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        Module&nbsp;flac
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.flac-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module flac</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.encode.flac-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.encode.flac.FlacEncoder-class.html" class="summary-name">FlacEncoder</a><br />
+      Defines methods to encode to FLAC
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.flac-pysrc.html b/doc/epydoc/timeside.encode.flac-pysrc.html
new file mode 100644 (file)
index 0000000..cfd2051
--- /dev/null
@@ -0,0 +1,417 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.flac</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        Module&nbsp;flac
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.flac-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.encode.flac-module.html">Module timeside.encode.flac</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">string</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">subprocess</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.encode=timeside.encode-module.html"><a title="timeside.encode" class="py-name" href="#" onclick="return doclink('link-1', 'encode', 'link-1');">encode</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IEncoder=timeside.api.IEncoder-class.html"><a title="timeside.api.IEncoder" class="py-name" href="#" onclick="return doclink('link-5', 'IEncoder', 'link-5');">IEncoder</a></tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">tempfile</tt> <tt class="py-keyword">import</tt> <tt class="py-name">NamedTemporaryFile</tt> </tt>
+<a name="FlacEncoder"></a><div id="FlacEncoder-def"><a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <a class="py-toggle" href="#" id="FlacEncoder-toggle" onclick="return toggle('FlacEncoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.encode.flac.FlacEncoder-class.html">FlacEncoder</a><tt class="py-op">(</tt><tt class="py-base-class">EncoderCore</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacEncoder-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="FlacEncoder-expanded"><a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">    <tt class="py-docstring">"""Defines methods to encode to FLAC"""</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IEncoder" class="py-name" href="#" onclick="return doclink('link-7', 'IEncoder', 'link-5');">IEncoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"> </tt>
+<a name="FlacEncoder.__init__"></a><div id="FlacEncoder.__init__-def"><a name="L35"></a><tt class="py-lineno"> 35</tt> <a class="py-toggle" href="#" id="FlacEncoder.__init__-toggle" onclick="return toggle('FlacEncoder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.flac.FlacEncoder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacEncoder.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FlacEncoder.__init__-expanded"><a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">quality_default</tt> <tt class="py-op">=</tt> <tt class="py-string">'-5'</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dub2args_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'creator'</tt><tt class="py-op">:</tt> <tt class="py-string">'artist'</tt><tt class="py-op">,</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">                             <tt class="py-string">'relation'</tt><tt class="py-op">:</tt> <tt class="py-string">'album'</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">                             <tt class="py-op">}</tt> </tt>
+</div><a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="FlacEncoder.id"></a><div id="FlacEncoder.id-def"><a name="L42"></a><tt class="py-lineno"> 42</tt> <a class="py-toggle" href="#" id="FlacEncoder.id-toggle" onclick="return toggle('FlacEncoder.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.flac.FlacEncoder-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacEncoder.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FlacEncoder.id-expanded"><a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"flacenc"</tt> </tt>
+</div><a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">     </tt>
+<a name="FlacEncoder.format"></a><div id="FlacEncoder.format-def"><a name="L45"></a><tt class="py-lineno"> 45</tt> <a class="py-toggle" href="#" id="FlacEncoder.format-toggle" onclick="return toggle('FlacEncoder.format');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.flac.FlacEncoder-class.html#format">format</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacEncoder.format-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FlacEncoder.format-expanded"><a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'FLAC'</tt> </tt>
+</div><a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"> </tt>
+<a name="FlacEncoder.file_extension"></a><div id="FlacEncoder.file_extension-def"><a name="L48"></a><tt class="py-lineno"> 48</tt> <a class="py-toggle" href="#" id="FlacEncoder.file_extension-toggle" onclick="return toggle('FlacEncoder.file_extension');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.flac.FlacEncoder-class.html#file_extension">file_extension</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacEncoder.file_extension-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FlacEncoder.file_extension-expanded"><a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'flac'</tt> </tt>
+</div><a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"> </tt>
+<a name="FlacEncoder.mime_type"></a><div id="FlacEncoder.mime_type-def"><a name="L51"></a><tt class="py-lineno"> 51</tt> <a class="py-toggle" href="#" id="FlacEncoder.mime_type-toggle" onclick="return toggle('FlacEncoder.mime_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.flac.FlacEncoder-class.html#mime_type">mime_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacEncoder.mime_type-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FlacEncoder.mime_type-expanded"><a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'audio/x-flac'</tt> </tt>
+</div><a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"> </tt>
+<a name="FlacEncoder.description"></a><div id="FlacEncoder.description-def"><a name="L54"></a><tt class="py-lineno"> 54</tt> <a class="py-toggle" href="#" id="FlacEncoder.description-toggle" onclick="return toggle('FlacEncoder.description');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.flac.FlacEncoder-class.html#description">description</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacEncoder.description-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FlacEncoder.description-expanded"><a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"""</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-string">        Free Lossless Audio Codec (FLAC) is a file format for lossless audio</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-string">        data compression.</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-string">        """</tt> </tt>
+</div><a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"> </tt>
+<a name="FlacEncoder.get_file_info"></a><div id="FlacEncoder.get_file_info-def"><a name="L60"></a><tt class="py-lineno"> 60</tt> <a class="py-toggle" href="#" id="FlacEncoder.get_file_info-toggle" onclick="return toggle('FlacEncoder.get_file_info');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.flac.FlacEncoder-class.html#get_file_info">get_file_info</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacEncoder.get_file_info-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FlacEncoder.get_file_info-expanded"><a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">            <tt class="py-name">file1</tt><tt class="py-op">,</tt> <tt class="py-name">file2</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">popen4</tt><tt class="py-op">(</tt><tt class="py-string">'metaflac --list "'</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dest</tt><tt class="py-op">+</tt><tt class="py-string">'"'</tt><tt class="py-op">)</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">            <tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">file2</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">                <tt class="py-name">info</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">clean_word</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'EncoderError: metaflac is not installed or '</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">                           <tt class="py-string">'file does not exist.'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"> </tt>
+<a name="FlacEncoder.write_tags"></a><div id="FlacEncoder.write_tags-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="FlacEncoder.write_tags-toggle" onclick="return toggle('FlacEncoder.write_tags');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.flac.FlacEncoder-class.html#write_tags">write_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">file</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacEncoder.write_tags-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FlacEncoder.write_tags-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt class="py-name">mutagen</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Module timeside.decode.flac=timeside.decode.flac-module.html,Module timeside.encode.flac=timeside.encode.flac-module.html"><a title="timeside.decode.flac
+timeside.encode.flac" class="py-name" href="#" onclick="return doclink('link-8', 'flac', 'link-8');">flac</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">FLAC</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-name">media</tt> <tt class="py-op">=</tt> <tt class="py-name">FLAC</tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">)</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method timeside.api.IDecoder.metadata()=timeside.api.IDecoder-class.html#metadata,Module timeside.metadata=timeside.metadata-module.html,Method timeside.tests.api.examples.FileDecoder.metadata()=timeside.tests.api.examples.FileDecoder-class.html#metadata,Method timeside.tests.api.gstreamer.FileDecoder.metadata()=timeside.tests.api.gstreamer.FileDecoder-class.html#metadata"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-9', 'metadata', 'link-9');">metadata</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">            <tt id="link-10" class="py-name" targets="Method timeside.analyze.channels.ChannelAnalyser.name()=timeside.analyze.channels.ChannelAnalyser-class.html#name,Method timeside.analyze.dc.MeanDCShiftAnalyser.name()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#name,Method timeside.analyze.duration.DurationAnalyzer.name()=timeside.analyze.duration.DurationAnalyzer-class.html#name,Method timeside.analyze.encoding.EncodingAnalyser.name()=timeside.analyze.encoding.EncodingAnalyser-class.html#name,Method timeside.analyze.format.FormatAnalyser.name()=timeside.analyze.format.FormatAnalyser-class.html#name,Static Method timeside.analyze.max_level.MaxLevelAnalyzer.name()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#name,Method timeside.analyze.mean_level.MeanLevelAnalyser.name()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#name,Method timeside.analyze.resolution.ResolutionAnalyser.name()=timeside.analyze.resolution.ResolutionAnalyser-class.html#name,Method timeside.analyze.samplerate.SampleRateAnalyzer.name()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#name,Method timeside.analyze.vamp.core.VampCoreAnalyzer.name()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#name,Static Method timeside.api.IAnalyzer.name()=timeside.api.IAnalyzer-class.html#name,Static Method timeside.api.IEffect.name()=timeside.api.IEffect-class.html#name,Static Method timeside.api.IGrapher.name()=timeside.api.IGrapher-class.html#name,Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#name,Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#name,Static Method timeside.tests.api.examples.Duration.name()=timeside.tests.api.examples.Duration-class.html#name,Static Method timeside.tests.api.examples.Gain.name()=timeside.tests.api.examples.Gain-class.html#name,Static Method timeside.tests.api.examples.MaxLevel.name()=timeside.tests.api.examples.MaxLevel-class.html#name,Static Method timeside.tests.api.examples.Spectrogram.name()=timeside.tests.api.examples.Spectrogram-class.html#name,Static Method timeside.tests.api.examples.Waveform.name()=timeside.tests.api.examples.Waveform-class.html#name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-10', 'name', 'link-10');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tag</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">clean_word</tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-11" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-11', 'name', 'link-10');">name</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dub2args_dict</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">                <tt id="link-12" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-12', 'name', 'link-10');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dub2args_dict</tt><tt class="py-op">[</tt><tt id="link-13" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-13', 'name', 'link-10');">name</a></tt><tt class="py-op">]</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-14" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-14', 'name', 'link-10');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'comment'</tt><tt class="py-op">:</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">                <tt class="py-name">media</tt><tt class="py-op">[</tt><tt class="py-string">'DESCRIPTION'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">                <tt class="py-name">media</tt><tt class="py-op">[</tt><tt id="link-15" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-15', 'name', 'link-10');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">            <tt class="py-name">media</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method timeside.grapher.core.SpectrogramImage.save()=timeside.grapher.core.SpectrogramImage-class.html#save,Method timeside.grapher.core.WaveformImage.save()=timeside.grapher.core.WaveformImage-class.html#save"><a title="timeside.grapher.core.SpectrogramImage.save
+timeside.grapher.core.WaveformImage.save" class="py-name" href="#" onclick="return doclink('link-16', 'save', 'link-16');">save</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'EncoderError: cannot write tags.'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"> </tt>
+<a name="FlacEncoder.get_args"></a><div id="FlacEncoder.get_args-def"><a name="L90"></a><tt class="py-lineno"> 90</tt> <a class="py-toggle" href="#" id="FlacEncoder.get_args-toggle" onclick="return toggle('FlacEncoder.get_args');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.flac.FlacEncoder-class.html#get_args">get_args</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacEncoder.get_args-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FlacEncoder.get_args-expanded"><a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-docstring">"""Get process options and return arguments for the encoder"""</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">options</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt> <tt class="py-op">=</tt> <tt class="py-name">options</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-string">'verbose'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt><tt class="py-op">[</tt><tt class="py-string">'verbose'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">                <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-s'</tt><tt class="py-op">)</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">'flac_quality'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt><tt class="py-op">:</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">                <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-f '</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt><tt class="py-op">[</tt><tt class="py-string">'flac_quality'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">                <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-f '</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">quality_default</tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">            <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-s -f '</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">quality_default</tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-comment">#for tag in self.metadata.keys():</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment">#value = clean_word(self.metadata[tag])</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment">#args.append('-c %s="%s"' % (tag, value))</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment">#if tag in self.dub2args_dict.keys():</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"><tt class="py-comment"></tt>                <tt class="py-comment">#arg = self.dub2args_dict[tag]</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"><tt class="py-comment"></tt>                <tt class="py-comment">#args.append('-c %s="%s"' % (arg, value))</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">args</tt> </tt>
+</div><a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"> </tt>
+<a name="FlacEncoder.process"></a><div id="FlacEncoder.process-def"><a name="L113"></a><tt class="py-lineno">113</tt> <a class="py-toggle" href="#" id="FlacEncoder.process-toggle" onclick="return toggle('FlacEncoder.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.flac.FlacEncoder-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">metadata</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlacEncoder.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FlacEncoder.process-expanded"><a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-name">buffer_size</tt> <tt class="py-op">=</tt> <tt class="py-number">0xFFFF</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-17', 'metadata', 'link-9');">metadata</a></tt><tt class="py-op">=</tt> <tt id="link-18" class="py-name"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-18', 'metadata', 'link-9');">metadata</a></tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt> <tt class="py-op">=</tt> <tt class="py-name">options</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method timeside.encode.flac.FlacEncoder.get_args()=timeside.encode.flac.FlacEncoder-class.html#get_args,Method timeside.encode.mp3.Mp3Encoder.get_args()=timeside.encode.mp3.Mp3Encoder-class.html#get_args,Method timeside.encode.ogg.OggVorbisEncoder.get_args()=timeside.encode.ogg.OggVorbisEncoder-class.html#get_args"><a title="timeside.encode.flac.FlacEncoder.get_args
+timeside.encode.mp3.Mp3Encoder.get_args
+timeside.encode.ogg.OggVorbisEncoder.get_args" class="py-name" href="#" onclick="return doclink('link-19', 'get_args', 'link-19');">get_args</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">        <tt class="py-name">ext</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Static Method timeside.api.IEncoder.file_extension()=timeside.api.IEncoder-class.html#file_extension,Method timeside.decode.flac.FlacDecoder.file_extension()=timeside.decode.flac.FlacDecoder-class.html#file_extension,Method timeside.decode.mp3.Mp3Decoder.file_extension()=timeside.decode.mp3.Mp3Decoder-class.html#file_extension,Method timeside.decode.ogg.OggDecoder.file_extension()=timeside.decode.ogg.OggDecoder-class.html#file_extension,Method timeside.decode.wav.WavDecoder.file_extension()=timeside.decode.wav.WavDecoder-class.html#file_extension,Method timeside.encode.flac.FlacEncoder.file_extension()=timeside.encode.flac.FlacEncoder-class.html#file_extension,Method timeside.encode.mp3.Mp3Encoder.file_extension()=timeside.encode.mp3.Mp3Encoder-class.html#file_extension,Method timeside.encode.ogg.OggVorbisEncoder.file_extension()=timeside.encode.ogg.OggVorbisEncoder-class.html#file_extension,Method timeside.encode.wav.WavEncoder.file_extension()=timeside.encode.wav.WavEncoder-class.html#file_extension,Static Method timeside.tests.api.examples.WavEncoder.file_extension()=timeside.tests.api.examples.WavEncoder-class.html#file_extension,Static Method timeside.tests.api.gstreamer.WavEncoder.file_extension()=timeside.tests.api.gstreamer.WavEncoder-class.html#file_extension"><a title="timeside.api.IEncoder.file_extension
+timeside.decode.flac.FlacDecoder.file_extension
+timeside.decode.mp3.Mp3Decoder.file_extension
+timeside.decode.ogg.OggDecoder.file_extension
+timeside.decode.wav.WavDecoder.file_extension
+timeside.encode.flac.FlacEncoder.file_extension
+timeside.encode.mp3.Mp3Encoder.file_extension
+timeside.encode.ogg.OggVorbisEncoder.file_extension
+timeside.encode.wav.WavEncoder.file_extension
+timeside.tests.api.examples.WavEncoder.file_extension
+timeside.tests.api.gstreamer.WavEncoder.file_extension" class="py-name" href="#" onclick="return doclink('link-20', 'file_extension', 'link-20');">file_extension</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-name">temp_file</tt> <tt class="py-op">=</tt> <tt class="py-name">NamedTemporaryFile</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt class="py-name">command</tt> <tt class="py-op">=</tt> <tt class="py-string">'flac %s - -o %s '</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-name">temp_file</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-21', 'name', 'link-10');">name</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-name">stream</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method timeside.analyze.vamp.core.VampCoreAnalyzer.core_process()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#core_process,Method timeside.encode.core.EncoderCore.core_process()=timeside.encode.core.EncoderCore-class.html#core_process"><a title="timeside.analyze.vamp.core.VampCoreAnalyzer.core_process
+timeside.encode.core.EncoderCore.core_process" class="py-name" href="#" onclick="return doclink('link-22', 'core_process', 'link-22');">core_process</a></tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">,</tt> <tt id="link-23" class="py-name" targets="Variable timeside.tests.api.test_lolevel.source=timeside.tests.api.test_lolevel-module.html#source,Variable timeside.tests.api.test_pipe.source=timeside.tests.api.test_pipe-module.html#source,Variable timeside.tests.api.test_pipe_spectrogram.source=timeside.tests.api.test_pipe_spectrogram-module.html#source,Variable timeside.tests.api.test_pipe_waveform.source=timeside.tests.api.test_pipe_waveform-module.html#source"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-23', 'source', 'link-23');">source</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">         </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">__chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">stream</tt><tt class="py-op">:</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">            <tt class="py-comment">#temp_file.write(__chunk)</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment">#temp_file.flush()</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">pass</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-comment">#self.write_tags(temp_file.name)</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">            <tt class="py-name">__chunk</tt> <tt class="py-op">=</tt> <tt class="py-name">temp_file</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.read()=timeside.analyze.core.AudioProcessor-class.html#read"><a title="timeside.analyze.core.AudioProcessor.read" class="py-name" href="#" onclick="return doclink('link-24', 'read', 'link-24');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">buffer_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">__chunk</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">__chunk</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">        <tt class="py-name">temp_file</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.flac.FlacEncoder-class.html b/doc/epydoc/timeside.encode.flac.FlacEncoder-class.html
new file mode 100644 (file)
index 0000000..c1839a9
--- /dev/null
@@ -0,0 +1,479 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.flac.FlacEncoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        <a href="timeside.encode.flac-module.html">Module&nbsp;flac</a> ::
+        Class&nbsp;FlacEncoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.flac.FlacEncoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class FlacEncoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.encode.flac-pysrc.html#FlacEncoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+           <a href="timeside.encode.core.EncoderCore-class.html">core.EncoderCore</a> --+
+                              |
+                             <strong class="uidshort">FlacEncoder</strong>
+</pre>
+
+<hr />
+<p>Defines methods to encode to FLAC</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.encode.flac.FlacEncoder-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.flac-pysrc.html#FlacEncoder.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="format"></a><span class="summary-sig-name">format</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.flac-pysrc.html#FlacEncoder.format">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="file_extension"></a><span class="summary-sig-name">file_extension</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.flac-pysrc.html#FlacEncoder.file_extension">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="mime_type"></a><span class="summary-sig-name">mime_type</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.flac-pysrc.html#FlacEncoder.mime_type">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="description"></a><span class="summary-sig-name">description</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.flac-pysrc.html#FlacEncoder.description">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_file_info"></a><span class="summary-sig-name">get_file_info</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.flac-pysrc.html#FlacEncoder.get_file_info">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="write_tags"></a><span class="summary-sig-name">write_tags</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">file</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.flac-pysrc.html#FlacEncoder.write_tags">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_args"></a><span class="summary-sig-name">get_args</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Get process options and return arguments for the encoder</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.flac-pysrc.html#FlacEncoder.get_args">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.encode.flac.FlacEncoder-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">source</span>,
+        <span class="summary-sig-arg">metadata</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.flac-pysrc.html#FlacEncoder.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.encode.core.EncoderCore-class.html">core.EncoderCore</a></code></b>:
+      <code><a href="timeside.encode.core.EncoderCore-class.html#core_process">core_process</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.flac-pysrc.html#FlacEncoder.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.encode.flac-pysrc.html#FlacEncoder.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">source</span>,
+        <span class="sig-arg">metadata</span>,
+        <span class="sig-arg">options</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.encode.flac-pysrc.html#FlacEncoder.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.mp3-module.html b/doc/epydoc/timeside.encode.mp3-module.html
new file mode 100644 (file)
index 0000000..4a8b717
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.mp3</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        Module&nbsp;mp3
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.mp3-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module mp3</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.encode.mp3-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.encode.mp3.Mp3Encoder-class.html" class="summary-name">Mp3Encoder</a><br />
+      Defines methods to encode to MP3
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.mp3-pysrc.html b/doc/epydoc/timeside.encode.mp3-pysrc.html
new file mode 100644 (file)
index 0000000..b2f7089
--- /dev/null
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.mp3</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        Module&nbsp;mp3
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.mp3-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.encode.mp3-module.html">Module timeside.encode.mp3</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (C) 2007 Parisson SARL</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2006-2007 Guillaume Pellerin &lt;pellerin@parisson.com&gt;</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">string</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">subprocess</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.encode=timeside.encode-module.html"><a title="timeside.encode" class="py-name" href="#" onclick="return doclink('link-1', 'encode', 'link-1');">encode</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IEncoder=timeside.api.IEncoder-class.html"><a title="timeside.api.IEncoder" class="py-name" href="#" onclick="return doclink('link-5', 'IEncoder', 'link-5');">IEncoder</a></tt> </tt>
+<a name="Mp3Encoder"></a><div id="Mp3Encoder-def"><a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <a class="py-toggle" href="#" id="Mp3Encoder-toggle" onclick="return toggle('Mp3Encoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.encode.mp3.Mp3Encoder-class.html">Mp3Encoder</a><tt class="py-op">(</tt><tt class="py-base-class">EncoderCore</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Encoder-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Mp3Encoder-expanded"><a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">    <tt class="py-docstring">"""Defines methods to encode to MP3"""</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IEncoder" class="py-name" href="#" onclick="return doclink('link-7', 'IEncoder', 'link-5');">IEncoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"> </tt>
+<a name="Mp3Encoder.__init__"></a><div id="Mp3Encoder.__init__-def"><a name="L36"></a><tt class="py-lineno"> 36</tt> <a class="py-toggle" href="#" id="Mp3Encoder.__init__-toggle" onclick="return toggle('Mp3Encoder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.mp3.Mp3Encoder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Encoder.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Mp3Encoder.__init__-expanded"><a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bitrate_default</tt> <tt class="py-op">=</tt> <tt class="py-string">'192'</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dub2id3_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'title'</tt><tt class="py-op">:</tt> <tt class="py-string">'TIT2'</tt><tt class="py-op">,</tt> <tt class="py-comment">#title2</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">                             <tt class="py-string">'creator'</tt><tt class="py-op">:</tt> <tt class="py-string">'TCOM'</tt><tt class="py-op">,</tt> <tt class="py-comment">#composer</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">                             <tt class="py-string">'creator'</tt><tt class="py-op">:</tt> <tt class="py-string">'TPE1'</tt><tt class="py-op">,</tt> <tt class="py-comment">#lead</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">                             <tt class="py-string">'identifier'</tt><tt class="py-op">:</tt> <tt class="py-string">'UFID'</tt><tt class="py-op">,</tt> <tt class="py-comment">#Unique ID...</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">                             <tt class="py-string">'identifier'</tt><tt class="py-op">:</tt> <tt class="py-string">'TALB'</tt><tt class="py-op">,</tt> <tt class="py-comment">#album</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">                             <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'TCON'</tt><tt class="py-op">,</tt> <tt class="py-comment">#genre</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">                             <tt class="py-string">'publisher'</tt><tt class="py-op">:</tt> <tt class="py-string">'TPUB'</tt><tt class="py-op">,</tt> <tt class="py-comment">#comment</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">                             <tt class="py-comment">#'date': 'TYER', #year</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">                             <tt class="py-op">}</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dub2args_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'title'</tt><tt class="py-op">:</tt> <tt class="py-string">'tt'</tt><tt class="py-op">,</tt> <tt class="py-comment">#title2</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">                             <tt class="py-string">'creator'</tt><tt class="py-op">:</tt> <tt class="py-string">'ta'</tt><tt class="py-op">,</tt> <tt class="py-comment">#composerS</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">                             <tt class="py-string">'relation'</tt><tt class="py-op">:</tt> <tt class="py-string">'tl'</tt><tt class="py-op">,</tt> <tt class="py-comment">#album</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">                             <tt class="py-comment">#'type': 'tg', #genre</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">                             <tt class="py-string">'publisher'</tt><tt class="py-op">:</tt> <tt class="py-string">'tc'</tt><tt class="py-op">,</tt> <tt class="py-comment">#comment</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">                             <tt class="py-string">'date'</tt><tt class="py-op">:</tt> <tt class="py-string">'ty'</tt><tt class="py-op">,</tt> <tt class="py-comment">#year</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">                             <tt class="py-op">}</tt> </tt>
+</div><a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="Mp3Encoder.id"></a><div id="Mp3Encoder.id-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="Mp3Encoder.id-toggle" onclick="return toggle('Mp3Encoder.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.mp3.Mp3Encoder-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Encoder.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Mp3Encoder.id-expanded"><a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"mp3enc"</tt> </tt>
+</div><a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">     </tt>
+<a name="Mp3Encoder.format"></a><div id="Mp3Encoder.format-def"><a name="L59"></a><tt class="py-lineno"> 59</tt> <a class="py-toggle" href="#" id="Mp3Encoder.format-toggle" onclick="return toggle('Mp3Encoder.format');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.mp3.Mp3Encoder-class.html#format">format</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Encoder.format-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Mp3Encoder.format-expanded"><a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'MP3'</tt> </tt>
+</div><a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"> </tt>
+<a name="Mp3Encoder.file_extension"></a><div id="Mp3Encoder.file_extension-def"><a name="L62"></a><tt class="py-lineno"> 62</tt> <a class="py-toggle" href="#" id="Mp3Encoder.file_extension-toggle" onclick="return toggle('Mp3Encoder.file_extension');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.mp3.Mp3Encoder-class.html#file_extension">file_extension</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Encoder.file_extension-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Mp3Encoder.file_extension-expanded"><a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'mp3'</tt> </tt>
+</div><a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"> </tt>
+<a name="Mp3Encoder.mime_type"></a><div id="Mp3Encoder.mime_type-def"><a name="L65"></a><tt class="py-lineno"> 65</tt> <a class="py-toggle" href="#" id="Mp3Encoder.mime_type-toggle" onclick="return toggle('Mp3Encoder.mime_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.mp3.Mp3Encoder-class.html#mime_type">mime_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Encoder.mime_type-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Mp3Encoder.mime_type-expanded"><a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'audio/mpeg'</tt> </tt>
+</div><a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"> </tt>
+<a name="Mp3Encoder.description"></a><div id="Mp3Encoder.description-def"><a name="L68"></a><tt class="py-lineno"> 68</tt> <a class="py-toggle" href="#" id="Mp3Encoder.description-toggle" onclick="return toggle('Mp3Encoder.description');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.mp3.Mp3Encoder-class.html#description">description</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Encoder.description-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Mp3Encoder.description-expanded"><a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"""</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"><tt class="py-string">        MPEG-1 Audio Layer 3, more commonly referred to as MP3, is a patented</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"><tt class="py-string">        digital audio encoding format using a form of lossy data compression.</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"><tt class="py-string">        """</tt> </tt>
+</div><a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"> </tt>
+<a name="Mp3Encoder.get_file_info"></a><div id="Mp3Encoder.get_file_info-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="Mp3Encoder.get_file_info-toggle" onclick="return toggle('Mp3Encoder.get_file_info');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.mp3.Mp3Encoder-class.html#get_file_info">get_file_info</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Encoder.get_file_info-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Mp3Encoder.get_file_info-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">            <tt class="py-name">file_out1</tt><tt class="py-op">,</tt> <tt class="py-name">file_out2</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">popen4</tt><tt class="py-op">(</tt><tt class="py-string">'mp3info "'</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dest</tt><tt class="py-op">+</tt><tt class="py-string">'"'</tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">            <tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">file_out2</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">                <tt class="py-name">info</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">clean_word</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'EncoderError: file does not exist.'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"> </tt>
+<a name="Mp3Encoder.write_tags"></a><div id="Mp3Encoder.write_tags-def"><a name="L85"></a><tt class="py-lineno"> 85</tt> <a class="py-toggle" href="#" id="Mp3Encoder.write_tags-toggle" onclick="return toggle('Mp3Encoder.write_tags');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.mp3.Mp3Encoder-class.html#write_tags">write_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Encoder.write_tags-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Mp3Encoder.write_tags-expanded"><a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write all ID3v2.4 tags by mapping dub2id3_dict dictionnary with the</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-docstring">            respect of mutagen classes and methods"""</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt class="py-name">mutagen</tt> <tt class="py-keyword">import</tt> <tt class="py-name">id3</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-name">id3</tt> <tt class="py-op">=</tt> <tt class="py-name">id3</tt><tt class="py-op">.</tt><tt class="py-name">ID3</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dest</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method timeside.api.IDecoder.metadata()=timeside.api.IDecoder-class.html#metadata,Module timeside.metadata=timeside.metadata-module.html,Method timeside.tests.api.examples.FileDecoder.metadata()=timeside.tests.api.examples.FileDecoder-class.html#metadata,Method timeside.tests.api.gstreamer.FileDecoder.metadata()=timeside.tests.api.gstreamer.FileDecoder-class.html#metadata"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-8', 'metadata', 'link-8');">metadata</a></tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dub2id3_dict</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">                <tt class="py-name">frame_text</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dub2id3_dict</tt><tt class="py-op">[</tt><tt class="py-name">tag</tt><tt class="py-op">]</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-9', 'metadata', 'link-8');">metadata</a></tt><tt class="py-op">[</tt><tt class="py-name">tag</tt><tt class="py-op">]</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">                <tt class="py-name">frame</tt> <tt class="py-op">=</tt> <tt class="py-name">mutagen</tt><tt class="py-op">.</tt><tt class="py-name">id3</tt><tt class="py-op">.</tt><tt class="py-name">Frames</tt><tt class="py-op">[</tt><tt class="py-name">frame_text</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">                    <tt class="py-name">id3</tt><tt class="py-op">.</tt><tt class="py-name">add</tt><tt class="py-op">(</tt><tt class="py-name">frame</tt><tt class="py-op">)</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">                    <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'EncoderError: cannot tag "'</tt><tt class="py-op">+</tt><tt class="py-name">tag</tt><tt class="py-op">+</tt><tt class="py-string">'"'</tt><tt class="py-op">)</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">            <tt class="py-name">id3</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method timeside.grapher.core.SpectrogramImage.save()=timeside.grapher.core.SpectrogramImage-class.html#save,Method timeside.grapher.core.WaveformImage.save()=timeside.grapher.core.WaveformImage-class.html#save"><a title="timeside.grapher.core.SpectrogramImage.save
+timeside.grapher.core.WaveformImage.save" class="py-name" href="#" onclick="return doclink('link-10', 'save', 'link-10');">save</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'EncoderError: cannot write tags'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt>
+<a name="Mp3Encoder.get_args"></a><div id="Mp3Encoder.get_args-def"><a name="L104"></a><tt class="py-lineno">104</tt> <a class="py-toggle" href="#" id="Mp3Encoder.get_args-toggle" onclick="return toggle('Mp3Encoder.get_args');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.mp3.Mp3Encoder-class.html#get_args">get_args</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Encoder.get_args-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Mp3Encoder.get_args-expanded"><a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-docstring">"""Get process options and return arguments for the encoder"""</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt> <tt class="py-string">'verbose'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt><tt class="py-op">[</tt><tt class="py-string">'verbose'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'0'</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">                <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-S'</tt><tt class="py-op">)</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">'mp3_bitrate'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt><tt class="py-op">:</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">                <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-b '</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt><tt class="py-op">[</tt><tt class="py-string">'mp3_bitrate'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">                <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-b '</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bitrate_default</tt><tt class="py-op">)</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">            <tt class="py-comment">#Copyrights, etc..</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-c -o'</tt><tt class="py-op">)</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">            <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-S -c --tt "unknown" -o'</tt><tt class="py-op">)</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-11', 'metadata', 'link-8');">metadata</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">            <tt id="link-12" class="py-name" targets="Method timeside.analyze.channels.ChannelAnalyser.name()=timeside.analyze.channels.ChannelAnalyser-class.html#name,Method timeside.analyze.dc.MeanDCShiftAnalyser.name()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#name,Method timeside.analyze.duration.DurationAnalyzer.name()=timeside.analyze.duration.DurationAnalyzer-class.html#name,Method timeside.analyze.encoding.EncodingAnalyser.name()=timeside.analyze.encoding.EncodingAnalyser-class.html#name,Method timeside.analyze.format.FormatAnalyser.name()=timeside.analyze.format.FormatAnalyser-class.html#name,Static Method timeside.analyze.max_level.MaxLevelAnalyzer.name()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#name,Method timeside.analyze.mean_level.MeanLevelAnalyser.name()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#name,Method timeside.analyze.resolution.ResolutionAnalyser.name()=timeside.analyze.resolution.ResolutionAnalyser-class.html#name,Method timeside.analyze.samplerate.SampleRateAnalyzer.name()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#name,Method timeside.analyze.vamp.core.VampCoreAnalyzer.name()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#name,Static Method timeside.api.IAnalyzer.name()=timeside.api.IAnalyzer-class.html#name,Static Method timeside.api.IEffect.name()=timeside.api.IEffect-class.html#name,Static Method timeside.api.IGrapher.name()=timeside.api.IGrapher-class.html#name,Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#name,Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#name,Static Method timeside.tests.api.examples.Duration.name()=timeside.tests.api.examples.Duration-class.html#name,Static Method timeside.tests.api.examples.Gain.name()=timeside.tests.api.examples.Gain-class.html#name,Static Method timeside.tests.api.examples.MaxLevel.name()=timeside.tests.api.examples.MaxLevel-class.html#name,Static Method timeside.tests.api.examples.Spectrogram.name()=timeside.tests.api.examples.Spectrogram-class.html#name,Static Method timeside.tests.api.examples.Waveform.name()=timeside.tests.api.examples.Waveform-class.html#name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-12', 'name', 'link-12');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tag</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">clean_word</tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-13" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-13', 'name', 'link-12');">name</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dub2args_dict</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">                <tt class="py-name">arg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dub2args_dict</tt><tt class="py-op">[</tt><tt id="link-14" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-14', 'name', 'link-12');">name</a></tt><tt class="py-op">]</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">                <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'--'</tt> <tt class="py-op">+</tt> <tt class="py-name">arg</tt> <tt class="py-op">+</tt> <tt class="py-string">' "'</tt> <tt class="py-op">+</tt> <tt class="py-name">value</tt> <tt class="py-op">+</tt> <tt class="py-string">'"'</tt><tt class="py-op">)</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">args</tt> </tt>
+</div><a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"> </tt>
+<a name="Mp3Encoder.process"></a><div id="Mp3Encoder.process-def"><a name="L127"></a><tt class="py-lineno">127</tt> <a class="py-toggle" href="#" id="Mp3Encoder.process-toggle" onclick="return toggle('Mp3Encoder.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.mp3.Mp3Encoder-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">metadata</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Mp3Encoder.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Mp3Encoder.process-expanded"><a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-15', 'metadata', 'link-8');">metadata</a></tt> <tt class="py-op">=</tt> <tt id="link-16" class="py-name"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-16', 'metadata', 'link-8');">metadata</a></tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt> <tt class="py-op">=</tt> <tt class="py-name">options</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method timeside.encode.flac.FlacEncoder.get_args()=timeside.encode.flac.FlacEncoder-class.html#get_args,Method timeside.encode.mp3.Mp3Encoder.get_args()=timeside.encode.mp3.Mp3Encoder-class.html#get_args,Method timeside.encode.ogg.OggVorbisEncoder.get_args()=timeside.encode.ogg.OggVorbisEncoder-class.html#get_args"><a title="timeside.encode.flac.FlacEncoder.get_args
+timeside.encode.mp3.Mp3Encoder.get_args
+timeside.encode.ogg.OggVorbisEncoder.get_args" class="py-name" href="#" onclick="return doclink('link-17', 'get_args', 'link-17');">get_args</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">        <tt class="py-name">command</tt> <tt class="py-op">=</tt> <tt class="py-string">'lame %s - -'</tt> <tt class="py-op">%</tt> <tt class="py-name">args</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">        <tt class="py-name">stream</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method timeside.analyze.vamp.core.VampCoreAnalyzer.core_process()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#core_process,Method timeside.encode.core.EncoderCore.core_process()=timeside.encode.core.EncoderCore-class.html#core_process"><a title="timeside.analyze.vamp.core.VampCoreAnalyzer.core_process
+timeside.encode.core.EncoderCore.core_process" class="py-name" href="#" onclick="return doclink('link-18', 'core_process', 'link-18');">core_process</a></tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">,</tt> <tt id="link-19" class="py-name" targets="Variable timeside.tests.api.test_lolevel.source=timeside.tests.api.test_lolevel-module.html#source,Variable timeside.tests.api.test_pipe.source=timeside.tests.api.test_pipe-module.html#source,Variable timeside.tests.api.test_pipe_spectrogram.source=timeside.tests.api.test_pipe_spectrogram-module.html#source,Variable timeside.tests.api.test_pipe_waveform.source=timeside.tests.api.test_pipe_waveform-module.html#source"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-19', 'source', 'link-19');">source</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">__chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">stream</tt><tt class="py-op">:</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">__chunk</tt> </tt>
+</div></div><a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.mp3.Mp3Encoder-class.html b/doc/epydoc/timeside.encode.mp3.Mp3Encoder-class.html
new file mode 100644 (file)
index 0000000..acc1399
--- /dev/null
@@ -0,0 +1,479 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.mp3.Mp3Encoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        <a href="timeside.encode.mp3-module.html">Module&nbsp;mp3</a> ::
+        Class&nbsp;Mp3Encoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.mp3.Mp3Encoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Mp3Encoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.encode.mp3-pysrc.html#Mp3Encoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+           <a href="timeside.encode.core.EncoderCore-class.html">core.EncoderCore</a> --+
+                              |
+                             <strong class="uidshort">Mp3Encoder</strong>
+</pre>
+
+<hr />
+<p>Defines methods to encode to MP3</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.encode.mp3.Mp3Encoder-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.mp3-pysrc.html#Mp3Encoder.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="format"></a><span class="summary-sig-name">format</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.mp3-pysrc.html#Mp3Encoder.format">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="file_extension"></a><span class="summary-sig-name">file_extension</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.mp3-pysrc.html#Mp3Encoder.file_extension">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="mime_type"></a><span class="summary-sig-name">mime_type</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.mp3-pysrc.html#Mp3Encoder.mime_type">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="description"></a><span class="summary-sig-name">description</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.mp3-pysrc.html#Mp3Encoder.description">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_file_info"></a><span class="summary-sig-name">get_file_info</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.mp3-pysrc.html#Mp3Encoder.get_file_info">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="write_tags"></a><span class="summary-sig-name">write_tags</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Write all ID3v2.4 tags by mapping dub2id3_dict dictionnary with the 
+      respect of mutagen classes and methods</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.mp3-pysrc.html#Mp3Encoder.write_tags">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_args"></a><span class="summary-sig-name">get_args</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Get process options and return arguments for the encoder</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.mp3-pysrc.html#Mp3Encoder.get_args">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.encode.mp3.Mp3Encoder-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">source</span>,
+        <span class="summary-sig-arg">metadata</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.mp3-pysrc.html#Mp3Encoder.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.encode.core.EncoderCore-class.html">core.EncoderCore</a></code></b>:
+      <code><a href="timeside.encode.core.EncoderCore-class.html#core_process">core_process</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.mp3-pysrc.html#Mp3Encoder.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.encode.mp3-pysrc.html#Mp3Encoder.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">source</span>,
+        <span class="sig-arg">metadata</span>,
+        <span class="sig-arg">options</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.encode.mp3-pysrc.html#Mp3Encoder.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.ogg-module.html b/doc/epydoc/timeside.encode.ogg-module.html
new file mode 100644 (file)
index 0000000..fe6f4ef
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.ogg</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        Module&nbsp;ogg
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.ogg-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module ogg</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.encode.ogg-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.encode.ogg.OggVorbisEncoder-class.html" class="summary-name">OggVorbisEncoder</a><br />
+      Defines methods to encode to OGG Vorbis
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.ogg-pysrc.html b/doc/epydoc/timeside.encode.ogg-pysrc.html
new file mode 100644 (file)
index 0000000..91c808e
--- /dev/null
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.ogg</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        Module&nbsp;ogg
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.ogg-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.encode.ogg-module.html">Module timeside.encode.ogg</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">string</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">subprocess</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.encode=timeside.encode-module.html"><a title="timeside.encode" class="py-name" href="#" onclick="return doclink('link-1', 'encode', 'link-1');">encode</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IEncoder=timeside.api.IEncoder-class.html"><a title="timeside.api.IEncoder" class="py-name" href="#" onclick="return doclink('link-5', 'IEncoder', 'link-5');">IEncoder</a></tt> </tt>
+<a name="OggVorbisEncoder"></a><div id="OggVorbisEncoder-def"><a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="OggVorbisEncoder-toggle" onclick="return toggle('OggVorbisEncoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.encode.ogg.OggVorbisEncoder-class.html">OggVorbisEncoder</a><tt class="py-op">(</tt><tt class="py-base-class">EncoderCore</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggVorbisEncoder-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="OggVorbisEncoder-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">    <tt class="py-docstring">"""Defines methods to encode to OGG Vorbis"""</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IEncoder" class="py-name" href="#" onclick="return doclink('link-7', 'IEncoder', 'link-5');">IEncoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"> </tt>
+<a name="OggVorbisEncoder.__init__"></a><div id="OggVorbisEncoder.__init__-def"><a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="OggVorbisEncoder.__init__-toggle" onclick="return toggle('OggVorbisEncoder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.ogg.OggVorbisEncoder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggVorbisEncoder.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OggVorbisEncoder.__init__-expanded"><a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bitrate_default</tt> <tt class="py-op">=</tt> <tt class="py-string">'192'</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dub2args_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'creator'</tt><tt class="py-op">:</tt> <tt class="py-string">'artist'</tt><tt class="py-op">,</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">                             <tt class="py-string">'relation'</tt><tt class="py-op">:</tt> <tt class="py-string">'album'</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">                             <tt class="py-op">}</tt> </tt>
+</div><a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="OggVorbisEncoder.id"></a><div id="OggVorbisEncoder.id-def"><a name="L41"></a><tt class="py-lineno"> 41</tt> <a class="py-toggle" href="#" id="OggVorbisEncoder.id-toggle" onclick="return toggle('OggVorbisEncoder.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.ogg.OggVorbisEncoder-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggVorbisEncoder.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OggVorbisEncoder.id-expanded"><a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"oggenc"</tt> </tt>
+</div><a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"> </tt>
+<a name="OggVorbisEncoder.format"></a><div id="OggVorbisEncoder.format-def"><a name="L44"></a><tt class="py-lineno"> 44</tt> <a class="py-toggle" href="#" id="OggVorbisEncoder.format-toggle" onclick="return toggle('OggVorbisEncoder.format');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.ogg.OggVorbisEncoder-class.html#format">format</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggVorbisEncoder.format-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OggVorbisEncoder.format-expanded"><a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'OggVorbis'</tt> </tt>
+</div><a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"> </tt>
+<a name="OggVorbisEncoder.file_extension"></a><div id="OggVorbisEncoder.file_extension-def"><a name="L47"></a><tt class="py-lineno"> 47</tt> <a class="py-toggle" href="#" id="OggVorbisEncoder.file_extension-toggle" onclick="return toggle('OggVorbisEncoder.file_extension');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.ogg.OggVorbisEncoder-class.html#file_extension">file_extension</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggVorbisEncoder.file_extension-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OggVorbisEncoder.file_extension-expanded"><a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'ogg'</tt> </tt>
+</div><a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"> </tt>
+<a name="OggVorbisEncoder.mime_type"></a><div id="OggVorbisEncoder.mime_type-def"><a name="L50"></a><tt class="py-lineno"> 50</tt> <a class="py-toggle" href="#" id="OggVorbisEncoder.mime_type-toggle" onclick="return toggle('OggVorbisEncoder.mime_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.ogg.OggVorbisEncoder-class.html#mime_type">mime_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggVorbisEncoder.mime_type-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OggVorbisEncoder.mime_type-expanded"><a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'application/ogg'</tt> </tt>
+</div><a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"> </tt>
+<a name="OggVorbisEncoder.description"></a><div id="OggVorbisEncoder.description-def"><a name="L53"></a><tt class="py-lineno"> 53</tt> <a class="py-toggle" href="#" id="OggVorbisEncoder.description-toggle" onclick="return toggle('OggVorbisEncoder.description');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.ogg.OggVorbisEncoder-class.html#description">description</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggVorbisEncoder.description-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OggVorbisEncoder.description-expanded"><a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"""</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"><tt class="py-string">        Vorbis is a free software / open source project headed by the Xiph.Org</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-string">        Foundation (formerly Xiphophorus company). The project produces an audio</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-string">        format specification and software implementation (codec) for lossy audio</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-string">        compression. Vorbis is most commonly used in conjunction with the Ogg</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"><tt class="py-string">        container format and it is therefore often referred to as Ogg Vorbis.</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-string">        (source Wikipedia)</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"><tt class="py-string">        """</tt> </tt>
+</div><a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"> </tt>
+<a name="OggVorbisEncoder.get_file_info"></a><div id="OggVorbisEncoder.get_file_info-def"><a name="L63"></a><tt class="py-lineno"> 63</tt> <a class="py-toggle" href="#" id="OggVorbisEncoder.get_file_info-toggle" onclick="return toggle('OggVorbisEncoder.get_file_info');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.ogg.OggVorbisEncoder-class.html#get_file_info">get_file_info</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">file</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggVorbisEncoder.get_file_info-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OggVorbisEncoder.get_file_info-expanded"><a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">            <tt class="py-name">file_out1</tt><tt class="py-op">,</tt> <tt class="py-name">file_out2</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">popen4</tt><tt class="py-op">(</tt><tt class="py-string">'ogginfo "'</tt> <tt class="py-op">+</tt> <tt class="py-name">file</tt> <tt class="py-op">+</tt> <tt class="py-string">'"'</tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">            <tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">file_out2</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">                <tt class="py-name">info</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">clean_word</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'EncoderError: file does not exist.'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"> </tt>
+<a name="OggVorbisEncoder.write_tags"></a><div id="OggVorbisEncoder.write_tags-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="OggVorbisEncoder.write_tags-toggle" onclick="return toggle('OggVorbisEncoder.write_tags');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.ogg.OggVorbisEncoder-class.html#write_tags">write_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">file</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggVorbisEncoder.write_tags-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OggVorbisEncoder.write_tags-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt class="py-name">mutagen</tt><tt class="py-op">.</tt><tt class="py-name">oggvorbis</tt> <tt class="py-keyword">import</tt> <tt class="py-name">OggVorbis</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">        <tt class="py-name">media</tt> <tt class="py-op">=</tt> <tt class="py-name">OggVorbis</tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method timeside.api.IDecoder.metadata()=timeside.api.IDecoder-class.html#metadata,Module timeside.metadata=timeside.metadata-module.html,Method timeside.tests.api.examples.FileDecoder.metadata()=timeside.tests.api.examples.FileDecoder-class.html#metadata,Method timeside.tests.api.gstreamer.FileDecoder.metadata()=timeside.tests.api.gstreamer.FileDecoder-class.html#metadata"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-8', 'metadata', 'link-8');">metadata</a></tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">            <tt class="py-name">media</tt><tt class="py-op">[</tt><tt class="py-name">tag</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-9', 'metadata', 'link-8');">metadata</a></tt><tt class="py-op">[</tt><tt class="py-name">tag</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-name">media</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method timeside.grapher.core.SpectrogramImage.save()=timeside.grapher.core.SpectrogramImage-class.html#save,Method timeside.grapher.core.WaveformImage.save()=timeside.grapher.core.WaveformImage-class.html#save"><a title="timeside.grapher.core.SpectrogramImage.save
+timeside.grapher.core.WaveformImage.save" class="py-name" href="#" onclick="return doclink('link-10', 'save', 'link-10');">save</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"> </tt>
+<a name="OggVorbisEncoder.get_args"></a><div id="OggVorbisEncoder.get_args-def"><a name="L81"></a><tt class="py-lineno"> 81</tt> <a class="py-toggle" href="#" id="OggVorbisEncoder.get_args-toggle" onclick="return toggle('OggVorbisEncoder.get_args');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.ogg.OggVorbisEncoder-class.html#get_args">get_args</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggVorbisEncoder.get_args-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OggVorbisEncoder.get_args-expanded"><a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-docstring">"""Get process options and return arguments for the encoder"""</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-string">'verbose'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt><tt class="py-op">[</tt><tt class="py-string">'verbose'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">                <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-Q '</tt><tt class="py-op">)</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">'ogg_bitrate'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt><tt class="py-op">:</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">                <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-b '</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt><tt class="py-op">[</tt><tt class="py-string">'ogg_bitrate'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-string">'ogg_quality'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt><tt class="py-op">:</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">                <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-q '</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt><tt class="py-op">[</tt><tt class="py-string">'ogg_quality'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">                <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-b '</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bitrate_default</tt><tt class="py-op">)</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">            <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-Q -b '</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bitrate_default</tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-11', 'metadata', 'link-8');">metadata</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">            <tt id="link-12" class="py-name" targets="Method timeside.analyze.channels.ChannelAnalyser.name()=timeside.analyze.channels.ChannelAnalyser-class.html#name,Method timeside.analyze.dc.MeanDCShiftAnalyser.name()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#name,Method timeside.analyze.duration.DurationAnalyzer.name()=timeside.analyze.duration.DurationAnalyzer-class.html#name,Method timeside.analyze.encoding.EncodingAnalyser.name()=timeside.analyze.encoding.EncodingAnalyser-class.html#name,Method timeside.analyze.format.FormatAnalyser.name()=timeside.analyze.format.FormatAnalyser-class.html#name,Static Method timeside.analyze.max_level.MaxLevelAnalyzer.name()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#name,Method timeside.analyze.mean_level.MeanLevelAnalyser.name()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#name,Method timeside.analyze.resolution.ResolutionAnalyser.name()=timeside.analyze.resolution.ResolutionAnalyser-class.html#name,Method timeside.analyze.samplerate.SampleRateAnalyzer.name()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#name,Method timeside.analyze.vamp.core.VampCoreAnalyzer.name()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#name,Static Method timeside.api.IAnalyzer.name()=timeside.api.IAnalyzer-class.html#name,Static Method timeside.api.IEffect.name()=timeside.api.IEffect-class.html#name,Static Method timeside.api.IGrapher.name()=timeside.api.IGrapher-class.html#name,Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#name,Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#name,Static Method timeside.tests.api.examples.Duration.name()=timeside.tests.api.examples.Duration-class.html#name,Static Method timeside.tests.api.examples.Gain.name()=timeside.tests.api.examples.Gain-class.html#name,Static Method timeside.tests.api.examples.MaxLevel.name()=timeside.tests.api.examples.MaxLevel-class.html#name,Static Method timeside.tests.api.examples.Spectrogram.name()=timeside.tests.api.examples.Spectrogram-class.html#name,Static Method timeside.tests.api.examples.Waveform.name()=timeside.tests.api.examples.Waveform-class.html#name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-12', 'name', 'link-12');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tag</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">clean_word</tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">            <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-c %s="%s"'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-13" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-13', 'name', 'link-12');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-14" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-14', 'name', 'link-12');">name</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dub2args_dict</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">                <tt class="py-name">arg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dub2args_dict</tt><tt class="py-op">[</tt><tt id="link-15" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-15', 'name', 'link-12');">name</a></tt><tt class="py-op">]</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">                <tt class="py-name">args</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'-c %s="%s"'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">args</tt> </tt>
+</div><a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"> </tt>
+<a name="OggVorbisEncoder.process"></a><div id="OggVorbisEncoder.process-def"><a name="L105"></a><tt class="py-lineno">105</tt> <a class="py-toggle" href="#" id="OggVorbisEncoder.process-toggle" onclick="return toggle('OggVorbisEncoder.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.ogg.OggVorbisEncoder-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">metadata</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OggVorbisEncoder.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OggVorbisEncoder.process-expanded"><a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-16', 'metadata', 'link-8');">metadata</a></tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-17', 'metadata', 'link-8');">metadata</a></tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt> <tt class="py-op">=</tt> <tt class="py-name">options</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method timeside.encode.flac.FlacEncoder.get_args()=timeside.encode.flac.FlacEncoder-class.html#get_args,Method timeside.encode.mp3.Mp3Encoder.get_args()=timeside.encode.mp3.Mp3Encoder-class.html#get_args,Method timeside.encode.ogg.OggVorbisEncoder.get_args()=timeside.encode.ogg.OggVorbisEncoder-class.html#get_args"><a title="timeside.encode.flac.FlacEncoder.get_args
+timeside.encode.mp3.Mp3Encoder.get_args
+timeside.encode.ogg.OggVorbisEncoder.get_args" class="py-name" href="#" onclick="return doclink('link-18', 'get_args', 'link-18');">get_args</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt class="py-name">command</tt> <tt class="py-op">=</tt> <tt class="py-string">'oggenc %s -'</tt> <tt class="py-op">%</tt> <tt class="py-name">args</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-name">stream</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method timeside.analyze.vamp.core.VampCoreAnalyzer.core_process()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#core_process,Method timeside.encode.core.EncoderCore.core_process()=timeside.encode.core.EncoderCore-class.html#core_process"><a title="timeside.analyze.vamp.core.VampCoreAnalyzer.core_process
+timeside.encode.core.EncoderCore.core_process" class="py-name" href="#" onclick="return doclink('link-19', 'core_process', 'link-19');">core_process</a></tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">,</tt> <tt id="link-20" class="py-name" targets="Variable timeside.tests.api.test_lolevel.source=timeside.tests.api.test_lolevel-module.html#source,Variable timeside.tests.api.test_pipe.source=timeside.tests.api.test_pipe-module.html#source,Variable timeside.tests.api.test_pipe_spectrogram.source=timeside.tests.api.test_pipe_spectrogram-module.html#source,Variable timeside.tests.api.test_pipe_waveform.source=timeside.tests.api.test_pipe_waveform-module.html#source"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-20', 'source', 'link-20');">source</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">__chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">stream</tt><tt class="py-op">:</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">__chunk</tt> </tt>
+</div></div><a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:42 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.ogg.OggVorbisEncoder-class.html b/doc/epydoc/timeside.encode.ogg.OggVorbisEncoder-class.html
new file mode 100644 (file)
index 0000000..768d7aa
--- /dev/null
@@ -0,0 +1,479 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.ogg.OggVorbisEncoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        <a href="timeside.encode.ogg-module.html">Module&nbsp;ogg</a> ::
+        Class&nbsp;OggVorbisEncoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.ogg.OggVorbisEncoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class OggVorbisEncoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.encode.ogg-pysrc.html#OggVorbisEncoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+           <a href="timeside.encode.core.EncoderCore-class.html">core.EncoderCore</a> --+
+                              |
+                             <strong class="uidshort">OggVorbisEncoder</strong>
+</pre>
+
+<hr />
+<p>Defines methods to encode to OGG Vorbis</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.ogg-pysrc.html#OggVorbisEncoder.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="format"></a><span class="summary-sig-name">format</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.ogg-pysrc.html#OggVorbisEncoder.format">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="file_extension"></a><span class="summary-sig-name">file_extension</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.ogg-pysrc.html#OggVorbisEncoder.file_extension">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="mime_type"></a><span class="summary-sig-name">mime_type</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.ogg-pysrc.html#OggVorbisEncoder.mime_type">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="description"></a><span class="summary-sig-name">description</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.ogg-pysrc.html#OggVorbisEncoder.description">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_file_info"></a><span class="summary-sig-name">get_file_info</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">file</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.ogg-pysrc.html#OggVorbisEncoder.get_file_info">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="write_tags"></a><span class="summary-sig-name">write_tags</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">file</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.ogg-pysrc.html#OggVorbisEncoder.write_tags">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_args"></a><span class="summary-sig-name">get_args</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Get process options and return arguments for the encoder</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.ogg-pysrc.html#OggVorbisEncoder.get_args">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.encode.ogg.OggVorbisEncoder-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">source</span>,
+        <span class="summary-sig-arg">metadata</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.ogg-pysrc.html#OggVorbisEncoder.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.encode.core.EncoderCore-class.html">core.EncoderCore</a></code></b>:
+      <code><a href="timeside.encode.core.EncoderCore-class.html#core_process">core_process</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.ogg-pysrc.html#OggVorbisEncoder.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.encode.ogg-pysrc.html#OggVorbisEncoder.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">source</span>,
+        <span class="sig-arg">metadata</span>,
+        <span class="sig-arg">options</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.encode.ogg-pysrc.html#OggVorbisEncoder.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.wav-module.html b/doc/epydoc/timeside.encode.wav-module.html
new file mode 100644 (file)
index 0000000..4970c22
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.wav</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        Module&nbsp;wav
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.wav-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module wav</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.encode.wav-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.encode.wav.WavEncoder-class.html" class="summary-name">WavEncoder</a><br />
+      Defines methods to encode to WAV
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.wav-pysrc.html b/doc/epydoc/timeside.encode.wav-pysrc.html
new file mode 100644 (file)
index 0000000..a80f26c
--- /dev/null
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.wav</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        Module&nbsp;wav
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.wav-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.encode.wav-module.html">Module timeside.encode.wav</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">string</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.encode=timeside.encode-module.html"><a title="timeside.encode" class="py-name" href="#" onclick="return doclink('link-1', 'encode', 'link-1');">encode</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-4', 'api', 'link-4');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.api.IEncoder=timeside.api.IEncoder-class.html"><a title="timeside.api.IEncoder" class="py-name" href="#" onclick="return doclink('link-5', 'IEncoder', 'link-5');">IEncoder</a></tt> </tt>
+<a name="WavEncoder"></a><div id="WavEncoder-def"><a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt> <a class="py-toggle" href="#" id="WavEncoder-toggle" onclick="return toggle('WavEncoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.encode.wav.WavEncoder-class.html">WavEncoder</a><tt class="py-op">(</tt><tt class="py-base-class">EncoderCore</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="WavEncoder-expanded"><a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">    <tt class="py-docstring">"""Defines methods to encode to WAV"""</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">    <tt id="link-6" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-6', 'implements', 'link-6');">implements</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="timeside.api.IEncoder" class="py-name" href="#" onclick="return doclink('link-7', 'IEncoder', 'link-5');">IEncoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line"> </tt>
+<a name="WavEncoder.__init__"></a><div id="WavEncoder.__init__-def"><a name="L33"></a><tt class="py-lineno">33</tt> <a class="py-toggle" href="#" id="WavEncoder.__init__-toggle" onclick="return toggle('WavEncoder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.wav.WavEncoder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavEncoder.__init__-expanded"><a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line"> </tt>
+<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="WavEncoder.id"></a><div id="WavEncoder.id-def"><a name="L37"></a><tt class="py-lineno">37</tt> <a class="py-toggle" href="#" id="WavEncoder.id-toggle" onclick="return toggle('WavEncoder.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.wav.WavEncoder-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavEncoder.id-expanded"><a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"wavenc"</tt> </tt>
+</div><a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line"> </tt>
+<a name="WavEncoder.format"></a><div id="WavEncoder.format-def"><a name="L40"></a><tt class="py-lineno">40</tt> <a class="py-toggle" href="#" id="WavEncoder.format-toggle" onclick="return toggle('WavEncoder.format');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.wav.WavEncoder-class.html#format">format</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.format-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavEncoder.format-expanded"><a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'WAV'</tt> </tt>
+</div><a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line"> </tt>
+<a name="WavEncoder.file_extension"></a><div id="WavEncoder.file_extension-def"><a name="L43"></a><tt class="py-lineno">43</tt> <a class="py-toggle" href="#" id="WavEncoder.file_extension-toggle" onclick="return toggle('WavEncoder.file_extension');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.wav.WavEncoder-class.html#file_extension">file_extension</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.file_extension-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavEncoder.file_extension-expanded"><a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'wav'</tt> </tt>
+</div><a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line"> </tt>
+<a name="WavEncoder.mime_type"></a><div id="WavEncoder.mime_type-def"><a name="L46"></a><tt class="py-lineno">46</tt> <a class="py-toggle" href="#" id="WavEncoder.mime_type-toggle" onclick="return toggle('WavEncoder.mime_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.wav.WavEncoder-class.html#mime_type">mime_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.mime_type-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavEncoder.mime_type-expanded"><a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'audio/x-wav'</tt> </tt>
+</div><a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line"> </tt>
+<a name="WavEncoder.description"></a><div id="WavEncoder.description-def"><a name="L49"></a><tt class="py-lineno">49</tt> <a class="py-toggle" href="#" id="WavEncoder.description-toggle" onclick="return toggle('WavEncoder.description');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.wav.WavEncoder-class.html#description">description</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.description-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavEncoder.description-expanded"><a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"""</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"><tt class="py-string">        WAV (or WAVE), short for Waveform audio format, also known as Audio for</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"><tt class="py-string">        Windows, is a Microsoft and IBM audio file format standard for storing</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"><tt class="py-string">        an audio bitstream on PCs. It is an application of the RIFF bitstream</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line"><tt class="py-string">        format method for storing data in &#8220;chunks&#8221;, and thus is also close to</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line"><tt class="py-string">        the 8SVX and the AIFF format used on Amiga and Macintosh computers,</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line"><tt class="py-string">        respectively. It is the main format used on Windows systems for raw and</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line"><tt class="py-string">        typically uncompressed audio. The usual bitstream encoding is the Pulse</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line"><tt class="py-string">        Code Modulation (PCM) format.</tt> </tt>
+<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line"><tt class="py-string">        """</tt> </tt>
+</div><a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line"> </tt>
+<a name="WavEncoder.get_file_info"></a><div id="WavEncoder.get_file_info-def"><a name="L61"></a><tt class="py-lineno">61</tt> <a class="py-toggle" href="#" id="WavEncoder.get_file_info-toggle" onclick="return toggle('WavEncoder.get_file_info');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.wav.WavEncoder-class.html#get_file_info">get_file_info</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.get_file_info-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavEncoder.get_file_info-expanded"><a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">            <tt class="py-name">file1</tt><tt class="py-op">,</tt> <tt class="py-name">file2</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">popen4</tt><tt class="py-op">(</tt><tt class="py-string">'wavinfo "'</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dest</tt><tt class="py-op">+</tt><tt class="py-string">'"'</tt><tt class="py-op">)</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">            <tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">file2</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">                <tt class="py-name">info</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">clean_word</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">info</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'EncoderError: wavinfo id not installed or file does not exist.'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line"> </tt>
+<a name="WavEncoder.process"></a><div id="WavEncoder.process-def"><a name="L72"></a><tt class="py-lineno">72</tt> <a class="py-toggle" href="#" id="WavEncoder.process-toggle" onclick="return toggle('WavEncoder.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.encode.wav.WavEncoder-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">metadata</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.process-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WavEncoder.process-expanded"><a name="L73"></a><tt class="py-lineno">73</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method timeside.api.IDecoder.metadata()=timeside.api.IDecoder-class.html#metadata,Module timeside.metadata=timeside.metadata-module.html,Method timeside.tests.api.examples.FileDecoder.metadata()=timeside.tests.api.examples.FileDecoder-class.html#metadata,Method timeside.tests.api.gstreamer.FileDecoder.metadata()=timeside.tests.api.gstreamer.FileDecoder-class.html#metadata"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-8', 'metadata', 'link-8');">metadata</a></tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-9', 'metadata', 'link-8');">metadata</a></tt> </tt>
+<a name="L74"></a><tt class="py-lineno">74</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">options</tt> <tt class="py-op">=</tt> <tt class="py-name">options</tt> </tt>
+<a name="L75"></a><tt class="py-lineno">75</tt>  <tt class="py-line">        <tt class="py-name">command</tt> <tt class="py-op">=</tt> <tt class="py-string">'sox -t wav - -s -q -b 16 -r 44100 -t wav -c2 -'</tt> </tt>
+<a name="L76"></a><tt class="py-lineno">76</tt>  <tt class="py-line"> </tt>
+<a name="L77"></a><tt class="py-lineno">77</tt>  <tt class="py-line">        <tt class="py-name">stream</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method timeside.analyze.vamp.core.VampCoreAnalyzer.core_process()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#core_process,Method timeside.encode.core.EncoderCore.core_process()=timeside.encode.core.EncoderCore-class.html#core_process"><a title="timeside.analyze.vamp.core.VampCoreAnalyzer.core_process
+timeside.encode.core.EncoderCore.core_process" class="py-name" href="#" onclick="return doclink('link-10', 'core_process', 'link-10');">core_process</a></tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">,</tt> <tt id="link-11" class="py-name" targets="Variable timeside.tests.api.test_lolevel.source=timeside.tests.api.test_lolevel-module.html#source,Variable timeside.tests.api.test_pipe.source=timeside.tests.api.test_pipe-module.html#source,Variable timeside.tests.api.test_pipe_spectrogram.source=timeside.tests.api.test_pipe_spectrogram-module.html#source,Variable timeside.tests.api.test_pipe_waveform.source=timeside.tests.api.test_pipe_waveform-module.html#source"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-11', 'source', 'link-11');">source</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno">78</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">__chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">stream</tt><tt class="py-op">:</tt> </tt>
+<a name="L79"></a><tt class="py-lineno">79</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">__chunk</tt> </tt>
+</div></div><a name="L80"></a><tt class="py-lineno">80</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:42 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.encode.wav.WavEncoder-class.html b/doc/epydoc/timeside.encode.wav.WavEncoder-class.html
new file mode 100644 (file)
index 0000000..17b9266
--- /dev/null
@@ -0,0 +1,444 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.encode.wav.WavEncoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.encode-module.html">Package&nbsp;encode</a> ::
+        <a href="timeside.encode.wav-module.html">Module&nbsp;wav</a> ::
+        Class&nbsp;WavEncoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.encode.wav.WavEncoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class WavEncoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.encode.wav-pysrc.html#WavEncoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+            
+                  |            
+<a href="timeside.component.Component-class.html">component.Component</a> --+        
+                      |        
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+    
+                          |    
+           <a href="timeside.encode.core.EncoderCore-class.html">core.EncoderCore</a> --+
+                              |
+                             <strong class="uidshort">WavEncoder</strong>
+</pre>
+
+<hr />
+<p>Defines methods to encode to WAV</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.encode.wav.WavEncoder-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.wav-pysrc.html#WavEncoder.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="format"></a><span class="summary-sig-name">format</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.wav-pysrc.html#WavEncoder.format">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="file_extension"></a><span class="summary-sig-name">file_extension</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.wav-pysrc.html#WavEncoder.file_extension">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="mime_type"></a><span class="summary-sig-name">mime_type</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.wav-pysrc.html#WavEncoder.mime_type">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="description"></a><span class="summary-sig-name">description</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.wav-pysrc.html#WavEncoder.description">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_file_info"></a><span class="summary-sig-name">get_file_info</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.wav-pysrc.html#WavEncoder.get_file_info">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.encode.wav.WavEncoder-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">source</span>,
+        <span class="summary-sig-arg">metadata</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.wav-pysrc.html#WavEncoder.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.encode.core.EncoderCore-class.html">core.EncoderCore</a></code></b>:
+      <code><a href="timeside.encode.core.EncoderCore-class.html#core_process">core_process</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.encode.wav-pysrc.html#WavEncoder.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.encode.wav-pysrc.html#WavEncoder.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">source</span>,
+        <span class="sig-arg">metadata</span>,
+        <span class="sig-arg">options</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.encode.wav-pysrc.html#WavEncoder.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.exceptions-module.html b/doc/epydoc/timeside.exceptions-module.html
new file mode 100644 (file)
index 0000000..fee0b9f
--- /dev/null
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.exceptions</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Module&nbsp;exceptions
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.exceptions-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module exceptions</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.exceptions-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.exceptions.Error-class.html" class="summary-name">Error</a><br />
+      Exception base class for errors in TimeSide.
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.exceptions.ApiError-class.html" class="summary-name">ApiError</a><br />
+      Exception base class for errors in TimeSide.
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.exceptions.SubProcessError-class.html" class="summary-name">SubProcessError</a><br />
+      Exception for reporting errors from a subprocess
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.exceptions-pysrc.html b/doc/epydoc/timeside.exceptions-pysrc.html
new file mode 100644 (file)
index 0000000..a8a298a
--- /dev/null
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.exceptions</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Module&nbsp;exceptions
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.exceptions-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.exceptions-module.html">Module timeside.exceptions</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2009 Olivier Guilyardi &lt;olivier@samalyse.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="Error"></a><div id="Error-def"><a name="L20"></a><tt class="py-lineno">20</tt> <a class="py-toggle" href="#" id="Error-toggle" onclick="return toggle('Error');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.exceptions.Error-class.html">Error</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Error-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="Error-expanded"><a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line">    <tt class="py-docstring">"""Exception base class for errors in TimeSide."""</tt> </tt>
+</div><a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"> </tt>
+<a name="ApiError"></a><div id="ApiError-def"><a name="L23"></a><tt class="py-lineno">23</tt> <a class="py-toggle" href="#" id="ApiError-toggle" onclick="return toggle('ApiError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.exceptions.ApiError-class.html">ApiError</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ApiError-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="ApiError-expanded"><a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line">    <tt class="py-docstring">"""Exception base class for errors in TimeSide."""</tt> </tt>
+</div><a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="SubProcessError"></a><div id="SubProcessError-def"><a name="L26"></a><tt class="py-lineno">26</tt> <a class="py-toggle" href="#" id="SubProcessError-toggle" onclick="return toggle('SubProcessError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.exceptions.SubProcessError-class.html">SubProcessError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SubProcessError-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="SubProcessError-expanded"><a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">    <tt class="py-docstring">"""Exception for reporting errors from a subprocess"""</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="SubProcessError.__init__"></a><div id="SubProcessError.__init__-def"><a name="L29"></a><tt class="py-lineno">29</tt> <a class="py-toggle" href="#" id="SubProcessError.__init__-toggle" onclick="return toggle('SubProcessError.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.exceptions.SubProcessError-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">,</tt> <tt class="py-param">command</tt><tt class="py-op">,</tt> <tt class="py-param">subprocess</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SubProcessError.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SubProcessError.__init__-expanded"><a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">message</tt> <tt class="py-op">=</tt> <tt class="py-name">message</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">command</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">subprocess</tt> <tt class="py-op">=</tt> <tt class="py-name">subprocess</tt> </tt>
+</div><a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line"> </tt>
+<a name="SubProcessError.__str__"></a><div id="SubProcessError.__str__-def"><a name="L34"></a><tt class="py-lineno">34</tt> <a class="py-toggle" href="#" id="SubProcessError.__str__-toggle" onclick="return toggle('SubProcessError.__str__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.exceptions.SubProcessError-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SubProcessError.__str__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SubProcessError.__str__-expanded"><a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">subprocess</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">            <tt class="py-name">error</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">subprocess</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.read()=timeside.analyze.core.AudioProcessor-class.html#read"><a title="timeside.analyze.core.AudioProcessor.read" class="py-name" href="#" onclick="return doclink('link-0', 'read', 'link-0');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line">            <tt class="py-name">error</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"%s ; command: %s; error: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">message</tt><tt class="py-op">,</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">                                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">command</tt><tt class="py-op">,</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">                                                <tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.exceptions.ApiError-class.html b/doc/epydoc/timeside.exceptions.ApiError-class.html
new file mode 100644 (file)
index 0000000..9a2cb8e
--- /dev/null
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.exceptions.ApiError</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.exceptions-module.html">Module&nbsp;exceptions</a> ::
+        Class&nbsp;ApiError
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.exceptions.ApiError-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ApiError</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.exceptions-pysrc.html#ApiError">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+              object --+        
+                       |        
+exceptions.BaseException --+    
+                           |    
+        exceptions.Exception --+
+                               |
+                              <strong class="uidshort">ApiError</strong>
+</pre>
+
+<hr />
+<p>Exception base class for errors in TimeSide.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.Exception</code></b>:
+      <code>__init__</code>,
+      <code>__new__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__getitem__</code>,
+      <code>__getslice__</code>,
+      <code>__reduce__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__setstate__</code>,
+      <code>__str__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__hash__</code>,
+      <code>__reduce_ex__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+      <code>args</code>,
+      <code>message</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.exceptions.Error-class.html b/doc/epydoc/timeside.exceptions.Error-class.html
new file mode 100644 (file)
index 0000000..bc110d8
--- /dev/null
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.exceptions.Error</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.exceptions-module.html">Module&nbsp;exceptions</a> ::
+        Class&nbsp;Error
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.exceptions.Error-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Error</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.exceptions-pysrc.html#Error">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+              object --+        
+                       |        
+exceptions.BaseException --+    
+                           |    
+        exceptions.Exception --+
+                               |
+                              <strong class="uidshort">Error</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="timeside.exceptions.SubProcessError-class.html">SubProcessError</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<p>Exception base class for errors in TimeSide.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.Exception</code></b>:
+      <code>__init__</code>,
+      <code>__new__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__getitem__</code>,
+      <code>__getslice__</code>,
+      <code>__reduce__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__setstate__</code>,
+      <code>__str__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__hash__</code>,
+      <code>__reduce_ex__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+      <code>args</code>,
+      <code>message</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.exceptions.SubProcessError-class.html b/doc/epydoc/timeside.exceptions.SubProcessError-class.html
new file mode 100644 (file)
index 0000000..ace3200
--- /dev/null
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.exceptions.SubProcessError</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.exceptions-module.html">Module&nbsp;exceptions</a> ::
+        Class&nbsp;SubProcessError
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.exceptions.SubProcessError-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SubProcessError</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.exceptions-pysrc.html#SubProcessError">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+              object --+            
+                       |            
+exceptions.BaseException --+        
+                           |        
+        exceptions.Exception --+    
+                               |    
+                           <a href="timeside.exceptions.Error-class.html">Error</a> --+
+                                   |
+                                  <strong class="uidshort">SubProcessError</strong>
+</pre>
+
+<hr />
+<p>Exception for reporting errors from a subprocess</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.exceptions.SubProcessError-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">message</span>,
+        <span class="summary-sig-arg">command</span>,
+        <span class="summary-sig-arg">subprocess</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.exceptions-pysrc.html#SubProcessError.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.exceptions.SubProcessError-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      str(x)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.exceptions-pysrc.html#SubProcessError.__str__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.Exception</code></b>:
+      <code>__new__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__getitem__</code>,
+      <code>__getslice__</code>,
+      <code>__reduce__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__setstate__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__hash__</code>,
+      <code>__reduce_ex__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+      <code>args</code>,
+      <code>message</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">message</span>,
+        <span class="sig-arg">command</span>,
+        <span class="sig-arg">subprocess</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.exceptions-pysrc.html#SubProcessError.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__str__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Informal representation operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.exceptions-pysrc.html#SubProcessError.__str__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>str(x)</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__str__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher-module.html b/doc/epydoc/timeside.grapher-module.html
new file mode 100644 (file)
index 0000000..e05527f
--- /dev/null
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Package&nbsp;grapher
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PACKAGE DESCRIPTION ==================== -->
+<h1 class="epydoc">Package grapher</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.grapher-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== SUBMODULES ==================== -->
+<a name="section-Submodules"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Submodules</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Submodules"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr><td class="summary">
+  <ul class="nomargin">
+    <li> <strong class="uidlink"><a href="timeside.grapher.core-module.html">timeside.grapher.core</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher.spectrogram_audiolab-module.html">timeside.grapher.spectrogram_audiolab</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.grapher.waveform_audiolab-module.html">timeside.grapher.waveform_audiolab</a></strong>    </li>
+  </ul></td></tr>
+</table>
+
+<br />
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.grapher-module.html#color_schemes" class="summary-name">color_schemes</a> = <code title="{'default': {'spectrogram': [(0, 0, 0),
+                             (14, 17, 16),
+                             (40, 50, 76),
+                             (90, 180, 100),
+                             (224, 224, 44),
+                             (255, 60, 30),
+                             (255, 255, 255)],
+             'waveform': [(50, 0, 200), (0, 220, 80), (255, 224, 0), (\
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">spectrogram</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>0<code class="variable-op">, </code>0<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>14<code class="variable-op">, </code>1<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="color_schemes"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">color_schemes</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">spectrogram</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>0<code class="variable-op">, </code>0<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>14<code class="variable-op">, </code>17<code class="variable-op">, </code>16<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>40<code class="variable-op">, </code>50<code class="variable-op">, </code>76<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>90<code class="variable-op">, </code>180<code class="variable-op">, </code>100<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>224<code class="variable-op">, </code>224<code class="variable-op">, </code>44<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>255<code class="variable-op">, </code>60<code class="variable-op">, </code>30<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>255<code class="variable-op">, </code>255<code class="variable-op">, </code>255<code class="variable-group">)</code><code class="variable-group">]</code><code class="variable-op">,</code>
+             <code class="variable-quote">'</code><code class="variable-string">waveform</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>50<code class="variable-op">, </code>0<code class="variable-op">, </code>200<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>0<code class="variable-op">, </code>220<code class="variable-op">, </code>80<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>255<code class="variable-op">, </code>224<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher-pysrc.html b/doc/epydoc/timeside.grapher-pysrc.html
new file mode 100644 (file)
index 0000000..08a73a3
--- /dev/null
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Package&nbsp;grapher
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.grapher-module.html">Package timeside.grapher</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">2</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L3"></a><tt class="py-lineno">3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.grapher=timeside.grapher-module.html"><a title="timeside.grapher" class="py-name" href="#" onclick="return doclink('link-1', 'grapher', 'link-1');">grapher</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">4</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="timeside.grapher" class="py-name" href="#" onclick="return doclink('link-4', 'grapher', 'link-1');">grapher</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module timeside.grapher.waveform_audiolab=timeside.grapher.waveform_audiolab-module.html"><a title="timeside.grapher.waveform_audiolab" class="py-name" href="#" onclick="return doclink('link-5', 'waveform_audiolab', 'link-5');">waveform_audiolab</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">5</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-6', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="timeside.grapher" class="py-name" href="#" onclick="return doclink('link-7', 'grapher', 'link-1');">grapher</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Module timeside.grapher.spectrogram_audiolab=timeside.grapher.spectrogram_audiolab-module.html"><a title="timeside.grapher.spectrogram_audiolab" class="py-name" href="#" onclick="return doclink('link-8', 'spectrogram_audiolab', 'link-8');">spectrogram_audiolab</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">6</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:42 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher.core-module.html b/doc/epydoc/timeside.grapher.core-module.html
new file mode 100644 (file)
index 0000000..8405457
--- /dev/null
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher.core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.grapher-module.html">Package&nbsp;grapher</a> ::
+        Module&nbsp;core
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher.core-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module core</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.grapher.core-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.grapher.core.SpectralCentroid-class.html" class="summary-name">SpectralCentroid</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.grapher.core.WaveformImage-class.html" class="summary-name">WaveformImage</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.grapher.core.SpectrogramImage-class.html" class="summary-name">SpectrogramImage</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.grapher.core.Noise-class.html" class="summary-name">Noise</a><br />
+      A class that mimics audiolab.sndfile but generates noise instead of
+        reading a wave file.
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.grapher.core-module.html#interpolate_colors" class="summary-sig-name">interpolate_colors</a>(<span class="summary-sig-arg">colors</span>,
+        <span class="summary-sig-arg">flat</span>=<span class="summary-sig-default">False</span>,
+        <span class="summary-sig-arg">num_colors</span>=<span class="summary-sig-default">256</span>)</span><br />
+      given a list of colors, create a larger list of colors interpolating 
+      the first one.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#interpolate_colors">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.grapher.core-module.html#color_schemes" class="summary-name">color_schemes</a> = <code title="{'default': {'spectrogram': [(0, 0, 0),
+                             (14, 17, 16),
+                             (40, 50, 76),
+                             (90, 180, 100),
+                             (224, 224, 44),
+                             (255, 60, 30),
+                             (255, 255, 255)],
+             'waveform': [(50, 0, 200), (0, 220, 80), (255, 224, 0), (\
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">spectrogram</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>0<code class="variable-op">, </code>0<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>14<code class="variable-op">, </code>1<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Function Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-FunctionDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="interpolate_colors"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">interpolate_colors</span>(<span class="sig-arg">colors</span>,
+        <span class="sig-arg">flat</span>=<span class="sig-default">False</span>,
+        <span class="sig-arg">num_colors</span>=<span class="sig-default">256</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.grapher.core-pysrc.html#interpolate_colors">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>given a list of colors, create a larger list of colors interpolating 
+  the first one. If flatten is True a list of numers will be returned. If 
+  False, a list of (r,g,b) tuples. num_colors is the number of colors 
+  wanted in the final list</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="color_schemes"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">color_schemes</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">spectrogram</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>0<code class="variable-op">, </code>0<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>14<code class="variable-op">, </code>17<code class="variable-op">, </code>16<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>40<code class="variable-op">, </code>50<code class="variable-op">, </code>76<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>90<code class="variable-op">, </code>180<code class="variable-op">, </code>100<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>224<code class="variable-op">, </code>224<code class="variable-op">, </code>44<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>255<code class="variable-op">, </code>60<code class="variable-op">, </code>30<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>255<code class="variable-op">, </code>255<code class="variable-op">, </code>255<code class="variable-group">)</code><code class="variable-group">]</code><code class="variable-op">,</code>
+             <code class="variable-quote">'</code><code class="variable-string">waveform</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>50<code class="variable-op">, </code>0<code class="variable-op">, </code>200<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>0<code class="variable-op">, </code>220<code class="variable-op">, </code>80<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>255<code class="variable-op">, </code>224<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher.core-pysrc.html b/doc/epydoc/timeside.grapher.core-pysrc.html
new file mode 100644 (file)
index 0000000..74dce31
--- /dev/null
@@ -0,0 +1,711 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher.core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.grapher-module.html">Package&nbsp;grapher</a> ::
+        Module&nbsp;core
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher.core-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.grapher.core-module.html">Module timeside.grapher.core</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"># wav2png.py -- converts wave files to wave file and spectrogram images</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (C) 2008 MUSIC TECHNOLOGY GROUP (MTG)</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#                    UNIVERSITAT POMPEU FABRA</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This program is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU Affero General Public License as</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># published by the Free Software Foundation, either version 3 of the</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># License, or (at your option) any later version.</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This program is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU Affero General Public License for more details.</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Affero General Public License</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Authors:</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#   Bram de Jong &lt;bram.dejong at domain.com where domain in gmail&gt;</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#   Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">optparse</tt><tt class="py-op">,</tt> <tt class="py-name">math</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">ImageFilter</tt><tt class="py-op">,</tt> <tt class="py-name">ImageChops</tt><tt class="py-op">,</tt> <tt class="py-name">Image</tt><tt class="py-op">,</tt> <tt class="py-name">ImageDraw</tt><tt class="py-op">,</tt> <tt class="py-name">ImageColor</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-1', 'core', 'link-1');">core</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class timeside.core.FixedSizeInputAdapter=timeside.core.FixedSizeInputAdapter-class.html"><a title="timeside.core.FixedSizeInputAdapter" class="py-name" href="#" onclick="return doclink('link-2', 'FixedSizeInputAdapter', 'link-2');">FixedSizeInputAdapter</a></tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable timeside.grapher.color_schemes=timeside.grapher-module.html#color_schemes,Variable timeside.grapher.core.color_schemes=timeside.grapher.core-module.html#color_schemes,Variable timeside.grapher.spectrogram_audiolab.color_schemes=timeside.grapher.spectrogram_audiolab-module.html#color_schemes,Variable timeside.grapher.waveform_audiolab.color_schemes=timeside.grapher.waveform_audiolab-module.html#color_schemes,Variable timeside.tests.api.examples.color_schemes=timeside.tests.api.examples-module.html#color_schemes"><a title="timeside.grapher.color_schemes
+timeside.grapher.core.color_schemes
+timeside.grapher.spectrogram_audiolab.color_schemes
+timeside.grapher.waveform_audiolab.color_schemes
+timeside.tests.api.examples.color_schemes" class="py-name" href="#" onclick="return doclink('link-3', 'color_schemes', 'link-3');">color_schemes</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">    <tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">        <tt class="py-string">'waveform'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-number">50</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">200</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">220</tt><tt class="py-op">,</tt><tt class="py-number">80</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">224</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">        <tt class="py-string">'spectrogram'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">58</tt><tt class="py-op">/</tt><tt class="py-number">4</tt><tt class="py-op">,</tt><tt class="py-number">68</tt><tt class="py-op">/</tt><tt class="py-number">4</tt><tt class="py-op">,</tt><tt class="py-number">65</tt><tt class="py-op">/</tt><tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">80</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">100</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">153</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">90</tt><tt class="py-op">,</tt><tt class="py-number">180</tt><tt class="py-op">,</tt><tt class="py-number">100</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">                      <tt class="py-op">(</tt><tt class="py-number">224</tt><tt class="py-op">,</tt><tt class="py-number">224</tt><tt class="py-op">,</tt><tt class="py-number">44</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">60</tt><tt class="py-op">,</tt><tt class="py-number">30</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">255</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">    <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">    <tt class="py-string">'iso'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">        <tt class="py-string">'waveform'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">255</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">255</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt class="py-string">'spectrogram'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">58</tt><tt class="py-op">/</tt><tt class="py-number">4</tt><tt class="py-op">,</tt><tt class="py-number">68</tt><tt class="py-op">/</tt><tt class="py-number">4</tt><tt class="py-op">,</tt><tt class="py-number">65</tt><tt class="py-op">/</tt><tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">80</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">100</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">153</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">90</tt><tt class="py-op">,</tt><tt class="py-number">180</tt><tt class="py-op">,</tt><tt class="py-number">100</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">                      <tt class="py-op">(</tt><tt class="py-number">224</tt><tt class="py-op">,</tt><tt class="py-number">224</tt><tt class="py-op">,</tt><tt class="py-number">44</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">60</tt><tt class="py-op">,</tt><tt class="py-number">30</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">255</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">    <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">    <tt class="py-string">'purple'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">        <tt class="py-string">'waveform'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-number">173</tt><tt class="py-op">,</tt><tt class="py-number">173</tt><tt class="py-op">,</tt><tt class="py-number">173</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">147</tt><tt class="py-op">,</tt><tt class="py-number">149</tt><tt class="py-op">,</tt><tt class="py-number">196</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">77</tt><tt class="py-op">,</tt><tt class="py-number">80</tt><tt class="py-op">,</tt><tt class="py-number">138</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">108</tt><tt class="py-op">,</tt><tt class="py-number">66</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">        <tt class="py-string">'spectrogram'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">58</tt><tt class="py-op">/</tt><tt class="py-number">4</tt><tt class="py-op">,</tt><tt class="py-number">68</tt><tt class="py-op">/</tt><tt class="py-number">4</tt><tt class="py-op">,</tt><tt class="py-number">65</tt><tt class="py-op">/</tt><tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">80</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">100</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">153</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">90</tt><tt class="py-op">,</tt><tt class="py-number">180</tt><tt class="py-op">,</tt><tt class="py-number">100</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">                      <tt class="py-op">(</tt><tt class="py-number">224</tt><tt class="py-op">,</tt><tt class="py-number">224</tt><tt class="py-op">,</tt><tt class="py-number">44</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">60</tt><tt class="py-op">,</tt><tt class="py-number">30</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">255</tt><tt class="py-op">,</tt><tt class="py-number">255</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-op">}</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"> </tt>
+<a name="SpectralCentroid"></a><div id="SpectralCentroid-def"><a name="L51"></a><tt class="py-lineno"> 51</tt> <a class="py-toggle" href="#" id="SpectralCentroid-toggle" onclick="return toggle('SpectralCentroid');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.grapher.core.SpectralCentroid-class.html">SpectralCentroid</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SpectralCentroid-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SpectralCentroid-expanded"><a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"> </tt>
+<a name="SpectralCentroid.__init__"></a><div id="SpectralCentroid.__init__-def"><a name="L53"></a><tt class="py-lineno"> 53</tt> <a class="py-toggle" href="#" id="SpectralCentroid.__init__-toggle" onclick="return toggle('SpectralCentroid.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.SpectralCentroid-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fft_size</tt><tt class="py-op">,</tt> <tt class="py-param">nframes</tt><tt class="py-op">,</tt> <tt class="py-param">samplerate</tt><tt class="py-op">,</tt> <tt class="py-param">lower</tt><tt class="py-op">,</tt> <tt class="py-param">higher</tt><tt class="py-op">,</tt> <tt class="py-param">window_function</tt><tt class="py-op">=</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">ones</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SpectralCentroid.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SpectralCentroid.__init__-expanded"><a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt> <tt class="py-op">=</tt> <tt class="py-name">fft_size</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window</tt> <tt class="py-op">=</tt> <tt class="py-name">window_function</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">spectrum_range</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt> <tt class="py-op">=</tt> <tt class="py-name">lower</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher</tt> <tt class="py-op">=</tt> <tt class="py-name">higher</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower_log</tt> <tt class="py-op">=</tt> <tt class="py-name">math</tt><tt class="py-op">.</tt><tt class="py-name">log10</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">)</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher_log</tt> <tt class="py-op">=</tt> <tt class="py-name">math</tt><tt class="py-op">.</tt><tt class="py-name">log10</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher</tt><tt class="py-op">)</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clip</tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">low</tt><tt class="py-op">,</tt> <tt class="py-name">high</tt><tt class="py-op">:</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">high</tt><tt class="py-op">,</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">low</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Method timeside.api.IProcessor.nframes()=timeside.api.IProcessor-class.html#nframes,Method timeside.core.FixedSizeInputAdapter.nframes()=timeside.core.FixedSizeInputAdapter-class.html#nframes,Method timeside.core.Processor.nframes()=timeside.core.Processor-class.html#nframes,Method timeside.tests.api.examples.FileDecoder.nframes()=timeside.tests.api.examples.FileDecoder-class.html#nframes,Method timeside.tests.api.gstreamer.FileDecoder.nframes()=timeside.tests.api.gstreamer.FileDecoder-class.html#nframes,Variable timeside.tests.api.test_lolevel.nframes=timeside.tests.api.test_lolevel-module.html#nframes"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-4', 'nframes', 'link-4');">nframes</a></tt> <tt class="py-op">=</tt> <tt id="link-5" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-5', 'nframes', 'link-4');">nframes</a></tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Module timeside.analyze.samplerate=timeside.analyze.samplerate-module.html,Method timeside.api.IProcessor.samplerate()=timeside.api.IProcessor-class.html#samplerate,Method timeside.core.Processor.samplerate()=timeside.core.Processor-class.html#samplerate,Method timeside.tests.api.examples.FileDecoder.samplerate()=timeside.tests.api.examples.FileDecoder-class.html#samplerate,Method timeside.tests.api.gstreamer.FileDecoder.samplerate()=timeside.tests.api.gstreamer.FileDecoder-class.html#samplerate,Variable timeside.tests.api.test_lolevel.samplerate=timeside.tests.api.test_lolevel-module.html#samplerate"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-6', 'samplerate', 'link-6');">samplerate</a></tt> <tt class="py-op">=</tt> <tt id="link-7" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-7', 'samplerate', 'link-6');">samplerate</a></tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">spectrum_adapter</tt> <tt class="py-op">=</tt> <tt id="link-8" class="py-name"><a title="timeside.core.FixedSizeInputAdapter" class="py-name" href="#" onclick="return doclink('link-8', 'FixedSizeInputAdapter', 'link-2');">FixedSizeInputAdapter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">pad</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"> </tt>
+<a name="SpectralCentroid.process"></a><div id="SpectralCentroid.process-def"><a name="L66"></a><tt class="py-lineno"> 66</tt> <a class="py-toggle" href="#" id="SpectralCentroid.process-toggle" onclick="return toggle('SpectralCentroid.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.SpectralCentroid-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">,</tt> <tt class="py-param">spec_range</tt><tt class="py-op">=</tt><tt class="py-number">120.0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SpectralCentroid.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SpectralCentroid.process-expanded"><a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">buffer</tt><tt class="py-op">,</tt> <tt class="py-name">end</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">spectrum_adapter</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method timeside.api.IProcessor.process()=timeside.api.IProcessor-class.html#process,Method timeside.core.FixedSizeInputAdapter.process()=timeside.core.FixedSizeInputAdapter-class.html#process,Method timeside.core.Processor.process()=timeside.core.Processor-class.html#process,Method timeside.decode.core.DecoderCore.process()=timeside.decode.core.DecoderCore-class.html#process,Method timeside.encode.flac.FlacEncoder.process()=timeside.encode.flac.FlacEncoder-class.html#process,Method timeside.encode.mp3.Mp3Encoder.process()=timeside.encode.mp3.Mp3Encoder-class.html#process,Method timeside.encode.ogg.OggVorbisEncoder.process()=timeside.encode.ogg.OggVorbisEncoder-class.html#process,Method timeside.encode.wav.WavEncoder.process()=timeside.encode.wav.WavEncoder-class.html#process,Method timeside.grapher.core.SpectralCentroid.process()=timeside.grapher.core.SpectralCentroid-class.html#process,Method timeside.grapher.core.SpectrogramImage.process()=timeside.grapher.core.SpectrogramImage-class.html#process,Method timeside.grapher.core.WaveformImage.process()=timeside.grapher.core.WaveformImage-class.html#process,Method timeside.tests.api.examples.FileDecoder.process()=timeside.tests.api.examples.FileDecoder-class.html#process,Method timeside.tests.api.examples.FixedInputProcessor.process()=timeside.tests.api.examples.FixedInputProcessor-class.html#process,Method timeside.tests.api.examples.Gain.process()=timeside.tests.api.examples.Gain-class.html#process,Method timeside.tests.api.examples.MaxLevel.process()=timeside.tests.api.examples.MaxLevel-class.html#process,Method timeside.tests.api.examples.Spectrogram.process()=timeside.tests.api.examples.Spectrogram-class.html#process,Method timeside.tests.api.examples.WavEncoder.process()=timeside.tests.api.examples.WavEncoder-class.html#process,Method timeside.tests.api.examples.Waveform.process()=timeside.tests.api.examples.Waveform-class.html#process,Method timeside.tests.api.gstreamer.FileDecoder.process()=timeside.tests.api.gstreamer.FileDecoder-class.html#process,Method timeside.tests.api.gstreamer.WavEncoder.process()=timeside.tests.api.gstreamer.WavEncoder-class.html#process"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-9', 'process', 'link-9');">process</a></tt><tt class="py-op">(</tt><tt id="link-10" class="py-name" targets="Variable timeside.tests.api.test_lolevel.frames=timeside.tests.api.test_lolevel-module.html#frames"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-10', 'frames', 'link-10');">frames</a></tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">            <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">buffer</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">end</tt><tt class="py-op">:</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">        <tt class="py-name">samples</tt> <tt class="py-op">*=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        <tt class="py-name">fft</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fft</tt><tt class="py-op">.</tt><tt class="py-name">fft</tt><tt class="py-op">(</tt><tt class="py-name">samples</tt><tt class="py-op">)</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-name">spectrum</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">abs</tt><tt class="py-op">(</tt><tt class="py-name">fft</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">fft</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">/</tt> <tt class="py-number">2</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt><tt class="py-op">)</tt> <tt class="py-comment"># normalized abs(FFT) between 0 and 1</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-name">length</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">(</tt><tt class="py-name">spectrum</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">        <tt class="py-comment"># scale the db spectrum from [- spec_range db ... 0 db] &gt; [0..1]</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">db_spectrum</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">*</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">log10</tt><tt class="py-op">(</tt><tt class="py-name">spectrum</tt> <tt class="py-op">+</tt> <tt class="py-number">1e-30</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">clip</tt><tt class="py-op">(</tt><tt class="py-op">-</tt><tt class="py-name">spec_range</tt><tt class="py-op">,</tt> <tt class="py-number">0.0</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">spec_range</tt><tt class="py-op">)</tt><tt class="py-op">/</tt><tt class="py-name">spec_range</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-name">energy</tt> <tt class="py-op">=</tt> <tt class="py-name">spectrum</tt><tt class="py-op">.</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt id="link-11" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.spectral_centroid()=timeside.analyze.core.AudioProcessor-class.html#spectral_centroid"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-11', 'spectral_centroid', 'link-11');">spectral_centroid</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line"> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">energy</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1e-20</tt><tt class="py-op">:</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">            <tt class="py-comment"># calculate the spectral centroid</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">spectrum_range</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">spectrum_range</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">arange</tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">            <tt id="link-12" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-12', 'spectral_centroid', 'link-11');">spectral_centroid</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">spectrum</tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">spectrum_range</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-op">(</tt><tt class="py-name">energy</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">length</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-13', 'samplerate', 'link-6');">samplerate</a></tt> <tt class="py-op">*</tt> <tt class="py-number">0.5</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">            <tt class="py-comment"># clip &gt; log10 &gt; scale between 0 and 1</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt id="link-14" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-14', 'spectral_centroid', 'link-11');">spectral_centroid</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">math</tt><tt class="py-op">.</tt><tt class="py-name">log10</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clip</tt><tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-15', 'spectral_centroid', 'link-11');">spectral_centroid</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower_log</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher_log</tt> <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower_log</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-16" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-16', 'spectral_centroid', 'link-11');">spectral_centroid</a></tt><tt class="py-op">,</tt> <tt class="py-name">db_spectrum</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"> </tt>
+<a name="interpolate_colors"></a><div id="interpolate_colors-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="interpolate_colors-toggle" onclick="return toggle('interpolate_colors');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core-module.html#interpolate_colors">interpolate_colors</a><tt class="py-op">(</tt><tt class="py-param">colors</tt><tt class="py-op">,</tt> <tt class="py-param">flat</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-param">num_colors</tt><tt class="py-op">=</tt><tt class="py-number">256</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="interpolate_colors-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="interpolate_colors-expanded"><a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">    <tt class="py-docstring">""" given a list of colors, create a larger list of colors interpolating</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"><tt class="py-docstring">    the first one. If flatten is True a list of numers will be returned. If</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"><tt class="py-docstring">    False, a list of (r,g,b) tuples. num_colors is the number of colors wanted</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"><tt class="py-docstring">    in the final list """</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">    <tt class="py-name">palette</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">num_colors</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-name">index</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">colors</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">/</tt><tt class="py-op">(</tt><tt class="py-name">num_colors</tt> <tt class="py-op">-</tt> <tt class="py-number">1.0</tt><tt class="py-op">)</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-name">index_int</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">index</tt><tt class="py-op">)</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-name">alpha</tt> <tt class="py-op">=</tt> <tt class="py-name">index</tt> <tt class="py-op">-</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">index_int</tt><tt class="py-op">)</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">alpha</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">            <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1.0</tt> <tt class="py-op">-</tt> <tt class="py-name">alpha</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">colors</tt><tt class="py-op">[</tt><tt class="py-name">index_int</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">alpha</tt> <tt class="py-op">*</tt> <tt class="py-name">colors</tt><tt class="py-op">[</tt><tt class="py-name">index_int</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">            <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1.0</tt> <tt class="py-op">-</tt> <tt class="py-name">alpha</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">colors</tt><tt class="py-op">[</tt><tt class="py-name">index_int</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">alpha</tt> <tt class="py-op">*</tt> <tt class="py-name">colors</tt><tt class="py-op">[</tt><tt class="py-name">index_int</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">            <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1.0</tt> <tt class="py-op">-</tt> <tt class="py-name">alpha</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">colors</tt><tt class="py-op">[</tt><tt class="py-name">index_int</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">alpha</tt> <tt class="py-op">*</tt> <tt class="py-name">colors</tt><tt class="py-op">[</tt><tt class="py-name">index_int</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">            <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1.0</tt> <tt class="py-op">-</tt> <tt class="py-name">alpha</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">colors</tt><tt class="py-op">[</tt><tt class="py-name">index_int</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">            <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1.0</tt> <tt class="py-op">-</tt> <tt class="py-name">alpha</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">colors</tt><tt class="py-op">[</tt><tt class="py-name">index_int</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">            <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1.0</tt> <tt class="py-op">-</tt> <tt class="py-name">alpha</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">colors</tt><tt class="py-op">[</tt><tt class="py-name">index_int</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">flat</tt><tt class="py-op">:</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">            <tt class="py-name">palette</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">g</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">            <tt class="py-name">palette</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">g</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">palette</tt> </tt>
+</div><a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"> </tt>
+<a name="WaveformImage"></a><div id="WaveformImage-def"><a name="L124"></a><tt class="py-lineno">124</tt> <a class="py-toggle" href="#" id="WaveformImage-toggle" onclick="return toggle('WaveformImage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.grapher.core.WaveformImage-class.html">WaveformImage</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WaveformImage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="WaveformImage-expanded"><a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"> </tt>
+<a name="WaveformImage.__init__"></a><div id="WaveformImage.__init__-def"><a name="L126"></a><tt class="py-lineno">126</tt> <a class="py-toggle" href="#" id="WaveformImage.__init__-toggle" onclick="return toggle('WaveformImage.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.WaveformImage-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">image_width</tt><tt class="py-op">,</tt> <tt class="py-param">image_height</tt><tt class="py-op">,</tt> <tt class="py-param">nframes</tt><tt class="py-op">,</tt> <tt class="py-param">samplerate</tt><tt class="py-op">,</tt> <tt class="py-param">fft_size</tt><tt class="py-op">,</tt> <tt class="py-param">bg_color</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">color_scheme</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WaveformImage.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WaveformImage.__init__-expanded"><a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_width</tt> <tt class="py-op">=</tt> <tt class="py-name">image_width</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_height</tt> <tt class="py-op">=</tt> <tt class="py-name">image_height</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-17', 'nframes', 'link-4');">nframes</a></tt> <tt class="py-op">=</tt> <tt id="link-18" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-18', 'nframes', 'link-4');">nframes</a></tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-19', 'samplerate', 'link-6');">samplerate</a></tt> <tt class="py-op">=</tt> <tt id="link-20" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-20', 'samplerate', 'link-6');">samplerate</a></tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt> <tt class="py-op">=</tt> <tt class="py-name">fft_size</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Variable timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#bg_color,Variable timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#bg_color"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-21', 'bg_color', 'link-21');">bg_color</a></tt> <tt class="py-op">=</tt> <tt id="link-22" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-22', 'bg_color', 'link-21');">bg_color</a></tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-23" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-23', 'bg_color', 'link-21');">bg_color</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-24', 'bg_color', 'link-21');">bg_color</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Variable timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#color_scheme,Variable timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#color_scheme"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-25', 'color_scheme', 'link-25');">color_scheme</a></tt> <tt class="py-op">=</tt> <tt id="link-26" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-26', 'color_scheme', 'link-25');">color_scheme</a></tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-27" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-27', 'color_scheme', 'link-25');">color_scheme</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-28', 'color_scheme', 'link-25');">color_scheme</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'default'</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">        <tt class="py-name">colors</tt> <tt class="py-op">=</tt> <tt id="link-29" class="py-name"><a title="timeside.grapher.color_schemes
+timeside.grapher.core.color_schemes
+timeside.grapher.spectrogram_audiolab.color_schemes
+timeside.grapher.waveform_audiolab.color_schemes
+timeside.tests.api.examples.color_schemes" class="py-name" href="#" onclick="return doclink('link-29', 'color_schemes', 'link-3');">color_schemes</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-30', 'color_scheme', 'link-25');">color_scheme</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'waveform'</tt><tt class="py-op">]</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">color_lookup</tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name" targets="Function timeside.grapher.core.interpolate_colors()=timeside.grapher.core-module.html#interpolate_colors"><a title="timeside.grapher.core.interpolate_colors" class="py-name" href="#" onclick="return doclink('link-31', 'interpolate_colors', 'link-31');">interpolate_colors</a></tt><tt class="py-op">(</tt><tt class="py-name">colors</tt><tt class="py-op">)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">samples_per_pixel</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-32', 'nframes', 'link-4');">nframes</a></tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_width</tt><tt class="py-op">)</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">round</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">samples_per_pixel</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixels_adapter</tt> <tt class="py-op">=</tt> <tt id="link-33" class="py-name"><a title="timeside.core.FixedSizeInputAdapter" class="py-name" href="#" onclick="return doclink('link-33', 'FixedSizeInputAdapter', 'link-2');">FixedSizeInputAdapter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">pad</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixels_adapter_nframes</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixels_adapter</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-34', 'nframes', 'link-4');">nframes</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-35', 'nframes', 'link-4');">nframes</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt> <tt class="py-op">=</tt> <tt class="py-number">500</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher</tt> <tt class="py-op">=</tt> <tt class="py-number">16000</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-36', 'spectral_centroid', 'link-11');">spectral_centroid</a></tt> <tt class="py-op">=</tt> <tt id="link-37" class="py-name" targets="Class timeside.grapher.core.SpectralCentroid=timeside.grapher.core.SpectralCentroid-class.html"><a title="timeside.grapher.core.SpectralCentroid" class="py-name" href="#" onclick="return doclink('link-37', 'SpectralCentroid', 'link-37');">SpectralCentroid</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-38', 'nframes', 'link-4');">nframes</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-39', 'samplerate', 'link-6');">samplerate</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">hanning</tt><tt class="py-op">)</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image</tt> <tt class="py-op">=</tt> <tt class="py-name">Image</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-string">"RGB"</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_width</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_height</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-40', 'bg_color', 'link-21');">bg_color</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image</tt><tt class="py-op">.</tt><tt class="py-name">load</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">draw</tt> <tt class="py-op">=</tt> <tt class="py-name">ImageDraw</tt><tt class="py-op">.</tt><tt class="py-name">Draw</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image</tt><tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">previous_x</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">previous_y</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">frame_cursor</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel_cursor</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+</div><a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"> </tt>
+<a name="WaveformImage.peaks"></a><div id="WaveformImage.peaks-def"><a name="L160"></a><tt class="py-lineno">160</tt> <a class="py-toggle" href="#" id="WaveformImage.peaks-toggle" onclick="return toggle('WaveformImage.peaks');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.WaveformImage-class.html#peaks">peaks</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">samples</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WaveformImage.peaks-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WaveformImage.peaks-expanded"><a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">        <tt class="py-docstring">""" read all samples between start_seek and end_seek, then find the minimum and maximum peak</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line"><tt class="py-docstring">        in that range. Returns that pair in the order they were found. So if min was found first,</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"><tt class="py-docstring">        it returns (min, max) else the other way around. """</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">        <tt class="py-name">max_index</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">argmax</tt><tt class="py-op">(</tt><tt class="py-name">samples</tt><tt class="py-op">)</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">        <tt class="py-name">max_value</tt> <tt class="py-op">=</tt> <tt class="py-name">samples</tt><tt class="py-op">[</tt><tt class="py-name">max_index</tt><tt class="py-op">]</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">        <tt class="py-name">min_index</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">argmin</tt><tt class="py-op">(</tt><tt class="py-name">samples</tt><tt class="py-op">)</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">        <tt class="py-name">min_value</tt> <tt class="py-op">=</tt> <tt class="py-name">samples</tt><tt class="py-op">[</tt><tt class="py-name">min_index</tt><tt class="py-op">]</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">min_index</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">max_index</tt><tt class="py-op">:</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">min_value</tt><tt class="py-op">,</tt> <tt class="py-name">max_value</tt><tt class="py-op">)</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">max_value</tt><tt class="py-op">,</tt> <tt class="py-name">min_value</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"> </tt>
+<a name="WaveformImage.color_from_value"></a><div id="WaveformImage.color_from_value-def"><a name="L176"></a><tt class="py-lineno">176</tt> <a class="py-toggle" href="#" id="WaveformImage.color_from_value-toggle" onclick="return toggle('WaveformImage.color_from_value');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.WaveformImage-class.html#color_from_value">color_from_value</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WaveformImage.color_from_value-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WaveformImage.color_from_value-expanded"><a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">        <tt class="py-docstring">""" given a value between 0 and 1, return an (r,g,b) tuple """</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">ImageColor</tt><tt class="py-op">.</tt><tt class="py-name">getrgb</tt><tt class="py-op">(</tt><tt class="py-string">"hsl(%d,%d%%,%d%%)"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-number">1.0</tt> <tt class="py-op">-</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">360</tt> <tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">80</tt><tt class="py-op">,</tt> <tt class="py-number">50</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line"> </tt>
+<a name="WaveformImage.draw_peaks"></a><div id="WaveformImage.draw_peaks-def"><a name="L181"></a><tt class="py-lineno">181</tt> <a class="py-toggle" href="#" id="WaveformImage.draw_peaks-toggle" onclick="return toggle('WaveformImage.draw_peaks');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.WaveformImage-class.html#draw_peaks">draw_peaks</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">,</tt> <tt class="py-param">peaks</tt><tt class="py-op">,</tt> <tt class="py-param">spectral_centroid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WaveformImage.draw_peaks-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WaveformImage.draw_peaks-expanded"><a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">        <tt class="py-docstring">""" draw 2 peaks at x using the spectral_centroid for color """</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">        <tt class="py-name">y1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_height</tt> <tt class="py-op">*</tt> <tt class="py-number">0.5</tt> <tt class="py-op">-</tt> <tt id="link-41" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.peaks()=timeside.analyze.core.AudioProcessor-class.html#peaks,Method timeside.grapher.core.WaveformImage.peaks()=timeside.grapher.core.WaveformImage-class.html#peaks"><a title="timeside.analyze.core.AudioProcessor.peaks
+timeside.grapher.core.WaveformImage.peaks" class="py-name" href="#" onclick="return doclink('link-41', 'peaks', 'link-41');">peaks</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_height</tt> <tt class="py-op">-</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">0.5</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">        <tt class="py-name">y2</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_height</tt> <tt class="py-op">*</tt> <tt class="py-number">0.5</tt> <tt class="py-op">-</tt> <tt id="link-42" class="py-name"><a title="timeside.analyze.core.AudioProcessor.peaks
+timeside.grapher.core.WaveformImage.peaks" class="py-name" href="#" onclick="return doclink('link-42', 'peaks', 'link-41');">peaks</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_height</tt> <tt class="py-op">-</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">0.5</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">        <tt class="py-name">line_color</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">color_lookup</tt><tt class="py-op">[</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-43" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-43', 'spectral_centroid', 'link-11');">spectral_centroid</a></tt><tt class="py-op">*</tt><tt class="py-number">255.0</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">previous_y</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">draw</tt><tt class="py-op">.</tt><tt class="py-name">line</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">previous_x</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">previous_y</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y1</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">line_color</tt><tt class="py-op">)</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">draw</tt><tt class="py-op">.</tt><tt class="py-name">line</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y1</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">line_color</tt><tt class="py-op">)</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">previous_x</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">previous_y</tt> <tt class="py-op">=</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y2</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line"> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name" targets="Method timeside.grapher.core.WaveformImage.draw_anti_aliased_pixels()=timeside.grapher.core.WaveformImage-class.html#draw_anti_aliased_pixels"><a title="timeside.grapher.core.WaveformImage.draw_anti_aliased_pixels" class="py-name" href="#" onclick="return doclink('link-44', 'draw_anti_aliased_pixels', 'link-44');">draw_anti_aliased_pixels</a></tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y1</tt><tt class="py-op">,</tt> <tt class="py-name">y2</tt><tt class="py-op">,</tt> <tt class="py-name">line_color</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"> </tt>
+<a name="WaveformImage.draw_anti_aliased_pixels"></a><div id="WaveformImage.draw_anti_aliased_pixels-def"><a name="L198"></a><tt class="py-lineno">198</tt> <a class="py-toggle" href="#" id="WaveformImage.draw_anti_aliased_pixels-toggle" onclick="return toggle('WaveformImage.draw_anti_aliased_pixels');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.WaveformImage-class.html#draw_anti_aliased_pixels">draw_anti_aliased_pixels</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">,</tt> <tt class="py-param">y1</tt><tt class="py-op">,</tt> <tt class="py-param">y2</tt><tt class="py-op">,</tt> <tt class="py-param">color</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WaveformImage.draw_anti_aliased_pixels-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WaveformImage.draw_anti_aliased_pixels-expanded"><a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">        <tt class="py-docstring">""" vertical anti-aliasing at y1 and y2 """</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line"> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">        <tt class="py-name">y_max</tt> <tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">y1</tt><tt class="py-op">,</tt> <tt class="py-name">y2</tt><tt class="py-op">)</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">        <tt class="py-name">y_max_int</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">y_max</tt><tt class="py-op">)</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">        <tt class="py-name">alpha</tt> <tt class="py-op">=</tt> <tt class="py-name">y_max</tt> <tt class="py-op">-</tt> <tt class="py-name">y_max_int</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line"> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">alpha</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0.0</tt> <tt class="py-keyword">and</tt> <tt class="py-name">alpha</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">1.0</tt> <tt class="py-keyword">and</tt> <tt class="py-name">y_max_int</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_height</tt><tt class="py-op">:</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">            <tt class="py-name">current_pix</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel</tt><tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y_max_int</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line"> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">            <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">-</tt><tt class="py-name">alpha</tt><tt class="py-op">)</tt><tt class="py-op">*</tt><tt class="py-name">current_pix</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">alpha</tt><tt class="py-op">*</tt><tt class="py-name">color</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">            <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">-</tt><tt class="py-name">alpha</tt><tt class="py-op">)</tt><tt class="py-op">*</tt><tt class="py-name">current_pix</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">alpha</tt><tt class="py-op">*</tt><tt class="py-name">color</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">            <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">-</tt><tt class="py-name">alpha</tt><tt class="py-op">)</tt><tt class="py-op">*</tt><tt class="py-name">current_pix</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">alpha</tt><tt class="py-op">*</tt><tt class="py-name">color</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line"> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel</tt><tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y_max_int</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt><tt class="py-name">g</tt><tt class="py-op">,</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line"> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">        <tt class="py-name">y_min</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">y1</tt><tt class="py-op">,</tt> <tt class="py-name">y2</tt><tt class="py-op">)</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">        <tt class="py-name">y_min_int</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">y_min</tt><tt class="py-op">)</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">        <tt class="py-name">alpha</tt> <tt class="py-op">=</tt> <tt class="py-number">1.0</tt> <tt class="py-op">-</tt> <tt class="py-op">(</tt><tt class="py-name">y_min</tt> <tt class="py-op">-</tt> <tt class="py-name">y_min_int</tt><tt class="py-op">)</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">alpha</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0.0</tt> <tt class="py-keyword">and</tt> <tt class="py-name">alpha</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">1.0</tt> <tt class="py-keyword">and</tt> <tt class="py-name">y_min_int</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">            <tt class="py-name">current_pix</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel</tt><tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y_min_int</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line"> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">            <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">-</tt><tt class="py-name">alpha</tt><tt class="py-op">)</tt><tt class="py-op">*</tt><tt class="py-name">current_pix</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">alpha</tt><tt class="py-op">*</tt><tt class="py-name">color</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">            <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">-</tt><tt class="py-name">alpha</tt><tt class="py-op">)</tt><tt class="py-op">*</tt><tt class="py-name">current_pix</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">alpha</tt><tt class="py-op">*</tt><tt class="py-name">color</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">            <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">-</tt><tt class="py-name">alpha</tt><tt class="py-op">)</tt><tt class="py-op">*</tt><tt class="py-name">current_pix</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">alpha</tt><tt class="py-op">*</tt><tt class="py-name">color</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel</tt><tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y_min_int</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt><tt class="py-name">g</tt><tt class="py-op">,</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"> </tt>
+<a name="WaveformImage.process"></a><div id="WaveformImage.process-def"><a name="L227"></a><tt class="py-lineno">227</tt> <a class="py-toggle" href="#" id="WaveformImage.process-toggle" onclick="return toggle('WaveformImage.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.WaveformImage-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WaveformImage.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WaveformImage.process-expanded"><a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-45" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-45', 'frames', 'link-10');">frames</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">            <tt id="link-46" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-46', 'frames', 'link-10');">frames</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-47" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-47', 'frames', 'link-10');">frames</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">            <tt class="py-name">buffer</tt> <tt class="py-op">=</tt> <tt id="link-48" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-48', 'frames', 'link-10');">frames</a></tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">            <tt class="py-name">buffer</tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-49', 'frames', 'link-10');">frames</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">            <tt class="py-name">buffer</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-50" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-50', 'frames', 'link-10');">frames</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt id="link-51" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-51', 'spectral_centroid', 'link-11');">spectral_centroid</a></tt><tt class="py-op">,</tt> <tt class="py-name">db_spectrum</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-52', 'spectral_centroid', 'link-11');">spectral_centroid</a></tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-53', 'process', 'link-9');">process</a></tt><tt class="py-op">(</tt><tt class="py-name">buffer</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">samples</tt><tt class="py-op">,</tt> <tt class="py-name">end</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixels_adapter</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-54', 'process', 'link-9');">process</a></tt><tt class="py-op">(</tt><tt class="py-name">buffer</tt><tt class="py-op">,</tt> <tt id="link-55" class="py-name" targets="Variable timeside.tests.api.test_lolevel.eod=timeside.tests.api.test_lolevel-module.html#eod"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-55', 'eod', 'link-55');">eod</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel_cursor</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_width</tt><tt class="py-op">:</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">                <tt id="link-56" class="py-name"><a title="timeside.analyze.core.AudioProcessor.peaks
+timeside.grapher.core.WaveformImage.peaks" class="py-name" href="#" onclick="return doclink('link-56', 'peaks', 'link-41');">peaks</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="timeside.analyze.core.AudioProcessor.peaks
+timeside.grapher.core.WaveformImage.peaks" class="py-name" href="#" onclick="return doclink('link-57', 'peaks', 'link-41');">peaks</a></tt><tt class="py-op">(</tt><tt class="py-name">samples</tt><tt class="py-op">)</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name" targets="Method timeside.grapher.core.WaveformImage.draw_peaks()=timeside.grapher.core.WaveformImage-class.html#draw_peaks"><a title="timeside.grapher.core.WaveformImage.draw_peaks" class="py-name" href="#" onclick="return doclink('link-58', 'draw_peaks', 'link-58');">draw_peaks</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel_cursor</tt><tt class="py-op">,</tt> <tt id="link-59" class="py-name"><a title="timeside.analyze.core.AudioProcessor.peaks
+timeside.grapher.core.WaveformImage.peaks" class="py-name" href="#" onclick="return doclink('link-59', 'peaks', 'link-41');">peaks</a></tt><tt class="py-op">,</tt> <tt id="link-60" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-60', 'spectral_centroid', 'link-11');">spectral_centroid</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel_cursor</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+</div><a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line"> </tt>
+<a name="WaveformImage.save"></a><div id="WaveformImage.save-def"><a name="L242"></a><tt class="py-lineno">242</tt> <a class="py-toggle" href="#" id="WaveformImage.save-toggle" onclick="return toggle('WaveformImage.save');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.WaveformImage-class.html#save">save</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WaveformImage.save-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WaveformImage.save-expanded"><a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-number">25</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_width</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel</tt><tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_height</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-name">map</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">p</tt><tt class="py-op">:</tt> <tt class="py-name">p</tt><tt class="py-op">+</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel</tt><tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_height</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name" targets="Method timeside.grapher.core.SpectrogramImage.save()=timeside.grapher.core.SpectrogramImage-class.html#save,Method timeside.grapher.core.WaveformImage.save()=timeside.grapher.core.WaveformImage-class.html#save"><a title="timeside.grapher.core.SpectrogramImage.save
+timeside.grapher.core.WaveformImage.save" class="py-name" href="#" onclick="return doclink('link-61', 'save', 'link-61');">save</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line"> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line"> </tt>
+<a name="SpectrogramImage"></a><div id="SpectrogramImage-def"><a name="L249"></a><tt class="py-lineno">249</tt> <a class="py-toggle" href="#" id="SpectrogramImage-toggle" onclick="return toggle('SpectrogramImage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.grapher.core.SpectrogramImage-class.html">SpectrogramImage</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SpectrogramImage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SpectrogramImage-expanded"><a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line"> </tt>
+<a name="SpectrogramImage.__init__"></a><div id="SpectrogramImage.__init__-def"><a name="L251"></a><tt class="py-lineno">251</tt> <a class="py-toggle" href="#" id="SpectrogramImage.__init__-toggle" onclick="return toggle('SpectrogramImage.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.SpectrogramImage-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">image_width</tt><tt class="py-op">,</tt> <tt class="py-param">image_height</tt><tt class="py-op">,</tt> <tt class="py-param">nframes</tt><tt class="py-op">,</tt> <tt class="py-param">samplerate</tt><tt class="py-op">,</tt> <tt class="py-param">fft_size</tt><tt class="py-op">,</tt> <tt class="py-param">bg_color</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">color_scheme</tt><tt class="py-op">=</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SpectrogramImage.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SpectrogramImage.__init__-expanded"><a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_width</tt> <tt class="py-op">=</tt> <tt class="py-name">image_width</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_height</tt> <tt class="py-op">=</tt> <tt class="py-name">image_height</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-62', 'nframes', 'link-4');">nframes</a></tt> <tt class="py-op">=</tt> <tt id="link-63" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-63', 'nframes', 'link-4');">nframes</a></tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-64', 'samplerate', 'link-6');">samplerate</a></tt> <tt class="py-op">=</tt> <tt id="link-65" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-65', 'samplerate', 'link-6');">samplerate</a></tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt> <tt class="py-op">=</tt> <tt class="py-name">fft_size</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-66', 'color_scheme', 'link-25');">color_scheme</a></tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-67', 'color_scheme', 'link-25');">color_scheme</a></tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line"> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image</tt> <tt class="py-op">=</tt> <tt class="py-name">Image</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-string">"P"</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_height</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_width</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">        <tt class="py-name">colors</tt> <tt class="py-op">=</tt> <tt id="link-68" class="py-name"><a title="timeside.grapher.color_schemes
+timeside.grapher.core.color_schemes
+timeside.grapher.spectrogram_audiolab.color_schemes
+timeside.grapher.waveform_audiolab.color_schemes
+timeside.tests.api.examples.color_schemes" class="py-name" href="#" onclick="return doclink('link-68', 'color_schemes', 'link-3');">color_schemes</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-69', 'color_scheme', 'link-25');">color_scheme</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'spectrogram'</tt><tt class="py-op">]</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image</tt><tt class="py-op">.</tt><tt class="py-name">putpalette</tt><tt class="py-op">(</tt><tt id="link-70" class="py-name"><a title="timeside.grapher.core.interpolate_colors" class="py-name" href="#" onclick="return doclink('link-70', 'interpolate_colors', 'link-31');">interpolate_colors</a></tt><tt class="py-op">(</tt><tt class="py-name">colors</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">samples_per_pixel</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-71', 'nframes', 'link-4');">nframes</a></tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_width</tt><tt class="py-op">)</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">round</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">samples_per_pixel</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixels_adapter</tt> <tt class="py-op">=</tt> <tt id="link-72" class="py-name"><a title="timeside.core.FixedSizeInputAdapter" class="py-name" href="#" onclick="return doclink('link-72', 'FixedSizeInputAdapter', 'link-2');">FixedSizeInputAdapter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">buffer_size</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">pad</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixels_adapter_nframes</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixels_adapter</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-73', 'nframes', 'link-4');">nframes</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-74', 'nframes', 'link-4');">nframes</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line"> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt> <tt class="py-op">=</tt> <tt class="py-number">20</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher</tt> <tt class="py-op">=</tt> <tt class="py-number">16000</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-75', 'spectral_centroid', 'link-11');">spectral_centroid</a></tt> <tt class="py-op">=</tt> <tt id="link-76" class="py-name"><a title="timeside.grapher.core.SpectralCentroid" class="py-name" href="#" onclick="return doclink('link-76', 'SpectralCentroid', 'link-37');">SpectralCentroid</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-77', 'nframes', 'link-4');">nframes</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-78', 'samplerate', 'link-6');">samplerate</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">hanning</tt><tt class="py-op">)</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line"> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">        <tt class="py-comment"># generate the lookup which translates y-coordinate to fft-bin</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">y_to_bin</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">        <tt class="py-name">f_min</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">)</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">        <tt class="py-name">f_max</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">higher</tt><tt class="py-op">)</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">        <tt class="py-name">y_min</tt> <tt class="py-op">=</tt> <tt class="py-name">math</tt><tt class="py-op">.</tt><tt class="py-name">log10</tt><tt class="py-op">(</tt><tt class="py-name">f_min</tt><tt class="py-op">)</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">        <tt class="py-name">y_max</tt> <tt class="py-op">=</tt> <tt class="py-name">math</tt><tt class="py-op">.</tt><tt class="py-name">log10</tt><tt class="py-op">(</tt><tt class="py-name">f_max</tt><tt class="py-op">)</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">y</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_height</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">            <tt class="py-name">freq</tt> <tt class="py-op">=</tt> <tt class="py-name">math</tt><tt class="py-op">.</tt><tt class="py-name">pow</tt><tt class="py-op">(</tt><tt class="py-number">10.0</tt><tt class="py-op">,</tt> <tt class="py-name">y_min</tt> <tt class="py-op">+</tt> <tt class="py-name">y</tt> <tt class="py-op">/</tt> <tt class="py-op">(</tt><tt class="py-name">image_height</tt> <tt class="py-op">-</tt> <tt class="py-number">1.0</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt><tt class="py-op">(</tt><tt class="py-name">y_max</tt> <tt class="py-op">-</tt> <tt class="py-name">y_min</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">            <tt class="py-name">bin</tt> <tt class="py-op">=</tt> <tt class="py-name">freq</tt> <tt class="py-op">/</tt> <tt class="py-number">22050.0</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt><tt class="py-op">/</tt><tt class="py-number">2</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line"> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">bin</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fft_size</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">                <tt class="py-name">alpha</tt> <tt class="py-op">=</tt> <tt class="py-name">bin</tt> <tt class="py-op">-</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">bin</tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line"> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">y_to_bin</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">bin</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">alpha</tt> <tt class="py-op">*</tt> <tt class="py-number">255</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line"> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">        <tt class="py-comment"># this is a bit strange, but using image.load()[x,y] = ... is</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># a lot slower than using image.putadata and then rotating the image</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># so we store all the pixels in an array and then create the image when saving</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixels</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel_cursor</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+</div><a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line"> </tt>
+<a name="SpectrogramImage.draw_spectrum"></a><div id="SpectrogramImage.draw_spectrum-def"><a name="L294"></a><tt class="py-lineno">294</tt> <a class="py-toggle" href="#" id="SpectrogramImage.draw_spectrum-toggle" onclick="return toggle('SpectrogramImage.draw_spectrum');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.SpectrogramImage-class.html#draw_spectrum">draw_spectrum</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">,</tt> <tt class="py-param">spectrum</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SpectrogramImage.draw_spectrum-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SpectrogramImage.draw_spectrum-expanded"><a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">index</tt><tt class="py-op">,</tt> <tt class="py-name">alpha</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">y_to_bin</tt><tt class="py-op">:</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixels</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">255.0</tt><tt class="py-op">-</tt><tt class="py-name">alpha</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">spectrum</tt><tt class="py-op">[</tt><tt class="py-name">index</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">alpha</tt> <tt class="py-op">*</tt> <tt class="py-name">spectrum</tt><tt class="py-op">[</tt><tt class="py-name">index</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line"> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">y</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">y_to_bin</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_height</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixels</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line"> </tt>
+<a name="SpectrogramImage.process"></a><div id="SpectrogramImage.process-def"><a name="L301"></a><tt class="py-lineno">301</tt> <a class="py-toggle" href="#" id="SpectrogramImage.process-toggle" onclick="return toggle('SpectrogramImage.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.SpectrogramImage-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SpectrogramImage.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SpectrogramImage.process-expanded"><a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-79" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-79', 'frames', 'link-10');">frames</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">            <tt id="link-80" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-80', 'frames', 'link-10');">frames</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-81" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-81', 'frames', 'link-10');">frames</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">            <tt class="py-name">buffer</tt> <tt class="py-op">=</tt> <tt id="link-82" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-82', 'frames', 'link-10');">frames</a></tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">            <tt class="py-name">buffer</tt> <tt class="py-op">=</tt> <tt id="link-83" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-83', 'frames', 'link-10');">frames</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">            <tt class="py-name">buffer</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">buffer</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line"> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">        <tt class="py-comment"># FIXME : breaks spectrum linearity</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">for</tt> <tt class="py-name">samples</tt><tt class="py-op">,</tt> <tt class="py-name">end</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixels_adapter</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-84', 'process', 'link-9');">process</a></tt><tt class="py-op">(</tt><tt class="py-name">buffer</tt><tt class="py-op">,</tt> <tt id="link-85" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-85', 'eod', 'link-55');">eod</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel_cursor</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image_width</tt><tt class="py-op">:</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt id="link-86" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-86', 'spectral_centroid', 'link-11');">spectral_centroid</a></tt><tt class="py-op">,</tt> <tt class="py-name">db_spectrum</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="timeside.analyze.core.AudioProcessor.spectral_centroid" class="py-name" href="#" onclick="return doclink('link-87', 'spectral_centroid', 'link-11');">spectral_centroid</a></tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-88', 'process', 'link-9');">process</a></tt><tt class="py-op">(</tt><tt class="py-name">samples</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name" targets="Method timeside.grapher.core.SpectrogramImage.draw_spectrum()=timeside.grapher.core.SpectrogramImage-class.html#draw_spectrum"><a title="timeside.grapher.core.SpectrogramImage.draw_spectrum" class="py-name" href="#" onclick="return doclink('link-89', 'draw_spectrum', 'link-89');">draw_spectrum</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel_cursor</tt><tt class="py-op">,</tt> <tt class="py-name">db_spectrum</tt><tt class="py-op">)</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixel_cursor</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+</div><a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line"> </tt>
+<a name="SpectrogramImage.save"></a><div id="SpectrogramImage.save-def"><a name="L316"></a><tt class="py-lineno">316</tt> <a class="py-toggle" href="#" id="SpectrogramImage.save-toggle" onclick="return toggle('SpectrogramImage.save');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.SpectrogramImage-class.html#save">save</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SpectrogramImage.save-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SpectrogramImage.save-expanded"><a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image</tt><tt class="py-op">.</tt><tt class="py-name">putdata</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pixels</tt><tt class="py-op">)</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">image</tt><tt class="py-op">.</tt><tt class="py-name">transpose</tt><tt class="py-op">(</tt><tt class="py-name">Image</tt><tt class="py-op">.</tt><tt class="py-name">ROTATE_90</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="timeside.grapher.core.SpectrogramImage.save
+timeside.grapher.core.WaveformImage.save" class="py-name" href="#" onclick="return doclink('link-90', 'save', 'link-61');">save</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line"> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line"> </tt>
+<a name="Noise"></a><div id="Noise-def"><a name="L321"></a><tt class="py-lineno">321</tt> <a class="py-toggle" href="#" id="Noise-toggle" onclick="return toggle('Noise');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.grapher.core.Noise-class.html">Noise</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Noise-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Noise-expanded"><a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line">    <tt class="py-docstring">"""A class that mimics audiolab.sndfile but generates noise instead of reading</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line"><tt class="py-docstring">    a wave file. Additionally it can be told to have a "broken" header and thus crashing</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line"><tt class="py-docstring">    in the middle of the file. Also useful for testing ultra-short files of 20 samples."""</tt> </tt>
+<a name="Noise.__init__"></a><div id="Noise.__init__-def"><a name="L325"></a><tt class="py-lineno">325</tt> <a class="py-toggle" href="#" id="Noise.__init__-toggle" onclick="return toggle('Noise.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.Noise-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">num_frames</tt><tt class="py-op">,</tt> <tt class="py-param">has_broken_header</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Noise.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Noise.__init__-expanded"><a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">seekpoint</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">num_frames</tt> <tt class="py-op">=</tt> <tt class="py-name">num_frames</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">has_broken_header</tt> <tt class="py-op">=</tt> <tt class="py-name">has_broken_header</tt> </tt>
+</div><a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line"> </tt>
+<a name="Noise.seek"></a><div id="Noise.seek-def"><a name="L330"></a><tt class="py-lineno">330</tt> <a class="py-toggle" href="#" id="Noise.seek-toggle" onclick="return toggle('Noise.seek');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.Noise-class.html#seek">seek</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">seekpoint</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Noise.seek-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Noise.seek-expanded"><a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">seekpoint</tt> <tt class="py-op">=</tt> <tt class="py-name">seekpoint</tt> </tt>
+</div><a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line"> </tt>
+<a name="Noise.get_nframes"></a><div id="Noise.get_nframes-def"><a name="L333"></a><tt class="py-lineno">333</tt> <a class="py-toggle" href="#" id="Noise.get_nframes-toggle" onclick="return toggle('Noise.get_nframes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.Noise-class.html#get_nframes">get_nframes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Noise.get_nframes-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Noise.get_nframes-expanded"><a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">num_frames</tt> </tt>
+</div><a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line"> </tt>
+<a name="Noise.get_samplerate"></a><div id="Noise.get_samplerate-def"><a name="L336"></a><tt class="py-lineno">336</tt> <a class="py-toggle" href="#" id="Noise.get_samplerate-toggle" onclick="return toggle('Noise.get_samplerate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.Noise-class.html#get_samplerate">get_samplerate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Noise.get_samplerate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Noise.get_samplerate-expanded"><a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-number">44100</tt> </tt>
+</div><a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line"> </tt>
+<a name="Noise.get_channels"></a><div id="Noise.get_channels-def"><a name="L339"></a><tt class="py-lineno">339</tt> <a class="py-toggle" href="#" id="Noise.get_channels-toggle" onclick="return toggle('Noise.get_channels');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.Noise-class.html#get_channels">get_channels</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Noise.get_channels-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Noise.get_channels-expanded"><a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-number">1</tt> </tt>
+</div><a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line"> </tt>
+<a name="Noise.read_frames"></a><div id="Noise.read_frames-def"><a name="L342"></a><tt class="py-lineno">342</tt> <a class="py-toggle" href="#" id="Noise.read_frames-toggle" onclick="return toggle('Noise.read_frames');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.core.Noise-class.html#read_frames">read_frames</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames_to_read</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Noise.read_frames-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Noise.read_frames-expanded"><a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">has_broken_header</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">seekpoint</tt> <tt class="py-op">+</tt> <tt class="py-name">frames_to_read</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">num_frames</tt> <tt class="py-op">/</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line"> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line">        <tt class="py-name">num_frames_left</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">num_frames</tt> <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">seekpoint</tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">num_frames_left</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">frames_to_read</tt><tt class="py-op">:</tt> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line">            <tt class="py-name">will_read</tt> <tt class="py-op">=</tt> <tt class="py-name">num_frames_left</tt> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line">            <tt class="py-name">will_read</tt> <tt class="py-op">=</tt> <tt class="py-name">frames_to_read</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">seekpoint</tt> <tt class="py-op">+=</tt> <tt class="py-name">will_read</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">random</tt><tt class="py-op">(</tt><tt class="py-name">will_read</tt><tt class="py-op">)</tt><tt class="py-op">*</tt><tt class="py-number">2</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
+</div></div><a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher.core.Noise-class.html b/doc/epydoc/timeside.grapher.core.Noise-class.html
new file mode 100644 (file)
index 0000000..ea1ad96
--- /dev/null
@@ -0,0 +1,323 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher.core.Noise</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.grapher-module.html">Package&nbsp;grapher</a> ::
+        <a href="timeside.grapher.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;Noise
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher.core.Noise-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Noise</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.grapher.core-pysrc.html#Noise">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">Noise</strong>
+</pre>
+
+<hr />
+<p>A class that mimics audiolab.sndfile but generates noise instead of 
+  reading a wave file. Additionally it can be told to have a 
+  &quot;broken&quot; header and thus crashing in the middle of the file. 
+  Also useful for testing ultra-short files of 20 samples.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.grapher.core.Noise-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">num_frames</span>,
+        <span class="summary-sig-arg">has_broken_header</span>=<span class="summary-sig-default">False</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#Noise.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="seek"></a><span class="summary-sig-name">seek</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">seekpoint</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#Noise.seek">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_nframes"></a><span class="summary-sig-name">get_nframes</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#Noise.get_nframes">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_samplerate"></a><span class="summary-sig-name">get_samplerate</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#Noise.get_samplerate">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_channels"></a><span class="summary-sig-name">get_channels</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#Noise.get_channels">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="read_frames"></a><span class="summary-sig-name">read_frames</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames_to_read</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#Noise.read_frames">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">num_frames</span>,
+        <span class="sig-arg">has_broken_header</span>=<span class="sig-default">False</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.grapher.core-pysrc.html#Noise.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher.core.SpectralCentroid-class.html b/doc/epydoc/timeside.grapher.core.SpectralCentroid-class.html
new file mode 100644 (file)
index 0000000..ee5ca02
--- /dev/null
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher.core.SpectralCentroid</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.grapher-module.html">Package&nbsp;grapher</a> ::
+        <a href="timeside.grapher.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;SpectralCentroid
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher.core.SpectralCentroid-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SpectralCentroid</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.grapher.core-pysrc.html#SpectralCentroid">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">SpectralCentroid</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.grapher.core.SpectralCentroid-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fft_size</span>,
+        <span class="summary-sig-arg">nframes</span>,
+        <span class="summary-sig-arg">samplerate</span>,
+        <span class="summary-sig-arg">lower</span>,
+        <span class="summary-sig-arg">higher</span>,
+        <span class="summary-sig-arg">window_function</span>=<span class="summary-sig-default">&lt;function ones at 0x917279c&gt;</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#SpectralCentroid.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="process"></a><span class="summary-sig-name">process</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>,
+        <span class="summary-sig-arg">eod</span>,
+        <span class="summary-sig-arg">spec_range</span>=<span class="summary-sig-default">120.0</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#SpectralCentroid.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fft_size</span>,
+        <span class="sig-arg">nframes</span>,
+        <span class="sig-arg">samplerate</span>,
+        <span class="sig-arg">lower</span>,
+        <span class="sig-arg">higher</span>,
+        <span class="sig-arg">window_function</span>=<span class="sig-default">&lt;function ones at 0x917279c&gt;</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.grapher.core-pysrc.html#SpectralCentroid.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher.core.SpectrogramImage-class.html b/doc/epydoc/timeside.grapher.core.SpectrogramImage-class.html
new file mode 100644 (file)
index 0000000..83fdbb7
--- /dev/null
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher.core.SpectrogramImage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.grapher-module.html">Package&nbsp;grapher</a> ::
+        <a href="timeside.grapher.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;SpectrogramImage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher.core.SpectrogramImage-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SpectrogramImage</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.grapher.core-pysrc.html#SpectrogramImage">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">SpectrogramImage</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.grapher.core.SpectrogramImage-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">image_width</span>,
+        <span class="summary-sig-arg">image_height</span>,
+        <span class="summary-sig-arg">nframes</span>,
+        <span class="summary-sig-arg">samplerate</span>,
+        <span class="summary-sig-arg">fft_size</span>,
+        <span class="summary-sig-arg">bg_color</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">color_scheme</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code></span>,
+        <span class="summary-sig-arg">filename</span>=<span class="summary-sig-default">None</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#SpectrogramImage.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="draw_spectrum"></a><span class="summary-sig-name">draw_spectrum</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">spectrum</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#SpectrogramImage.draw_spectrum">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="process"></a><span class="summary-sig-name">process</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>,
+        <span class="summary-sig-arg">eod</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#SpectrogramImage.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="save"></a><span class="summary-sig-name">save</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#SpectrogramImage.save">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">image_width</span>,
+        <span class="sig-arg">image_height</span>,
+        <span class="sig-arg">nframes</span>,
+        <span class="sig-arg">samplerate</span>,
+        <span class="sig-arg">fft_size</span>,
+        <span class="sig-arg">bg_color</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">color_scheme</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code></span>,
+        <span class="sig-arg">filename</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.grapher.core-pysrc.html#SpectrogramImage.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher.core.WaveformImage-class.html b/doc/epydoc/timeside.grapher.core.WaveformImage-class.html
new file mode 100644 (file)
index 0000000..0c930fe
--- /dev/null
@@ -0,0 +1,383 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher.core.WaveformImage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.grapher-module.html">Package&nbsp;grapher</a> ::
+        <a href="timeside.grapher.core-module.html">Module&nbsp;core</a> ::
+        Class&nbsp;WaveformImage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher.core.WaveformImage-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class WaveformImage</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.grapher.core-pysrc.html#WaveformImage">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">WaveformImage</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.grapher.core.WaveformImage-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">image_width</span>,
+        <span class="summary-sig-arg">image_height</span>,
+        <span class="summary-sig-arg">nframes</span>,
+        <span class="summary-sig-arg">samplerate</span>,
+        <span class="summary-sig-arg">fft_size</span>,
+        <span class="summary-sig-arg">bg_color</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">color_scheme</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">filename</span>=<span class="summary-sig-default">None</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#WaveformImage.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.grapher.core.WaveformImage-class.html#peaks" class="summary-sig-name">peaks</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">samples</span>)</span><br />
+      read all samples between start_seek and end_seek, then find the 
+      minimum and maximum peak in that range.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#WaveformImage.peaks">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="color_from_value"></a><span class="summary-sig-name">color_from_value</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">value</span>)</span><br />
+      given a value between 0 and 1, return an (r,g,b) tuple</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#WaveformImage.color_from_value">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="draw_peaks"></a><span class="summary-sig-name">draw_peaks</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">peaks</span>,
+        <span class="summary-sig-arg">spectral_centroid</span>)</span><br />
+      draw 2 peaks at x using the spectral_centroid for color</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#WaveformImage.draw_peaks">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="draw_anti_aliased_pixels"></a><span class="summary-sig-name">draw_anti_aliased_pixels</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">y1</span>,
+        <span class="summary-sig-arg">y2</span>,
+        <span class="summary-sig-arg">color</span>)</span><br />
+      vertical anti-aliasing at y1 and y2</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#WaveformImage.draw_anti_aliased_pixels">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="process"></a><span class="summary-sig-name">process</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>,
+        <span class="summary-sig-arg">eod</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#WaveformImage.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="save"></a><span class="summary-sig-name">save</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.core-pysrc.html#WaveformImage.save">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">image_width</span>,
+        <span class="sig-arg">image_height</span>,
+        <span class="sig-arg">nframes</span>,
+        <span class="sig-arg">samplerate</span>,
+        <span class="sig-arg">fft_size</span>,
+        <span class="sig-arg">bg_color</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">color_scheme</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">filename</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.grapher.core-pysrc.html#WaveformImage.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="peaks"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">peaks</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">samples</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.grapher.core-pysrc.html#WaveformImage.peaks">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>read all samples between start_seek and end_seek, then find the 
+  minimum and maximum peak in that range. Returns that pair in the order 
+  they were found. So if min was found first, it returns (min, max) else 
+  the other way around.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher.spectrogram_audiolab-module.html b/doc/epydoc/timeside.grapher.spectrogram_audiolab-module.html
new file mode 100644 (file)
index 0000000..689e804
--- /dev/null
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher.spectrogram_audiolab</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.grapher-module.html">Package&nbsp;grapher</a> ::
+        Module&nbsp;spectrogram_audiolab
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher.spectrogram_audiolab-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module spectrogram_audiolab</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.grapher.spectrogram_audiolab-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html" class="summary-name">SpectrogramGrapherAudiolab</a><br />
+      Spectrogram graph driver (python style thanks to wav2png.py and 
+        scikits.audiolab)
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.grapher.spectrogram_audiolab-module.html#color_schemes" class="summary-name">color_schemes</a> = <code title="{'default': {'spectrogram': [(0, 0, 0),
+                             (14, 17, 16),
+                             (40, 50, 76),
+                             (90, 180, 100),
+                             (224, 224, 44),
+                             (255, 60, 30),
+                             (255, 255, 255)],
+             'waveform': [(50, 0, 200), (0, 220, 80), (255, 224, 0), (\
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">spectrogram</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>0<code class="variable-op">, </code>0<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>14<code class="variable-op">, </code>1<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="color_schemes"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">color_schemes</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">spectrogram</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>0<code class="variable-op">, </code>0<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>14<code class="variable-op">, </code>17<code class="variable-op">, </code>16<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>40<code class="variable-op">, </code>50<code class="variable-op">, </code>76<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>90<code class="variable-op">, </code>180<code class="variable-op">, </code>100<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>224<code class="variable-op">, </code>224<code class="variable-op">, </code>44<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>255<code class="variable-op">, </code>60<code class="variable-op">, </code>30<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>255<code class="variable-op">, </code>255<code class="variable-op">, </code>255<code class="variable-group">)</code><code class="variable-group">]</code><code class="variable-op">,</code>
+             <code class="variable-quote">'</code><code class="variable-string">waveform</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>50<code class="variable-op">, </code>0<code class="variable-op">, </code>200<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>0<code class="variable-op">, </code>220<code class="variable-op">, </code>80<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>255<code class="variable-op">, </code>224<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher.spectrogram_audiolab-pysrc.html b/doc/epydoc/timeside.grapher.spectrogram_audiolab-pysrc.html
new file mode 100644 (file)
index 0000000..872deb1
--- /dev/null
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher.spectrogram_audiolab</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.grapher-module.html">Package&nbsp;grapher</a> ::
+        Module&nbsp;spectrogram_audiolab
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher.spectrogram_audiolab-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.grapher.spectrogram_audiolab-module.html">Module timeside.grapher.spectrogram_audiolab</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-1', 'core', 'link-1');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-2', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-3', 'api', 'link-3');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class timeside.api.IGrapher=timeside.api.IGrapher-class.html"><a title="timeside.api.IGrapher" class="py-name" href="#" onclick="return doclink('link-4', 'IGrapher', 'link-4');">IGrapher</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">tempfile</tt> <tt class="py-keyword">import</tt> <tt class="py-name">NamedTemporaryFile</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-5" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-5', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Package timeside.grapher=timeside.grapher-module.html"><a title="timeside.grapher" class="py-name" href="#" onclick="return doclink('link-6', 'grapher', 'link-6');">grapher</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-7', 'core', 'link-1');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="SpectrogramGrapherAudiolab"></a><div id="SpectrogramGrapherAudiolab-def"><a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt> <a class="py-toggle" href="#" id="SpectrogramGrapherAudiolab-toggle" onclick="return toggle('SpectrogramGrapherAudiolab');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html">SpectrogramGrapherAudiolab</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SpectrogramGrapherAudiolab-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="SpectrogramGrapherAudiolab-expanded"><a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line">    <tt class="py-docstring">"""Spectrogram graph driver (python style thanks to wav2png.py and scikits.audiolab)"""</tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">    <tt id="link-8" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-8', 'implements', 'link-8');">implements</a></tt><tt class="py-op">(</tt><tt id="link-9" class="py-name"><a title="timeside.api.IGrapher" class="py-name" href="#" onclick="return doclink('link-9', 'IGrapher', 'link-4');">IGrapher</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line"> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">    <tt id="link-10" class="py-name" targets="Variable timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#bg_color,Variable timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#bg_color"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-10', 'bg_color', 'link-10');">bg_color</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">    <tt id="link-11" class="py-name" targets="Variable timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#color_scheme,Variable timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#color_scheme"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-11', 'color_scheme', 'link-11');">color_scheme</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="SpectrogramGrapherAudiolab.id"></a><div id="SpectrogramGrapherAudiolab.id-def"><a name="L36"></a><tt class="py-lineno">36</tt> <a class="py-toggle" href="#" id="SpectrogramGrapherAudiolab.id-toggle" onclick="return toggle('SpectrogramGrapherAudiolab.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SpectrogramGrapherAudiolab.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SpectrogramGrapherAudiolab.id-expanded"><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"spectrogram"</tt> </tt>
+</div><a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"> </tt>
+<a name="SpectrogramGrapherAudiolab.name"></a><div id="SpectrogramGrapherAudiolab.name-def"><a name="L39"></a><tt class="py-lineno">39</tt> <a class="py-toggle" href="#" id="SpectrogramGrapherAudiolab.name-toggle" onclick="return toggle('SpectrogramGrapherAudiolab.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SpectrogramGrapherAudiolab.name-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SpectrogramGrapherAudiolab.name-expanded"><a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Spectrogram (audiolab)"</tt> </tt>
+</div><a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line"> </tt>
+<a name="SpectrogramGrapherAudiolab.set_colors"></a><div id="SpectrogramGrapherAudiolab.set_colors-def"><a name="L42"></a><tt class="py-lineno">42</tt> <a class="py-toggle" href="#" id="SpectrogramGrapherAudiolab.set_colors-toggle" onclick="return toggle('SpectrogramGrapherAudiolab.set_colors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#set_colors">set_colors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">background</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">scheme</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SpectrogramGrapherAudiolab.set_colors-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SpectrogramGrapherAudiolab.set_colors-expanded"><a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-12', 'bg_color', 'link-10');">bg_color</a></tt> <tt class="py-op">=</tt> <tt class="py-name">background</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-13', 'color_scheme', 'link-11');">color_scheme</a></tt> <tt class="py-op">=</tt> <tt class="py-name">scheme</tt> </tt>
+</div><a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line"> </tt>
+<a name="SpectrogramGrapherAudiolab.render"></a><div id="SpectrogramGrapherAudiolab.render-def"><a name="L46"></a><tt class="py-lineno">46</tt> <a class="py-toggle" href="#" id="SpectrogramGrapherAudiolab.render-toggle" onclick="return toggle('SpectrogramGrapherAudiolab.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">height</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SpectrogramGrapherAudiolab.render-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SpectrogramGrapherAudiolab.render-expanded"><a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">        <tt class="py-docstring">"""Generator that streams the spectrogram as a PNG image with a python method"""</tt> </tt>
+<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line"> </tt>
+<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">        <tt class="py-name">wav_file</tt> <tt class="py-op">=</tt> <tt class="py-name">media_item</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">        <tt class="py-name">pngFile</tt> <tt class="py-op">=</tt> <tt class="py-name">NamedTemporaryFile</tt><tt class="py-op">(</tt><tt class="py-name">suffix</tt><tt class="py-op">=</tt><tt class="py-string">'.png'</tt><tt class="py-op">)</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">width</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line">            <tt class="py-name">image_width</tt> <tt class="py-op">=</tt> <tt class="py-name">width</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">            <tt class="py-name">image_width</tt> <tt class="py-op">=</tt> <tt class="py-number">1500</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">height</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">            <tt class="py-name">image_height</tt> <tt class="py-op">=</tt> <tt class="py-name">height</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">            <tt class="py-name">image_height</tt> <tt class="py-op">=</tt> <tt class="py-number">200</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line"> </tt>
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">        <tt class="py-name">fft_size</tt> <tt class="py-op">=</tt> <tt class="py-number">2048</tt> </tt>
+<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">wav_file</tt><tt class="py-op">,</tt> <tt class="py-name">pngFile</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method timeside.analyze.channels.ChannelAnalyser.name()=timeside.analyze.channels.ChannelAnalyser-class.html#name,Method timeside.analyze.dc.MeanDCShiftAnalyser.name()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#name,Method timeside.analyze.duration.DurationAnalyzer.name()=timeside.analyze.duration.DurationAnalyzer-class.html#name,Method timeside.analyze.encoding.EncodingAnalyser.name()=timeside.analyze.encoding.EncodingAnalyser-class.html#name,Method timeside.analyze.format.FormatAnalyser.name()=timeside.analyze.format.FormatAnalyser-class.html#name,Static Method timeside.analyze.max_level.MaxLevelAnalyzer.name()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#name,Method timeside.analyze.mean_level.MeanLevelAnalyser.name()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#name,Method timeside.analyze.resolution.ResolutionAnalyser.name()=timeside.analyze.resolution.ResolutionAnalyser-class.html#name,Method timeside.analyze.samplerate.SampleRateAnalyzer.name()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#name,Method timeside.analyze.vamp.core.VampCoreAnalyzer.name()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#name,Static Method timeside.api.IAnalyzer.name()=timeside.api.IAnalyzer-class.html#name,Static Method timeside.api.IEffect.name()=timeside.api.IEffect-class.html#name,Static Method timeside.api.IGrapher.name()=timeside.api.IGrapher-class.html#name,Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#name,Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#name,Static Method timeside.tests.api.examples.Duration.name()=timeside.tests.api.examples.Duration-class.html#name,Static Method timeside.tests.api.examples.Gain.name()=timeside.tests.api.examples.Gain-class.html#name,Static Method timeside.tests.api.examples.MaxLevel.name()=timeside.tests.api.examples.MaxLevel-class.html#name,Static Method timeside.tests.api.examples.Spectrogram.name()=timeside.tests.api.examples.Spectrogram-class.html#name,Static Method timeside.tests.api.examples.Waveform.name()=timeside.tests.api.examples.Waveform-class.html#name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-14', 'name', 'link-14');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">image_width</tt><tt class="py-op">,</tt> <tt class="py-name">image_height</tt><tt class="py-op">,</tt> <tt class="py-name">fft_size</tt><tt class="py-op">,</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-15', 'bg_color', 'link-10');">bg_color</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-16', 'color_scheme', 'link-11');">color_scheme</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">        <tt class="py-name">create_spectrogram_png</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line"> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">        <tt class="py-name">buffer</tt> <tt class="py-op">=</tt> <tt class="py-name">pngFile</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.read()=timeside.analyze.core.AudioProcessor-class.html#read"><a title="timeside.analyze.core.AudioProcessor.read" class="py-name" href="#" onclick="return doclink('link-17', 'read', 'link-17');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">0xFFFF</tt><tt class="py-op">)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">buffer</tt><tt class="py-op">:</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">buffer</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line">            <tt class="py-name">buffer</tt> <tt class="py-op">=</tt> <tt class="py-name">pngFile</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="timeside.analyze.core.AudioProcessor.read" class="py-name" href="#" onclick="return doclink('link-18', 'read', 'link-17');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">0xFFFF</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line"> </tt>
+<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line">        <tt class="py-name">pngFile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html b/doc/epydoc/timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html
new file mode 100644 (file)
index 0000000..9c4ed8b
--- /dev/null
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.grapher-module.html">Package&nbsp;grapher</a> ::
+        <a href="timeside.grapher.spectrogram_audiolab-module.html">Module&nbsp;spectrogram_audiolab</a> ::
+        Class&nbsp;SpectrogramGrapherAudiolab
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SpectrogramGrapherAudiolab</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.grapher.spectrogram_audiolab-pysrc.html#SpectrogramGrapherAudiolab">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">SpectrogramGrapherAudiolab</strong>
+</pre>
+
+<hr />
+<p>Spectrogram graph driver (python style thanks to wav2png.py and 
+  scikits.audiolab)</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.spectrogram_audiolab-pysrc.html#SpectrogramGrapherAudiolab.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="set_colors"></a><span class="summary-sig-name">set_colors</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">background</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">scheme</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.spectrogram_audiolab-pysrc.html#SpectrogramGrapherAudiolab.set_colors">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="render"></a><span class="summary-sig-name">render</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_item</span>,
+        <span class="summary-sig-arg">width</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">height</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Generator that streams the spectrogram as a PNG image with a python 
+      method</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.spectrogram_audiolab-pysrc.html#SpectrogramGrapherAudiolab.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.spectrogram_audiolab-pysrc.html#SpectrogramGrapherAudiolab.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="bg_color"></a><span class="summary-name">bg_color</span> = <code title="None">None</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="color_scheme"></a><span class="summary-name">color_scheme</span> = <code title="None">None</code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher.waveform_audiolab-module.html b/doc/epydoc/timeside.grapher.waveform_audiolab-module.html
new file mode 100644 (file)
index 0000000..7f4b142
--- /dev/null
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher.waveform_audiolab</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.grapher-module.html">Package&nbsp;grapher</a> ::
+        Module&nbsp;waveform_audiolab
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher.waveform_audiolab-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module waveform_audiolab</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.grapher.waveform_audiolab-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html" class="summary-name">WaveFormGrapherAudiolab</a><br />
+      WaveForm graph driver (python style thanks to wav2png.py and 
+        scikits.audiolab)
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.grapher.waveform_audiolab-module.html#color_schemes" class="summary-name">color_schemes</a> = <code title="{'default': {'spectrogram': [(0, 0, 0),
+                             (14, 17, 16),
+                             (40, 50, 76),
+                             (90, 180, 100),
+                             (224, 224, 44),
+                             (255, 60, 30),
+                             (255, 255, 255)],
+             'waveform': [(50, 0, 200), (0, 220, 80), (255, 224, 0), (\
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">spectrogram</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>0<code class="variable-op">, </code>0<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>14<code class="variable-op">, </code>1<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="color_schemes"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">color_schemes</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">spectrogram</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>0<code class="variable-op">, </code>0<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>14<code class="variable-op">, </code>17<code class="variable-op">, </code>16<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>40<code class="variable-op">, </code>50<code class="variable-op">, </code>76<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>90<code class="variable-op">, </code>180<code class="variable-op">, </code>100<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>224<code class="variable-op">, </code>224<code class="variable-op">, </code>44<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>255<code class="variable-op">, </code>60<code class="variable-op">, </code>30<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>255<code class="variable-op">, </code>255<code class="variable-op">, </code>255<code class="variable-group">)</code><code class="variable-group">]</code><code class="variable-op">,</code>
+             <code class="variable-quote">'</code><code class="variable-string">waveform</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>50<code class="variable-op">, </code>0<code class="variable-op">, </code>200<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>0<code class="variable-op">, </code>220<code class="variable-op">, </code>80<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>255<code class="variable-op">, </code>224<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher.waveform_audiolab-pysrc.html b/doc/epydoc/timeside.grapher.waveform_audiolab-pysrc.html
new file mode 100644 (file)
index 0000000..34c6d7e
--- /dev/null
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher.waveform_audiolab</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.grapher-module.html">Package&nbsp;grapher</a> ::
+        Module&nbsp;waveform_audiolab
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher.waveform_audiolab-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.grapher.waveform_audiolab-module.html">Module timeside.grapher.waveform_audiolab</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Author: Guillaume Pellerin &lt;yomguy@parisson.com&gt;</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-1', 'core', 'link-1');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-2', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-3', 'api', 'link-3');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class timeside.api.IGrapher=timeside.api.IGrapher-class.html"><a title="timeside.api.IGrapher" class="py-name" href="#" onclick="return doclink('link-4', 'IGrapher', 'link-4');">IGrapher</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">tempfile</tt> <tt class="py-keyword">import</tt> <tt class="py-name">NamedTemporaryFile</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-5" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-5', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Package timeside.grapher=timeside.grapher-module.html"><a title="timeside.grapher" class="py-name" href="#" onclick="return doclink('link-6', 'grapher', 'link-6');">grapher</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-7', 'core', 'link-1');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="WaveFormGrapherAudiolab"></a><div id="WaveFormGrapherAudiolab-def"><a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt> <a class="py-toggle" href="#" id="WaveFormGrapherAudiolab-toggle" onclick="return toggle('WaveFormGrapherAudiolab');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html">WaveFormGrapherAudiolab</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WaveFormGrapherAudiolab-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="WaveFormGrapherAudiolab-expanded"><a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line">    <tt class="py-docstring">"""WaveForm graph driver (python style thanks to wav2png.py and scikits.audiolab)"""</tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">    <tt id="link-8" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-8', 'implements', 'link-8');">implements</a></tt><tt class="py-op">(</tt><tt id="link-9" class="py-name"><a title="timeside.api.IGrapher" class="py-name" href="#" onclick="return doclink('link-9', 'IGrapher', 'link-4');">IGrapher</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line"> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">    <tt id="link-10" class="py-name" targets="Variable timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#bg_color,Variable timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#bg_color"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-10', 'bg_color', 'link-10');">bg_color</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">    <tt id="link-11" class="py-name" targets="Variable timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#color_scheme,Variable timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#color_scheme"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-11', 'color_scheme', 'link-11');">color_scheme</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="WaveFormGrapherAudiolab.id"></a><div id="WaveFormGrapherAudiolab.id-def"><a name="L36"></a><tt class="py-lineno">36</tt> <a class="py-toggle" href="#" id="WaveFormGrapherAudiolab.id-toggle" onclick="return toggle('WaveFormGrapherAudiolab.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WaveFormGrapherAudiolab.id-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WaveFormGrapherAudiolab.id-expanded"><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"waveform"</tt> </tt>
+</div><a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"> </tt>
+<a name="WaveFormGrapherAudiolab.name"></a><div id="WaveFormGrapherAudiolab.name-def"><a name="L39"></a><tt class="py-lineno">39</tt> <a class="py-toggle" href="#" id="WaveFormGrapherAudiolab.name-toggle" onclick="return toggle('WaveFormGrapherAudiolab.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WaveFormGrapherAudiolab.name-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WaveFormGrapherAudiolab.name-expanded"><a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Waveform (audiolab)"</tt> </tt>
+</div><a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line"> </tt>
+<a name="WaveFormGrapherAudiolab.set_colors"></a><div id="WaveFormGrapherAudiolab.set_colors-def"><a name="L42"></a><tt class="py-lineno">42</tt> <a class="py-toggle" href="#" id="WaveFormGrapherAudiolab.set_colors-toggle" onclick="return toggle('WaveFormGrapherAudiolab.set_colors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#set_colors">set_colors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">background</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">scheme</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WaveFormGrapherAudiolab.set_colors-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WaveFormGrapherAudiolab.set_colors-expanded"><a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-12', 'bg_color', 'link-10');">bg_color</a></tt> <tt class="py-op">=</tt> <tt class="py-name">background</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-13', 'color_scheme', 'link-11');">color_scheme</a></tt> <tt class="py-op">=</tt> <tt class="py-name">scheme</tt> </tt>
+</div><a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line"> </tt>
+<a name="WaveFormGrapherAudiolab.render"></a><div id="WaveFormGrapherAudiolab.render-def"><a name="L46"></a><tt class="py-lineno">46</tt> <a class="py-toggle" href="#" id="WaveFormGrapherAudiolab.render-toggle" onclick="return toggle('WaveFormGrapherAudiolab.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_item</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">height</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WaveFormGrapherAudiolab.render-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="WaveFormGrapherAudiolab.render-expanded"><a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">        <tt class="py-docstring">"""Generator that streams the waveform as a PNG image with a python method"""</tt> </tt>
+<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line"> </tt>
+<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">        <tt class="py-name">wav_file</tt> <tt class="py-op">=</tt> <tt class="py-name">media_item</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">        <tt class="py-name">pngFile</tt> <tt class="py-op">=</tt> <tt class="py-name">NamedTemporaryFile</tt><tt class="py-op">(</tt><tt class="py-name">suffix</tt><tt class="py-op">=</tt><tt class="py-string">'.png'</tt><tt class="py-op">)</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">width</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line">            <tt class="py-name">image_width</tt> <tt class="py-op">=</tt> <tt class="py-name">width</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">            <tt class="py-name">image_width</tt> <tt class="py-op">=</tt> <tt class="py-number">1500</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">height</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">            <tt class="py-name">image_height</tt> <tt class="py-op">=</tt> <tt class="py-name">height</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">            <tt class="py-name">image_height</tt> <tt class="py-op">=</tt> <tt class="py-number">200</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line"> </tt>
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">        <tt class="py-name">fft_size</tt> <tt class="py-op">=</tt> <tt class="py-number">2048</tt> </tt>
+<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">wav_file</tt><tt class="py-op">,</tt> <tt class="py-name">pngFile</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method timeside.analyze.channels.ChannelAnalyser.name()=timeside.analyze.channels.ChannelAnalyser-class.html#name,Method timeside.analyze.dc.MeanDCShiftAnalyser.name()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#name,Method timeside.analyze.duration.DurationAnalyzer.name()=timeside.analyze.duration.DurationAnalyzer-class.html#name,Method timeside.analyze.encoding.EncodingAnalyser.name()=timeside.analyze.encoding.EncodingAnalyser-class.html#name,Method timeside.analyze.format.FormatAnalyser.name()=timeside.analyze.format.FormatAnalyser-class.html#name,Static Method timeside.analyze.max_level.MaxLevelAnalyzer.name()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#name,Method timeside.analyze.mean_level.MeanLevelAnalyser.name()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#name,Method timeside.analyze.resolution.ResolutionAnalyser.name()=timeside.analyze.resolution.ResolutionAnalyser-class.html#name,Method timeside.analyze.samplerate.SampleRateAnalyzer.name()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#name,Method timeside.analyze.vamp.core.VampCoreAnalyzer.name()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#name,Static Method timeside.api.IAnalyzer.name()=timeside.api.IAnalyzer-class.html#name,Static Method timeside.api.IEffect.name()=timeside.api.IEffect-class.html#name,Static Method timeside.api.IGrapher.name()=timeside.api.IGrapher-class.html#name,Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#name,Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#name,Static Method timeside.tests.api.examples.Duration.name()=timeside.tests.api.examples.Duration-class.html#name,Static Method timeside.tests.api.examples.Gain.name()=timeside.tests.api.examples.Gain-class.html#name,Static Method timeside.tests.api.examples.MaxLevel.name()=timeside.tests.api.examples.MaxLevel-class.html#name,Static Method timeside.tests.api.examples.Spectrogram.name()=timeside.tests.api.examples.Spectrogram-class.html#name,Static Method timeside.tests.api.examples.Waveform.name()=timeside.tests.api.examples.Waveform-class.html#name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-14', 'name', 'link-14');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">image_width</tt><tt class="py-op">,</tt> <tt class="py-name">image_height</tt><tt class="py-op">,</tt> <tt class="py-name">fft_size</tt><tt class="py-op">,</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-15', 'bg_color', 'link-10');">bg_color</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-16', 'color_scheme', 'link-11');">color_scheme</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">        <tt class="py-name">create_wavform_png</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line"> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">        <tt class="py-name">buffer</tt> <tt class="py-op">=</tt> <tt class="py-name">pngFile</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.read()=timeside.analyze.core.AudioProcessor-class.html#read"><a title="timeside.analyze.core.AudioProcessor.read" class="py-name" href="#" onclick="return doclink('link-17', 'read', 'link-17');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">0xFFFF</tt><tt class="py-op">)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">buffer</tt><tt class="py-op">:</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">buffer</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line">            <tt class="py-name">buffer</tt> <tt class="py-op">=</tt> <tt class="py-name">pngFile</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="timeside.analyze.core.AudioProcessor.read" class="py-name" href="#" onclick="return doclink('link-18', 'read', 'link-17');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">0xFFFF</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line"> </tt>
+<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line">        <tt class="py-name">pngFile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html b/doc/epydoc/timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html
new file mode 100644 (file)
index 0000000..267e119
--- /dev/null
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.grapher-module.html">Package&nbsp;grapher</a> ::
+        <a href="timeside.grapher.waveform_audiolab-module.html">Module&nbsp;waveform_audiolab</a> ::
+        Class&nbsp;WaveFormGrapherAudiolab
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class WaveFormGrapherAudiolab</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.grapher.waveform_audiolab-pysrc.html#WaveFormGrapherAudiolab">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">WaveFormGrapherAudiolab</strong>
+</pre>
+
+<hr />
+<p>WaveForm graph driver (python style thanks to wav2png.py and 
+  scikits.audiolab)</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="name"></a><span class="summary-sig-name">name</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.waveform_audiolab-pysrc.html#WaveFormGrapherAudiolab.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="set_colors"></a><span class="summary-sig-name">set_colors</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">background</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">scheme</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.waveform_audiolab-pysrc.html#WaveFormGrapherAudiolab.set_colors">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="render"></a><span class="summary-sig-name">render</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_item</span>,
+        <span class="summary-sig-arg">width</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">height</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">options</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Generator that streams the waveform as a PNG image with a python 
+      method</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.waveform_audiolab-pysrc.html#WaveFormGrapherAudiolab.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="id"></a><span class="summary-sig-name">id</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.grapher.waveform_audiolab-pysrc.html#WaveFormGrapherAudiolab.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="bg_color"></a><span class="summary-name">bg_color</span> = <code title="None">None</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="color_scheme"></a><span class="summary-name">color_scheme</span> = <code title="None">None</code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.metadata-module.html b/doc/epydoc/timeside.metadata-module.html
new file mode 100644 (file)
index 0000000..7899022
--- /dev/null
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.metadata</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Module&nbsp;metadata
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.metadata-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module metadata</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.metadata-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.metadata.Metadata-class.html" class="summary-name">Metadata</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.metadata-pysrc.html b/doc/epydoc/timeside.metadata-pysrc.html
new file mode 100644 (file)
index 0000000..e99c2bd
--- /dev/null
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.metadata</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Module&nbsp;metadata
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.metadata-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.metadata-module.html">Module timeside.metadata</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (C) 2007-2009 Parisson</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007 Olivier Guilyardi &lt;olivier@samalyse.com&gt;</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;pellerin@parisson.com&gt;</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="Metadata"></a><div id="Metadata-def"><a name="L22"></a><tt class="py-lineno">22</tt> <a class="py-toggle" href="#" id="Metadata-toggle" onclick="return toggle('Metadata');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.metadata.Metadata-class.html">Metadata</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Metadata-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="Metadata-expanded"><a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.metadata.Metadata-class.html b/doc/epydoc/timeside.metadata.Metadata-class.html
new file mode 100644 (file)
index 0000000..0415c61
--- /dev/null
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.metadata.Metadata</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.metadata-module.html">Module&nbsp;metadata</a> ::
+        Class&nbsp;Metadata
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.metadata.Metadata-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Metadata</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.metadata-pysrc.html#Metadata">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">Metadata</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests-module.html b/doc/epydoc/timeside.tests-module.html
new file mode 100644 (file)
index 0000000..5a54f51
--- /dev/null
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Package&nbsp;tests
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PACKAGE DESCRIPTION ==================== -->
+<h1 class="epydoc">Package tests</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== SUBMODULES ==================== -->
+<a name="section-Submodules"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Submodules</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Submodules"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr><td class="summary">
+  <ul class="nomargin">
+    <li> <strong class="uidlink"><a href="timeside.tests.alltests-module.html">timeside.tests.alltests</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api-module.html">timeside.tests.api</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.examples-module.html">timeside.tests.api.examples</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.gstreamer-module.html">timeside.tests.api.gstreamer</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_pipe-module.html">timeside.tests.api.test_pipe</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_pipe_spectrogram-module.html">timeside.tests.api.test_pipe_spectrogram</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_pipe_waveform-module.html">timeside.tests.api.test_pipe_waveform</a></strong>    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.listprocessors-module.html">timeside.tests.listprocessors</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.test-module.html">timeside.tests.test</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testcomponent-module.html">timeside.tests.testcomponent</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.testinputadapter-module.html">timeside.tests.testinputadapter</a></strong>    </li>
+  </ul></td></tr>
+</table>
+
+<br />
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.TestCase-class.html" class="summary-name">TestCase</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests._TextTestResult-class.html" class="summary-name" onclick="show_private();">_TextTestResult</a><br />
+      A test result class that can print formatted text results to a 
+        stream.
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests._WritelnDecorator-class.html" class="summary-name" onclick="show_private();">_WritelnDecorator</a><br />
+      Used to decorate file-like objects with a handy 'writeln' method
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.TestRunner-class.html" class="summary-name">TestRunner</a><br />
+      A test runner class that displays results in textual form.
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests-pysrc.html b/doc/epydoc/timeside.tests-pysrc.html
new file mode 100644 (file)
index 0000000..dc40d66
--- /dev/null
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        Package&nbsp;tests
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.tests-module.html">Package timeside.tests</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">time</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"> </tt>
+<a name="TestCase"></a><div id="TestCase-def"><a name="L6"></a><tt class="py-lineno">  6</tt> <a class="py-toggle" href="#" id="TestCase-toggle" onclick="return toggle('TestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.TestCase-class.html">TestCase</a><tt class="py-op">(</tt><tt class="py-base-class">unittest</tt><tt class="py-op">.</tt><tt class="py-base-class">TestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestCase-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="TestCase-expanded"><a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"> </tt>
+<a name="TestCase.assertSameList"></a><div id="TestCase.assertSameList-def"><a name="L8"></a><tt class="py-lineno">  8</tt> <a class="py-toggle" href="#" id="TestCase.assertSameList-toggle" onclick="return toggle('TestCase.assertSameList');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.TestCase-class.html#assertSameList">assertSameList</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">list1</tt><tt class="py-op">,</tt> <tt class="py-param">list2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestCase.assertSameList-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestCase.assertSameList-expanded"><a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line">        <tt class="py-docstring">"Test that two lists contain the same elements, in any order"</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list1</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"Lists length differ : %d != %d"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list1</tt><tt class="py-op">:</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list2</tt><tt class="py-op">:</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"%s is not in list2"</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list2</tt><tt class="py-op">:</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list1</tt><tt class="py-op">:</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"%s is not in list1"</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line">         </tt>
+<a name="_TextTestResult"></a><div id="_TextTestResult-def"><a name="L21"></a><tt class="py-lineno"> 21</tt> <a class="py-toggle" href="#" id="_TextTestResult-toggle" onclick="return toggle('_TextTestResult');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests._TextTestResult-class.html">_TextTestResult</a><tt class="py-op">(</tt><tt class="py-base-class">unittest</tt><tt class="py-op">.</tt><tt class="py-base-class">TestResult</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_TextTestResult-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_TextTestResult-expanded"><a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">    <tt class="py-docstring">"""A test result class that can print formatted text results to a stream.</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-docstring">    Used by TextTestRunner.</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">    <tt id="link-0" class="py-name" targets="Variable timeside.tests._TextTestResult.separator1=timeside.tests._TextTestResult-class.html#separator1"><a title="timeside.tests._TextTestResult.separator1" class="py-name" href="#" onclick="return doclink('link-0', 'separator1', 'link-0');">separator1</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'='</tt> <tt class="py-op">*</tt> <tt class="py-number">70</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">    <tt id="link-1" class="py-name" targets="Variable timeside.tests._TextTestResult.separator2=timeside.tests._TextTestResult-class.html#separator2"><a title="timeside.tests._TextTestResult.separator2" class="py-name" href="#" onclick="return doclink('link-1', 'separator2', 'link-1');">separator2</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'-'</tt> <tt class="py-op">*</tt> <tt class="py-number">70</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
+<a name="_TextTestResult.__init__"></a><div id="_TextTestResult.__init__-def"><a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="_TextTestResult.__init__-toggle" onclick="return toggle('_TextTestResult.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests._TextTestResult-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stream</tt><tt class="py-op">,</tt> <tt class="py-param">descriptions</tt><tt class="py-op">,</tt> <tt class="py-param">verbosity</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_TextTestResult.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_TextTestResult.__init__-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">        <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestResult</tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Method timeside.analyze.core.AudioProcessor.__init__()=timeside.analyze.core.AudioProcessor-class.html#__init__,Method timeside.analyze.vamp.core.VampCoreAnalyzer.__init__()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#__init__,Method timeside.api.IAnalyzer.__init__()=timeside.api.IAnalyzer-class.html#__init__,Method timeside.api.IDecoder.__init__()=timeside.api.IDecoder-class.html#__init__,Method timeside.api.IEffect.__init__()=timeside.api.IEffect-class.html#__init__,Method timeside.api.IEncoder.__init__()=timeside.api.IEncoder-class.html#__init__,Method timeside.api.IGrapher.__init__()=timeside.api.IGrapher-class.html#__init__,Method timeside.core.FixedSizeInputAdapter.__init__()=timeside.core.FixedSizeInputAdapter-class.html#__init__,Method timeside.core.ProcessPipe.__init__()=timeside.core.ProcessPipe-class.html#__init__,Method timeside.decode.core.DecoderCore.__init__()=timeside.decode.core.DecoderCore-class.html#__init__,Method timeside.decode.core.SubProcessPipe.__init__()=timeside.decode.core.SubProcessPipe-class.html#__init__,Method timeside.decode.mp3.Mp3Decoder.__init__()=timeside.decode.mp3.Mp3Decoder-class.html#__init__,Method timeside.encode.core.SubProcessPipe.__init__()=timeside.encode.core.SubProcessPipe-class.html#__init__,Method timeside.encode.flac.FlacEncoder.__init__()=timeside.encode.flac.FlacEncoder-class.html#__init__,Method timeside.encode.mp3.Mp3Encoder.__init__()=timeside.encode.mp3.Mp3Encoder-class.html#__init__,Method timeside.encode.ogg.OggVorbisEncoder.__init__()=timeside.encode.ogg.OggVorbisEncoder-class.html#__init__,Method timeside.encode.wav.WavEncoder.__init__()=timeside.encode.wav.WavEncoder-class.html#__init__,Method timeside.exceptions.SubProcessError.__init__()=timeside.exceptions.SubProcessError-class.html#__init__,Method timeside.grapher.core.Noise.__init__()=timeside.grapher.core.Noise-class.html#__init__,Method timeside.grapher.core.SpectralCentroid.__init__()=timeside.grapher.core.SpectralCentroid-class.html#__init__,Method timeside.grapher.core.SpectrogramImage.__init__()=timeside.grapher.core.SpectrogramImage-class.html#__init__,Method timeside.grapher.core.WaveformImage.__init__()=timeside.grapher.core.WaveformImage-class.html#__init__,Method timeside.tests.TestRunner.__init__()=timeside.tests.TestRunner-class.html#__init__,Method timeside.tests._TextTestResult.__init__()=timeside.tests._TextTestResult-class.html#__init__,Method timeside.tests._WritelnDecorator.__init__()=timeside.tests._WritelnDecorator-class.html#__init__,Method timeside.tests.api.examples.FileDecoder.__init__()=timeside.tests.api.examples.FileDecoder-class.html#__init__,Method timeside.tests.api.examples.Gain.__init__()=timeside.tests.api.examples.Gain-class.html#__init__,Method timeside.tests.api.examples.Spectrogram.__init__()=timeside.tests.api.examples.Spectrogram-class.html#__init__,Method timeside.tests.api.examples.WavEncoder.__init__()=timeside.tests.api.examples.WavEncoder-class.html#__init__,Method timeside.tests.api.examples.Waveform.__init__()=timeside.tests.api.examples.Waveform-class.html#__init__,Method timeside.tests.api.gstreamer.FileDecoder.__init__()=timeside.tests.api.gstreamer.FileDecoder-class.html#__init__,Method timeside.tests.api.gstreamer.WavEncoder.__init__()=timeside.tests.api.gstreamer.WavEncoder-class.html#__init__"><a title="timeside.analyze.core.AudioProcessor.__init__
+timeside.analyze.vamp.core.VampCoreAnalyzer.__init__
+timeside.api.IAnalyzer.__init__
+timeside.api.IDecoder.__init__
+timeside.api.IEffect.__init__
+timeside.api.IEncoder.__init__
+timeside.api.IGrapher.__init__
+timeside.core.FixedSizeInputAdapter.__init__
+timeside.core.ProcessPipe.__init__
+timeside.decode.core.DecoderCore.__init__
+timeside.decode.core.SubProcessPipe.__init__
+timeside.decode.mp3.Mp3Decoder.__init__
+timeside.encode.core.SubProcessPipe.__init__
+timeside.encode.flac.FlacEncoder.__init__
+timeside.encode.mp3.Mp3Encoder.__init__
+timeside.encode.ogg.OggVorbisEncoder.__init__
+timeside.encode.wav.WavEncoder.__init__
+timeside.exceptions.SubProcessError.__init__
+timeside.grapher.core.Noise.__init__
+timeside.grapher.core.SpectralCentroid.__init__
+timeside.grapher.core.SpectrogramImage.__init__
+timeside.grapher.core.WaveformImage.__init__
+timeside.tests.TestRunner.__init__
+timeside.tests._TextTestResult.__init__
+timeside.tests._WritelnDecorator.__init__
+timeside.tests.api.examples.FileDecoder.__init__
+timeside.tests.api.examples.Gain.__init__
+timeside.tests.api.examples.Spectrogram.__init__
+timeside.tests.api.examples.WavEncoder.__init__
+timeside.tests.api.examples.Waveform.__init__
+timeside.tests.api.gstreamer.FileDecoder.__init__
+timeside.tests.api.gstreamer.WavEncoder.__init__" class="py-name" href="#" onclick="return doclink('link-2', '__init__', 'link-2');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt> <tt class="py-op">=</tt> <tt class="py-name">stream</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">showAll</tt> <tt class="py-op">=</tt> <tt class="py-name">verbosity</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dots</tt> <tt class="py-op">=</tt> <tt class="py-name">verbosity</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">descriptions</tt> <tt class="py-op">=</tt> <tt class="py-name">descriptions</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentTestCase</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"> </tt>
+<a name="_TextTestResult.getDescription"></a><div id="_TextTestResult.getDescription-def"><a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="_TextTestResult.getDescription-toggle" onclick="return toggle('_TextTestResult.getDescription');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests._TextTestResult-class.html#getDescription">getDescription</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">test</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_TextTestResult.getDescription-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_TextTestResult.getDescription-expanded"><a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">descriptions</tt><tt class="py-op">:</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-3" class="py-name" targets="Module timeside.tests.test=timeside.tests.test-module.html,Method timeside.tests.testcomponent.C10.test()=timeside.tests.testcomponent.C10-class.html#test,Method timeside.tests.testcomponent.I10.test()=timeside.tests.testcomponent.I10-class.html#test"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-3', 'test', 'link-3');">test</a></tt><tt class="py-op">.</tt><tt class="py-name">shortDescription</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-4" class="py-name"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-4', 'test', 'link-3');">test</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-5" class="py-name"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-5', 'test', 'link-3');">test</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"> </tt>
+<a name="_TextTestResult.startTest"></a><div id="_TextTestResult.startTest-def"><a name="L43"></a><tt class="py-lineno"> 43</tt> <a class="py-toggle" href="#" id="_TextTestResult.startTest-toggle" onclick="return toggle('_TextTestResult.startTest');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests._TextTestResult-class.html#startTest">startTest</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">test</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_TextTestResult.startTest-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_TextTestResult.startTest-expanded"><a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">        <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestResult</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method timeside.tests._TextTestResult.startTest()=timeside.tests._TextTestResult-class.html#startTest"><a title="timeside.tests._TextTestResult.startTest" class="py-name" href="#" onclick="return doclink('link-6', 'startTest', 'link-6');">startTest</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-7" class="py-name"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-7', 'test', 'link-3');">test</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">showAll</tt><tt class="py-op">:</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentTestCase</tt> <tt class="py-op">!=</tt> <tt id="link-8" class="py-name"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-8', 'test', 'link-3');">test</a></tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">:</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentTestCase</tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-9', 'test', 'link-3');">test</a></tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method timeside.tests._WritelnDecorator.writeln()=timeside.tests._WritelnDecorator-class.html#writeln"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-10', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-11', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-string">"[%s]"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentTestCase</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">)</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"  "</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method timeside.tests._TextTestResult.getDescription()=timeside.tests._TextTestResult-class.html#getDescription"><a title="timeside.tests._TextTestResult.getDescription" class="py-name" href="#" onclick="return doclink('link-12', 'getDescription', 'link-12');">getDescription</a></tt><tt class="py-op">(</tt><tt id="link-13" class="py-name"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-13', 'test', 'link-3');">test</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">" ... "</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"> </tt>
+<a name="_TextTestResult.addSuccess"></a><div id="_TextTestResult.addSuccess-def"><a name="L53"></a><tt class="py-lineno"> 53</tt> <a class="py-toggle" href="#" id="_TextTestResult.addSuccess-toggle" onclick="return toggle('_TextTestResult.addSuccess');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests._TextTestResult-class.html#addSuccess">addSuccess</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">test</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_TextTestResult.addSuccess-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_TextTestResult.addSuccess-expanded"><a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">        <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestResult</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method timeside.tests._TextTestResult.addSuccess()=timeside.tests._TextTestResult-class.html#addSuccess"><a title="timeside.tests._TextTestResult.addSuccess" class="py-name" href="#" onclick="return doclink('link-14', 'addSuccess', 'link-14');">addSuccess</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-15" class="py-name"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-15', 'test', 'link-3');">test</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">showAll</tt><tt class="py-op">:</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-16', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-string">"ok"</tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dots</tt><tt class="py-op">:</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"> </tt>
+<a name="_TextTestResult.addError"></a><div id="_TextTestResult.addError-def"><a name="L60"></a><tt class="py-lineno"> 60</tt> <a class="py-toggle" href="#" id="_TextTestResult.addError-toggle" onclick="return toggle('_TextTestResult.addError');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests._TextTestResult-class.html#addError">addError</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">test</tt><tt class="py-op">,</tt> <tt class="py-param">err</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_TextTestResult.addError-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_TextTestResult.addError-expanded"><a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestResult</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method timeside.tests._TextTestResult.addError()=timeside.tests._TextTestResult-class.html#addError"><a title="timeside.tests._TextTestResult.addError" class="py-name" href="#" onclick="return doclink('link-17', 'addError', 'link-17');">addError</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-18" class="py-name"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-18', 'test', 'link-3');">test</a></tt><tt class="py-op">,</tt> <tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">showAll</tt><tt class="py-op">:</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-19', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-string">"ERROR"</tt><tt class="py-op">)</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dots</tt><tt class="py-op">:</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">'E'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"> </tt>
+<a name="_TextTestResult.addFailure"></a><div id="_TextTestResult.addFailure-def"><a name="L67"></a><tt class="py-lineno"> 67</tt> <a class="py-toggle" href="#" id="_TextTestResult.addFailure-toggle" onclick="return toggle('_TextTestResult.addFailure');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests._TextTestResult-class.html#addFailure">addFailure</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">test</tt><tt class="py-op">,</tt> <tt class="py-param">err</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_TextTestResult.addFailure-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_TextTestResult.addFailure-expanded"><a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestResult</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Method timeside.tests._TextTestResult.addFailure()=timeside.tests._TextTestResult-class.html#addFailure"><a title="timeside.tests._TextTestResult.addFailure" class="py-name" href="#" onclick="return doclink('link-20', 'addFailure', 'link-20');">addFailure</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-21" class="py-name"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-21', 'test', 'link-3');">test</a></tt><tt class="py-op">,</tt> <tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">showAll</tt><tt class="py-op">:</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-22', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-string">"FAIL"</tt><tt class="py-op">)</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dots</tt><tt class="py-op">:</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">'F'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"> </tt>
+<a name="_TextTestResult.printErrors"></a><div id="_TextTestResult.printErrors-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="_TextTestResult.printErrors-toggle" onclick="return toggle('_TextTestResult.printErrors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests._TextTestResult-class.html#printErrors">printErrors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_TextTestResult.printErrors-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_TextTestResult.printErrors-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dots</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">showAll</tt><tt class="py-op">:</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-23', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method timeside.tests._TextTestResult.printErrorList()=timeside.tests._TextTestResult-class.html#printErrorList"><a title="timeside.tests._TextTestResult.printErrorList" class="py-name" href="#" onclick="return doclink('link-24', 'printErrorList', 'link-24');">printErrorList</a></tt><tt class="py-op">(</tt><tt class="py-string">'ERROR'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="timeside.tests._TextTestResult.printErrorList" class="py-name" href="#" onclick="return doclink('link-25', 'printErrorList', 'link-24');">printErrorList</a></tt><tt class="py-op">(</tt><tt class="py-string">'FAIL'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">failures</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"> </tt>
+<a name="_TextTestResult.printErrorList"></a><div id="_TextTestResult.printErrorList-def"><a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="_TextTestResult.printErrorList-toggle" onclick="return toggle('_TextTestResult.printErrorList');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests._TextTestResult-class.html#printErrorList">printErrorList</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">flavour</tt><tt class="py-op">,</tt> <tt class="py-param">errors</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_TextTestResult.printErrorList-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_TextTestResult.printErrorList-expanded"><a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-26" class="py-name"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-26', 'test', 'link-3');">test</a></tt><tt class="py-op">,</tt> <tt class="py-name">err</tt> <tt class="py-keyword">in</tt> <tt class="py-name">errors</tt><tt class="py-op">:</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-27', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="timeside.tests._TextTestResult.separator1" class="py-name" href="#" onclick="return doclink('link-28', 'separator1', 'link-0');">separator1</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-29', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-string">"%s: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">flavour</tt><tt class="py-op">,</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="timeside.tests._TextTestResult.getDescription" class="py-name" href="#" onclick="return doclink('link-30', 'getDescription', 'link-12');">getDescription</a></tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-31', 'test', 'link-3');">test</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-32', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="timeside.tests._TextTestResult.separator2" class="py-name" href="#" onclick="return doclink('link-33', 'separator2', 'link-1');">separator2</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-34', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-string">"%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"> </tt>
+<a name="_WritelnDecorator"></a><div id="_WritelnDecorator-def"><a name="L88"></a><tt class="py-lineno"> 88</tt> <a class="py-toggle" href="#" id="_WritelnDecorator-toggle" onclick="return toggle('_WritelnDecorator');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests._WritelnDecorator-class.html">_WritelnDecorator</a><tt class="py-op">:</tt> </tt>
+</div><div id="_WritelnDecorator-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_WritelnDecorator-expanded"><a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">    <tt class="py-docstring">"""Used to decorate file-like objects with a handy 'writeln' method"""</tt> </tt>
+<a name="_WritelnDecorator.__init__"></a><div id="_WritelnDecorator.__init__-def"><a name="L90"></a><tt class="py-lineno"> 90</tt> <a class="py-toggle" href="#" id="_WritelnDecorator.__init__-toggle" onclick="return toggle('_WritelnDecorator.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests._WritelnDecorator-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">stream</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_WritelnDecorator.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_WritelnDecorator.__init__-expanded"><a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt> <tt class="py-op">=</tt> <tt class="py-name">stream</tt> </tt>
+</div><a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"> </tt>
+<a name="_WritelnDecorator.__getattr__"></a><div id="_WritelnDecorator.__getattr__-def"><a name="L93"></a><tt class="py-lineno"> 93</tt> <a class="py-toggle" href="#" id="_WritelnDecorator.__getattr__-toggle" onclick="return toggle('_WritelnDecorator.__getattr__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests._WritelnDecorator-class.html#__getattr__">__getattr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_WritelnDecorator.__getattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_WritelnDecorator.__getattr__-expanded"><a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">,</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"> </tt>
+<a name="_WritelnDecorator.writeln"></a><div id="_WritelnDecorator.writeln-def"><a name="L96"></a><tt class="py-lineno"> 96</tt> <a class="py-toggle" href="#" id="_WritelnDecorator.writeln-toggle" onclick="return toggle('_WritelnDecorator.writeln');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests._WritelnDecorator-class.html#writeln">writeln</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">arg</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_WritelnDecorator.writeln-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_WritelnDecorator.writeln-expanded"><a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">)</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> <tt class="py-comment"># text-mode streams translate to \r\n if needed</tt> </tt>
+</div></div><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"> </tt>
+<a name="TestRunner"></a><div id="TestRunner-def"><a name="L100"></a><tt class="py-lineno">100</tt> <a class="py-toggle" href="#" id="TestRunner-toggle" onclick="return toggle('TestRunner');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.TestRunner-class.html">TestRunner</a><tt class="py-op">:</tt> </tt>
+</div><div id="TestRunner-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="TestRunner-expanded"><a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">    <tt class="py-docstring">"""A test runner class that displays results in textual form.</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"><tt class="py-docstring">    It prints out the names of tests as they are run, errors as they</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"><tt class="py-docstring">    occur, and a summary of the results at the end of the test run.</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="TestRunner.__init__"></a><div id="TestRunner.__init__-def"><a name="L106"></a><tt class="py-lineno">106</tt> <a class="py-toggle" href="#" id="TestRunner.__init__-toggle" onclick="return toggle('TestRunner.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.TestRunner-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stream</tt><tt class="py-op">=</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">,</tt> <tt class="py-param">descriptions</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-param">verbosity</tt><tt class="py-op">=</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestRunner.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestRunner.__init__-expanded"><a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name" targets="Class timeside.tests._WritelnDecorator=timeside.tests._WritelnDecorator-class.html"><a title="timeside.tests._WritelnDecorator" class="py-name" href="#" onclick="return doclink('link-35', '_WritelnDecorator', 'link-35');">_WritelnDecorator</a></tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">)</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">descriptions</tt> <tt class="py-op">=</tt> <tt class="py-name">descriptions</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">verbosity</tt> <tt class="py-op">=</tt> <tt class="py-name">verbosity</tt> </tt>
+</div><a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"> </tt>
+<a name="TestRunner._makeResult"></a><div id="TestRunner._makeResult-def"><a name="L111"></a><tt class="py-lineno">111</tt> <a class="py-toggle" href="#" id="TestRunner._makeResult-toggle" onclick="return toggle('TestRunner._makeResult');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.TestRunner-class.html#_makeResult">_makeResult</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestRunner._makeResult-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestRunner._makeResult-expanded"><a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-36" class="py-name" targets="Class timeside.tests._TextTestResult=timeside.tests._TextTestResult-class.html"><a title="timeside.tests._TextTestResult" class="py-name" href="#" onclick="return doclink('link-36', '_TextTestResult', 'link-36');">_TextTestResult</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">descriptions</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">verbosity</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"> </tt>
+<a name="TestRunner.run"></a><div id="TestRunner.run-def"><a name="L114"></a><tt class="py-lineno">114</tt> <a class="py-toggle" href="#" id="TestRunner.run-toggle" onclick="return toggle('TestRunner.run');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.TestRunner-class.html#run">run</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">test</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestRunner.run-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestRunner.run-expanded"><a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-docstring">"Run the given test case or test suite."</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt id="link-37" class="py-name" targets="Method timeside.api.IValueAnalyzer.result()=timeside.api.IValueAnalyzer-class.html#result,Method timeside.tests.api.examples.Duration.result()=timeside.tests.api.examples.Duration-class.html#result,Method timeside.tests.api.examples.MaxLevel.result()=timeside.tests.api.examples.MaxLevel-class.html#result"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-37', 'result', 'link-37');">result</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Method timeside.tests.TestRunner._makeResult()=timeside.tests.TestRunner-class.html#_makeResult"><a title="timeside.tests.TestRunner._makeResult" class="py-name" href="#" onclick="return doclink('link-38', '_makeResult', 'link-38');">_makeResult</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-name">startTime</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">        <tt id="link-39" class="py-name"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-39', 'test', 'link-3');">test</a></tt><tt class="py-op">(</tt><tt id="link-40" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-40', 'result', 'link-37');">result</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">        <tt class="py-name">stopTime</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-name">timeTaken</tt> <tt class="py-op">=</tt> <tt class="py-name">stopTime</tt> <tt class="py-op">-</tt> <tt class="py-name">startTime</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt id="link-41" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-41', 'result', 'link-37');">result</a></tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method timeside.tests._TextTestResult.printErrors()=timeside.tests._TextTestResult-class.html#printErrors"><a title="timeside.tests._TextTestResult.printErrors" class="py-name" href="#" onclick="return doclink('link-42', 'printErrors', 'link-42');">printErrors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-43', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-44', 'result', 'link-37');">result</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="timeside.tests._TextTestResult.separator2" class="py-name" href="#" onclick="return doclink('link-45', 'separator2', 'link-1');">separator2</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt id="link-46" class="py-name" targets="Method timeside.core.ProcessPipe.run()=timeside.core.ProcessPipe-class.html#run,Method timeside.tests.TestRunner.run()=timeside.tests.TestRunner-class.html#run,Method timeside.tests.test.TestAnalyzers.run()=timeside.tests.test.TestAnalyzers-class.html#run,Method timeside.tests.test.TestEncoders.run()=timeside.tests.test.TestEncoders-class.html#run,Method timeside.tests.test.TestGraphers.run()=timeside.tests.test.TestGraphers-class.html#run"><a title="timeside.core.ProcessPipe.run
+timeside.tests.TestRunner.run
+timeside.tests.test.TestAnalyzers.run
+timeside.tests.test.TestEncoders.run
+timeside.tests.test.TestGraphers.run" class="py-name" href="#" onclick="return doclink('link-46', 'run', 'link-46');">run</a></tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-47', 'result', 'link-37');">result</a></tt><tt class="py-op">.</tt><tt class="py-name">testsRun</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-48', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-string">"Ran %d test%s in %.3fs"</tt> <tt class="py-op">%</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">                            <tt class="py-op">(</tt><tt id="link-49" class="py-name"><a title="timeside.core.ProcessPipe.run
+timeside.tests.TestRunner.run
+timeside.tests.test.TestAnalyzers.run
+timeside.tests.test.TestEncoders.run
+timeside.tests.test.TestGraphers.run" class="py-name" href="#" onclick="return doclink('link-49', 'run', 'link-46');">run</a></tt><tt class="py-op">,</tt> <tt id="link-50" class="py-name"><a title="timeside.core.ProcessPipe.run
+timeside.tests.TestRunner.run
+timeside.tests.test.TestAnalyzers.run
+timeside.tests.test.TestEncoders.run
+timeside.tests.test.TestGraphers.run" class="py-name" href="#" onclick="return doclink('link-50', 'run', 'link-46');">run</a></tt> <tt class="py-op">!=</tt> <tt class="py-number">1</tt> <tt class="py-keyword">and</tt> <tt class="py-string">"s"</tt> <tt class="py-keyword">or</tt> <tt class="py-string">""</tt><tt class="py-op">,</tt> <tt class="py-name">timeTaken</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-51', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-52" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-52', 'result', 'link-37');">result</a></tt><tt class="py-op">.</tt><tt class="py-name">wasSuccessful</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"FAILED ("</tt><tt class="py-op">)</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">            <tt class="py-name">failed</tt><tt class="py-op">,</tt> <tt class="py-name">errored</tt> <tt class="py-op">=</tt> <tt class="py-name">map</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt id="link-53" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-53', 'result', 'link-37');">result</a></tt><tt class="py-op">.</tt><tt class="py-name">failures</tt><tt class="py-op">,</tt> <tt id="link-54" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-54', 'result', 'link-37');">result</a></tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">failed</tt><tt class="py-op">:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"failures=%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">failed</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">errored</tt><tt class="py-op">:</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">failed</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">", "</tt><tt class="py-op">)</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"errors=%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">errored</tt><tt class="py-op">)</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-55', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-string">")"</tt><tt class="py-op">)</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="timeside.tests._WritelnDecorator.writeln" class="py-name" href="#" onclick="return doclink('link-56', 'writeln', 'link-10');">writeln</a></tt><tt class="py-op">(</tt><tt class="py-string">"OK"</tt><tt class="py-op">)</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-57" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-57', 'result', 'link-37');">result</a></tt> </tt>
+</div></div><a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.TestCase-class.html b/doc/epydoc/timeside.tests.TestCase-class.html
new file mode 100644 (file)
index 0000000..e051f99
--- /dev/null
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.TestCase</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Class&nbsp;TestCase
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.TestCase-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class TestCase</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests-pysrc.html#TestCase">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+       object --+    
+                |    
+unittest.TestCase --+
+                    |
+                   <strong class="uidshort">TestCase</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">testcomponent.TestComponentArchitecture</a></li><li>, <a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html">testinputadapter.TestFixedSizeInputAdapter</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.TestCase</code></b>:
+      <code><a href="exceptions.AssertionError-class.html">failureException</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="assertSameList"></a><span class="summary-sig-name">assertSameList</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">list1</span>,
+        <span class="summary-sig-arg">list2</span>)</span><br />
+      Test that two lists contain the same elements, in any order</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#TestCase.assertSameList">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.TestCase</code></b>:
+      <code>__call__</code>,
+      <code>__init__</code>,
+      <code>__repr__</code>,
+      <code>__str__</code>,
+      <code>assertAlmostEqual</code>,
+      <code>assertAlmostEquals</code>,
+      <code>assertEqual</code>,
+      <code>assertEquals</code>,
+      <code>assertFalse</code>,
+      <code>assertNotAlmostEqual</code>,
+      <code>assertNotAlmostEquals</code>,
+      <code>assertNotEqual</code>,
+      <code>assertNotEquals</code>,
+      <code>assertRaises</code>,
+      <code>assertTrue</code>,
+      <code>assert_</code>,
+      <code>countTestCases</code>,
+      <code>debug</code>,
+      <code>defaultTestResult</code>,
+      <code>fail</code>,
+      <code>failIf</code>,
+      <code>failIfAlmostEqual</code>,
+      <code>failIfEqual</code>,
+      <code>failUnless</code>,
+      <code>failUnlessAlmostEqual</code>,
+      <code>failUnlessEqual</code>,
+      <code>failUnlessRaises</code>,
+      <code>id</code>,
+      <code>run</code>,
+      <code>setUp</code>,
+      <code>shortDescription</code>,
+      <code>tearDown</code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.TestCase</code></b> (private):
+      <code>_exc_info</code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__setattr__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.TestRunner-class.html b/doc/epydoc/timeside.tests.TestRunner-class.html
new file mode 100644 (file)
index 0000000..cf94af4
--- /dev/null
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.TestRunner</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Class&nbsp;TestRunner
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.TestRunner-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class TestRunner</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests-pysrc.html#TestRunner">source&nbsp;code</a></span></p>
+<p>A test runner class that displays results in textual form.</p>
+  <p>It prints out the names of tests as they are run, errors as they 
+  occur, and a summary of the results at the end of the test run.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__init__"></a><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">stream</span>=<span class="summary-sig-default">sys.stderr</span>,
+        <span class="summary-sig-arg">descriptions</span>=<span class="summary-sig-default">1</span>,
+        <span class="summary-sig-arg">verbosity</span>=<span class="summary-sig-default">2</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#TestRunner.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_makeResult"></a><span class="summary-sig-name">_makeResult</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#TestRunner._makeResult">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="run"></a><span class="summary-sig-name">run</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">test</span>)</span><br />
+      Run the given test case or test suite.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#TestRunner.run">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests._TextTestResult-class.html b/doc/epydoc/timeside.tests._TextTestResult-class.html
new file mode 100644 (file)
index 0000000..2336b06
--- /dev/null
@@ -0,0 +1,569 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests._TextTestResult</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Class&nbsp;_TextTestResult
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests._TextTestResult-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class _TextTestResult</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+unittest.TestResult --+
+                      |
+                     <strong class="uidshort">_TextTestResult</strong>
+</pre>
+
+<hr />
+<p>A test result class that can print formatted text results to a 
+  stream.</p>
+  <p>Used by TextTestRunner.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests._TextTestResult-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">stream</span>,
+        <span class="summary-sig-arg">descriptions</span>,
+        <span class="summary-sig-arg">verbosity</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getDescription"></a><span class="summary-sig-name">getDescription</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">test</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult.getDescription">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests._TextTestResult-class.html#startTest" class="summary-sig-name">startTest</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">test</span>)</span><br />
+      Called when the given test is about to be run</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult.startTest">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests._TextTestResult-class.html#addSuccess" class="summary-sig-name">addSuccess</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">test</span>)</span><br />
+      Called when a test has completed successfully</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult.addSuccess">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests._TextTestResult-class.html#addError" class="summary-sig-name">addError</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">test</span>,
+        <span class="summary-sig-arg">err</span>)</span><br />
+      Called when an error has occurred.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult.addError">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests._TextTestResult-class.html#addFailure" class="summary-sig-name">addFailure</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">test</span>,
+        <span class="summary-sig-arg">err</span>)</span><br />
+      Called when an error has occurred.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult.addFailure">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="printErrors"></a><span class="summary-sig-name">printErrors</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult.printErrors">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="printErrorList"></a><span class="summary-sig-name">printErrorList</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">flavour</span>,
+        <span class="summary-sig-arg">errors</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult.printErrorList">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.TestResult</code></b>:
+      <code>__repr__</code>,
+      <code>stop</code>,
+      <code>stopTest</code>,
+      <code>wasSuccessful</code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.TestResult</code></b> (private):
+      <code>_count_relevant_tb_levels</code>,
+      <code>_exc_info_to_string</code>,
+      <code>_is_relevant_tb_level</code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests._TextTestResult-class.html#separator1" class="summary-name">separator1</a> = <code title="'=====================================================================\
+='"><code class="variable-quote">'</code><code class="variable-string">================================================</code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests._TextTestResult-class.html#separator2" class="summary-name">separator2</a> = <code title="'---------------------------------------------------------------------\
+-'"><code class="variable-quote">'</code><code class="variable-string">------------------------------------------------</code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">stream</span>,
+        <span class="sig-arg">descriptions</span>,
+        <span class="sig-arg">verbosity</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="startTest"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">startTest</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">test</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult.startTest">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Called when the given test is about to be run</p>
+  <dl class="fields">
+    <dt>Overrides:
+        unittest.TestResult.startTest
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="addSuccess"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">addSuccess</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">test</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult.addSuccess">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Called when a test has completed successfully</p>
+  <dl class="fields">
+    <dt>Overrides:
+        unittest.TestResult.addSuccess
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="addError"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">addError</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">test</span>,
+        <span class="sig-arg">err</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult.addError">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Called when an error has occurred. 'err' is a tuple of values as 
+  returned by sys.exc_info().</p>
+  <dl class="fields">
+    <dt>Overrides:
+        unittest.TestResult.addError
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="addFailure"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">addFailure</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">test</span>,
+        <span class="sig-arg">err</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests-pysrc.html#_TextTestResult.addFailure">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Called when an error has occurred. 'err' is a tuple of values as 
+  returned by sys.exc_info().</p>
+  <dl class="fields">
+    <dt>Overrides:
+        unittest.TestResult.addFailure
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== CLASS VARIABLE DETAILS ==================== -->
+<a name="section-ClassVariableDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variable Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariableDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="separator1"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">separator1</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">=====================================================================</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">=</code><code class="variable-quote">'</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="separator2"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">separator2</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">---------------------------------------------------------------------</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">-</code><code class="variable-quote">'</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests._WritelnDecorator-class.html b/doc/epydoc/timeside.tests._WritelnDecorator-class.html
new file mode 100644 (file)
index 0000000..3abf7d0
--- /dev/null
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests._WritelnDecorator</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Class&nbsp;_WritelnDecorator
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests._WritelnDecorator-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class _WritelnDecorator</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests-pysrc.html#_WritelnDecorator">source&nbsp;code</a></span></p>
+<p>Used to decorate file-like objects with a handy 'writeln' method</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__init__"></a><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">stream</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#_WritelnDecorator.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__getattr__"></a><span class="summary-sig-name">__getattr__</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">attr</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#_WritelnDecorator.__getattr__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="writeln"></a><span class="summary-sig-name">writeln</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">arg</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests-pysrc.html#_WritelnDecorator.writeln">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.alltests-module.html b/doc/epydoc/timeside.tests.alltests-module.html
new file mode 100644 (file)
index 0000000..63a4627
--- /dev/null
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.alltests</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Module&nbsp;alltests
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.alltests-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module alltests</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.alltests-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.alltests-pysrc.html b/doc/epydoc/timeside.tests.alltests-pysrc.html
new file mode 100644 (file)
index 0000000..1d573d2
--- /dev/null
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.alltests</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Module&nbsp;alltests
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.alltests-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.tests.alltests-module.html">Module timeside.tests.alltests</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">1</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.tests=timeside.tests-module.html"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-1', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.tests.testcomponent=timeside.tests.testcomponent-module.html"><a title="timeside.tests.testcomponent" class="py-name" href="#" onclick="return doclink('link-2', 'testcomponent', 'link-2');">testcomponent</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">2</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-4', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module timeside.tests.testinputadapter=timeside.tests.testinputadapter-module.html"><a title="timeside.tests.testinputadapter" class="py-name" href="#" onclick="return doclink('link-5', 'testinputadapter', 'link-5');">testinputadapter</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-6', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-7', 'tests', 'link-1');">tests</a></tt> <tt class="py-keyword">import</tt> <tt id="link-8" class="py-name" targets="Class timeside.tests.TestRunner=timeside.tests.TestRunner-class.html"><a title="timeside.tests.TestRunner" class="py-name" href="#" onclick="return doclink('link-8', 'TestRunner', 'link-8');">TestRunner</a></tt> </tt>
+<a name="L4"></a><tt class="py-lineno">4</tt>  <tt class="py-line"> </tt>
+<a name="L5"></a><tt class="py-lineno">5</tt>  <tt class="py-line"><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">main</tt><tt class="py-op">(</tt><tt class="py-name">testRunner</tt><tt class="py-op">=</tt><tt id="link-9" class="py-name"><a title="timeside.tests.TestRunner" class="py-name" href="#" onclick="return doclink('link-9', 'TestRunner', 'link-8');">TestRunner</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">6</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:42 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api-module.html b/doc/epydoc/timeside.tests.api-module.html
new file mode 100644 (file)
index 0000000..1bdb324
--- /dev/null
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Package&nbsp;api
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PACKAGE DESCRIPTION ==================== -->
+<h1 class="epydoc">Package api</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== SUBMODULES ==================== -->
+<a name="section-Submodules"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Submodules</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Submodules"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr><td class="summary">
+  <ul class="nomargin">
+    <li> <strong class="uidlink"><a href="timeside.tests.api.examples-module.html">timeside.tests.api.examples</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.gstreamer-module.html">timeside.tests.api.gstreamer</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_lolevel-module.html">timeside.tests.api.test_lolevel</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_pipe-module.html">timeside.tests.api.test_pipe</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_pipe_spectrogram-module.html">timeside.tests.api.test_pipe_spectrogram</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="timeside.tests.api.test_pipe_waveform-module.html">timeside.tests.api.test_pipe_waveform</a></strong>    </li>
+  </ul></td></tr>
+</table>
+
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api-pysrc.html b/doc/epydoc/timeside.tests.api-pysrc.html
new file mode 100644 (file)
index 0000000..66860f2
--- /dev/null
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Package&nbsp;api
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.tests.api-module.html">Package timeside.tests.api</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">1</tt>  <tt class="py-line"> </tt>
+<a name="L2"></a><tt class="py-lineno">2</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.examples-module.html b/doc/epydoc/timeside.tests.api.examples-module.html
new file mode 100644 (file)
index 0000000..c567759
--- /dev/null
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.examples</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        Module&nbsp;examples
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.examples-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module examples</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.examples.FileDecoder-class.html" class="summary-name">FileDecoder</a><br />
+      A simple audiolab-based example decoder
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.examples.MaxLevel-class.html" class="summary-name">MaxLevel</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.examples.Gain-class.html" class="summary-name">Gain</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.examples.WavEncoder-class.html" class="summary-name">WavEncoder</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.examples.Waveform-class.html" class="summary-name">Waveform</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.examples.Spectrogram-class.html" class="summary-name">Spectrogram</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.examples.Duration-class.html" class="summary-name">Duration</a><br />
+      A rather useless duration analyzer.
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.examples.FixedInputProcessor-class.html" class="summary-name">FixedInputProcessor</a><br />
+      Processor which does absolutely nothing except illustrating the use
+        of the FixedInputSizeAdapter.
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.examples-module.html#color_schemes" class="summary-name">color_schemes</a> = <code title="{'default': {'spectrogram': [(0, 0, 0),
+                             (14, 17, 16),
+                             (40, 50, 76),
+                             (90, 180, 100),
+                             (224, 224, 44),
+                             (255, 60, 30),
+                             (255, 255, 255)],
+             'waveform': [(50, 0, 200), (0, 220, 80), (255, 224, 0), (\
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">spectrogram</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>0<code class="variable-op">, </code>0<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>14<code class="variable-op">, </code>1<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="color_schemes"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">color_schemes</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">spectrogram</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>0<code class="variable-op">, </code>0<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>14<code class="variable-op">, </code>17<code class="variable-op">, </code>16<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>40<code class="variable-op">, </code>50<code class="variable-op">, </code>76<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>90<code class="variable-op">, </code>180<code class="variable-op">, </code>100<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>224<code class="variable-op">, </code>224<code class="variable-op">, </code>44<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>255<code class="variable-op">, </code>60<code class="variable-op">, </code>30<code class="variable-group">)</code><code class="variable-op">,</code>
+                             <code class="variable-group">(</code>255<code class="variable-op">, </code>255<code class="variable-op">, </code>255<code class="variable-group">)</code><code class="variable-group">]</code><code class="variable-op">,</code>
+             <code class="variable-quote">'</code><code class="variable-string">waveform</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-group">(</code>50<code class="variable-op">, </code>0<code class="variable-op">, </code>200<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>0<code class="variable-op">, </code>220<code class="variable-op">, </code>80<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code>255<code class="variable-op">, </code>224<code class="variable-op">, </code>0<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.examples-pysrc.html b/doc/epydoc/timeside.tests.api.examples-pysrc.html
new file mode 100644 (file)
index 0000000..ab306e9
--- /dev/null
@@ -0,0 +1,884 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.examples</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        Module&nbsp;examples
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.examples-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.tests.api.examples-module.html">Module timeside.tests.api.examples</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-1', 'core', 'link-1');">core</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class timeside.core.Processor=timeside.core.Processor-class.html"><a title="timeside.core.Processor" class="py-name" href="#" onclick="return doclink('link-2', 'Processor', 'link-2');">Processor</a></tt><tt class="py-op">,</tt> <tt id="link-3" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-3', 'implements', 'link-3');">implements</a></tt><tt class="py-op">,</tt> <tt id="link-4" class="py-name" targets="Function timeside.component.interfacedoc()=timeside.component-module.html#interfacedoc"><a title="timeside.component.interfacedoc" class="py-name" href="#" onclick="return doclink('link-4', 'interfacedoc', 'link-4');">interfacedoc</a></tt><tt class="py-op">,</tt> <tt id="link-5" class="py-name" targets="Class timeside.core.FixedSizeInputAdapter=timeside.core.FixedSizeInputAdapter-class.html"><a title="timeside.core.FixedSizeInputAdapter" class="py-name" href="#" onclick="return doclink('link-5', 'FixedSizeInputAdapter', 'link-5');">FixedSizeInputAdapter</a></tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-6', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-7', 'api', 'link-7');">api</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-8" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-8', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Package timeside.grapher=timeside.grapher-module.html"><a title="timeside.grapher" class="py-name" href="#" onclick="return doclink('link-9', 'grapher', 'link-9');">grapher</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-10" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-10', 'timeside', 'link-0');">timeside</a></tt> <tt class="py-keyword">import</tt> <tt id="link-11" class="py-name" targets="Class timeside.metadata.Metadata=timeside.metadata.Metadata-class.html"><a title="timeside.metadata.Metadata" class="py-name" href="#" onclick="return doclink('link-11', 'Metadata', 'link-11');">Metadata</a></tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">scikits</tt> <tt class="py-keyword">import</tt> <tt class="py-name">audiolab</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="FileDecoder"></a><div id="FileDecoder-def"><a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt> <a class="py-toggle" href="#" id="FileDecoder-toggle" onclick="return toggle('FileDecoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.api.examples.FileDecoder-class.html">FileDecoder</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="FileDecoder-expanded"><a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line">    <tt class="py-docstring">"""A simple audiolab-based example decoder"""</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line">    <tt id="link-12" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-12', 'implements', 'link-3');">implements</a></tt><tt class="py-op">(</tt><tt id="link-13" class="py-name" targets="Class timeside.api.IDecoder=timeside.api.IDecoder-class.html"><a title="timeside.api.IDecoder" class="py-name" href="#" onclick="return doclink('link-13', 'IDecoder', 'link-13');">IDecoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.id"></a><div id="FileDecoder.id-def"><a name="L15"></a><tt class="py-lineno"> 15</tt> <a class="py-toggle" href="#" id="FileDecoder.id-toggle" onclick="return toggle('FileDecoder.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FileDecoder-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.id-expanded"><a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"test_audiolabdec"</tt> </tt>
+</div><a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.__init__"></a><div id="FileDecoder.__init__-def"><a name="L19"></a><tt class="py-lineno"> 19</tt> <a class="py-toggle" href="#" id="FileDecoder.__init__-toggle" onclick="return toggle('FileDecoder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FileDecoder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.__init__-expanded"><a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line">        <tt class="py-comment"># The file has to be opened here so that nframes(), samplerate(),</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># etc.. work before setup() is called.</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt>     <tt class="py-op">=</tt> <tt class="py-name">audiolab</tt><tt class="py-op">.</tt><tt class="py-name">Sndfile</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">position</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+</div><a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.setup"></a><div id="FileDecoder.setup-def"><a name="L27"></a><tt class="py-lineno"> 27</tt> <a class="py-toggle" href="#" id="FileDecoder.setup-toggle" onclick="return toggle('FileDecoder.setup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FileDecoder-class.html#setup">setup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.setup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.setup-expanded"><a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-14" class="py-name" targets="Class timeside.tests.api.examples.FileDecoder=timeside.tests.api.examples.FileDecoder-class.html,Class timeside.tests.api.gstreamer.FileDecoder=timeside.tests.api.gstreamer.FileDecoder-class.html"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-14', 'FileDecoder', 'link-14');">FileDecoder</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Method timeside.api.IProcessor.setup()=timeside.api.IProcessor-class.html#setup,Method timeside.core.Processor.setup()=timeside.core.Processor-class.html#setup,Method timeside.tests.api.examples.Duration.setup()=timeside.tests.api.examples.Duration-class.html#setup,Method timeside.tests.api.examples.FileDecoder.setup()=timeside.tests.api.examples.FileDecoder-class.html#setup,Method timeside.tests.api.examples.FixedInputProcessor.setup()=timeside.tests.api.examples.FixedInputProcessor-class.html#setup,Method timeside.tests.api.examples.MaxLevel.setup()=timeside.tests.api.examples.MaxLevel-class.html#setup,Method timeside.tests.api.examples.Spectrogram.setup()=timeside.tests.api.examples.Spectrogram-class.html#setup,Method timeside.tests.api.examples.WavEncoder.setup()=timeside.tests.api.examples.WavEncoder-class.html#setup,Method timeside.tests.api.examples.Waveform.setup()=timeside.tests.api.examples.Waveform-class.html#setup,Method timeside.tests.api.gstreamer.FileDecoder.setup()=timeside.tests.api.gstreamer.FileDecoder-class.html#setup,Method timeside.tests.api.gstreamer.WavEncoder.setup()=timeside.tests.api.gstreamer.WavEncoder-class.html#setup"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-15', 'setup', 'link-15');">setup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">position</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method timeside.grapher.core.Noise.seek()=timeside.grapher.core.Noise-class.html#seek"><a title="timeside.grapher.core.Noise.seek" class="py-name" href="#" onclick="return doclink('link-16', 'seek', 'link-16');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">;</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">position</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+</div><a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"> </tt>
+<a name="FileDecoder.release"></a><div id="FileDecoder.release-def"><a name="L33"></a><tt class="py-lineno"> 33</tt> <a class="py-toggle" href="#" id="FileDecoder.release-toggle" onclick="return toggle('FileDecoder.release');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FileDecoder-class.html#release">release</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.release-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.release-expanded"><a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-17" class="py-name"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-17', 'FileDecoder', 'link-14');">FileDecoder</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method timeside.api.IProcessor.release()=timeside.api.IProcessor-class.html#release,Method timeside.core.Processor.release()=timeside.core.Processor-class.html#release,Method timeside.tests.api.examples.FileDecoder.release()=timeside.tests.api.examples.FileDecoder-class.html#release,Method timeside.tests.api.gstreamer.FileDecoder.release()=timeside.tests.api.gstreamer.FileDecoder-class.html#release"><a title="timeside.api.IProcessor.release
+timeside.core.Processor.release
+timeside.tests.api.examples.FileDecoder.release
+timeside.tests.api.gstreamer.FileDecoder.release" class="py-name" href="#" onclick="return doclink('link-18', 'release', 'link-18');">release</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">:</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.channels"></a><div id="FileDecoder.channels-def"><a name="L40"></a><tt class="py-lineno"> 40</tt> <a class="py-toggle" href="#" id="FileDecoder.channels-toggle" onclick="return toggle('FileDecoder.channels');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FileDecoder-class.html#channels">channels</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.channels-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.channels-expanded"><a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Module timeside.analyze.channels=timeside.analyze.channels-module.html,Method timeside.api.IProcessor.channels()=timeside.api.IProcessor-class.html#channels,Method timeside.core.Processor.channels()=timeside.core.Processor-class.html#channels,Method timeside.tests.api.examples.FileDecoder.channels()=timeside.tests.api.examples.FileDecoder-class.html#channels,Method timeside.tests.api.gstreamer.FileDecoder.channels()=timeside.tests.api.gstreamer.FileDecoder-class.html#channels"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-19', 'channels', 'link-19');">channels</a></tt> </tt>
+</div><a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.samplerate"></a><div id="FileDecoder.samplerate-def"><a name="L44"></a><tt class="py-lineno"> 44</tt> <a class="py-toggle" href="#" id="FileDecoder.samplerate-toggle" onclick="return toggle('FileDecoder.samplerate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FileDecoder-class.html#samplerate">samplerate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.samplerate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.samplerate-expanded"><a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Module timeside.analyze.samplerate=timeside.analyze.samplerate-module.html,Method timeside.api.IProcessor.samplerate()=timeside.api.IProcessor-class.html#samplerate,Method timeside.core.Processor.samplerate()=timeside.core.Processor-class.html#samplerate,Method timeside.tests.api.examples.FileDecoder.samplerate()=timeside.tests.api.examples.FileDecoder-class.html#samplerate,Method timeside.tests.api.gstreamer.FileDecoder.samplerate()=timeside.tests.api.gstreamer.FileDecoder-class.html#samplerate,Variable timeside.tests.api.test_lolevel.samplerate=timeside.tests.api.test_lolevel-module.html#samplerate"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-20', 'samplerate', 'link-20');">samplerate</a></tt> </tt>
+</div><a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.nframes"></a><div id="FileDecoder.nframes-def"><a name="L48"></a><tt class="py-lineno"> 48</tt> <a class="py-toggle" href="#" id="FileDecoder.nframes-toggle" onclick="return toggle('FileDecoder.nframes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FileDecoder-class.html#nframes">nframes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.nframes-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.nframes-expanded"><a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method timeside.api.IProcessor.nframes()=timeside.api.IProcessor-class.html#nframes,Method timeside.core.FixedSizeInputAdapter.nframes()=timeside.core.FixedSizeInputAdapter-class.html#nframes,Method timeside.core.Processor.nframes()=timeside.core.Processor-class.html#nframes,Method timeside.tests.api.examples.FileDecoder.nframes()=timeside.tests.api.examples.FileDecoder-class.html#nframes,Method timeside.tests.api.gstreamer.FileDecoder.nframes()=timeside.tests.api.gstreamer.FileDecoder-class.html#nframes,Variable timeside.tests.api.test_lolevel.nframes=timeside.tests.api.test_lolevel-module.html#nframes"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-21', 'nframes', 'link-21');">nframes</a></tt> </tt>
+</div><a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.format"></a><div id="FileDecoder.format-def"><a name="L52"></a><tt class="py-lineno"> 52</tt> <a class="py-toggle" href="#" id="FileDecoder.format-toggle" onclick="return toggle('FileDecoder.format');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FileDecoder-class.html#format">format</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.format-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.format-expanded"><a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">file_format</tt> </tt>
+</div><a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.encoding"></a><div id="FileDecoder.encoding-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="FileDecoder.encoding-toggle" onclick="return toggle('FileDecoder.encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FileDecoder-class.html#encoding">encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.encoding-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.encoding-expanded"><a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Module timeside.analyze.encoding=timeside.analyze.encoding-module.html,Method timeside.api.IDecoder.encoding()=timeside.api.IDecoder-class.html#encoding,Method timeside.tests.api.examples.FileDecoder.encoding()=timeside.tests.api.examples.FileDecoder-class.html#encoding,Method timeside.tests.api.gstreamer.FileDecoder.encoding()=timeside.tests.api.gstreamer.FileDecoder-class.html#encoding"><a title="timeside.analyze.encoding
+timeside.api.IDecoder.encoding
+timeside.tests.api.examples.FileDecoder.encoding
+timeside.tests.api.gstreamer.FileDecoder.encoding" class="py-name" href="#" onclick="return doclink('link-22', 'encoding', 'link-22');">encoding</a></tt> </tt>
+</div><a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.resolution"></a><div id="FileDecoder.resolution-def"><a name="L59"></a><tt class="py-lineno"> 59</tt> <a class="py-toggle" href="#" id="FileDecoder.resolution-toggle" onclick="return toggle('FileDecoder.resolution');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FileDecoder-class.html#resolution">resolution</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.resolution-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.resolution-expanded"><a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt id="link-23" class="py-name" targets="Module timeside.analyze.resolution=timeside.analyze.resolution-module.html,Method timeside.api.IDecoder.resolution()=timeside.api.IDecoder-class.html#resolution,Method timeside.tests.api.examples.FileDecoder.resolution()=timeside.tests.api.examples.FileDecoder-class.html#resolution,Method timeside.tests.api.gstreamer.FileDecoder.resolution()=timeside.tests.api.gstreamer.FileDecoder-class.html#resolution"><a title="timeside.analyze.resolution
+timeside.api.IDecoder.resolution
+timeside.tests.api.examples.FileDecoder.resolution
+timeside.tests.api.gstreamer.FileDecoder.resolution" class="py-name" href="#" onclick="return doclink('link-23', 'resolution', 'link-23');">resolution</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt id="link-24" class="py-name"><a title="timeside.analyze.encoding
+timeside.api.IDecoder.encoding
+timeside.tests.api.examples.FileDecoder.encoding
+timeside.tests.api.gstreamer.FileDecoder.encoding" class="py-name" href="#" onclick="return doclink('link-24', 'encoding', 'link-22');">encoding</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="timeside.analyze.encoding
+timeside.api.IDecoder.encoding
+timeside.tests.api.examples.FileDecoder.encoding
+timeside.tests.api.gstreamer.FileDecoder.encoding" class="py-name" href="#" onclick="return doclink('link-25', 'encoding', 'link-22');">encoding</a></tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-26" class="py-name"><a title="timeside.analyze.encoding
+timeside.api.IDecoder.encoding
+timeside.tests.api.examples.FileDecoder.encoding
+timeside.tests.api.gstreamer.FileDecoder.encoding" class="py-name" href="#" onclick="return doclink('link-26', 'encoding', 'link-22');">encoding</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"pcm8"</tt><tt class="py-op">:</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">            <tt id="link-27" class="py-name"><a title="timeside.analyze.resolution
+timeside.api.IDecoder.resolution
+timeside.tests.api.examples.FileDecoder.resolution
+timeside.tests.api.gstreamer.FileDecoder.resolution" class="py-name" href="#" onclick="return doclink('link-27', 'resolution', 'link-23');">resolution</a></tt> <tt class="py-op">=</tt> <tt class="py-number">8</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-28" class="py-name"><a title="timeside.analyze.encoding
+timeside.api.IDecoder.encoding
+timeside.tests.api.examples.FileDecoder.encoding
+timeside.tests.api.gstreamer.FileDecoder.encoding" class="py-name" href="#" onclick="return doclink('link-28', 'encoding', 'link-22');">encoding</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"pcm16"</tt><tt class="py-op">:</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">            <tt id="link-29" class="py-name"><a title="timeside.analyze.resolution
+timeside.api.IDecoder.resolution
+timeside.tests.api.examples.FileDecoder.resolution
+timeside.tests.api.gstreamer.FileDecoder.resolution" class="py-name" href="#" onclick="return doclink('link-29', 'resolution', 'link-23');">resolution</a></tt> <tt class="py-op">=</tt> <tt class="py-number">16</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-30" class="py-name"><a title="timeside.analyze.encoding
+timeside.api.IDecoder.encoding
+timeside.tests.api.examples.FileDecoder.encoding
+timeside.tests.api.gstreamer.FileDecoder.encoding" class="py-name" href="#" onclick="return doclink('link-30', 'encoding', 'link-22');">encoding</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"pcm32"</tt><tt class="py-op">:</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">            <tt id="link-31" class="py-name"><a title="timeside.analyze.resolution
+timeside.api.IDecoder.resolution
+timeside.tests.api.examples.FileDecoder.resolution
+timeside.tests.api.gstreamer.FileDecoder.resolution" class="py-name" href="#" onclick="return doclink('link-31', 'resolution', 'link-23');">resolution</a></tt> <tt class="py-op">=</tt> <tt class="py-number">32</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-32" class="py-name"><a title="timeside.analyze.resolution
+timeside.api.IDecoder.resolution
+timeside.tests.api.examples.FileDecoder.resolution
+timeside.tests.api.gstreamer.FileDecoder.resolution" class="py-name" href="#" onclick="return doclink('link-32', 'resolution', 'link-23');">resolution</a></tt> </tt>
+</div><a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.metadata"></a><div id="FileDecoder.metadata-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="FileDecoder.metadata-toggle" onclick="return toggle('FileDecoder.metadata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FileDecoder-class.html#metadata">metadata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.metadata-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.metadata-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-comment">#TODO</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">return</tt> <tt id="link-33" class="py-name"><a title="timeside.metadata.Metadata" class="py-name" href="#" onclick="return doclink('link-33', 'Metadata', 'link-11');">Metadata</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.process"></a><div id="FileDecoder.process-def"><a name="L79"></a><tt class="py-lineno"> 79</tt> <a class="py-toggle" href="#" id="FileDecoder.process-toggle" onclick="return toggle('FileDecoder.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FileDecoder-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.process-expanded"><a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-34" class="py-name" targets="Variable timeside.tests.api.test_lolevel.frames=timeside.tests.api.test_lolevel-module.html#frames"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-34', 'frames', 'link-34');">frames</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Decoder doesn't accept input frames"</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-name">buffersize</tt> <tt class="py-op">=</tt> <tt class="py-number">0x10000</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">        <tt class="py-comment"># Need this because audiolab raises a bogus exception when asked</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># to read passed the end of the file</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">toread</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-35', 'nframes', 'link-21');">nframes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">position</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">toread</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">buffersize</tt><tt class="py-op">:</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">            <tt class="py-name">toread</tt> <tt class="py-op">=</tt> <tt class="py-name">buffersize</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt id="link-36" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-36', 'frames', 'link-34');">frames</a></tt>         <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method timeside.grapher.core.Noise.read_frames()=timeside.grapher.core.Noise-class.html#read_frames"><a title="timeside.grapher.core.Noise.read_frames" class="py-name" href="#" onclick="return doclink('link-37', 'read_frames', 'link-37');">read_frames</a></tt><tt class="py-op">(</tt><tt class="py-name">toread</tt><tt class="py-op">)</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt id="link-38" class="py-name" targets="Variable timeside.tests.api.test_lolevel.eod=timeside.tests.api.test_lolevel-module.html#eod"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-38', 'eod', 'link-38');">eod</a></tt>            <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">toread</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">buffersize</tt><tt class="py-op">)</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">position</tt> <tt class="py-op">+=</tt> <tt class="py-name">toread</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-comment"># audiolab returns a 1D array for 1 channel, need to reshape to 2D:</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt id="link-39" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-39', 'frames', 'link-34');">frames</a></tt><tt class="py-op">.</tt><tt class="py-name">ndim</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">            <tt id="link-40" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-40', 'frames', 'link-34');">frames</a></tt> <tt class="py-op">=</tt> <tt id="link-41" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-41', 'frames', 'link-34');">frames</a></tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-42" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-42', 'frames', 'link-34');">frames</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-43" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-43', 'frames', 'link-34');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-44" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-44', 'eod', 'link-38');">eod</a></tt> </tt>
+</div></div><a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"> </tt>
+<a name="MaxLevel"></a><div id="MaxLevel-def"><a name="L101"></a><tt class="py-lineno">101</tt> <a class="py-toggle" href="#" id="MaxLevel-toggle" onclick="return toggle('MaxLevel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.api.examples.MaxLevel-class.html">MaxLevel</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MaxLevel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="MaxLevel-expanded"><a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">    <tt id="link-45" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-45', 'implements', 'link-3');">implements</a></tt><tt class="py-op">(</tt><tt id="link-46" class="py-name" targets="Class timeside.api.IValueAnalyzer=timeside.api.IValueAnalyzer-class.html"><a title="timeside.api.IValueAnalyzer" class="py-name" href="#" onclick="return doclink('link-46', 'IValueAnalyzer', 'link-46');">IValueAnalyzer</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="MaxLevel.setup"></a><div id="MaxLevel.setup-def"><a name="L105"></a><tt class="py-lineno">105</tt> <a class="py-toggle" href="#" id="MaxLevel.setup-toggle" onclick="return toggle('MaxLevel.setup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.MaxLevel-class.html#setup">setup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channels</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">samplerate</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">nframes</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MaxLevel.setup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="MaxLevel.setup-expanded"><a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-47" class="py-name" targets="Class timeside.tests.api.examples.MaxLevel=timeside.tests.api.examples.MaxLevel-class.html"><a title="timeside.tests.api.examples.MaxLevel" class="py-name" href="#" onclick="return doclink('link-47', 'MaxLevel', 'link-47');">MaxLevel</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-48', 'setup', 'link-15');">setup</a></tt><tt class="py-op">(</tt><tt id="link-49" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-49', 'channels', 'link-19');">channels</a></tt><tt class="py-op">,</tt> <tt id="link-50" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-50', 'samplerate', 'link-20');">samplerate</a></tt><tt class="py-op">,</tt> <tt id="link-51" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-51', 'nframes', 'link-21');">nframes</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_value</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+</div><a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="MaxLevel.id"></a><div id="MaxLevel.id-def"><a name="L111"></a><tt class="py-lineno">111</tt> <a class="py-toggle" href="#" id="MaxLevel.id-toggle" onclick="return toggle('MaxLevel.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.MaxLevel-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MaxLevel.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="MaxLevel.id-expanded"><a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"test_maxlevel"</tt> </tt>
+</div><a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="MaxLevel.name"></a><div id="MaxLevel.name-def"><a name="L116"></a><tt class="py-lineno">116</tt> <a class="py-toggle" href="#" id="MaxLevel.name-toggle" onclick="return toggle('MaxLevel.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.MaxLevel-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MaxLevel.name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="MaxLevel.name-expanded"><a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Max level test analyzer"</tt> </tt>
+</div><a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="MaxLevel.unit"></a><div id="MaxLevel.unit-def"><a name="L121"></a><tt class="py-lineno">121</tt> <a class="py-toggle" href="#" id="MaxLevel.unit-toggle" onclick="return toggle('MaxLevel.unit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.MaxLevel-class.html#unit">unit</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MaxLevel.unit-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="MaxLevel.unit-expanded"><a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt class="py-comment"># power? amplitude?</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">return</tt> <tt class="py-string">""</tt> </tt>
+</div><a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"> </tt>
+<a name="MaxLevel.process"></a><div id="MaxLevel.process-def"><a name="L125"></a><tt class="py-lineno">125</tt> <a class="py-toggle" href="#" id="MaxLevel.process-toggle" onclick="return toggle('MaxLevel.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.MaxLevel-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MaxLevel.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="MaxLevel.process-expanded"><a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">        <tt class="py-name">max</tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-52', 'frames', 'link-34');">frames</a></tt><tt class="py-op">.</tt><tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">max</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_value</tt><tt class="py-op">:</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_value</tt> <tt class="py-op">=</tt> <tt class="py-name">max</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-53" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-53', 'frames', 'link-34');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-54" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-54', 'eod', 'link-38');">eod</a></tt> </tt>
+</div><a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"> </tt>
+<a name="MaxLevel.result"></a><div id="MaxLevel.result-def"><a name="L132"></a><tt class="py-lineno">132</tt> <a class="py-toggle" href="#" id="MaxLevel.result-toggle" onclick="return toggle('MaxLevel.result');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.MaxLevel-class.html#result">result</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MaxLevel.result-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="MaxLevel.result-expanded"><a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_value</tt> </tt>
+</div></div><a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"> </tt>
+<a name="Gain"></a><div id="Gain-def"><a name="L135"></a><tt class="py-lineno">135</tt> <a class="py-toggle" href="#" id="Gain-toggle" onclick="return toggle('Gain');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.api.examples.Gain-class.html">Gain</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Gain-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Gain-expanded"><a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">    <tt id="link-55" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-55', 'implements', 'link-3');">implements</a></tt><tt class="py-op">(</tt><tt id="link-56" class="py-name" targets="Class timeside.api.IEffect=timeside.api.IEffect-class.html"><a title="timeside.api.IEffect" class="py-name" href="#" onclick="return doclink('link-56', 'IEffect', 'link-56');">IEffect</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Gain.__init__"></a><div id="Gain.__init__-def"><a name="L139"></a><tt class="py-lineno">139</tt> <a class="py-toggle" href="#" id="Gain.__init__-toggle" onclick="return toggle('Gain.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Gain-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">gain</tt><tt class="py-op">=</tt><tt class="py-number">1.0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Gain.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Gain.__init__-expanded"><a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name" targets="Variable timeside.tests.api.test_lolevel.gain=timeside.tests.api.test_lolevel-module.html#gain,Variable timeside.tests.api.test_pipe.gain=timeside.tests.api.test_pipe-module.html#gain"><a title="timeside.tests.api.test_lolevel.gain
+timeside.tests.api.test_pipe.gain" class="py-name" href="#" onclick="return doclink('link-57', 'gain', 'link-57');">gain</a></tt> <tt class="py-op">=</tt> <tt id="link-58" class="py-name"><a title="timeside.tests.api.test_lolevel.gain
+timeside.tests.api.test_pipe.gain" class="py-name" href="#" onclick="return doclink('link-58', 'gain', 'link-57');">gain</a></tt> </tt>
+</div><a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Gain.id"></a><div id="Gain.id-def"><a name="L144"></a><tt class="py-lineno">144</tt> <a class="py-toggle" href="#" id="Gain.id-toggle" onclick="return toggle('Gain.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Gain-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Gain.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Gain.id-expanded"><a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"test_gain"</tt> </tt>
+</div><a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Gain.name"></a><div id="Gain.name-def"><a name="L149"></a><tt class="py-lineno">149</tt> <a class="py-toggle" href="#" id="Gain.name-toggle" onclick="return toggle('Gain.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Gain-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Gain.name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Gain.name-expanded"><a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Gain test effect"</tt> </tt>
+</div><a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"> </tt>
+<a name="Gain.process"></a><div id="Gain.process-def"><a name="L152"></a><tt class="py-lineno">152</tt> <a class="py-toggle" href="#" id="Gain.process-toggle" onclick="return toggle('Gain.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Gain-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Gain.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Gain.process-expanded"><a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">multiply</tt><tt class="py-op">(</tt><tt id="link-59" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-59', 'frames', 'link-34');">frames</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="timeside.tests.api.test_lolevel.gain
+timeside.tests.api.test_pipe.gain" class="py-name" href="#" onclick="return doclink('link-60', 'gain', 'link-57');">gain</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-61" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-61', 'eod', 'link-38');">eod</a></tt> </tt>
+</div></div><a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"> </tt>
+<a name="WavEncoder"></a><div id="WavEncoder-def"><a name="L155"></a><tt class="py-lineno">155</tt> <a class="py-toggle" href="#" id="WavEncoder-toggle" onclick="return toggle('WavEncoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.api.examples.WavEncoder-class.html">WavEncoder</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="WavEncoder-expanded"><a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">    <tt id="link-62" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-62', 'implements', 'link-3');">implements</a></tt><tt class="py-op">(</tt><tt id="link-63" class="py-name" targets="Class timeside.api.IEncoder=timeside.api.IEncoder-class.html"><a title="timeside.api.IEncoder" class="py-name" href="#" onclick="return doclink('link-63', 'IEncoder', 'link-63');">IEncoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"> </tt>
+<a name="WavEncoder.__init__"></a><div id="WavEncoder.__init__-def"><a name="L158"></a><tt class="py-lineno">158</tt> <a class="py-toggle" href="#" id="WavEncoder.__init__-toggle" onclick="return toggle('WavEncoder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.WavEncoder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">output</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.__init__-expanded"><a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">output</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">output</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Streaming not supported"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.setup"></a><div id="WavEncoder.setup-def"><a name="L166"></a><tt class="py-lineno">166</tt> <a class="py-toggle" href="#" id="WavEncoder.setup-toggle" onclick="return toggle('WavEncoder.setup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.WavEncoder-class.html#setup">setup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channels</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">samplerate</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">nframes</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.setup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.setup-expanded"><a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-64" class="py-name" targets="Class timeside.encode.wav.WavEncoder=timeside.encode.wav.WavEncoder-class.html,Class timeside.tests.api.examples.WavEncoder=timeside.tests.api.examples.WavEncoder-class.html,Class timeside.tests.api.gstreamer.WavEncoder=timeside.tests.api.gstreamer.WavEncoder-class.html"><a title="timeside.encode.wav.WavEncoder
+timeside.tests.api.examples.WavEncoder
+timeside.tests.api.gstreamer.WavEncoder" class="py-name" href="#" onclick="return doclink('link-64', 'WavEncoder', 'link-64');">WavEncoder</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-65', 'setup', 'link-15');">setup</a></tt><tt class="py-op">(</tt><tt id="link-66" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-66', 'channels', 'link-19');">channels</a></tt><tt class="py-op">,</tt> <tt id="link-67" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-67', 'samplerate', 'link-20');">samplerate</a></tt><tt class="py-op">,</tt> <tt id="link-68" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-68', 'nframes', 'link-21');">nframes</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">:</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt id="link-69" class="py-name" targets="Module timeside.analyze.format=timeside.analyze.format-module.html,Method timeside.api.IDecoder.format()=timeside.api.IDecoder-class.html#format,Static Method timeside.api.IEncoder.format()=timeside.api.IEncoder-class.html#format,Method timeside.decode.flac.FlacDecoder.format()=timeside.decode.flac.FlacDecoder-class.html#format,Method timeside.decode.mp3.Mp3Decoder.format()=timeside.decode.mp3.Mp3Decoder-class.html#format,Method timeside.decode.ogg.OggDecoder.format()=timeside.decode.ogg.OggDecoder-class.html#format,Method timeside.decode.wav.WavDecoder.format()=timeside.decode.wav.WavDecoder-class.html#format,Method timeside.encode.flac.FlacEncoder.format()=timeside.encode.flac.FlacEncoder-class.html#format,Method timeside.encode.mp3.Mp3Encoder.format()=timeside.encode.mp3.Mp3Encoder-class.html#format,Method timeside.encode.ogg.OggVorbisEncoder.format()=timeside.encode.ogg.OggVorbisEncoder-class.html#format,Method timeside.encode.wav.WavEncoder.format()=timeside.encode.wav.WavEncoder-class.html#format,Method timeside.tests.api.examples.FileDecoder.format()=timeside.tests.api.examples.FileDecoder-class.html#format,Method timeside.tests.api.gstreamer.FileDecoder.format()=timeside.tests.api.gstreamer.FileDecoder-class.html#format"><a title="timeside.analyze.format
+timeside.api.IDecoder.format
+timeside.api.IEncoder.format
+timeside.decode.flac.FlacDecoder.format
+timeside.decode.mp3.Mp3Decoder.format
+timeside.decode.ogg.OggDecoder.format
+timeside.decode.wav.WavDecoder.format
+timeside.encode.flac.FlacEncoder.format
+timeside.encode.mp3.Mp3Encoder.format
+timeside.encode.ogg.OggVorbisEncoder.format
+timeside.encode.wav.WavEncoder.format
+timeside.tests.api.examples.FileDecoder.format
+timeside.tests.api.gstreamer.FileDecoder.format" class="py-name" href="#" onclick="return doclink('link-69', 'format', 'link-69');">format</a></tt> <tt class="py-op">=</tt> <tt class="py-name">audiolab</tt><tt class="py-op">.</tt><tt class="py-name">Format</tt><tt class="py-op">(</tt><tt class="py-string">"wav"</tt><tt class="py-op">,</tt> <tt class="py-string">"pcm16"</tt><tt class="py-op">)</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">audiolab</tt><tt class="py-op">.</tt><tt class="py-name">Sndfile</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">,</tt> <tt id="link-70" class="py-name"><a title="timeside.analyze.format
+timeside.api.IDecoder.format
+timeside.api.IEncoder.format
+timeside.decode.flac.FlacDecoder.format
+timeside.decode.mp3.Mp3Decoder.format
+timeside.decode.ogg.OggDecoder.format
+timeside.decode.wav.WavDecoder.format
+timeside.encode.flac.FlacEncoder.format
+timeside.encode.mp3.Mp3Encoder.format
+timeside.encode.ogg.OggVorbisEncoder.format
+timeside.encode.wav.WavEncoder.format
+timeside.tests.api.examples.FileDecoder.format
+timeside.tests.api.gstreamer.FileDecoder.format" class="py-name" href="#" onclick="return doclink('link-70', 'format', 'link-69');">format</a></tt><tt class="py-op">=</tt><tt id="link-71" class="py-name"><a title="timeside.analyze.format
+timeside.api.IDecoder.format
+timeside.api.IEncoder.format
+timeside.decode.flac.FlacDecoder.format
+timeside.decode.mp3.Mp3Decoder.format
+timeside.decode.ogg.OggDecoder.format
+timeside.decode.wav.WavDecoder.format
+timeside.encode.flac.FlacEncoder.format
+timeside.encode.mp3.Mp3Encoder.format
+timeside.encode.ogg.OggVorbisEncoder.format
+timeside.encode.wav.WavEncoder.format
+timeside.tests.api.examples.FileDecoder.format
+timeside.tests.api.gstreamer.FileDecoder.format" class="py-name" href="#" onclick="return doclink('link-71', 'format', 'link-69');">format</a></tt><tt class="py-op">,</tt> <tt id="link-72" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-72', 'channels', 'link-19');">channels</a></tt><tt class="py-op">=</tt><tt id="link-73" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-73', 'channels', 'link-19');">channels</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">                                     <tt id="link-74" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-74', 'samplerate', 'link-20');">samplerate</a></tt><tt class="py-op">=</tt><tt id="link-75" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-75', 'samplerate', 'link-20');">samplerate</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.id"></a><div id="WavEncoder.id-def"><a name="L177"></a><tt class="py-lineno">177</tt> <a class="py-toggle" href="#" id="WavEncoder.id-toggle" onclick="return toggle('WavEncoder.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.WavEncoder-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.id-expanded"><a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"test_wavenc"</tt> </tt>
+</div><a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.description"></a><div id="WavEncoder.description-def"><a name="L182"></a><tt class="py-lineno">182</tt> <a class="py-toggle" href="#" id="WavEncoder.description-toggle" onclick="return toggle('WavEncoder.description');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.WavEncoder-class.html#description">description</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.description-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.description-expanded"><a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Hackish wave encoder"</tt> </tt>
+</div><a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line"> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.file_extension"></a><div id="WavEncoder.file_extension-def"><a name="L187"></a><tt class="py-lineno">187</tt> <a class="py-toggle" href="#" id="WavEncoder.file_extension-toggle" onclick="return toggle('WavEncoder.file_extension');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.WavEncoder-class.html#file_extension">file_extension</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.file_extension-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.file_extension-expanded"><a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"wav"</tt> </tt>
+</div><a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.mime_type"></a><div id="WavEncoder.mime_type-def"><a name="L192"></a><tt class="py-lineno">192</tt> <a class="py-toggle" href="#" id="WavEncoder.mime_type-toggle" onclick="return toggle('WavEncoder.mime_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.WavEncoder-class.html#mime_type">mime_type</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.mime_type-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.mime_type-expanded"><a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"audio/x-wav"</tt> </tt>
+</div><a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.set_metadata"></a><div id="WavEncoder.set_metadata-def"><a name="L196"></a><tt class="py-lineno">196</tt> <a class="py-toggle" href="#" id="WavEncoder.set_metadata-toggle" onclick="return toggle('WavEncoder.set_metadata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.WavEncoder-class.html#set_metadata">set_metadata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">metadata</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.set_metadata-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.set_metadata-expanded"><a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">        <tt class="py-comment">#TODO</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line"> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.process"></a><div id="WavEncoder.process-def"><a name="L201"></a><tt class="py-lineno">201</tt> <a class="py-toggle" href="#" id="WavEncoder.process-toggle" onclick="return toggle('WavEncoder.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.WavEncoder-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.process-expanded"><a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">write_frames</tt><tt class="py-op">(</tt><tt id="link-76" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-76', 'frames', 'link-34');">frames</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-77" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-77', 'eod', 'link-38');">eod</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line"> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-78" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-78', 'frames', 'link-34');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-79" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-79', 'eod', 'link-38');">eod</a></tt> </tt>
+</div></div><a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line"> </tt>
+<a name="Waveform"></a><div id="Waveform-def"><a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line"> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt> <a class="py-toggle" href="#" id="Waveform-toggle" onclick="return toggle('Waveform');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.api.examples.Waveform-class.html">Waveform</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Waveform-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Waveform-expanded"><a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">    <tt id="link-80" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-80', 'implements', 'link-3');">implements</a></tt><tt class="py-op">(</tt><tt id="link-81" class="py-name" targets="Class timeside.api.IGrapher=timeside.api.IGrapher-class.html"><a title="timeside.api.IGrapher" class="py-name" href="#" onclick="return doclink('link-81', 'IGrapher', 'link-81');">IGrapher</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line"> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">    <tt id="link-82" class="py-name" targets="Variable timeside.tests.api.examples.Spectrogram.FFT_SIZE=timeside.tests.api.examples.Spectrogram-class.html#FFT_SIZE,Variable timeside.tests.api.examples.Waveform.FFT_SIZE=timeside.tests.api.examples.Waveform-class.html#FFT_SIZE"><a title="timeside.tests.api.examples.Spectrogram.FFT_SIZE
+timeside.tests.api.examples.Waveform.FFT_SIZE" class="py-name" href="#" onclick="return doclink('link-82', 'FFT_SIZE', 'link-82');">FFT_SIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x400</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line"> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Waveform.__init__"></a><div id="Waveform.__init__-def"><a name="L216"></a><tt class="py-lineno">216</tt> <a class="py-toggle" href="#" id="Waveform.__init__-toggle" onclick="return toggle('Waveform.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Waveform-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">height</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">output</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">bg_color</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">color_scheme</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Waveform.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Waveform.__init__-expanded"><a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">width</tt><tt class="py-op">:</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">width</tt> <tt class="py-op">=</tt> <tt class="py-name">width</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">width</tt> <tt class="py-op">=</tt> <tt class="py-number">1500</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">height</tt><tt class="py-op">:</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">height</tt> <tt class="py-op">=</tt> <tt class="py-name">height</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">height</tt> <tt class="py-op">=</tt> <tt class="py-number">200</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name" targets="Variable timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#bg_color,Variable timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#bg_color"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-83', 'bg_color', 'link-83');">bg_color</a></tt> <tt class="py-op">=</tt> <tt id="link-84" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-84', 'bg_color', 'link-83');">bg_color</a></tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name" targets="Variable timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#color_scheme,Variable timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#color_scheme"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-85', 'color_scheme', 'link-85');">color_scheme</a></tt> <tt class="py-op">=</tt> <tt id="link-86" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-86', 'color_scheme', 'link-85');">color_scheme</a></tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">output</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line"> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Waveform.id"></a><div id="Waveform.id-def"><a name="L232"></a><tt class="py-lineno">232</tt> <a class="py-toggle" href="#" id="Waveform.id-toggle" onclick="return toggle('Waveform.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Waveform-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Waveform.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Waveform.id-expanded"><a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"test_waveform"</tt> </tt>
+</div><a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Waveform.name"></a><div id="Waveform.name-def"><a name="L237"></a><tt class="py-lineno">237</tt> <a class="py-toggle" href="#" id="Waveform.name-toggle" onclick="return toggle('Waveform.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Waveform-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Waveform.name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Waveform.name-expanded"><a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Waveform test"</tt> </tt>
+</div><a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Waveform.set_colors"></a><div id="Waveform.set_colors-def"><a name="L241"></a><tt class="py-lineno">241</tt> <a class="py-toggle" href="#" id="Waveform.set_colors-toggle" onclick="return toggle('Waveform.set_colors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Waveform-class.html#set_colors">set_colors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">background</tt><tt class="py-op">,</tt> <tt class="py-param">scheme</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Waveform.set_colors-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Waveform.set_colors-expanded"><a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-87', 'bg_color', 'link-83');">bg_color</a></tt> <tt class="py-op">=</tt> <tt class="py-name">background</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-88', 'color_scheme', 'link-85');">color_scheme</a></tt> <tt class="py-op">=</tt> <tt class="py-name">scheme</tt> </tt>
+</div><a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Waveform.setup"></a><div id="Waveform.setup-def"><a name="L246"></a><tt class="py-lineno">246</tt> <a class="py-toggle" href="#" id="Waveform.setup-toggle" onclick="return toggle('Waveform.setup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Waveform-class.html#setup">setup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channels</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">samplerate</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">nframes</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Waveform.setup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Waveform.setup-expanded"><a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-89" class="py-name" targets="Class timeside.tests.api.examples.Waveform=timeside.tests.api.examples.Waveform-class.html"><a title="timeside.tests.api.examples.Waveform" class="py-name" href="#" onclick="return doclink('link-89', 'Waveform', 'link-89');">Waveform</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-90', 'setup', 'link-15');">setup</a></tt><tt class="py-op">(</tt><tt id="link-91" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-91', 'channels', 'link-19');">channels</a></tt><tt class="py-op">,</tt> <tt id="link-92" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-92', 'samplerate', 'link-20');">samplerate</a></tt><tt class="py-op">,</tt> <tt id="link-93" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-93', 'nframes', 'link-21');">nframes</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt><tt class="py-op">:</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt> <tt class="py-op">=</tt> <tt id="link-94" class="py-name" targets="Class timeside.grapher.core.WaveformImage=timeside.grapher.core.WaveformImage-class.html"><a title="timeside.grapher.core.WaveformImage" class="py-name" href="#" onclick="return doclink('link-94', 'WaveformImage', 'link-94');">WaveformImage</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">width</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">height</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-95', 'nframes', 'link-21');">nframes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-96', 'samplerate', 'link-20');">samplerate</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="timeside.tests.api.examples.Spectrogram.FFT_SIZE
+timeside.tests.api.examples.Waveform.FFT_SIZE" class="py-name" href="#" onclick="return doclink('link-97', 'FFT_SIZE', 'link-82');">FFT_SIZE</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">                                    <tt id="link-98" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-98', 'bg_color', 'link-83');">bg_color</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-99', 'bg_color', 'link-83');">bg_color</a></tt><tt class="py-op">,</tt> <tt id="link-100" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-100', 'color_scheme', 'link-85');">color_scheme</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-101', 'color_scheme', 'link-85');">color_scheme</a></tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line"> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Waveform.process"></a><div id="Waveform.process-def"><a name="L254"></a><tt class="py-lineno">254</tt> <a class="py-toggle" href="#" id="Waveform.process-toggle" onclick="return toggle('Waveform.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Waveform-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Waveform.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Waveform.process-expanded"><a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name" targets="Method timeside.api.IProcessor.process()=timeside.api.IProcessor-class.html#process,Method timeside.core.FixedSizeInputAdapter.process()=timeside.core.FixedSizeInputAdapter-class.html#process,Method timeside.core.Processor.process()=timeside.core.Processor-class.html#process,Method timeside.decode.core.DecoderCore.process()=timeside.decode.core.DecoderCore-class.html#process,Method timeside.encode.flac.FlacEncoder.process()=timeside.encode.flac.FlacEncoder-class.html#process,Method timeside.encode.mp3.Mp3Encoder.process()=timeside.encode.mp3.Mp3Encoder-class.html#process,Method timeside.encode.ogg.OggVorbisEncoder.process()=timeside.encode.ogg.OggVorbisEncoder-class.html#process,Method timeside.encode.wav.WavEncoder.process()=timeside.encode.wav.WavEncoder-class.html#process,Method timeside.grapher.core.SpectralCentroid.process()=timeside.grapher.core.SpectralCentroid-class.html#process,Method timeside.grapher.core.SpectrogramImage.process()=timeside.grapher.core.SpectrogramImage-class.html#process,Method timeside.grapher.core.WaveformImage.process()=timeside.grapher.core.WaveformImage-class.html#process,Method timeside.tests.api.examples.FileDecoder.process()=timeside.tests.api.examples.FileDecoder-class.html#process,Method timeside.tests.api.examples.FixedInputProcessor.process()=timeside.tests.api.examples.FixedInputProcessor-class.html#process,Method timeside.tests.api.examples.Gain.process()=timeside.tests.api.examples.Gain-class.html#process,Method timeside.tests.api.examples.MaxLevel.process()=timeside.tests.api.examples.MaxLevel-class.html#process,Method timeside.tests.api.examples.Spectrogram.process()=timeside.tests.api.examples.Spectrogram-class.html#process,Method timeside.tests.api.examples.WavEncoder.process()=timeside.tests.api.examples.WavEncoder-class.html#process,Method timeside.tests.api.examples.Waveform.process()=timeside.tests.api.examples.Waveform-class.html#process,Method timeside.tests.api.gstreamer.FileDecoder.process()=timeside.tests.api.gstreamer.FileDecoder-class.html#process,Method timeside.tests.api.gstreamer.WavEncoder.process()=timeside.tests.api.gstreamer.WavEncoder-class.html#process"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-102', 'process', 'link-102');">process</a></tt><tt class="py-op">(</tt><tt id="link-103" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-103', 'frames', 'link-34');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-104" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-104', 'eod', 'link-38');">eod</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-105" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-105', 'frames', 'link-34');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-106" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-106', 'eod', 'link-38');">eod</a></tt> </tt>
+</div><a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line"> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Waveform.render"></a><div id="Waveform.render-def"><a name="L259"></a><tt class="py-lineno">259</tt> <a class="py-toggle" href="#" id="Waveform.render-toggle" onclick="return toggle('Waveform.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Waveform-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Waveform.render-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Waveform.render-expanded"><a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt><tt class="py-op">:</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name" targets="Method timeside.grapher.core.SpectrogramImage.save()=timeside.grapher.core.SpectrogramImage-class.html#save,Method timeside.grapher.core.WaveformImage.save()=timeside.grapher.core.WaveformImage-class.html#save"><a title="timeside.grapher.core.SpectrogramImage.save
+timeside.grapher.core.WaveformImage.save" class="py-name" href="#" onclick="return doclink('link-107', 'save', 'link-107');">save</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt><tt class="py-op">.</tt><tt class="py-name">image</tt> </tt>
+</div></div><a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"> </tt>
+<a name="Spectrogram"></a><div id="Spectrogram-def"><a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <a class="py-toggle" href="#" id="Spectrogram-toggle" onclick="return toggle('Spectrogram');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.api.examples.Spectrogram-class.html">Spectrogram</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Spectrogram-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Spectrogram-expanded"><a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">    <tt id="link-108" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-108', 'implements', 'link-3');">implements</a></tt><tt class="py-op">(</tt><tt id="link-109" class="py-name"><a title="timeside.api.IGrapher" class="py-name" href="#" onclick="return doclink('link-109', 'IGrapher', 'link-81');">IGrapher</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line"> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">    <tt id="link-110" class="py-name"><a title="timeside.tests.api.examples.Spectrogram.FFT_SIZE
+timeside.tests.api.examples.Waveform.FFT_SIZE" class="py-name" href="#" onclick="return doclink('link-110', 'FFT_SIZE', 'link-82');">FFT_SIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x1000</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line"> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Spectrogram.__init__"></a><div id="Spectrogram.__init__-def"><a name="L271"></a><tt class="py-lineno">271</tt> <a class="py-toggle" href="#" id="Spectrogram.__init__-toggle" onclick="return toggle('Spectrogram.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Spectrogram-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">height</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">output</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">bg_color</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">color_scheme</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Spectrogram.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Spectrogram.__init__-expanded"><a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">width</tt><tt class="py-op">:</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">width</tt> <tt class="py-op">=</tt> <tt class="py-name">width</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">width</tt> <tt class="py-op">=</tt> <tt class="py-number">1500</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">height</tt><tt class="py-op">:</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">height</tt> <tt class="py-op">=</tt> <tt class="py-name">height</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">height</tt> <tt class="py-op">=</tt> <tt class="py-number">200</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-111', 'bg_color', 'link-83');">bg_color</a></tt> <tt class="py-op">=</tt> <tt id="link-112" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-112', 'bg_color', 'link-83');">bg_color</a></tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-113', 'color_scheme', 'link-85');">color_scheme</a></tt> <tt class="py-op">=</tt> <tt id="link-114" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-114', 'color_scheme', 'link-85');">color_scheme</a></tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">output</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line"> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Spectrogram.id"></a><div id="Spectrogram.id-def"><a name="L287"></a><tt class="py-lineno">287</tt> <a class="py-toggle" href="#" id="Spectrogram.id-toggle" onclick="return toggle('Spectrogram.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Spectrogram-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Spectrogram.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Spectrogram.id-expanded"><a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"test_spectrogram"</tt> </tt>
+</div><a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line"> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Spectrogram.name"></a><div id="Spectrogram.name-def"><a name="L292"></a><tt class="py-lineno">292</tt> <a class="py-toggle" href="#" id="Spectrogram.name-toggle" onclick="return toggle('Spectrogram.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Spectrogram-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Spectrogram.name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Spectrogram.name-expanded"><a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Spectrogram test"</tt> </tt>
+</div><a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line"> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Spectrogram.set_colors"></a><div id="Spectrogram.set_colors-def"><a name="L296"></a><tt class="py-lineno">296</tt> <a class="py-toggle" href="#" id="Spectrogram.set_colors-toggle" onclick="return toggle('Spectrogram.set_colors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Spectrogram-class.html#set_colors">set_colors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">background</tt><tt class="py-op">,</tt> <tt class="py-param">scheme</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Spectrogram.set_colors-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Spectrogram.set_colors-expanded"><a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-115', 'bg_color', 'link-83');">bg_color</a></tt> <tt class="py-op">=</tt> <tt class="py-name">background</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-116', 'color_scheme', 'link-85');">color_scheme</a></tt> <tt class="py-op">=</tt> <tt class="py-name">scheme</tt> </tt>
+</div><a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line"> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Spectrogram.setup"></a><div id="Spectrogram.setup-def"><a name="L301"></a><tt class="py-lineno">301</tt> <a class="py-toggle" href="#" id="Spectrogram.setup-toggle" onclick="return toggle('Spectrogram.setup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Spectrogram-class.html#setup">setup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channels</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">samplerate</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">nframes</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Spectrogram.setup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Spectrogram.setup-expanded"><a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-117" class="py-name" targets="Class timeside.tests.api.examples.Spectrogram=timeside.tests.api.examples.Spectrogram-class.html"><a title="timeside.tests.api.examples.Spectrogram" class="py-name" href="#" onclick="return doclink('link-117', 'Spectrogram', 'link-117');">Spectrogram</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-118', 'setup', 'link-15');">setup</a></tt><tt class="py-op">(</tt><tt id="link-119" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-119', 'channels', 'link-19');">channels</a></tt><tt class="py-op">,</tt> <tt id="link-120" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-120', 'samplerate', 'link-20');">samplerate</a></tt><tt class="py-op">,</tt> <tt id="link-121" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-121', 'nframes', 'link-21');">nframes</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt><tt class="py-op">:</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt> <tt class="py-op">=</tt> <tt id="link-122" class="py-name" targets="Class timeside.grapher.core.SpectrogramImage=timeside.grapher.core.SpectrogramImage-class.html"><a title="timeside.grapher.core.SpectrogramImage" class="py-name" href="#" onclick="return doclink('link-122', 'SpectrogramImage', 'link-122');">SpectrogramImage</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">width</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">height</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-123', 'nframes', 'link-21');">nframes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-124', 'samplerate', 'link-20');">samplerate</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="timeside.tests.api.examples.Spectrogram.FFT_SIZE
+timeside.tests.api.examples.Waveform.FFT_SIZE" class="py-name" href="#" onclick="return doclink('link-125', 'FFT_SIZE', 'link-82');">FFT_SIZE</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">                                    <tt id="link-126" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-126', 'bg_color', 'link-83');">bg_color</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-127', 'bg_color', 'link-83');">bg_color</a></tt><tt class="py-op">,</tt> <tt id="link-128" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-128', 'color_scheme', 'link-85');">color_scheme</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-129', 'color_scheme', 'link-85');">color_scheme</a></tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line"> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Spectrogram.process"></a><div id="Spectrogram.process-def"><a name="L309"></a><tt class="py-lineno">309</tt> <a class="py-toggle" href="#" id="Spectrogram.process-toggle" onclick="return toggle('Spectrogram.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Spectrogram-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Spectrogram.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Spectrogram.process-expanded"><a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-130', 'process', 'link-102');">process</a></tt><tt class="py-op">(</tt><tt id="link-131" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-131', 'frames', 'link-34');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-132" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-132', 'eod', 'link-38');">eod</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-133" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-133', 'frames', 'link-34');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-134" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-134', 'eod', 'link-38');">eod</a></tt> </tt>
+</div><a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line"> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Spectrogram.render"></a><div id="Spectrogram.render-def"><a name="L314"></a><tt class="py-lineno">314</tt> <a class="py-toggle" href="#" id="Spectrogram.render-toggle" onclick="return toggle('Spectrogram.render');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Spectrogram-class.html#render">render</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Spectrogram.render-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Spectrogram.render-expanded"><a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt><tt class="py-op">:</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="timeside.grapher.core.SpectrogramImage.save
+timeside.grapher.core.WaveformImage.save" class="py-name" href="#" onclick="return doclink('link-135', 'save', 'link-107');">save</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">graph</tt><tt class="py-op">.</tt><tt class="py-name">image</tt> </tt>
+</div></div><a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line"> </tt>
+<a name="Duration"></a><div id="Duration-def"><a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line"> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt> <a class="py-toggle" href="#" id="Duration-toggle" onclick="return toggle('Duration');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.api.examples.Duration-class.html">Duration</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Duration-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Duration-expanded"><a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">    <tt class="py-docstring">"""A rather useless duration analyzer. Its only purpose is to test the</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line"><tt class="py-docstring">       nframes characteristic."""</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">    <tt id="link-136" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-136', 'implements', 'link-3');">implements</a></tt><tt class="py-op">(</tt><tt id="link-137" class="py-name"><a title="timeside.api.IValueAnalyzer" class="py-name" href="#" onclick="return doclink('link-137', 'IValueAnalyzer', 'link-46');">IValueAnalyzer</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line"> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Duration.setup"></a><div id="Duration.setup-def"><a name="L326"></a><tt class="py-lineno">326</tt> <a class="py-toggle" href="#" id="Duration.setup-toggle" onclick="return toggle('Duration.setup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Duration-class.html#setup">setup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channels</tt><tt class="py-op">,</tt> <tt class="py-param">samplerate</tt><tt class="py-op">,</tt> <tt class="py-param">nframes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Duration.setup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Duration.setup-expanded"><a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-138" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-138', 'nframes', 'link-21');">nframes</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"nframes argument required"</tt><tt class="py-op">)</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-139" class="py-name" targets="Class timeside.tests.api.examples.Duration=timeside.tests.api.examples.Duration-class.html"><a title="timeside.tests.api.examples.Duration" class="py-name" href="#" onclick="return doclink('link-139', 'Duration', 'link-139');">Duration</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-140', 'setup', 'link-15');">setup</a></tt><tt class="py-op">(</tt><tt id="link-141" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-141', 'channels', 'link-19');">channels</a></tt><tt class="py-op">,</tt> <tt id="link-142" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-142', 'samplerate', 'link-20');">samplerate</a></tt><tt class="py-op">,</tt> <tt id="link-143" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-143', 'nframes', 'link-21');">nframes</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line"> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Duration.id"></a><div id="Duration.id-def"><a name="L333"></a><tt class="py-lineno">333</tt> <a class="py-toggle" href="#" id="Duration.id-toggle" onclick="return toggle('Duration.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Duration-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Duration.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Duration.id-expanded"><a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"test_duration"</tt> </tt>
+</div><a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line"> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Duration.name"></a><div id="Duration.name-def"><a name="L338"></a><tt class="py-lineno">338</tt> <a class="py-toggle" href="#" id="Duration.name-toggle" onclick="return toggle('Duration.name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Duration-class.html#name">name</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Duration.name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Duration.name-expanded"><a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Duration analyzer"</tt> </tt>
+</div><a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line"> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="Duration.unit"></a><div id="Duration.unit-def"><a name="L343"></a><tt class="py-lineno">343</tt> <a class="py-toggle" href="#" id="Duration.unit-toggle" onclick="return toggle('Duration.unit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Duration-class.html#unit">unit</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Duration.unit-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Duration.unit-expanded"><a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"seconds"</tt> </tt>
+</div><a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line"> </tt>
+<a name="Duration.result"></a><div id="Duration.result-def"><a name="L346"></a><tt class="py-lineno">346</tt> <a class="py-toggle" href="#" id="Duration.result-toggle" onclick="return toggle('Duration.result');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.Duration-class.html#result">result</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Duration.result-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Duration.result-expanded"><a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">input_nframes</tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">input_samplerate</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line"> </tt>
+<a name="FixedInputProcessor"></a><div id="FixedInputProcessor-def"><a name="L349"></a><tt class="py-lineno">349</tt> <a class="py-toggle" href="#" id="FixedInputProcessor-toggle" onclick="return toggle('FixedInputProcessor');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.api.examples.FixedInputProcessor-class.html">FixedInputProcessor</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FixedInputProcessor-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="FixedInputProcessor-expanded"><a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line">    <tt class="py-docstring">"""Processor which does absolutely nothing except illustrating the use</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line"><tt class="py-docstring">    of the FixedInputSizeAdapter. It also tests things a bit."""</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line"> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line">    <tt id="link-144" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-144', 'implements', 'link-3');">implements</a></tt><tt class="py-op">(</tt><tt id="link-145" class="py-name" targets="Class timeside.api.IProcessor=timeside.api.IProcessor-class.html"><a title="timeside.api.IProcessor" class="py-name" href="#" onclick="return doclink('link-145', 'IProcessor', 'link-145');">IProcessor</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line"> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line">    <tt id="link-146" class="py-name" targets="Variable timeside.tests.api.examples.FixedInputProcessor.BUFFER_SIZE=timeside.tests.api.examples.FixedInputProcessor-class.html#BUFFER_SIZE"><a title="timeside.tests.api.examples.FixedInputProcessor.BUFFER_SIZE" class="py-name" href="#" onclick="return doclink('link-146', 'BUFFER_SIZE', 'link-146');">BUFFER_SIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1024</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line"> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FixedInputProcessor.id"></a><div id="FixedInputProcessor.id-def"><a name="L359"></a><tt class="py-lineno">359</tt> <a class="py-toggle" href="#" id="FixedInputProcessor.id-toggle" onclick="return toggle('FixedInputProcessor.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FixedInputProcessor-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FixedInputProcessor.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FixedInputProcessor.id-expanded"><a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"test_fixed"</tt> </tt>
+</div><a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line"> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FixedInputProcessor.setup"></a><div id="FixedInputProcessor.setup-def"><a name="L363"></a><tt class="py-lineno">363</tt> <a class="py-toggle" href="#" id="FixedInputProcessor.setup-toggle" onclick="return toggle('FixedInputProcessor.setup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FixedInputProcessor-class.html#setup">setup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channels</tt><tt class="py-op">,</tt> <tt class="py-param">samplerate</tt><tt class="py-op">,</tt> <tt class="py-param">nframes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FixedInputProcessor.setup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FixedInputProcessor.setup-expanded"><a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-147" class="py-name" targets="Class timeside.tests.api.examples.FixedInputProcessor=timeside.tests.api.examples.FixedInputProcessor-class.html"><a title="timeside.tests.api.examples.FixedInputProcessor" class="py-name" href="#" onclick="return doclink('link-147', 'FixedInputProcessor', 'link-147');">FixedInputProcessor</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-148', 'setup', 'link-15');">setup</a></tt><tt class="py-op">(</tt><tt id="link-149" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-149', 'channels', 'link-19');">channels</a></tt><tt class="py-op">,</tt> <tt id="link-150" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-150', 'samplerate', 'link-20');">samplerate</a></tt><tt class="py-op">,</tt> <tt id="link-151" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-151', 'nframes', 'link-21');">nframes</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">adapter</tt> <tt class="py-op">=</tt> <tt id="link-152" class="py-name"><a title="timeside.core.FixedSizeInputAdapter" class="py-name" href="#" onclick="return doclink('link-152', 'FixedSizeInputAdapter', 'link-5');">FixedSizeInputAdapter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="timeside.tests.api.examples.FixedInputProcessor.BUFFER_SIZE" class="py-name" href="#" onclick="return doclink('link-153', 'BUFFER_SIZE', 'link-146');">BUFFER_SIZE</a></tt><tt class="py-op">,</tt> <tt id="link-154" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-154', 'channels', 'link-19');">channels</a></tt><tt class="py-op">,</tt> <tt class="py-name">pad</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line"> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FixedInputProcessor.process"></a><div id="FixedInputProcessor.process-def"><a name="L368"></a><tt class="py-lineno">368</tt> <a class="py-toggle" href="#" id="FixedInputProcessor.process-toggle" onclick="return toggle('FixedInputProcessor.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.examples.FixedInputProcessor-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FixedInputProcessor.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FixedInputProcessor.process-expanded"><a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">buffer</tt><tt class="py-op">,</tt> <tt class="py-name">end</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">adapter</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-155', 'process', 'link-102');">process</a></tt><tt class="py-op">(</tt><tt id="link-156" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-156', 'frames', 'link-34');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-157" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-157', 'eod', 'link-38');">eod</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line">            <tt class="py-comment"># Test that the adapter is actually doing the job:</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">buffer</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="timeside.tests.api.examples.FixedInputProcessor.BUFFER_SIZE" class="py-name" href="#" onclick="return doclink('link-158', 'BUFFER_SIZE', 'link-146');">BUFFER_SIZE</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Bad buffer size from adapter"</tt><tt class="py-op">)</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line"> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-159" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-159', 'frames', 'link-34');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-160" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-160', 'eod', 'link-38');">eod</a></tt> </tt>
+</div></div><a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.examples.Duration-class.html b/doc/epydoc/timeside.tests.api.examples.Duration-class.html
new file mode 100644 (file)
index 0000000..3ec8c2e
--- /dev/null
@@ -0,0 +1,452 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.examples.Duration</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        <a href="timeside.tests.api.examples-module.html">Module&nbsp;examples</a> ::
+        Class&nbsp;Duration
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.examples.Duration-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Duration</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Duration">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">Duration</strong>
+</pre>
+
+<hr />
+<p>A rather useless duration analyzer. Its only purpose is to test the 
+  nframes characteristic.</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Duration-class.html#setup" class="summary-sig-name">setup</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">channels</span>,
+        <span class="summary-sig-arg">samplerate</span>,
+        <span class="summary-sig-arg">nframes</span>)</span><br />
+      Allocate internal resources and reset state, so that this processor 
+      is ready for a new run.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Duration.setup">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="result"></a><span class="summary-sig-name">result</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Duration.result">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#process">process</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Duration-class.html#id" class="summary-sig-name">id</a>()</span><br />
+      Short alphanumeric, lower-case string which uniquely identify this 
+      processor, suitable for use as an HTTP/GET argument value, in 
+      filenames, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Duration.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Duration-class.html#name" class="summary-sig-name">name</a>()</span><br />
+      Return the analyzer name, such as &quot;Mean Level&quot;, &quot;Max 
+      level&quot;, &quot;Total length, etc..</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Duration.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Duration-class.html#unit" class="summary-sig-name">unit</a>()</span><br />
+      Return the unit of the data such as &quot;dB&quot;, 
+      &quot;seconds&quot;, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Duration.unit">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="setup"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setup</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">channels</span>,
+        <span class="sig-arg">samplerate</span>,
+        <span class="sig-arg">nframes</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Duration.setup">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Allocate internal resources and reset state, so that this processor is
+  ready for a new run.</p>
+  <p>The channels, samplerate and/or nframes arguments may be required by 
+  processors which accept input. An error will occur if any of these 
+  arguments is passed to an output-only processor such as a decoder.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#setup">core.Processor.setup</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="id"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">id</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Duration.id">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Short alphanumeric, lower-case string which uniquely identify this 
+  processor, suitable for use as an HTTP/GET argument value, in filenames, 
+  etc...</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="name"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">name</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Duration.name">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the analyzer name, such as &quot;Mean Level&quot;, &quot;Max 
+  level&quot;, &quot;Total length, etc..</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="unit"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">unit</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Duration.unit">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the unit of the data such as &quot;dB&quot;, 
+  &quot;seconds&quot;, etc...</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.examples.FileDecoder-class.html b/doc/epydoc/timeside.tests.api.examples.FileDecoder-class.html
new file mode 100644 (file)
index 0000000..b1df2a7
--- /dev/null
@@ -0,0 +1,773 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.examples.FileDecoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        <a href="timeside.tests.api.examples-module.html">Module&nbsp;examples</a> ::
+        Class&nbsp;FileDecoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.examples.FileDecoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class FileDecoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">FileDecoder</strong>
+</pre>
+
+<hr />
+<p>A simple audiolab-based example decoder</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FileDecoder-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>)</span><br />
+      Create a new decoder for filename.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FileDecoder-class.html#setup" class="summary-sig-name">setup</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Allocate internal resources and reset state, so that this processor 
+      is ready for a new run.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.setup">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FileDecoder-class.html#release" class="summary-sig-name">release</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Release resources owned by this processor.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.release">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FileDecoder-class.html#channels" class="summary-sig-name">channels</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Number of channels in the data returned by process().</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.channels">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FileDecoder-class.html#samplerate" class="summary-sig-name">samplerate</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Samplerate of the data returned by process().</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.samplerate">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FileDecoder-class.html#nframes" class="summary-sig-name">nframes</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      The total number of frames that this processor can output, or None if
+      the duration is unknown.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.nframes">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FileDecoder-class.html#format" class="summary-sig-name">format</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return a user-friendly file format string</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.format">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FileDecoder-class.html#encoding" class="summary-sig-name">encoding</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return a user-friendly encoding string</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.encoding">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FileDecoder-class.html#resolution" class="summary-sig-name">resolution</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return the sample width (8, 16, etc..) of original audio file/stream,
+      or None if not applicable/known</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.resolution">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FileDecoder-class.html#metadata" class="summary-sig-name">metadata</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return the metadata embedded into the encoded stream, if any.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.metadata">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FileDecoder-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">eod</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FileDecoder-class.html#id" class="summary-sig-name">id</a>()</span><br />
+      Short alphanumeric, lower-case string which uniquely identify this 
+      processor, suitable for use as an HTTP/GET argument value, in 
+      filenames, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="id"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">id</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.id">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Short alphanumeric, lower-case string which uniquely identify this 
+  processor, suitable for use as an HTTP/GET argument value, in filenames, 
+  etc...</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">filename</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Create a new decoder for filename.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="setup"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setup</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.setup">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Allocate internal resources and reset state, so that this processor is
+  ready for a new run.</p>
+  <p>The channels, samplerate and/or nframes arguments may be required by 
+  processors which accept input. An error will occur if any of these 
+  arguments is passed to an output-only processor such as a decoder.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#setup">core.Processor.setup</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="release"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">release</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.release">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Release resources owned by this processor. The processor cannot be 
+  used anymore after calling this method.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#release">core.Processor.release</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="channels"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">channels</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.channels">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Number of channels in the data returned by process(). May be different
+  from the number of channels passed to setup()</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#channels">core.Processor.channels</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="samplerate"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">samplerate</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.samplerate">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Samplerate of the data returned by process(). May be different from 
+  the samplerate passed to setup()</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#samplerate">core.Processor.samplerate</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="nframes"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">nframes</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.nframes">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>The total number of frames that this processor can output, or None if 
+  the duration is unknown.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#nframes">core.Processor.nframes</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="format"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">format</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.format">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return a user-friendly file format string</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="encoding"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">encoding</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.encoding">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return a user-friendly encoding string</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="resolution"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">resolution</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.resolution">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the sample width (8, 16, etc..) of original audio file/stream, 
+  or None if not applicable/known</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="metadata"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">metadata</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.metadata">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the metadata embedded into the encoded stream, if any.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frames</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">eod</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FileDecoder.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.examples.FixedInputProcessor-class.html b/doc/epydoc/timeside.tests.api.examples.FixedInputProcessor-class.html
new file mode 100644 (file)
index 0000000..ed83222
--- /dev/null
@@ -0,0 +1,428 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.examples.FixedInputProcessor</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        <a href="timeside.tests.api.examples-module.html">Module&nbsp;examples</a> ::
+        Class&nbsp;FixedInputProcessor
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.examples.FixedInputProcessor-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class FixedInputProcessor</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FixedInputProcessor">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">FixedInputProcessor</strong>
+</pre>
+
+<hr />
+<p>Processor which does absolutely nothing except illustrating the use of
+  the FixedInputSizeAdapter. It also tests things a bit.</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FixedInputProcessor-class.html#setup" class="summary-sig-name">setup</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">channels</span>,
+        <span class="summary-sig-arg">samplerate</span>,
+        <span class="summary-sig-arg">nframes</span>)</span><br />
+      Allocate internal resources and reset state, so that this processor 
+      is ready for a new run.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FixedInputProcessor.setup">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FixedInputProcessor-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>,
+        <span class="summary-sig-arg">eod</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FixedInputProcessor.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.FixedInputProcessor-class.html#id" class="summary-sig-name">id</a>()</span><br />
+      Short alphanumeric, lower-case string which uniquely identify this 
+      processor, suitable for use as an HTTP/GET argument value, in 
+      filenames, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FixedInputProcessor.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="BUFFER_SIZE"></a><span class="summary-name">BUFFER_SIZE</span> = <code title="1024">1024</code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="id"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">id</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FixedInputProcessor.id">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Short alphanumeric, lower-case string which uniquely identify this 
+  processor, suitable for use as an HTTP/GET argument value, in filenames, 
+  etc...</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="setup"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setup</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">channels</span>,
+        <span class="sig-arg">samplerate</span>,
+        <span class="sig-arg">nframes</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FixedInputProcessor.setup">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Allocate internal resources and reset state, so that this processor is
+  ready for a new run.</p>
+  <p>The channels, samplerate and/or nframes arguments may be required by 
+  processors which accept input. An error will occur if any of these 
+  arguments is passed to an output-only processor such as a decoder.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#setup">core.Processor.setup</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frames</span>,
+        <span class="sig-arg">eod</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#FixedInputProcessor.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.examples.Gain-class.html b/doc/epydoc/timeside.tests.api.examples.Gain-class.html
new file mode 100644 (file)
index 0000000..ceb0b35
--- /dev/null
@@ -0,0 +1,430 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.examples.Gain</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        <a href="timeside.tests.api.examples-module.html">Module&nbsp;examples</a> ::
+        Class&nbsp;Gain
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.examples.Gain-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Gain</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Gain">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">Gain</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Gain-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">gain</span>=<span class="summary-sig-default">1.0</span>)</span><br />
+      Create a new effect.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Gain.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Gain-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>,
+        <span class="summary-sig-arg">eod</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Gain.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>,
+      <code><a href="timeside.core.Processor-class.html#setup">setup</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Gain-class.html#id" class="summary-sig-name">id</a>()</span><br />
+      Short alphanumeric, lower-case string which uniquely identify this 
+      processor, suitable for use as an HTTP/GET argument value, in 
+      filenames, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Gain.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Gain-class.html#name" class="summary-sig-name">name</a>()</span><br />
+      Return the effect name</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Gain.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">gain</span>=<span class="sig-default">1.0</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Gain.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Create a new effect.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="id"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">id</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Gain.id">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Short alphanumeric, lower-case string which uniquely identify this 
+  processor, suitable for use as an HTTP/GET argument value, in filenames, 
+  etc...</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="name"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">name</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Gain.name">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the effect name</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frames</span>,
+        <span class="sig-arg">eod</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Gain.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.examples.MaxLevel-class.html b/doc/epydoc/timeside.tests.api.examples.MaxLevel-class.html
new file mode 100644 (file)
index 0000000..b76bdfe
--- /dev/null
@@ -0,0 +1,499 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.examples.MaxLevel</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        <a href="timeside.tests.api.examples-module.html">Module&nbsp;examples</a> ::
+        Class&nbsp;MaxLevel
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.examples.MaxLevel-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class MaxLevel</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#MaxLevel">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">MaxLevel</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.MaxLevel-class.html#setup" class="summary-sig-name">setup</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">channels</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">samplerate</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">nframes</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Allocate internal resources and reset state, so that this processor 
+      is ready for a new run.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#MaxLevel.setup">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.MaxLevel-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>,
+        <span class="summary-sig-arg">eod</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#MaxLevel.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="result"></a><span class="summary-sig-name">result</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#MaxLevel.result">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.MaxLevel-class.html#id" class="summary-sig-name">id</a>()</span><br />
+      Short alphanumeric, lower-case string which uniquely identify this 
+      processor, suitable for use as an HTTP/GET argument value, in 
+      filenames, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#MaxLevel.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.MaxLevel-class.html#name" class="summary-sig-name">name</a>()</span><br />
+      Return the analyzer name, such as &quot;Mean Level&quot;, &quot;Max 
+      level&quot;, &quot;Total length, etc..</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#MaxLevel.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.MaxLevel-class.html#unit" class="summary-sig-name">unit</a>()</span><br />
+      Return the unit of the data such as &quot;dB&quot;, 
+      &quot;seconds&quot;, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#MaxLevel.unit">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="setup"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setup</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">channels</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">samplerate</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">nframes</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#MaxLevel.setup">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Allocate internal resources and reset state, so that this processor is
+  ready for a new run.</p>
+  <p>The channels, samplerate and/or nframes arguments may be required by 
+  processors which accept input. An error will occur if any of these 
+  arguments is passed to an output-only processor such as a decoder.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#setup">core.Processor.setup</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="id"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">id</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#MaxLevel.id">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Short alphanumeric, lower-case string which uniquely identify this 
+  processor, suitable for use as an HTTP/GET argument value, in filenames, 
+  etc...</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="name"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">name</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#MaxLevel.name">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the analyzer name, such as &quot;Mean Level&quot;, &quot;Max 
+  level&quot;, &quot;Total length, etc..</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="unit"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">unit</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#MaxLevel.unit">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the unit of the data such as &quot;dB&quot;, 
+  &quot;seconds&quot;, etc...</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frames</span>,
+        <span class="sig-arg">eod</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#MaxLevel.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.examples.Spectrogram-class.html b/doc/epydoc/timeside.tests.api.examples.Spectrogram-class.html
new file mode 100644 (file)
index 0000000..dcaccdd
--- /dev/null
@@ -0,0 +1,609 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.examples.Spectrogram</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        <a href="timeside.tests.api.examples-module.html">Module&nbsp;examples</a> ::
+        Class&nbsp;Spectrogram
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.examples.Spectrogram-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Spectrogram</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">Spectrogram</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Spectrogram-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">width</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">height</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">output</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">bg_color</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">color_scheme</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Create a new grapher.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Spectrogram-class.html#set_colors" class="summary-sig-name">set_colors</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">background</span>,
+        <span class="summary-sig-arg">scheme</span>)</span><br />
+      Set the colors used for image generation.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.set_colors">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Spectrogram-class.html#setup" class="summary-sig-name">setup</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">channels</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">samplerate</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">nframes</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Allocate internal resources and reset state, so that this processor 
+      is ready for a new run.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.setup">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Spectrogram-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>,
+        <span class="summary-sig-arg">eod</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Spectrogram-class.html#render" class="summary-sig-name">render</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return a PIL Image object visually representing all of the data 
+      passed by repeatedly calling process()</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Spectrogram-class.html#id" class="summary-sig-name">id</a>()</span><br />
+      Short alphanumeric, lower-case string which uniquely identify this 
+      processor, suitable for use as an HTTP/GET argument value, in 
+      filenames, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Spectrogram-class.html#name" class="summary-sig-name">name</a>()</span><br />
+      Return the graph name, such as &quot;Waveform&quot;, &quot;Spectral 
+      view&quot;, etc..</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="FFT_SIZE"></a><span class="summary-name">FFT_SIZE</span> = <code title="4096">4096</code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">width</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">height</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">output</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">bg_color</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">color_scheme</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Create a new grapher. width and height are generally in pixels but 
+  could be something else for eg. svg rendering, etc..</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="id"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">id</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.id">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Short alphanumeric, lower-case string which uniquely identify this 
+  processor, suitable for use as an HTTP/GET argument value, in filenames, 
+  etc...</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="name"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">name</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.name">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the graph name, such as &quot;Waveform&quot;, &quot;Spectral 
+  view&quot;, etc..</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="set_colors"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">set_colors</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">background</span>,
+        <span class="sig-arg">scheme</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.set_colors">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Set the colors used for image generation. background is a RGB tuple, 
+  and scheme a a predefined color theme name</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="setup"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setup</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">channels</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">samplerate</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">nframes</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.setup">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Allocate internal resources and reset state, so that this processor is
+  ready for a new run.</p>
+  <p>The channels, samplerate and/or nframes arguments may be required by 
+  processors which accept input. An error will occur if any of these 
+  arguments is passed to an output-only processor such as a decoder.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#setup">core.Processor.setup</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frames</span>,
+        <span class="sig-arg">eod</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="render"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">render</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Spectrogram.render">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return a PIL Image object visually representing all of the data passed
+  by repeatedly calling process()</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.examples.WavEncoder-class.html b/doc/epydoc/timeside.tests.api.examples.WavEncoder-class.html
new file mode 100644 (file)
index 0000000..f3ead8f
--- /dev/null
@@ -0,0 +1,616 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.examples.WavEncoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        <a href="timeside.tests.api.examples-module.html">Module&nbsp;examples</a> ::
+        Class&nbsp;WavEncoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.examples.WavEncoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class WavEncoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">WavEncoder</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.WavEncoder-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">output</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.WavEncoder-class.html#setup" class="summary-sig-name">setup</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">channels</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">samplerate</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">nframes</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Allocate internal resources and reset state, so that this processor 
+      is ready for a new run.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.setup">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.WavEncoder-class.html#set_metadata" class="summary-sig-name">set_metadata</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">metadata</span>)</span><br />
+      Set the metadata to be embedded in the encoded output.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.set_metadata">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.WavEncoder-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>,
+        <span class="summary-sig-arg">eod</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.WavEncoder-class.html#id" class="summary-sig-name">id</a>()</span><br />
+      Short alphanumeric, lower-case string which uniquely identify this 
+      processor, suitable for use as an HTTP/GET argument value, in 
+      filenames, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.WavEncoder-class.html#description" class="summary-sig-name">description</a>()</span><br />
+      Return a string describing what this encode format provides, is good 
+      for, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.description">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.WavEncoder-class.html#file_extension" class="summary-sig-name">file_extension</a>()</span><br />
+      Return the filename extension corresponding to this encode format</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.file_extension">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.WavEncoder-class.html#mime_type" class="summary-sig-name">mime_type</a>()</span><br />
+      Return the mime type corresponding to this encode format</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.mime_type">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">output</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="setup"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setup</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">channels</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">samplerate</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">nframes</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.setup">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Allocate internal resources and reset state, so that this processor is
+  ready for a new run.</p>
+  <p>The channels, samplerate and/or nframes arguments may be required by 
+  processors which accept input. An error will occur if any of these 
+  arguments is passed to an output-only processor such as a decoder.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#setup">core.Processor.setup</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="id"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">id</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.id">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Short alphanumeric, lower-case string which uniquely identify this 
+  processor, suitable for use as an HTTP/GET argument value, in filenames, 
+  etc...</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="description"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">description</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.description">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return a string describing what this encode format provides, is good 
+  for, etc... The description is meant to help the end user decide what 
+  format is good for him/her</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="file_extension"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">file_extension</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.file_extension">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the filename extension corresponding to this encode format</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="mime_type"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">mime_type</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.mime_type">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the mime type corresponding to this encode format</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="set_metadata"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">set_metadata</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">metadata</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.set_metadata">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Set the metadata to be embedded in the encoded output.</p>
+  <p>In non-streaming mode, this method updates the metadata directly into 
+  the output file, without re-encoding the audio data, provided this file 
+  already exists.</p>
+  <p>It isn't required to call this method, but if called, it must be 
+  before process().</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frames</span>,
+        <span class="sig-arg">eod</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#WavEncoder.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.examples.Waveform-class.html b/doc/epydoc/timeside.tests.api.examples.Waveform-class.html
new file mode 100644 (file)
index 0000000..f167143
--- /dev/null
@@ -0,0 +1,609 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.examples.Waveform</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        <a href="timeside.tests.api.examples-module.html">Module&nbsp;examples</a> ::
+        Class&nbsp;Waveform
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.examples.Waveform-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Waveform</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">Waveform</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Waveform-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">width</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">height</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">output</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">bg_color</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">color_scheme</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Create a new grapher.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Waveform-class.html#set_colors" class="summary-sig-name">set_colors</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">background</span>,
+        <span class="summary-sig-arg">scheme</span>)</span><br />
+      Set the colors used for image generation.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.set_colors">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Waveform-class.html#setup" class="summary-sig-name">setup</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">channels</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">samplerate</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">nframes</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Allocate internal resources and reset state, so that this processor 
+      is ready for a new run.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.setup">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Waveform-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>,
+        <span class="summary-sig-arg">eod</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Waveform-class.html#render" class="summary-sig-name">render</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return a PIL Image object visually representing all of the data 
+      passed by repeatedly calling process()</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.render">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Waveform-class.html#id" class="summary-sig-name">id</a>()</span><br />
+      Short alphanumeric, lower-case string which uniquely identify this 
+      processor, suitable for use as an HTTP/GET argument value, in 
+      filenames, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.examples.Waveform-class.html#name" class="summary-sig-name">name</a>()</span><br />
+      Return the graph name, such as &quot;Waveform&quot;, &quot;Spectral 
+      view&quot;, etc..</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.name">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="FFT_SIZE"></a><span class="summary-name">FFT_SIZE</span> = <code title="1024">1024</code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">width</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">height</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">output</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">bg_color</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">color_scheme</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Create a new grapher. width and height are generally in pixels but 
+  could be something else for eg. svg rendering, etc..</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="id"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">id</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.id">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Short alphanumeric, lower-case string which uniquely identify this 
+  processor, suitable for use as an HTTP/GET argument value, in filenames, 
+  etc...</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="name"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">name</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.name">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the graph name, such as &quot;Waveform&quot;, &quot;Spectral 
+  view&quot;, etc..</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="set_colors"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">set_colors</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">background</span>,
+        <span class="sig-arg">scheme</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.set_colors">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Set the colors used for image generation. background is a RGB tuple, 
+  and scheme a a predefined color theme name</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="setup"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setup</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">channels</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">samplerate</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">nframes</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.setup">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Allocate internal resources and reset state, so that this processor is
+  ready for a new run.</p>
+  <p>The channels, samplerate and/or nframes arguments may be required by 
+  processors which accept input. An error will occur if any of these 
+  arguments is passed to an output-only processor such as a decoder.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#setup">core.Processor.setup</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frames</span>,
+        <span class="sig-arg">eod</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="render"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">render</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.examples-pysrc.html#Waveform.render">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return a PIL Image object visually representing all of the data passed
+  by repeatedly calling process()</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.gstreamer-module.html b/doc/epydoc/timeside.tests.api.gstreamer-module.html
new file mode 100644 (file)
index 0000000..51e3795
--- /dev/null
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.gstreamer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        Module&nbsp;gstreamer
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.gstreamer-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module gstreamer</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.gstreamer.FileDecoder-class.html" class="summary-name">FileDecoder</a><br />
+      gstreamer-based decoder
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.gstreamer.WavEncoder-class.html" class="summary-name">WavEncoder</a><br />
+      gstreamer-based encoder
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.gstreamer-pysrc.html b/doc/epydoc/timeside.tests.api.gstreamer-pysrc.html
new file mode 100644 (file)
index 0000000..1fe8ed1
--- /dev/null
@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.gstreamer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        Module&nbsp;gstreamer
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.gstreamer-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.tests.api.gstreamer-module.html">Module timeside.tests.api.gstreamer</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (C) 2007-2009 Parisson</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007 Olivier Guilyardi &lt;olivier@samalyse.com&gt;</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (c) 2007-2009 Guillaume Pellerin &lt;pellerin@parisson.com&gt;</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of TimeSide.</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is free software: you can redistribute it and/or modify</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation, either version 2 of the License, or</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"># TimeSide is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with TimeSide.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-comment"># Author: Paul Brossier &lt;piem@piem.org&gt;</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-1', 'core', 'link-1');">core</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class timeside.core.Processor=timeside.core.Processor-class.html"><a title="timeside.core.Processor" class="py-name" href="#" onclick="return doclink('link-2', 'Processor', 'link-2');">Processor</a></tt><tt class="py-op">,</tt> <tt id="link-3" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-3', 'implements', 'link-3');">implements</a></tt><tt class="py-op">,</tt> <tt id="link-4" class="py-name" targets="Function timeside.component.interfacedoc()=timeside.component-module.html#interfacedoc"><a title="timeside.component.interfacedoc" class="py-name" href="#" onclick="return doclink('link-4', 'interfacedoc', 'link-4');">interfacedoc</a></tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-5" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-5', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-6', 'api', 'link-6');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Class timeside.api.IDecoder=timeside.api.IDecoder-class.html"><a title="timeside.api.IDecoder" class="py-name" href="#" onclick="return doclink('link-7', 'IDecoder', 'link-7');">IDecoder</a></tt><tt class="py-op">,</tt> <tt id="link-8" class="py-name" targets="Class timeside.api.IEncoder=timeside.api.IEncoder-class.html"><a title="timeside.api.IEncoder" class="py-name" href="#" onclick="return doclink('link-8', 'IEncoder', 'link-8');">IEncoder</a></tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">numpy</tt> <tt class="py-keyword">import</tt> <tt class="py-name">array</tt><tt class="py-op">,</tt> <tt class="py-name">frombuffer</tt><tt class="py-op">,</tt> <tt class="py-name">getbuffer</tt><tt class="py-op">,</tt> <tt class="py-name">float32</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">pygst</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-name">pygst</tt><tt class="py-op">.</tt><tt class="py-name">require</tt><tt class="py-op">(</tt><tt class="py-string">'0.10'</tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gst</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gobject</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-name">gobject</tt><tt class="py-op">.</tt><tt class="py-name">threads_init</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="FileDecoder"></a><div id="FileDecoder-def"><a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="FileDecoder-toggle" onclick="return toggle('FileDecoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html">FileDecoder</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="FileDecoder-expanded"><a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">    <tt class="py-docstring">""" gstreamer-based decoder """</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">    <tt id="link-9" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-9', 'implements', 'link-3');">implements</a></tt><tt class="py-op">(</tt><tt id="link-10" class="py-name"><a title="timeside.api.IDecoder" class="py-name" href="#" onclick="return doclink('link-10', 'IDecoder', 'link-7');">IDecoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">    <tt class="py-comment"># duration ms, before discovery process times out</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt id="link-11" class="py-name" targets="Variable timeside.tests.api.gstreamer.FileDecoder.MAX_DISCOVERY_TIME=timeside.tests.api.gstreamer.FileDecoder-class.html#MAX_DISCOVERY_TIME"><a title="timeside.tests.api.gstreamer.FileDecoder.MAX_DISCOVERY_TIME" class="py-name" href="#" onclick="return doclink('link-11', 'MAX_DISCOVERY_TIME', 'link-11');">MAX_DISCOVERY_TIME</a></tt> <tt class="py-op">=</tt> <tt class="py-number">3000</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">    <tt id="link-12" class="py-name" targets="Variable timeside.tests.api.gstreamer.FileDecoder.audioformat=timeside.tests.api.gstreamer.FileDecoder-class.html#audioformat"><a title="timeside.tests.api.gstreamer.FileDecoder.audioformat" class="py-name" href="#" onclick="return doclink('link-12', 'audioformat', 'link-12');">audioformat</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">    <tt id="link-13" class="py-name" targets="Variable timeside.tests.api.gstreamer.FileDecoder.audiochannels=timeside.tests.api.gstreamer.FileDecoder-class.html#audiochannels"><a title="timeside.tests.api.gstreamer.FileDecoder.audiochannels" class="py-name" href="#" onclick="return doclink('link-13', 'audiochannels', 'link-13');">audiochannels</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">    <tt id="link-14" class="py-name" targets="Variable timeside.tests.api.gstreamer.FileDecoder.audiorate=timeside.tests.api.gstreamer.FileDecoder-class.html#audiorate"><a title="timeside.tests.api.gstreamer.FileDecoder.audiorate" class="py-name" href="#" onclick="return doclink('link-14', 'audiorate', 'link-14');">audiorate</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">    <tt id="link-15" class="py-name" targets="Variable timeside.tests.api.gstreamer.FileDecoder.audionframes=timeside.tests.api.gstreamer.FileDecoder-class.html#audionframes"><a title="timeside.tests.api.gstreamer.FileDecoder.audionframes" class="py-name" href="#" onclick="return doclink('link-15', 'audionframes', 'link-15');">audionframes</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">    <tt id="link-16" class="py-name" targets="Variable timeside.tests.api.gstreamer.FileDecoder.mimetype=timeside.tests.api.gstreamer.FileDecoder-class.html#mimetype,Function timeside.tests.test.mimetype()=timeside.tests.test-module.html#mimetype"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-16', 'mimetype', 'link-16');">mimetype</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">    <tt class="py-comment"># IProcessor methods</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.id"></a><div id="FileDecoder.id-def"><a name="L51"></a><tt class="py-lineno"> 51</tt> <a class="py-toggle" href="#" id="FileDecoder.id-toggle" onclick="return toggle('FileDecoder.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.id-expanded"><a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"test_gstreamerdec"</tt> </tt>
+</div><a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"> </tt>
+<a name="FileDecoder.setup"></a><div id="FileDecoder.setup-def"><a name="L54"></a><tt class="py-lineno"> 54</tt> <a class="py-toggle" href="#" id="FileDecoder.setup-toggle" onclick="return toggle('FileDecoder.setup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#setup">setup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channels</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">samplerate</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">nframes</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.setup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.setup-expanded"><a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-comment"># the output data format we want</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">caps</tt> <tt class="py-op">=</tt> <tt class="py-string">"audio/x-raw-float, width=32"</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-name">pipeline</tt> <tt class="py-op">=</tt> <tt class="py-name">gst</tt><tt class="py-op">.</tt><tt class="py-name">parse_launch</tt><tt class="py-op">(</tt><tt class="py-string">'''uridecodebin uri=%s</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-string">            ! audioconvert</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"><tt class="py-string">            ! %s</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-string">            ! appsink name=sink sync=False '''</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">caps</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-comment"># store a pointer to appsink in our decoder object </tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sink</tt> <tt class="py-op">=</tt> <tt class="py-name">pipeline</tt><tt class="py-op">.</tt><tt class="py-name">get_by_name</tt><tt class="py-op">(</tt><tt class="py-string">'sink'</tt><tt class="py-op">)</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt class="py-comment"># adjust length of emitted buffers</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># self.sink.set_property('blocksize', 0x10000)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># start pipeline</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">pipeline</tt><tt class="py-op">.</tt><tt class="py-name">set_state</tt><tt class="py-op">(</tt><tt class="py-name">gst</tt><tt class="py-op">.</tt><tt class="py-name">STATE_PLAYING</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.channels"></a><div id="FileDecoder.channels-def"><a name="L69"></a><tt class="py-lineno"> 69</tt> <a class="py-toggle" href="#" id="FileDecoder.channels-toggle" onclick="return toggle('FileDecoder.channels');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#channels">channels</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.channels-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.channels-expanded"><a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt>  <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.audiochannels" class="py-name" href="#" onclick="return doclink('link-17', 'audiochannels', 'link-13');">audiochannels</a></tt> </tt>
+</div><a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.samplerate"></a><div id="FileDecoder.samplerate-def"><a name="L73"></a><tt class="py-lineno"> 73</tt> <a class="py-toggle" href="#" id="FileDecoder.samplerate-toggle" onclick="return toggle('FileDecoder.samplerate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#samplerate">samplerate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.samplerate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.samplerate-expanded"><a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.audiorate" class="py-name" href="#" onclick="return doclink('link-18', 'audiorate', 'link-14');">audiorate</a></tt>  </tt>
+</div><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.nframes"></a><div id="FileDecoder.nframes-def"><a name="L77"></a><tt class="py-lineno"> 77</tt> <a class="py-toggle" href="#" id="FileDecoder.nframes-toggle" onclick="return toggle('FileDecoder.nframes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#nframes">nframes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.nframes-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.nframes-expanded"><a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.audionframes" class="py-name" href="#" onclick="return doclink('link-19', 'audionframes', 'link-15');">audionframes</a></tt> </tt>
+</div><a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.process"></a><div id="FileDecoder.process-def"><a name="L81"></a><tt class="py-lineno"> 81</tt> <a class="py-toggle" href="#" id="FileDecoder.process-toggle" onclick="return toggle('FileDecoder.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.process-expanded"><a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">            <tt class="py-name">buf</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sink</tt><tt class="py-op">.</tt><tt class="py-name">emit</tt><tt class="py-op">(</tt><tt class="py-string">'pull-buffer'</tt><tt class="py-op">)</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">SystemError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">            <tt class="py-comment"># should never happen</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">print</tt> <tt class="py-string">'SystemError'</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-number">0.</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">buf</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-number">0.</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Method timeside.tests.api.gstreamer.FileDecoder.gst_buffer_to_numpy_array()=timeside.tests.api.gstreamer.FileDecoder-class.html#gst_buffer_to_numpy_array"><a title="timeside.tests.api.gstreamer.FileDecoder.gst_buffer_to_numpy_array" class="py-name" href="#" onclick="return doclink('link-20', 'gst_buffer_to_numpy_array', 'link-20');">gst_buffer_to_numpy_array</a></tt><tt class="py-op">(</tt><tt class="py-name">buf</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.release"></a><div id="FileDecoder.release-def"><a name="L93"></a><tt class="py-lineno"> 93</tt> <a class="py-toggle" href="#" id="FileDecoder.release-toggle" onclick="return toggle('FileDecoder.release');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#release">release</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.release-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.release-expanded"><a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-comment"># nothing to do for now </tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">    <tt class="py-comment">## IDecoder methods</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.__init__"></a><div id="FileDecoder.__init__-def"><a name="L100"></a><tt class="py-lineno">100</tt> <a class="py-toggle" href="#" id="FileDecoder.__init__-toggle" onclick="return toggle('FileDecoder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.__init__-expanded"><a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-comment"># is this a file? </tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">import</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">exists</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">            <tt class="py-comment"># get the absolute path</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">abspath</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">            <tt class="py-comment"># first run the file/uri through the discover pipeline</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method timeside.tests.api.gstreamer.FileDecoder.discover()=timeside.tests.api.gstreamer.FileDecoder-class.html#discover"><a title="timeside.tests.api.gstreamer.FileDecoder.discover" class="py-name" href="#" onclick="return doclink('link-21', 'discover', 'link-21');">discover</a></tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">            <tt class="py-comment"># and make a uri of it</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">from</tt> <tt class="py-name">urllib</tt> <tt class="py-keyword">import</tt> <tt class="py-name">quote</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-string">'file://'</tt><tt class="py-op">+</tt><tt class="py-name">quote</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.format"></a><div id="FileDecoder.format-def"><a name="L114"></a><tt class="py-lineno">114</tt> <a class="py-toggle" href="#" id="FileDecoder.format-toggle" onclick="return toggle('FileDecoder.format');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#format">format</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.format-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.format-expanded"><a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-comment"># TODO check</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-22', 'mimetype', 'link-16');">mimetype</a></tt> </tt>
+</div><a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.encoding"></a><div id="FileDecoder.encoding-def"><a name="L119"></a><tt class="py-lineno">119</tt> <a class="py-toggle" href="#" id="FileDecoder.encoding-toggle" onclick="return toggle('FileDecoder.encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#encoding">encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.encoding-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.encoding-expanded"><a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-comment"># TODO check</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-23', 'mimetype', 'link-16');">mimetype</a></tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.resolution"></a><div id="FileDecoder.resolution-def"><a name="L124"></a><tt class="py-lineno">124</tt> <a class="py-toggle" href="#" id="FileDecoder.resolution-toggle" onclick="return toggle('FileDecoder.resolution');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#resolution">resolution</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.resolution-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.resolution-expanded"><a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-comment"># TODO check: width or depth?</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">audiowidth</tt>  </tt>
+</div><a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="FileDecoder.metadata"></a><div id="FileDecoder.metadata-def"><a name="L129"></a><tt class="py-lineno">129</tt> <a class="py-toggle" href="#" id="FileDecoder.metadata-toggle" onclick="return toggle('FileDecoder.metadata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#metadata">metadata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.metadata-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.metadata-expanded"><a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-comment"># TODO check</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tags</tt> </tt>
+</div><a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">    <tt class="py-comment">## gst.extend discoverer</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="FileDecoder.discover"></a><div id="FileDecoder.discover-def"><a name="L135"></a><tt class="py-lineno">135</tt> <a class="py-toggle" href="#" id="FileDecoder.discover-toggle" onclick="return toggle('FileDecoder.discover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#discover">discover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.discover-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.discover-expanded"><a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">        <tt class="py-docstring">""" gstreamer based helper function to get file attributes """</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt class="py-name">gst</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt> <tt class="py-keyword">import</tt> <tt class="py-name">discoverer</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">discoverer</tt><tt class="py-op">.</tt><tt class="py-name">Discoverer</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.MAX_DISCOVERY_TIME" class="py-name" href="#" onclick="return doclink('link-24', 'MAX_DISCOVERY_TIME', 'link-11');">MAX_DISCOVERY_TIME</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">        <tt class="py-name">d</tt><tt class="py-op">.</tt><tt class="py-name">connect</tt><tt class="py-op">(</tt><tt class="py-string">'discovered'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method timeside.tests.api.gstreamer.FileDecoder.discovered()=timeside.tests.api.gstreamer.FileDecoder-class.html#discovered"><a title="timeside.tests.api.gstreamer.FileDecoder.discovered" class="py-name" href="#" onclick="return doclink('link-25', 'discovered', 'link-25');">discovered</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mainloop</tt> <tt class="py-op">=</tt> <tt class="py-name">gobject</tt><tt class="py-op">.</tt><tt class="py-name">MainLoop</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">        <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.discover" class="py-name" href="#" onclick="return doclink('link-26', 'discover', 'link-21');">discover</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mainloop</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method timeside.core.ProcessPipe.run()=timeside.core.ProcessPipe-class.html#run,Method timeside.tests.TestRunner.run()=timeside.tests.TestRunner-class.html#run,Method timeside.tests.test.TestAnalyzers.run()=timeside.tests.test.TestAnalyzers-class.html#run,Method timeside.tests.test.TestEncoders.run()=timeside.tests.test.TestEncoders-class.html#run,Method timeside.tests.test.TestGraphers.run()=timeside.tests.test.TestGraphers-class.html#run"><a title="timeside.core.ProcessPipe.run
+timeside.tests.TestRunner.run
+timeside.tests.test.TestAnalyzers.run
+timeside.tests.test.TestEncoders.run
+timeside.tests.test.TestGraphers.run" class="py-name" href="#" onclick="return doclink('link-27', 'run', 'link-27');">run</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"> </tt>
+<a name="FileDecoder.discovered"></a><div id="FileDecoder.discovered-def"><a name="L144"></a><tt class="py-lineno">144</tt> <a class="py-toggle" href="#" id="FileDecoder.discovered-toggle" onclick="return toggle('FileDecoder.discovered');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#discovered">discovered</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">d</tt><tt class="py-op">,</tt> <tt class="py-param">is_media</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.discovered-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.discovered-expanded"><a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-docstring">""" gstreamer based helper executed upon discover() completion """</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">is_media</tt> <tt class="py-keyword">and</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt class="py-name">is_audio</tt><tt class="py-op">:</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">            <tt class="py-comment"># copy the discoverer attributes to self</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.audiorate" class="py-name" href="#" onclick="return doclink('link-28', 'audiorate', 'link-14');">audiorate</a></tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.audiorate" class="py-name" href="#" onclick="return doclink('link-29', 'audiorate', 'link-14');">audiorate</a></tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-30', 'mimetype', 'link-16');">mimetype</a></tt><tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-31', 'mimetype', 'link-16');">mimetype</a></tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.audiochannels" class="py-name" href="#" onclick="return doclink('link-32', 'audiochannels', 'link-13');">audiochannels</a></tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.audiochannels" class="py-name" href="#" onclick="return doclink('link-33', 'audiochannels', 'link-13');">audiochannels</a></tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">audiowidth</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt class="py-name">audiowidth</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">            <tt class="py-comment"># conversion from time in nanoseconds to frames </tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">from</tt> <tt class="py-name">math</tt> <tt class="py-keyword">import</tt> <tt class="py-name">ceil</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">            <tt id="link-34" class="py-name" targets="Module timeside.analyze.duration=timeside.analyze.duration-module.html,Variable timeside.tests.api.test_pipe.duration=timeside.tests.api.test_pipe-module.html#duration"><a title="timeside.analyze.duration
+timeside.tests.api.test_pipe.duration" class="py-name" href="#" onclick="return doclink('link-34', 'duration', 'link-34');">duration</a></tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.audiorate" class="py-name" href="#" onclick="return doclink('link-35', 'audiorate', 'link-14');">audiorate</a></tt> <tt class="py-op">*</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt class="py-name">audiolength</tt> <tt class="py-op">*</tt> <tt class="py-number">1.e-9</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.audionframes" class="py-name" href="#" onclick="return doclink('link-36', 'audionframes', 'link-15');">audionframes</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt> <tt class="py-op">(</tt><tt class="py-name">ceil</tt> <tt class="py-op">(</tt> <tt id="link-37" class="py-name"><a title="timeside.analyze.duration
+timeside.tests.api.test_pipe.duration" class="py-name" href="#" onclick="return doclink('link-37', 'duration', 'link-34');">duration</a></tt> <tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tags</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt class="py-name">tags</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt class="py-name">is_audio</tt><tt class="py-op">:</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-string">"error, no audio found!"</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-string">"fail"</tt><tt class="py-op">,</tt> <tt class="py-name">path</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mainloop</tt><tt class="py-op">.</tt><tt class="py-name">quit</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line"> </tt>
+<a name="FileDecoder.gst_buffer_to_numpy_array"></a><div id="FileDecoder.gst_buffer_to_numpy_array-def"><a name="L163"></a><tt class="py-lineno">163</tt> <a class="py-toggle" href="#" id="FileDecoder.gst_buffer_to_numpy_array-toggle" onclick="return toggle('FileDecoder.gst_buffer_to_numpy_array');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.FileDecoder-class.html#gst_buffer_to_numpy_array">gst_buffer_to_numpy_array</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">buf</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FileDecoder.gst_buffer_to_numpy_array-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FileDecoder.gst_buffer_to_numpy_array-expanded"><a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">        <tt class="py-docstring">""" gstreamer buffer to numpy array conversion """</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">        <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.audiochannels" class="py-name" href="#" onclick="return doclink('link-38', 'audiochannels', 'link-13');">audiochannels</a></tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">        <tt class="py-name">samples</tt> <tt class="py-op">=</tt> <tt class="py-name">frombuffer</tt><tt class="py-op">(</tt><tt class="py-name">buf</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">float32</tt><tt class="py-op">)</tt>  </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">        <tt class="py-name">samples</tt><tt class="py-op">.</tt><tt class="py-name">resize</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">samples</tt><tt class="py-op">)</tt><tt class="py-op">/</tt><tt class="py-name">chan</tt><tt class="py-op">,</tt> <tt class="py-name">chan</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">samples</tt> </tt>
+</div></div><a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"> </tt>
+<a name="WavEncoder"></a><div id="WavEncoder-def"><a name="L170"></a><tt class="py-lineno">170</tt> <a class="py-toggle" href="#" id="WavEncoder-toggle" onclick="return toggle('WavEncoder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.WavEncoder-class.html">WavEncoder</a><tt class="py-op">(</tt><tt class="py-base-class">Processor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="WavEncoder-expanded"><a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">    <tt class="py-docstring">""" gstreamer-based encoder """</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">    <tt id="link-39" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-39', 'implements', 'link-3');">implements</a></tt><tt class="py-op">(</tt><tt id="link-40" class="py-name"><a title="timeside.api.IEncoder" class="py-name" href="#" onclick="return doclink('link-40', 'IEncoder', 'link-8');">IEncoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"> </tt>
+<a name="WavEncoder.__init__"></a><div id="WavEncoder.__init__-def"><a name="L174"></a><tt class="py-lineno">174</tt> <a class="py-toggle" href="#" id="WavEncoder.__init__-toggle" onclick="return toggle('WavEncoder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.WavEncoder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">output</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.__init__-expanded"><a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">output</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">output</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Streaming not supported"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line"> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.setup"></a><div id="WavEncoder.setup-def"><a name="L182"></a><tt class="py-lineno">182</tt> <a class="py-toggle" href="#" id="WavEncoder.setup-toggle" onclick="return toggle('WavEncoder.setup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.WavEncoder-class.html#setup">setup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channels</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">samplerate</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">nframes</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.setup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.setup-expanded"><a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-41" class="py-name" targets="Class timeside.encode.wav.WavEncoder=timeside.encode.wav.WavEncoder-class.html,Class timeside.tests.api.examples.WavEncoder=timeside.tests.api.examples.WavEncoder-class.html,Class timeside.tests.api.gstreamer.WavEncoder=timeside.tests.api.gstreamer.WavEncoder-class.html"><a title="timeside.encode.wav.WavEncoder
+timeside.tests.api.examples.WavEncoder
+timeside.tests.api.gstreamer.WavEncoder" class="py-name" href="#" onclick="return doclink('link-41', 'WavEncoder', 'link-41');">WavEncoder</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method timeside.api.IProcessor.setup()=timeside.api.IProcessor-class.html#setup,Method timeside.core.Processor.setup()=timeside.core.Processor-class.html#setup,Method timeside.tests.api.examples.Duration.setup()=timeside.tests.api.examples.Duration-class.html#setup,Method timeside.tests.api.examples.FileDecoder.setup()=timeside.tests.api.examples.FileDecoder-class.html#setup,Method timeside.tests.api.examples.FixedInputProcessor.setup()=timeside.tests.api.examples.FixedInputProcessor-class.html#setup,Method timeside.tests.api.examples.MaxLevel.setup()=timeside.tests.api.examples.MaxLevel-class.html#setup,Method timeside.tests.api.examples.Spectrogram.setup()=timeside.tests.api.examples.Spectrogram-class.html#setup,Method timeside.tests.api.examples.WavEncoder.setup()=timeside.tests.api.examples.WavEncoder-class.html#setup,Method timeside.tests.api.examples.Waveform.setup()=timeside.tests.api.examples.Waveform-class.html#setup,Method timeside.tests.api.gstreamer.FileDecoder.setup()=timeside.tests.api.gstreamer.FileDecoder-class.html#setup,Method timeside.tests.api.gstreamer.WavEncoder.setup()=timeside.tests.api.gstreamer.WavEncoder-class.html#setup"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-42', 'setup', 'link-42');">setup</a></tt><tt class="py-op">(</tt><tt id="link-43" class="py-name" targets="Module timeside.analyze.channels=timeside.analyze.channels-module.html,Method timeside.api.IProcessor.channels()=timeside.api.IProcessor-class.html#channels,Method timeside.core.Processor.channels()=timeside.core.Processor-class.html#channels,Method timeside.tests.api.examples.FileDecoder.channels()=timeside.tests.api.examples.FileDecoder-class.html#channels,Method timeside.tests.api.gstreamer.FileDecoder.channels()=timeside.tests.api.gstreamer.FileDecoder-class.html#channels"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-43', 'channels', 'link-43');">channels</a></tt><tt class="py-op">,</tt> <tt id="link-44" class="py-name" targets="Module timeside.analyze.samplerate=timeside.analyze.samplerate-module.html,Method timeside.api.IProcessor.samplerate()=timeside.api.IProcessor-class.html#samplerate,Method timeside.core.Processor.samplerate()=timeside.core.Processor-class.html#samplerate,Method timeside.tests.api.examples.FileDecoder.samplerate()=timeside.tests.api.examples.FileDecoder-class.html#samplerate,Method timeside.tests.api.gstreamer.FileDecoder.samplerate()=timeside.tests.api.gstreamer.FileDecoder-class.html#samplerate,Variable timeside.tests.api.test_lolevel.samplerate=timeside.tests.api.test_lolevel-module.html#samplerate"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-44', 'samplerate', 'link-44');">samplerate</a></tt><tt class="py-op">,</tt> <tt id="link-45" class="py-name" targets="Method timeside.api.IProcessor.nframes()=timeside.api.IProcessor-class.html#nframes,Method timeside.core.FixedSizeInputAdapter.nframes()=timeside.core.FixedSizeInputAdapter-class.html#nframes,Method timeside.core.Processor.nframes()=timeside.core.Processor-class.html#nframes,Method timeside.tests.api.examples.FileDecoder.nframes()=timeside.tests.api.examples.FileDecoder-class.html#nframes,Method timeside.tests.api.gstreamer.FileDecoder.nframes()=timeside.tests.api.gstreamer.FileDecoder-class.html#nframes,Variable timeside.tests.api.test_lolevel.nframes=timeside.tests.api.test_lolevel-module.html#nframes"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-45', 'nframes', 'link-45');">nframes</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">        <tt class="py-comment"># TODO open file for writing</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># the output data format we want</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">pipeline</tt> <tt class="py-op">=</tt> <tt class="py-name">gst</tt><tt class="py-op">.</tt><tt class="py-name">parse_launch</tt><tt class="py-op">(</tt><tt class="py-string">''' appsrc name=src</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"><tt class="py-string">            ! audioconvert</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"><tt class="py-string">            ! wavenc</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"><tt class="py-string">            ! filesink location=%s '''</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">        <tt class="py-comment"># store a pointer to appsink in our encoder object </tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">src</tt> <tt class="py-op">=</tt> <tt class="py-name">pipeline</tt><tt class="py-op">.</tt><tt class="py-name">get_by_name</tt><tt class="py-op">(</tt><tt class="py-string">'src'</tt><tt class="py-op">)</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">        <tt class="py-name">srccaps</tt> <tt class="py-op">=</tt> <tt class="py-name">gst</tt><tt class="py-op">.</tt><tt class="py-name">Caps</tt><tt class="py-op">(</tt><tt class="py-string">"""audio/x-raw-float,</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"><tt class="py-string">            endianness=(int)1234,</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"><tt class="py-string">            channels=(int)%s,</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line"><tt class="py-string">            width=(int)32,</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"><tt class="py-string">            rate=(int)%d"""</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-46" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-46', 'channels', 'link-43');">channels</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-47" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-47', 'samplerate', 'link-44');">samplerate</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">src</tt><tt class="py-op">.</tt><tt class="py-name">set_property</tt><tt class="py-op">(</tt><tt class="py-string">"caps"</tt><tt class="py-op">,</tt> <tt class="py-name">srccaps</tt><tt class="py-op">)</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line"> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">        <tt class="py-comment"># start pipeline</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">pipeline</tt><tt class="py-op">.</tt><tt class="py-name">set_state</tt><tt class="py-op">(</tt><tt class="py-name">gst</tt><tt class="py-op">.</tt><tt class="py-name">STATE_PLAYING</tt><tt class="py-op">)</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipeline</tt> <tt class="py-op">=</tt> <tt class="py-name">pipeline</tt> </tt>
+</div><a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line"> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.id"></a><div id="WavEncoder.id-def"><a name="L205"></a><tt class="py-lineno">205</tt> <a class="py-toggle" href="#" id="WavEncoder.id-toggle" onclick="return toggle('WavEncoder.id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.WavEncoder-class.html#id">id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.id-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.id-expanded"><a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"test_gstreamerenc"</tt> </tt>
+</div><a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line"> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.description"></a><div id="WavEncoder.description-def"><a name="L210"></a><tt class="py-lineno">210</tt> <a class="py-toggle" href="#" id="WavEncoder.description-toggle" onclick="return toggle('WavEncoder.description');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.WavEncoder-class.html#description">description</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.description-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.description-expanded"><a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"Gstreamer based encoder"</tt> </tt>
+</div><a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line"> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.file_extension"></a><div id="WavEncoder.file_extension-def"><a name="L215"></a><tt class="py-lineno">215</tt> <a class="py-toggle" href="#" id="WavEncoder.file_extension-toggle" onclick="return toggle('WavEncoder.file_extension');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.WavEncoder-class.html#file_extension">file_extension</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.file_extension-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.file_extension-expanded"><a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"wav"</tt> </tt>
+</div><a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.mime_type"></a><div id="WavEncoder.mime_type-def"><a name="L220"></a><tt class="py-lineno">220</tt> <a class="py-toggle" href="#" id="WavEncoder.mime_type-toggle" onclick="return toggle('WavEncoder.mime_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.WavEncoder-class.html#mime_type">mime_type</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.mime_type-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.mime_type-expanded"><a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"audio/x-wav"</tt> </tt>
+</div><a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line"> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.set_metadata"></a><div id="WavEncoder.set_metadata-def"><a name="L224"></a><tt class="py-lineno">224</tt> <a class="py-toggle" href="#" id="WavEncoder.set_metadata-toggle" onclick="return toggle('WavEncoder.set_metadata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.WavEncoder-class.html#set_metadata">set_metadata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">metadata</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.set_metadata-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.set_metadata-expanded"><a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">        <tt class="py-comment">#TODO</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line"> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="WavEncoder.process"></a><div id="WavEncoder.process-def"><a name="L229"></a><tt class="py-lineno">229</tt> <a class="py-toggle" href="#" id="WavEncoder.process-toggle" onclick="return toggle('WavEncoder.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.WavEncoder-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">,</tt> <tt class="py-param">eod</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.process-expanded"><a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">        <tt class="py-name">buf</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name" targets="Method timeside.tests.api.gstreamer.WavEncoder.numpy_array_to_gst_buffer()=timeside.tests.api.gstreamer.WavEncoder-class.html#numpy_array_to_gst_buffer"><a title="timeside.tests.api.gstreamer.WavEncoder.numpy_array_to_gst_buffer" class="py-name" href="#" onclick="return doclink('link-48', 'numpy_array_to_gst_buffer', 'link-48');">numpy_array_to_gst_buffer</a></tt><tt class="py-op">(</tt><tt id="link-49" class="py-name" targets="Variable timeside.tests.api.test_lolevel.frames=timeside.tests.api.test_lolevel-module.html#frames"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-49', 'frames', 'link-49');">frames</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">src</tt><tt class="py-op">.</tt><tt class="py-name">emit</tt><tt class="py-op">(</tt><tt class="py-string">'push-buffer'</tt><tt class="py-op">,</tt> <tt class="py-name">buf</tt><tt class="py-op">)</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-50" class="py-name" targets="Variable timeside.tests.api.test_lolevel.eod=timeside.tests.api.test_lolevel-module.html#eod"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-50', 'eod', 'link-50');">eod</a></tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">src</tt><tt class="py-op">.</tt><tt class="py-name">emit</tt><tt class="py-op">(</tt><tt class="py-string">'end-of-stream'</tt><tt class="py-op">)</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-51" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-51', 'frames', 'link-49');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-52" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-52', 'eod', 'link-50');">eod</a></tt> </tt>
+</div><a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"> </tt>
+<a name="WavEncoder.numpy_array_to_gst_buffer"></a><div id="WavEncoder.numpy_array_to_gst_buffer-def"><a name="L235"></a><tt class="py-lineno">235</tt> <a class="py-toggle" href="#" id="WavEncoder.numpy_array_to_gst_buffer-toggle" onclick="return toggle('WavEncoder.numpy_array_to_gst_buffer');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.api.gstreamer.WavEncoder-class.html#numpy_array_to_gst_buffer">numpy_array_to_gst_buffer</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frames</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WavEncoder.numpy_array_to_gst_buffer-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WavEncoder.numpy_array_to_gst_buffer-expanded"><a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">        <tt class="py-docstring">""" gstreamer buffer to numpy array conversion """</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">        <tt class="py-name">buf</tt> <tt class="py-op">=</tt> <tt class="py-name">gst</tt><tt class="py-op">.</tt><tt class="py-name">Buffer</tt><tt class="py-op">(</tt><tt class="py-name">getbuffer</tt><tt class="py-op">(</tt><tt id="link-53" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-53', 'frames', 'link-49');">frames</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">buf</tt> </tt>
+</div></div><a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.gstreamer.FileDecoder-class.html b/doc/epydoc/timeside.tests.api.gstreamer.FileDecoder-class.html
new file mode 100644 (file)
index 0000000..508533d
--- /dev/null
@@ -0,0 +1,894 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.gstreamer.FileDecoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        <a href="timeside.tests.api.gstreamer-module.html">Module&nbsp;gstreamer</a> ::
+        Class&nbsp;FileDecoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.gstreamer.FileDecoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class FileDecoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">FileDecoder</strong>
+</pre>
+
+<hr />
+<p>gstreamer-based decoder</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#setup" class="summary-sig-name">setup</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">channels</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">samplerate</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">nframes</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Allocate internal resources and reset state, so that this processor 
+      is ready for a new run.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.setup">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#channels" class="summary-sig-name">channels</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Number of channels in the data returned by process().</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.channels">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#samplerate" class="summary-sig-name">samplerate</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Samplerate of the data returned by process().</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.samplerate">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#nframes" class="summary-sig-name">nframes</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      The total number of frames that this processor can output, or None if
+      the duration is unknown.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.nframes">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">eod</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#release" class="summary-sig-name">release</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Release resources owned by this processor.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.release">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">uri</span>)</span><br />
+      Create a new decoder for filename.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#format" class="summary-sig-name">format</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return a user-friendly file format string</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.format">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#encoding" class="summary-sig-name">encoding</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return a user-friendly encoding string</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.encoding">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#resolution" class="summary-sig-name">resolution</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return the sample width (8, 16, etc..) of original audio file/stream,
+      or None if not applicable/known</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.resolution">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#metadata" class="summary-sig-name">metadata</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return the metadata embedded into the encoded stream, if any.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.metadata">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="discover"></a><span class="summary-sig-name">discover</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">path</span>)</span><br />
+      gstreamer based helper function to get file attributes</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.discover">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="discovered"></a><span class="summary-sig-name">discovered</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">d</span>,
+        <span class="summary-sig-arg">is_media</span>)</span><br />
+      gstreamer based helper executed upon discover() completion</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.discovered">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="gst_buffer_to_numpy_array"></a><span class="summary-sig-name">gst_buffer_to_numpy_array</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">buf</span>)</span><br />
+      gstreamer buffer to numpy array conversion</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.gst_buffer_to_numpy_array">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.FileDecoder-class.html#id" class="summary-sig-name">id</a>()</span><br />
+      Short alphanumeric, lower-case string which uniquely identify this 
+      processor, suitable for use as an HTTP/GET argument value, in 
+      filenames, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="MAX_DISCOVERY_TIME"></a><span class="summary-name">MAX_DISCOVERY_TIME</span> = <code title="3000">3000</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="audioformat"></a><span class="summary-name">audioformat</span> = <code title="None">None</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="audiochannels"></a><span class="summary-name">audiochannels</span> = <code title="None">None</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="audiorate"></a><span class="summary-name">audiorate</span> = <code title="None">None</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="audionframes"></a><span class="summary-name">audionframes</span> = <code title="None">None</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="mimetype"></a><span class="summary-name">mimetype</span> = <code title="''"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="id"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">id</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.id">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Short alphanumeric, lower-case string which uniquely identify this 
+  processor, suitable for use as an HTTP/GET argument value, in filenames, 
+  etc...</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="setup"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setup</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">channels</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">samplerate</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">nframes</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.setup">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Allocate internal resources and reset state, so that this processor is
+  ready for a new run.</p>
+  <p>The channels, samplerate and/or nframes arguments may be required by 
+  processors which accept input. An error will occur if any of these 
+  arguments is passed to an output-only processor such as a decoder.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#setup">core.Processor.setup</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="channels"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">channels</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.channels">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Number of channels in the data returned by process(). May be different
+  from the number of channels passed to setup()</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#channels">core.Processor.channels</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="samplerate"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">samplerate</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.samplerate">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Samplerate of the data returned by process(). May be different from 
+  the samplerate passed to setup()</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#samplerate">core.Processor.samplerate</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="nframes"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">nframes</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.nframes">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>The total number of frames that this processor can output, or None if 
+  the duration is unknown.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#nframes">core.Processor.nframes</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frames</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">eod</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="release"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">release</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.release">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Release resources owned by this processor. The processor cannot be 
+  used anymore after calling this method.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#release">core.Processor.release</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">uri</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Create a new decoder for filename.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="format"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">format</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.format">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return a user-friendly file format string</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="encoding"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">encoding</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.encoding">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return a user-friendly encoding string</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="resolution"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">resolution</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.resolution">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the sample width (8, 16, etc..) of original audio file/stream, 
+  or None if not applicable/known</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="metadata"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">metadata</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#FileDecoder.metadata">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the metadata embedded into the encoded stream, if any.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.gstreamer.WavEncoder-class.html b/doc/epydoc/timeside.tests.api.gstreamer.WavEncoder-class.html
new file mode 100644 (file)
index 0000000..0245e5a
--- /dev/null
@@ -0,0 +1,636 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.gstreamer.WavEncoder</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        <a href="timeside.tests.api.gstreamer-module.html">Module&nbsp;gstreamer</a> ::
+        Class&nbsp;WavEncoder
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.gstreamer.WavEncoder-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class WavEncoder</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+         <a href="timeside.core.Processor-class.html">core.Processor</a> --+
+                          |
+                         <strong class="uidshort">WavEncoder</strong>
+</pre>
+
+<hr />
+<p>gstreamer-based encoder</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.MetaProcessor-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">output</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#setup" class="summary-sig-name">setup</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">channels</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">samplerate</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">nframes</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Allocate internal resources and reset state, so that this processor 
+      is ready for a new run.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.setup">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#set_metadata" class="summary-sig-name">set_metadata</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">metadata</span>)</span><br />
+      Set the metadata to be embedded in the encoded output.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.set_metadata">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>,
+        <span class="summary-sig-arg">eod</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Process input frames and return a (output_frames, eod) tuple.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="numpy_array_to_gst_buffer"></a><span class="summary-sig-name">numpy_array_to_gst_buffer</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frames</span>)</span><br />
+      gstreamer buffer to numpy array conversion</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.numpy_array_to_gst_buffer">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.core.Processor-class.html">core.Processor</a></code></b>:
+      <code><a href="timeside.core.Processor-class.html#__del__">__del__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#__or__">__or__</a></code>,
+      <code><a href="timeside.core.Processor-class.html#channels">channels</a></code>,
+      <code><a href="timeside.core.Processor-class.html#nframes">nframes</a></code>,
+      <code><a href="timeside.core.Processor-class.html#release">release</a></code>,
+      <code><a href="timeside.core.Processor-class.html#samplerate">samplerate</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#id" class="summary-sig-name">id</a>()</span><br />
+      Short alphanumeric, lower-case string which uniquely identify this 
+      processor, suitable for use as an HTTP/GET argument value, in 
+      filenames, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.id">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#description" class="summary-sig-name">description</a>()</span><br />
+      Return a string describing what this encode format provides, is good 
+      for, etc...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.description">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#file_extension" class="summary-sig-name">file_extension</a>()</span><br />
+      Return the filename extension corresponding to this encode format</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.file_extension">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.api.gstreamer.WavEncoder-class.html#mime_type" class="summary-sig-name">mime_type</a>()</span><br />
+      Return the mime type corresponding to this encode format</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.mime_type">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">output</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="setup"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setup</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">channels</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">samplerate</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">nframes</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.setup">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Allocate internal resources and reset state, so that this processor is
+  ready for a new run.</p>
+  <p>The channels, samplerate and/or nframes arguments may be required by 
+  processors which accept input. An error will occur if any of these 
+  arguments is passed to an output-only processor such as a decoder.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#setup">core.Processor.setup</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="id"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">id</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.id">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Short alphanumeric, lower-case string which uniquely identify this 
+  processor, suitable for use as an HTTP/GET argument value, in filenames, 
+  etc...</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="description"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">description</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.description">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return a string describing what this encode format provides, is good 
+  for, etc... The description is meant to help the end user decide what 
+  format is good for him/her</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="file_extension"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">file_extension</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.file_extension">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the filename extension corresponding to this encode format</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="mime_type"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">mime_type</span>()</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.mime_type">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Return the mime type corresponding to this encode format</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="set_metadata"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">set_metadata</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">metadata</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.set_metadata">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Set the metadata to be embedded in the encoded output.</p>
+  <p>In non-streaming mode, this method updates the metadata directly into 
+  the output file, without re-encoding the audio data, provided this file 
+  already exists.</p>
+  <p>It isn't required to call this method, but if called, it must be 
+  before process().</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frames</span>,
+        <span class="sig-arg">eod</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.api.gstreamer-pysrc.html#WavEncoder.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process input frames and return a (output_frames, eod) tuple. Both 
+  input and output frames are 2D numpy arrays, where columns are channels, 
+  and containing an undetermined number of frames.  eod=True means that the
+  end-of-data has been reached.</p>
+  <p>Output-only processors (such as decoders) will raise an exception if 
+  the frames argument is not None. All processors (even encoders) return 
+  data, even if that means returning the input unchanged.</p>
+  <p>Warning: it is required to call setup() before this method.</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="timeside.core.Processor-class.html#process">core.Processor.process</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.test_lolevel-module.html b/doc/epydoc/timeside.tests.api.test_lolevel-module.html
new file mode 100644 (file)
index 0000000..dd9b206
--- /dev/null
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.test_lolevel</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        Module&nbsp;test_lolevel
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.test_lolevel-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module test_lolevel</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.test_lolevel-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="use_gst"></a><span class="summary-name">use_gst</span> = <code title="0">0</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.test_lolevel-module.html#source" class="summary-name">source</a> = <code title="'/home/momo/dev/timeside/timeside/tests/api/../samples/guitar.wav'"><code class="variable-quote">'</code><code class="variable-string">/home/momo/dev/timeside/timeside/tests/api/../sample</code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="decoder"></a><span class="summary-name">decoder</span> = <code title="Decoder(source)">Decoder(source)</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="analyzer"></a><span class="summary-name">analyzer</span> = <code title="examples.MaxLevel()">examples.MaxLevel()</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="nchannels"></a><span class="summary-name">nchannels</span> = <code title="1">1</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="samplerate"></a><span class="summary-name">samplerate</span> = <code title="44100">44100</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="nframes"></a><span class="summary-name">nframes</span> = <code title="182046">182046</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="max_level"></a><span class="summary-name">max_level</span> = <code title="0.612457275390625">0.612457275390625</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="destination"></a><span class="summary-name">destination</span> = <code title="'normalized.wav'"><code class="variable-quote">'</code><code class="variable-string">normalized.wav</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="encoder"></a><span class="summary-name">encoder</span> = <code title="Encoder(destination)">Encoder(destination)</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="gain"></a><span class="summary-name">gain</span> = <code title="1.4694902586078031">1.4694902586078031</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="effect"></a><span class="summary-name">effect</span> = <code title="examples.Gain(gain)">examples.Gain(gain)</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="eod"></a><span class="summary-name">eod</span> = <code title="True">True</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.test_lolevel-module.html#frames" class="summary-name">frames</a> = <code title="array([[ 0.01394653],
+       [ 0.01077271],
+       [ 0.00872803],
+       ..., 
+       [ 0.        ],
+       [ 0.        ],
+       [ 0.        ]])">array([[ 0.0139465<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="source"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">source</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">/home/momo/dev/timeside/timeside/tests/api/../samples/guitar.wav</code><code class="variable-quote">'</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="frames"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">frames</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+array([[ 0.01394653],
+       [ 0.01077271],
+       [ 0.00872803],
+       ..., 
+       [ 0.        ],
+       [ 0.        ],
+       [ 0.        ]])
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.test_lolevel-pysrc.html b/doc/epydoc/timeside.tests.api.test_lolevel-pysrc.html
new file mode 100644 (file)
index 0000000..e2eb2df
--- /dev/null
@@ -0,0 +1,553 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.test_lolevel</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        Module&nbsp;test_lolevel
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.test_lolevel-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.tests.api.test_lolevel-module.html">Module timeside.tests.api.test_lolevel</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.tests=timeside.tests-module.html"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-1', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-2', 'api', 'link-2');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Module timeside.tests.api.examples=timeside.tests.api.examples-module.html"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-3', 'examples', 'link-3');">examples</a></tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable timeside.tests.api.test_lolevel.use_gst=timeside.tests.api.test_lolevel-module.html#use_gst,Variable timeside.tests.api.test_pipe.use_gst=timeside.tests.api.test_pipe-module.html#use_gst,Variable timeside.tests.api.test_pipe_spectrogram.use_gst=timeside.tests.api.test_pipe_spectrogram-module.html#use_gst,Variable timeside.tests.api.test_pipe_waveform.use_gst=timeside.tests.api.test_pipe_waveform-module.html#use_gst"><a title="timeside.tests.api.test_lolevel.use_gst
+timeside.tests.api.test_pipe.use_gst
+timeside.tests.api.test_pipe_spectrogram.use_gst
+timeside.tests.api.test_pipe_waveform.use_gst" class="py-name" href="#" onclick="return doclink('link-4', 'use_gst', 'link-4');">use_gst</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-5" class="py-name"><a title="timeside.tests.api.test_lolevel.use_gst
+timeside.tests.api.test_pipe.use_gst
+timeside.tests.api.test_pipe_spectrogram.use_gst
+timeside.tests.api.test_pipe_waveform.use_gst" class="py-name" href="#" onclick="return doclink('link-5', 'use_gst', 'link-4');">use_gst</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-6', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-7', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-8', 'api', 'link-2');">api</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Module timeside.tests.api.gstreamer=timeside.tests.api.gstreamer-module.html"><a title="timeside.tests.api.gstreamer" class="py-name" href="#" onclick="return doclink('link-9', 'gstreamer', 'link-9');">gstreamer</a></tt> <tt class="py-keyword">import</tt> <tt id="link-10" class="py-name" targets="Class timeside.tests.api.examples.FileDecoder=timeside.tests.api.examples.FileDecoder-class.html,Class timeside.tests.api.gstreamer.FileDecoder=timeside.tests.api.gstreamer.FileDecoder-class.html"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-10', 'FileDecoder', 'link-10');">FileDecoder</a></tt><tt class="py-op">,</tt> <tt id="link-11" class="py-name" targets="Class timeside.encode.wav.WavEncoder=timeside.encode.wav.WavEncoder-class.html,Class timeside.tests.api.examples.WavEncoder=timeside.tests.api.examples.WavEncoder-class.html,Class timeside.tests.api.gstreamer.WavEncoder=timeside.tests.api.gstreamer.WavEncoder-class.html"><a title="timeside.encode.wav.WavEncoder
+timeside.tests.api.examples.WavEncoder
+timeside.tests.api.gstreamer.WavEncoder" class="py-name" href="#" onclick="return doclink('link-11', 'WavEncoder', 'link-11');">WavEncoder</a></tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-12" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-12', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-13', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-14', 'api', 'link-2');">api</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-15', 'examples', 'link-3');">examples</a></tt> <tt class="py-keyword">import</tt> <tt id="link-16" class="py-name"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-16', 'FileDecoder', 'link-10');">FileDecoder</a></tt><tt class="py-op">,</tt> <tt id="link-17" class="py-name"><a title="timeside.encode.wav.WavEncoder
+timeside.tests.api.examples.WavEncoder
+timeside.tests.api.gstreamer.WavEncoder" class="py-name" href="#" onclick="return doclink('link-17', 'WavEncoder', 'link-11');">WavEncoder</a></tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line">    <tt id="link-18" class="py-name" targets="Variable timeside.tests.api.test_lolevel.source=timeside.tests.api.test_lolevel-module.html#source,Variable timeside.tests.api.test_pipe.source=timeside.tests.api.test_pipe-module.html#source,Variable timeside.tests.api.test_pipe_spectrogram.source=timeside.tests.api.test_pipe_spectrogram-module.html#source,Variable timeside.tests.api.test_pipe_waveform.source=timeside.tests.api.test_pipe_waveform-module.html#source"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-18', 'source', 'link-18');">source</a></tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line">    <tt id="link-19" class="py-name"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-19', 'source', 'link-18');">source</a></tt><tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt> <tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt class="py-name">__file__</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>  <tt class="py-string">"../samples/guitar.wav"</tt><tt class="py-op">)</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-name">Decoder</tt> <tt class="py-op">=</tt> <tt id="link-20" class="py-name"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-20', 'FileDecoder', 'link-10');">FileDecoder</a></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">"Creating decoder with id=%s for: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">Decoder</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Static Method timeside.analyze.channels.ChannelAnalyser.id()=timeside.analyze.channels.ChannelAnalyser-class.html#id,Static Method timeside.analyze.dc.MeanDCShiftAnalyser.id()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#id,Static Method timeside.analyze.duration.DurationAnalyzer.id()=timeside.analyze.duration.DurationAnalyzer-class.html#id,Static Method timeside.analyze.encoding.EncodingAnalyser.id()=timeside.analyze.encoding.EncodingAnalyser-class.html#id,Static Method timeside.analyze.format.FormatAnalyser.id()=timeside.analyze.format.FormatAnalyser-class.html#id,Static Method timeside.analyze.max_level.MaxLevelAnalyzer.id()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#id,Static Method timeside.analyze.mean_level.MeanLevelAnalyser.id()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#id,Static Method timeside.analyze.resolution.ResolutionAnalyser.id()=timeside.analyze.resolution.ResolutionAnalyser-class.html#id,Static Method timeside.analyze.samplerate.SampleRateAnalyzer.id()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#id,Method timeside.analyze.vamp.core.VampCoreAnalyzer.id()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#id,Static Method timeside.api.IProcessor.id()=timeside.api.IProcessor-class.html#id,Static Method timeside.decode.flac.FlacDecoder.id()=timeside.decode.flac.FlacDecoder-class.html#id,Static Method timeside.decode.mp3.Mp3Decoder.id()=timeside.decode.mp3.Mp3Decoder-class.html#id,Static Method timeside.decode.ogg.OggDecoder.id()=timeside.decode.ogg.OggDecoder-class.html#id,Static Method timeside.decode.wav.WavDecoder.id()=timeside.decode.wav.WavDecoder-class.html#id,Static Method timeside.encode.flac.FlacEncoder.id()=timeside.encode.flac.FlacEncoder-class.html#id,Static Method timeside.encode.mp3.Mp3Encoder.id()=timeside.encode.mp3.Mp3Encoder-class.html#id,Static Method timeside.encode.ogg.OggVorbisEncoder.id()=timeside.encode.ogg.OggVorbisEncoder-class.html#id,Static Method timeside.encode.wav.WavEncoder.id()=timeside.encode.wav.WavEncoder-class.html#id,Static Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#id,Static Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#id,Static Method timeside.tests.api.examples.Duration.id()=timeside.tests.api.examples.Duration-class.html#id,Static Method timeside.tests.api.examples.FileDecoder.id()=timeside.tests.api.examples.FileDecoder-class.html#id,Static Method timeside.tests.api.examples.FixedInputProcessor.id()=timeside.tests.api.examples.FixedInputProcessor-class.html#id,Static Method timeside.tests.api.examples.Gain.id()=timeside.tests.api.examples.Gain-class.html#id,Static Method timeside.tests.api.examples.MaxLevel.id()=timeside.tests.api.examples.MaxLevel-class.html#id,Static Method timeside.tests.api.examples.Spectrogram.id()=timeside.tests.api.examples.Spectrogram-class.html#id,Static Method timeside.tests.api.examples.WavEncoder.id()=timeside.tests.api.examples.WavEncoder-class.html#id,Static Method timeside.tests.api.examples.Waveform.id()=timeside.tests.api.examples.Waveform-class.html#id,Static Method timeside.tests.api.gstreamer.FileDecoder.id()=timeside.tests.api.gstreamer.FileDecoder-class.html#id,Static Method timeside.tests.api.gstreamer.WavEncoder.id()=timeside.tests.api.gstreamer.WavEncoder-class.html#id"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-21', 'id', 'link-21');">id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-22" class="py-name"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-22', 'source', 'link-18');">source</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt id="link-23" class="py-name" targets="Variable timeside.tests.api.test_lolevel.decoder=timeside.tests.api.test_lolevel-module.html#decoder,Variable timeside.tests.api.test_pipe.decoder=timeside.tests.api.test_pipe-module.html#decoder,Variable timeside.tests.api.test_pipe_spectrogram.decoder=timeside.tests.api.test_pipe_spectrogram-module.html#decoder,Variable timeside.tests.api.test_pipe_waveform.decoder=timeside.tests.api.test_pipe_waveform-module.html#decoder"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-23', 'decoder', 'link-23');">decoder</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">Decoder</tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-24', 'source', 'link-18');">source</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt id="link-25" class="py-name" targets="Variable timeside.tests.api.test_lolevel.analyzer=timeside.tests.api.test_lolevel-module.html#analyzer"><a title="timeside.tests.api.test_lolevel.analyzer" class="py-name" href="#" onclick="return doclink('link-25', 'analyzer', 'link-25');">analyzer</a></tt> <tt class="py-op">=</tt> <tt id="link-26" class="py-name"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-26', 'examples', 'link-3');">examples</a></tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Class timeside.tests.api.examples.MaxLevel=timeside.tests.api.examples.MaxLevel-class.html"><a title="timeside.tests.api.examples.MaxLevel" class="py-name" href="#" onclick="return doclink('link-27', 'MaxLevel', 'link-27');">MaxLevel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt id="link-28" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-28', 'decoder', 'link-23');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method timeside.api.IProcessor.setup()=timeside.api.IProcessor-class.html#setup,Method timeside.core.Processor.setup()=timeside.core.Processor-class.html#setup,Method timeside.tests.api.examples.Duration.setup()=timeside.tests.api.examples.Duration-class.html#setup,Method timeside.tests.api.examples.FileDecoder.setup()=timeside.tests.api.examples.FileDecoder-class.html#setup,Method timeside.tests.api.examples.FixedInputProcessor.setup()=timeside.tests.api.examples.FixedInputProcessor-class.html#setup,Method timeside.tests.api.examples.MaxLevel.setup()=timeside.tests.api.examples.MaxLevel-class.html#setup,Method timeside.tests.api.examples.Spectrogram.setup()=timeside.tests.api.examples.Spectrogram-class.html#setup,Method timeside.tests.api.examples.WavEncoder.setup()=timeside.tests.api.examples.WavEncoder-class.html#setup,Method timeside.tests.api.examples.Waveform.setup()=timeside.tests.api.examples.Waveform-class.html#setup,Method timeside.tests.api.gstreamer.FileDecoder.setup()=timeside.tests.api.gstreamer.FileDecoder-class.html#setup,Method timeside.tests.api.gstreamer.WavEncoder.setup()=timeside.tests.api.gstreamer.WavEncoder-class.html#setup"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-29', 'setup', 'link-29');">setup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt id="link-30" class="py-name" targets="Variable timeside.tests.api.test_lolevel.nchannels=timeside.tests.api.test_lolevel-module.html#nchannels"><a title="timeside.tests.api.test_lolevel.nchannels" class="py-name" href="#" onclick="return doclink('link-30', 'nchannels', 'link-30');">nchannels</a></tt>  <tt class="py-op">=</tt> <tt id="link-31" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-31', 'decoder', 'link-23');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Module timeside.analyze.channels=timeside.analyze.channels-module.html,Method timeside.api.IProcessor.channels()=timeside.api.IProcessor-class.html#channels,Method timeside.core.Processor.channels()=timeside.core.Processor-class.html#channels,Method timeside.tests.api.examples.FileDecoder.channels()=timeside.tests.api.examples.FileDecoder-class.html#channels,Method timeside.tests.api.gstreamer.FileDecoder.channels()=timeside.tests.api.gstreamer.FileDecoder-class.html#channels"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-32', 'channels', 'link-32');">channels</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt id="link-33" class="py-name" targets="Module timeside.analyze.samplerate=timeside.analyze.samplerate-module.html,Method timeside.api.IProcessor.samplerate()=timeside.api.IProcessor-class.html#samplerate,Method timeside.core.Processor.samplerate()=timeside.core.Processor-class.html#samplerate,Method timeside.tests.api.examples.FileDecoder.samplerate()=timeside.tests.api.examples.FileDecoder-class.html#samplerate,Method timeside.tests.api.gstreamer.FileDecoder.samplerate()=timeside.tests.api.gstreamer.FileDecoder-class.html#samplerate,Variable timeside.tests.api.test_lolevel.samplerate=timeside.tests.api.test_lolevel-module.html#samplerate"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-33', 'samplerate', 'link-33');">samplerate</a></tt> <tt class="py-op">=</tt> <tt id="link-34" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-34', 'decoder', 'link-23');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-35', 'samplerate', 'link-33');">samplerate</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt id="link-36" class="py-name" targets="Method timeside.api.IProcessor.nframes()=timeside.api.IProcessor-class.html#nframes,Method timeside.core.FixedSizeInputAdapter.nframes()=timeside.core.FixedSizeInputAdapter-class.html#nframes,Method timeside.core.Processor.nframes()=timeside.core.Processor-class.html#nframes,Method timeside.tests.api.examples.FileDecoder.nframes()=timeside.tests.api.examples.FileDecoder-class.html#nframes,Method timeside.tests.api.gstreamer.FileDecoder.nframes()=timeside.tests.api.gstreamer.FileDecoder-class.html#nframes,Variable timeside.tests.api.test_lolevel.nframes=timeside.tests.api.test_lolevel-module.html#nframes"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-36', 'nframes', 'link-36');">nframes</a></tt> <tt class="py-op">=</tt> <tt id="link-37" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-37', 'decoder', 'link-23');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-38', 'nframes', 'link-36');">nframes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt id="link-39" class="py-name"><a title="timeside.tests.api.test_lolevel.analyzer" class="py-name" href="#" onclick="return doclink('link-39', 'analyzer', 'link-25');">analyzer</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-40', 'setup', 'link-29');">setup</a></tt><tt class="py-op">(</tt><tt id="link-41" class="py-name"><a title="timeside.tests.api.test_lolevel.nchannels" class="py-name" href="#" onclick="return doclink('link-41', 'nchannels', 'link-30');">nchannels</a></tt><tt class="py-op">,</tt> <tt id="link-42" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-42', 'samplerate', 'link-33');">samplerate</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">"Stats: duration=%f, nframes=%d, nchannels=%d, samplerate=%d, resolution=%d"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">        <tt id="link-43" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-43', 'nframes', 'link-36');">nframes</a></tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-44', 'samplerate', 'link-33');">samplerate</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-45" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-45', 'nframes', 'link-36');">nframes</a></tt><tt class="py-op">,</tt> <tt id="link-46" class="py-name"><a title="timeside.tests.api.test_lolevel.nchannels" class="py-name" href="#" onclick="return doclink('link-46', 'nchannels', 'link-30');">nchannels</a></tt><tt class="py-op">,</tt> <tt id="link-47" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-47', 'samplerate', 'link-33');">samplerate</a></tt><tt class="py-op">,</tt> <tt id="link-48" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-48', 'decoder', 'link-23');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Module timeside.analyze.resolution=timeside.analyze.resolution-module.html,Method timeside.api.IDecoder.resolution()=timeside.api.IDecoder-class.html#resolution,Method timeside.tests.api.examples.FileDecoder.resolution()=timeside.tests.api.examples.FileDecoder-class.html#resolution,Method timeside.tests.api.gstreamer.FileDecoder.resolution()=timeside.tests.api.gstreamer.FileDecoder-class.html#resolution"><a title="timeside.analyze.resolution
+timeside.api.IDecoder.resolution
+timeside.tests.api.examples.FileDecoder.resolution
+timeside.tests.api.gstreamer.FileDecoder.resolution" class="py-name" href="#" onclick="return doclink('link-49', 'resolution', 'link-49');">resolution</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"><tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">    <tt id="link-50" class="py-name" targets="Variable timeside.tests.api.test_lolevel.frames=timeside.tests.api.test_lolevel-module.html#frames"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-50', 'frames', 'link-50');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-51" class="py-name" targets="Variable timeside.tests.api.test_lolevel.eod=timeside.tests.api.test_lolevel-module.html#eod"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-51', 'eod', 'link-51');">eod</a></tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-52', 'decoder', 'link-23');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Method timeside.api.IProcessor.process()=timeside.api.IProcessor-class.html#process,Method timeside.core.FixedSizeInputAdapter.process()=timeside.core.FixedSizeInputAdapter-class.html#process,Method timeside.core.Processor.process()=timeside.core.Processor-class.html#process,Method timeside.decode.core.DecoderCore.process()=timeside.decode.core.DecoderCore-class.html#process,Method timeside.encode.flac.FlacEncoder.process()=timeside.encode.flac.FlacEncoder-class.html#process,Method timeside.encode.mp3.Mp3Encoder.process()=timeside.encode.mp3.Mp3Encoder-class.html#process,Method timeside.encode.ogg.OggVorbisEncoder.process()=timeside.encode.ogg.OggVorbisEncoder-class.html#process,Method timeside.encode.wav.WavEncoder.process()=timeside.encode.wav.WavEncoder-class.html#process,Method timeside.grapher.core.SpectralCentroid.process()=timeside.grapher.core.SpectralCentroid-class.html#process,Method timeside.grapher.core.SpectrogramImage.process()=timeside.grapher.core.SpectrogramImage-class.html#process,Method timeside.grapher.core.WaveformImage.process()=timeside.grapher.core.WaveformImage-class.html#process,Method timeside.tests.api.examples.FileDecoder.process()=timeside.tests.api.examples.FileDecoder-class.html#process,Method timeside.tests.api.examples.FixedInputProcessor.process()=timeside.tests.api.examples.FixedInputProcessor-class.html#process,Method timeside.tests.api.examples.Gain.process()=timeside.tests.api.examples.Gain-class.html#process,Method timeside.tests.api.examples.MaxLevel.process()=timeside.tests.api.examples.MaxLevel-class.html#process,Method timeside.tests.api.examples.Spectrogram.process()=timeside.tests.api.examples.Spectrogram-class.html#process,Method timeside.tests.api.examples.WavEncoder.process()=timeside.tests.api.examples.WavEncoder-class.html#process,Method timeside.tests.api.examples.Waveform.process()=timeside.tests.api.examples.Waveform-class.html#process,Method timeside.tests.api.gstreamer.FileDecoder.process()=timeside.tests.api.gstreamer.FileDecoder-class.html#process,Method timeside.tests.api.gstreamer.WavEncoder.process()=timeside.tests.api.gstreamer.WavEncoder-class.html#process"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-53', 'process', 'link-53');">process</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">    <tt id="link-54" class="py-name"><a title="timeside.tests.api.test_lolevel.analyzer" class="py-name" href="#" onclick="return doclink('link-54', 'analyzer', 'link-25');">analyzer</a></tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-55', 'process', 'link-53');">process</a></tt><tt class="py-op">(</tt><tt id="link-56" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-56', 'frames', 'link-50');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-57" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-57', 'eod', 'link-51');">eod</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-58" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-58', 'eod', 'link-51');">eod</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-keyword">break</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line"><tt id="link-59" class="py-name" targets="Module timeside.analyze.max_level=timeside.analyze.max_level-module.html,Variable timeside.tests.api.test_lolevel.max_level=timeside.tests.api.test_lolevel-module.html#max_level"><a title="timeside.analyze.max_level
+timeside.tests.api.test_lolevel.max_level" class="py-name" href="#" onclick="return doclink('link-59', 'max_level', 'link-59');">max_level</a></tt> <tt class="py-op">=</tt> <tt id="link-60" class="py-name"><a title="timeside.tests.api.test_lolevel.analyzer" class="py-name" href="#" onclick="return doclink('link-60', 'analyzer', 'link-25');">analyzer</a></tt><tt class="py-op">.</tt><tt id="link-61" class="py-name" targets="Method timeside.api.IValueAnalyzer.result()=timeside.api.IValueAnalyzer-class.html#result,Method timeside.tests.api.examples.Duration.result()=timeside.tests.api.examples.Duration-class.html#result,Method timeside.tests.api.examples.MaxLevel.result()=timeside.tests.api.examples.MaxLevel-class.html#result"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-61', 'result', 'link-61');">result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">"Max level: %f"</tt> <tt class="py-op">%</tt> <tt id="link-62" class="py-name"><a title="timeside.analyze.max_level
+timeside.tests.api.test_lolevel.max_level" class="py-name" href="#" onclick="return doclink('link-62', 'max_level', 'link-59');">max_level</a></tt> </tt>
+<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"><tt id="link-63" class="py-name" targets="Variable timeside.tests.api.test_lolevel.destination=timeside.tests.api.test_lolevel-module.html#destination"><a title="timeside.tests.api.test_lolevel.destination" class="py-name" href="#" onclick="return doclink('link-63', 'destination', 'link-63');">destination</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"normalized.wav"</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line"><tt class="py-name">Encoder</tt> <tt class="py-op">=</tt> <tt id="link-64" class="py-name"><a title="timeside.encode.wav.WavEncoder
+timeside.tests.api.examples.WavEncoder
+timeside.tests.api.gstreamer.WavEncoder" class="py-name" href="#" onclick="return doclink('link-64', 'WavEncoder', 'link-11');">WavEncoder</a></tt> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">"Creating encoder with id=%s for: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">Encoder</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-65', 'id', 'link-21');">id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-66" class="py-name"><a title="timeside.tests.api.test_lolevel.destination" class="py-name" href="#" onclick="return doclink('link-66', 'destination', 'link-63');">destination</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line"><tt id="link-67" class="py-name" targets="Variable timeside.tests.api.test_lolevel.encoder=timeside.tests.api.test_lolevel-module.html#encoder,Variable timeside.tests.api.test_pipe.encoder=timeside.tests.api.test_pipe-module.html#encoder"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-67', 'encoder', 'link-67');">encoder</a></tt> <tt class="py-op">=</tt> <tt class="py-name">Encoder</tt><tt class="py-op">(</tt><tt id="link-68" class="py-name"><a title="timeside.tests.api.test_lolevel.destination" class="py-name" href="#" onclick="return doclink('link-68', 'destination', 'link-63');">destination</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line"> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line"><tt id="link-69" class="py-name" targets="Variable timeside.tests.api.test_lolevel.gain=timeside.tests.api.test_lolevel-module.html#gain,Variable timeside.tests.api.test_pipe.gain=timeside.tests.api.test_pipe-module.html#gain"><a title="timeside.tests.api.test_lolevel.gain
+timeside.tests.api.test_pipe.gain" class="py-name" href="#" onclick="return doclink('link-69', 'gain', 'link-69');">gain</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-70" class="py-name"><a title="timeside.analyze.max_level
+timeside.tests.api.test_lolevel.max_level" class="py-name" href="#" onclick="return doclink('link-70', 'max_level', 'link-59');">max_level</a></tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">    <tt id="link-71" class="py-name"><a title="timeside.tests.api.test_lolevel.gain
+timeside.tests.api.test_pipe.gain" class="py-name" href="#" onclick="return doclink('link-71', 'gain', 'link-69');">gain</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0.9</tt> <tt class="py-op">/</tt> <tt id="link-72" class="py-name"><a title="timeside.analyze.max_level
+timeside.tests.api.test_lolevel.max_level" class="py-name" href="#" onclick="return doclink('link-72', 'max_level', 'link-59');">max_level</a></tt> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line"> </tt>
+<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line"><tt id="link-73" class="py-name" targets="Variable timeside.tests.api.test_lolevel.effect=timeside.tests.api.test_lolevel-module.html#effect"><a title="timeside.tests.api.test_lolevel.effect" class="py-name" href="#" onclick="return doclink('link-73', 'effect', 'link-73');">effect</a></tt> <tt class="py-op">=</tt> <tt id="link-74" class="py-name"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-74', 'examples', 'link-3');">examples</a></tt><tt class="py-op">.</tt><tt id="link-75" class="py-name" targets="Class timeside.tests.api.examples.Gain=timeside.tests.api.examples.Gain-class.html"><a title="timeside.tests.api.examples.Gain" class="py-name" href="#" onclick="return doclink('link-75', 'Gain', 'link-75');">Gain</a></tt><tt class="py-op">(</tt><tt id="link-76" class="py-name"><a title="timeside.tests.api.test_lolevel.gain
+timeside.tests.api.test_pipe.gain" class="py-name" href="#" onclick="return doclink('link-76', 'gain', 'link-69');">gain</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line"> </tt>
+<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line"><tt id="link-77" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-77', 'decoder', 'link-23');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-78', 'setup', 'link-29');">setup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line"><tt id="link-79" class="py-name"><a title="timeside.tests.api.test_lolevel.effect" class="py-name" href="#" onclick="return doclink('link-79', 'effect', 'link-73');">effect</a></tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-80', 'setup', 'link-29');">setup</a></tt><tt class="py-op">(</tt><tt id="link-81" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-81', 'decoder', 'link-23');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-82', 'channels', 'link-32');">channels</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-83" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-83', 'decoder', 'link-23');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-84', 'samplerate', 'link-33');">samplerate</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"><tt id="link-85" class="py-name"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-85', 'encoder', 'link-67');">encoder</a></tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="timeside.api.IProcessor.setup
+timeside.core.Processor.setup
+timeside.tests.api.examples.Duration.setup
+timeside.tests.api.examples.FileDecoder.setup
+timeside.tests.api.examples.FixedInputProcessor.setup
+timeside.tests.api.examples.MaxLevel.setup
+timeside.tests.api.examples.Spectrogram.setup
+timeside.tests.api.examples.WavEncoder.setup
+timeside.tests.api.examples.Waveform.setup
+timeside.tests.api.gstreamer.FileDecoder.setup
+timeside.tests.api.gstreamer.WavEncoder.setup" class="py-name" href="#" onclick="return doclink('link-86', 'setup', 'link-29');">setup</a></tt><tt class="py-op">(</tt><tt id="link-87" class="py-name"><a title="timeside.tests.api.test_lolevel.effect" class="py-name" href="#" onclick="return doclink('link-87', 'effect', 'link-73');">effect</a></tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="timeside.analyze.channels
+timeside.api.IProcessor.channels
+timeside.core.Processor.channels
+timeside.tests.api.examples.FileDecoder.channels
+timeside.tests.api.gstreamer.FileDecoder.channels" class="py-name" href="#" onclick="return doclink('link-88', 'channels', 'link-32');">channels</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-89" class="py-name"><a title="timeside.tests.api.test_lolevel.effect" class="py-name" href="#" onclick="return doclink('link-89', 'effect', 'link-73');">effect</a></tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="timeside.analyze.samplerate
+timeside.api.IProcessor.samplerate
+timeside.core.Processor.samplerate
+timeside.tests.api.examples.FileDecoder.samplerate
+timeside.tests.api.gstreamer.FileDecoder.samplerate
+timeside.tests.api.test_lolevel.samplerate" class="py-name" href="#" onclick="return doclink('link-90', 'samplerate', 'link-33');">samplerate</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">"Applying effect id=%s with gain=%f"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-91" class="py-name"><a title="timeside.tests.api.test_lolevel.effect" class="py-name" href="#" onclick="return doclink('link-91', 'effect', 'link-73');">effect</a></tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-92', 'id', 'link-21');">id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-93" class="py-name"><a title="timeside.tests.api.test_lolevel.gain
+timeside.tests.api.test_pipe.gain" class="py-name" href="#" onclick="return doclink('link-93', 'gain', 'link-69');">gain</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line"> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line"><tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">    <tt id="link-94" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-94', 'frames', 'link-50');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-95" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-95', 'eod', 'link-51');">eod</a></tt> <tt class="py-op">=</tt> <tt id="link-96" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-96', 'decoder', 'link-23');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-97', 'process', 'link-53');">process</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">    <tt id="link-98" class="py-name"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-98', 'encoder', 'link-67');">encoder</a></tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-99', 'process', 'link-53');">process</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt id="link-100" class="py-name"><a title="timeside.tests.api.test_lolevel.effect" class="py-name" href="#" onclick="return doclink('link-100', 'effect', 'link-73');">effect</a></tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-101', 'process', 'link-53');">process</a></tt><tt class="py-op">(</tt><tt id="link-102" class="py-name"><a title="timeside.tests.api.test_lolevel.frames" class="py-name" href="#" onclick="return doclink('link-102', 'frames', 'link-50');">frames</a></tt><tt class="py-op">,</tt> <tt id="link-103" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-103', 'eod', 'link-51');">eod</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-104" class="py-name"><a title="timeside.tests.api.test_lolevel.eod" class="py-name" href="#" onclick="return doclink('link-104', 'eod', 'link-51');">eod</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">        <tt class="py-keyword">break</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.test_pipe-module.html b/doc/epydoc/timeside.tests.api.test_pipe-module.html
new file mode 100644 (file)
index 0000000..1fe00b7
--- /dev/null
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.test_pipe</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        Module&nbsp;test_pipe
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.test_pipe-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module test_pipe</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.test_pipe-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="use_gst"></a><span class="summary-name">use_gst</span> = <code title="1">1</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.test_pipe-module.html#source" class="summary-name">source</a> = <code title="'/home/momo/dev/timeside/timeside/tests/api/../samples/guitar.wav'"><code class="variable-quote">'</code><code class="variable-string">/home/momo/dev/timeside/timeside/tests/api/../sample</code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="decoder"></a><span class="summary-name">decoder</span> = <code title="FileDecoder(source)">FileDecoder(source)</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="maxlevel"></a><span class="summary-name">maxlevel</span> = <code title="examples.MaxLevel()">examples.MaxLevel()</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="duration"></a><span class="summary-name">duration</span> = <code title="examples.Duration()">examples.Duration()</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="gain"></a><span class="summary-name">gain</span> = <code title="examples.Gain(gain)">examples.Gain(gain)</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="encoder"></a><span class="summary-name">encoder</span> = <code title="WavEncoder(&quot;normalized.wav&quot;)">WavEncoder(&quot;normalized.wav&quot;)</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="fixed"></a><span class="summary-name">fixed</span> = <code title="examples.FixedInputProcessor()">examples.FixedInputProcessor()</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="subpipe"></a><span class="summary-name">subpipe</span> = <code title="gain | fixed | maxlevel">gain | fixed | maxlevel</code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="source"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">source</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">/home/momo/dev/timeside/timeside/tests/api/../samples/guitar.wav</code><code class="variable-quote">'</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.test_pipe-pysrc.html b/doc/epydoc/timeside.tests.api.test_pipe-pysrc.html
new file mode 100644 (file)
index 0000000..3421aa3
--- /dev/null
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.test_pipe</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        Module&nbsp;test_pipe
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.test_pipe-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.tests.api.test_pipe-module.html">Module timeside.tests.api.test_pipe</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.tests=timeside.tests-module.html"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-1', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-2', 'api', 'link-2');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Module timeside.tests.api.examples=timeside.tests.api.examples-module.html"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-3', 'examples', 'link-3');">examples</a></tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-4', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-5', 'core', 'link-5');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-6', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-7', 'api', 'link-2');">api</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">sys</tt> <tt class="py-keyword">import</tt> <tt class="py-name">stdout</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt id="link-8" class="py-name" targets="Variable timeside.tests.api.test_lolevel.use_gst=timeside.tests.api.test_lolevel-module.html#use_gst,Variable timeside.tests.api.test_pipe.use_gst=timeside.tests.api.test_pipe-module.html#use_gst,Variable timeside.tests.api.test_pipe_spectrogram.use_gst=timeside.tests.api.test_pipe_spectrogram-module.html#use_gst,Variable timeside.tests.api.test_pipe_waveform.use_gst=timeside.tests.api.test_pipe_waveform-module.html#use_gst"><a title="timeside.tests.api.test_lolevel.use_gst
+timeside.tests.api.test_pipe.use_gst
+timeside.tests.api.test_pipe_spectrogram.use_gst
+timeside.tests.api.test_pipe_waveform.use_gst" class="py-name" href="#" onclick="return doclink('link-8', 'use_gst', 'link-8');">use_gst</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-9" class="py-name"><a title="timeside.tests.api.test_lolevel.use_gst
+timeside.tests.api.test_pipe.use_gst
+timeside.tests.api.test_pipe_spectrogram.use_gst
+timeside.tests.api.test_pipe_waveform.use_gst" class="py-name" href="#" onclick="return doclink('link-9', 'use_gst', 'link-8');">use_gst</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-10" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-10', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-11', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-12', 'api', 'link-2');">api</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Module timeside.tests.api.gstreamer=timeside.tests.api.gstreamer-module.html"><a title="timeside.tests.api.gstreamer" class="py-name" href="#" onclick="return doclink('link-13', 'gstreamer', 'link-13');">gstreamer</a></tt> <tt class="py-keyword">import</tt> <tt id="link-14" class="py-name" targets="Class timeside.tests.api.examples.FileDecoder=timeside.tests.api.examples.FileDecoder-class.html,Class timeside.tests.api.gstreamer.FileDecoder=timeside.tests.api.gstreamer.FileDecoder-class.html"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-14', 'FileDecoder', 'link-14');">FileDecoder</a></tt><tt class="py-op">,</tt> <tt id="link-15" class="py-name" targets="Class timeside.encode.wav.WavEncoder=timeside.encode.wav.WavEncoder-class.html,Class timeside.tests.api.examples.WavEncoder=timeside.tests.api.examples.WavEncoder-class.html,Class timeside.tests.api.gstreamer.WavEncoder=timeside.tests.api.gstreamer.WavEncoder-class.html"><a title="timeside.encode.wav.WavEncoder
+timeside.tests.api.examples.WavEncoder
+timeside.tests.api.gstreamer.WavEncoder" class="py-name" href="#" onclick="return doclink('link-15', 'WavEncoder', 'link-15');">WavEncoder</a></tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-16" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-16', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-17', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-18', 'api', 'link-2');">api</a></tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-19', 'examples', 'link-3');">examples</a></tt> <tt class="py-keyword">import</tt> <tt id="link-20" class="py-name"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-20', 'FileDecoder', 'link-14');">FileDecoder</a></tt><tt class="py-op">,</tt> <tt id="link-21" class="py-name"><a title="timeside.encode.wav.WavEncoder
+timeside.tests.api.examples.WavEncoder
+timeside.tests.api.gstreamer.WavEncoder" class="py-name" href="#" onclick="return doclink('link-21', 'WavEncoder', 'link-15');">WavEncoder</a></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt id="link-22" class="py-name" targets="Variable timeside.tests.api.test_lolevel.source=timeside.tests.api.test_lolevel-module.html#source,Variable timeside.tests.api.test_pipe.source=timeside.tests.api.test_pipe-module.html#source,Variable timeside.tests.api.test_pipe_spectrogram.source=timeside.tests.api.test_pipe_spectrogram-module.html#source,Variable timeside.tests.api.test_pipe_waveform.source=timeside.tests.api.test_pipe_waveform-module.html#source"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-22', 'source', 'link-22');">source</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt class="py-name">__file__</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>  <tt class="py-string">"../samples/guitar.wav"</tt><tt class="py-op">)</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">"Normalizing %s"</tt> <tt class="py-op">%</tt> <tt id="link-23" class="py-name"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-23', 'source', 'link-22');">source</a></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt id="link-24" class="py-name" targets="Variable timeside.tests.api.test_lolevel.decoder=timeside.tests.api.test_lolevel-module.html#decoder,Variable timeside.tests.api.test_pipe.decoder=timeside.tests.api.test_pipe-module.html#decoder,Variable timeside.tests.api.test_pipe_spectrogram.decoder=timeside.tests.api.test_pipe_spectrogram-module.html#decoder,Variable timeside.tests.api.test_pipe_waveform.decoder=timeside.tests.api.test_pipe_waveform-module.html#decoder"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-24', 'decoder', 'link-24');">decoder</a></tt>  <tt class="py-op">=</tt> <tt id="link-25" class="py-name"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-25', 'FileDecoder', 'link-14');">FileDecoder</a></tt><tt class="py-op">(</tt><tt id="link-26" class="py-name"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-26', 'source', 'link-22');">source</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt id="link-27" class="py-name" targets="Variable timeside.tests.api.test_pipe.maxlevel=timeside.tests.api.test_pipe-module.html#maxlevel"><a title="timeside.tests.api.test_pipe.maxlevel" class="py-name" href="#" onclick="return doclink('link-27', 'maxlevel', 'link-27');">maxlevel</a></tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-28', 'examples', 'link-3');">examples</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Class timeside.tests.api.examples.MaxLevel=timeside.tests.api.examples.MaxLevel-class.html"><a title="timeside.tests.api.examples.MaxLevel" class="py-name" href="#" onclick="return doclink('link-29', 'MaxLevel', 'link-29');">MaxLevel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt id="link-30" class="py-name" targets="Module timeside.analyze.duration=timeside.analyze.duration-module.html,Variable timeside.tests.api.test_pipe.duration=timeside.tests.api.test_pipe-module.html#duration"><a title="timeside.analyze.duration
+timeside.tests.api.test_pipe.duration" class="py-name" href="#" onclick="return doclink('link-30', 'duration', 'link-30');">duration</a></tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-31', 'examples', 'link-3');">examples</a></tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Class timeside.tests.api.examples.Duration=timeside.tests.api.examples.Duration-class.html"><a title="timeside.tests.api.examples.Duration" class="py-name" href="#" onclick="return doclink('link-32', 'Duration', 'link-32');">Duration</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-op">(</tt><tt id="link-33" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-33', 'decoder', 'link-24');">decoder</a></tt> <tt class="py-op">|</tt> <tt id="link-34" class="py-name"><a title="timeside.tests.api.test_pipe.maxlevel" class="py-name" href="#" onclick="return doclink('link-34', 'maxlevel', 'link-27');">maxlevel</a></tt> <tt class="py-op">|</tt> <tt id="link-35" class="py-name"><a title="timeside.analyze.duration
+timeside.tests.api.test_pipe.duration" class="py-name" href="#" onclick="return doclink('link-35', 'duration', 'link-30');">duration</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method timeside.core.ProcessPipe.run()=timeside.core.ProcessPipe-class.html#run,Method timeside.tests.TestRunner.run()=timeside.tests.TestRunner-class.html#run,Method timeside.tests.test.TestAnalyzers.run()=timeside.tests.test.TestAnalyzers-class.html#run,Method timeside.tests.test.TestEncoders.run()=timeside.tests.test.TestEncoders-class.html#run,Method timeside.tests.test.TestGraphers.run()=timeside.tests.test.TestGraphers-class.html#run"><a title="timeside.core.ProcessPipe.run
+timeside.tests.TestRunner.run
+timeside.tests.test.TestAnalyzers.run
+timeside.tests.test.TestEncoders.run
+timeside.tests.test.TestGraphers.run" class="py-name" href="#" onclick="return doclink('link-36', 'run', 'link-36');">run</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt id="link-37" class="py-name" targets="Variable timeside.tests.api.test_lolevel.gain=timeside.tests.api.test_lolevel-module.html#gain,Variable timeside.tests.api.test_pipe.gain=timeside.tests.api.test_pipe-module.html#gain"><a title="timeside.tests.api.test_lolevel.gain
+timeside.tests.api.test_pipe.gain" class="py-name" href="#" onclick="return doclink('link-37', 'gain', 'link-37');">gain</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-38" class="py-name"><a title="timeside.tests.api.test_pipe.maxlevel" class="py-name" href="#" onclick="return doclink('link-38', 'maxlevel', 'link-27');">maxlevel</a></tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method timeside.api.IValueAnalyzer.result()=timeside.api.IValueAnalyzer-class.html#result,Method timeside.tests.api.examples.Duration.result()=timeside.tests.api.examples.Duration-class.html#result,Method timeside.tests.api.examples.MaxLevel.result()=timeside.tests.api.examples.MaxLevel-class.html#result"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-39', 'result', 'link-39');">result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line">    <tt id="link-40" class="py-name"><a title="timeside.tests.api.test_lolevel.gain
+timeside.tests.api.test_pipe.gain" class="py-name" href="#" onclick="return doclink('link-40', 'gain', 'link-37');">gain</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0.9</tt> <tt class="py-op">/</tt> <tt id="link-41" class="py-name"><a title="timeside.tests.api.test_pipe.maxlevel" class="py-name" href="#" onclick="return doclink('link-41', 'maxlevel', 'link-27');">maxlevel</a></tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-42', 'result', 'link-39');">result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">"input maxlevel: %f"</tt> <tt class="py-op">%</tt> <tt id="link-43" class="py-name"><a title="timeside.tests.api.test_pipe.maxlevel" class="py-name" href="#" onclick="return doclink('link-43', 'maxlevel', 'link-27');">maxlevel</a></tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-44', 'result', 'link-39');">result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">"gain: %f"</tt> <tt class="py-op">%</tt> <tt id="link-45" class="py-name"><a title="timeside.tests.api.test_lolevel.gain
+timeside.tests.api.test_pipe.gain" class="py-name" href="#" onclick="return doclink('link-45', 'gain', 'link-37');">gain</a></tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">"duration: %f %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-46" class="py-name"><a title="timeside.analyze.duration
+timeside.tests.api.test_pipe.duration" class="py-name" href="#" onclick="return doclink('link-46', 'duration', 'link-30');">duration</a></tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-47', 'result', 'link-39');">result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-48" class="py-name"><a title="timeside.analyze.duration
+timeside.tests.api.test_pipe.duration" class="py-name" href="#" onclick="return doclink('link-48', 'duration', 'link-30');">duration</a></tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Method timeside.analyze.channels.ChannelAnalyser.unit()=timeside.analyze.channels.ChannelAnalyser-class.html#unit,Method timeside.analyze.dc.MeanDCShiftAnalyser.unit()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#unit,Method timeside.analyze.duration.DurationAnalyzer.unit()=timeside.analyze.duration.DurationAnalyzer-class.html#unit,Method timeside.analyze.encoding.EncodingAnalyser.unit()=timeside.analyze.encoding.EncodingAnalyser-class.html#unit,Method timeside.analyze.format.FormatAnalyser.unit()=timeside.analyze.format.FormatAnalyser-class.html#unit,Method timeside.analyze.max_level.MaxLevelAnalyzer.unit()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#unit,Method timeside.analyze.mean_level.MeanLevelAnalyser.unit()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#unit,Method timeside.analyze.resolution.ResolutionAnalyser.unit()=timeside.analyze.resolution.ResolutionAnalyser-class.html#unit,Method timeside.analyze.samplerate.SampleRateAnalyzer.unit()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#unit,Method timeside.analyze.vamp.core.VampCoreAnalyzer.unit()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#unit,Static Method timeside.api.IAnalyzer.unit()=timeside.api.IAnalyzer-class.html#unit,Static Method timeside.tests.api.examples.Duration.unit()=timeside.tests.api.examples.Duration-class.html#unit,Static Method timeside.tests.api.examples.MaxLevel.unit()=timeside.tests.api.examples.MaxLevel-class.html#unit"><a title="timeside.analyze.channels.ChannelAnalyser.unit
+timeside.analyze.dc.MeanDCShiftAnalyser.unit
+timeside.analyze.duration.DurationAnalyzer.unit
+timeside.analyze.encoding.EncodingAnalyser.unit
+timeside.analyze.format.FormatAnalyser.unit
+timeside.analyze.max_level.MaxLevelAnalyzer.unit
+timeside.analyze.mean_level.MeanLevelAnalyser.unit
+timeside.analyze.resolution.ResolutionAnalyser.unit
+timeside.analyze.samplerate.SampleRateAnalyzer.unit
+timeside.analyze.vamp.core.VampCoreAnalyzer.unit
+timeside.api.IAnalyzer.unit
+timeside.tests.api.examples.Duration.unit
+timeside.tests.api.examples.MaxLevel.unit" class="py-name" href="#" onclick="return doclink('link-49', 'unit', 'link-49');">unit</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line"><tt id="link-50" class="py-name"><a title="timeside.tests.api.test_lolevel.gain
+timeside.tests.api.test_pipe.gain" class="py-name" href="#" onclick="return doclink('link-50', 'gain', 'link-37');">gain</a></tt>     <tt class="py-op">=</tt> <tt id="link-51" class="py-name"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-51', 'examples', 'link-3');">examples</a></tt><tt class="py-op">.</tt><tt id="link-52" class="py-name" targets="Class timeside.tests.api.examples.Gain=timeside.tests.api.examples.Gain-class.html"><a title="timeside.tests.api.examples.Gain" class="py-name" href="#" onclick="return doclink('link-52', 'Gain', 'link-52');">Gain</a></tt><tt class="py-op">(</tt><tt id="link-53" class="py-name"><a title="timeside.tests.api.test_lolevel.gain
+timeside.tests.api.test_pipe.gain" class="py-name" href="#" onclick="return doclink('link-53', 'gain', 'link-37');">gain</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line"><tt id="link-54" class="py-name" targets="Variable timeside.tests.api.test_lolevel.encoder=timeside.tests.api.test_lolevel-module.html#encoder,Variable timeside.tests.api.test_pipe.encoder=timeside.tests.api.test_pipe-module.html#encoder"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-54', 'encoder', 'link-54');">encoder</a></tt>  <tt class="py-op">=</tt> <tt id="link-55" class="py-name"><a title="timeside.encode.wav.WavEncoder
+timeside.tests.api.examples.WavEncoder
+timeside.tests.api.gstreamer.WavEncoder" class="py-name" href="#" onclick="return doclink('link-55', 'WavEncoder', 'link-15');">WavEncoder</a></tt><tt class="py-op">(</tt><tt class="py-string">"normalized.wav"</tt><tt class="py-op">)</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line"><tt id="link-56" class="py-name" targets="Variable timeside.tests.api.test_pipe.fixed=timeside.tests.api.test_pipe-module.html#fixed"><a title="timeside.tests.api.test_pipe.fixed" class="py-name" href="#" onclick="return doclink('link-56', 'fixed', 'link-56');">fixed</a></tt>    <tt class="py-op">=</tt> <tt id="link-57" class="py-name"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-57', 'examples', 'link-3');">examples</a></tt><tt class="py-op">.</tt><tt id="link-58" class="py-name" targets="Class timeside.tests.api.examples.FixedInputProcessor=timeside.tests.api.examples.FixedInputProcessor-class.html"><a title="timeside.tests.api.examples.FixedInputProcessor" class="py-name" href="#" onclick="return doclink('link-58', 'FixedInputProcessor', 'link-58');">FixedInputProcessor</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line"><tt id="link-59" class="py-name" targets="Variable timeside.tests.api.test_pipe.subpipe=timeside.tests.api.test_pipe-module.html#subpipe"><a title="timeside.tests.api.test_pipe.subpipe" class="py-name" href="#" onclick="return doclink('link-59', 'subpipe', 'link-59');">subpipe</a></tt>  <tt class="py-op">=</tt> <tt id="link-60" class="py-name"><a title="timeside.tests.api.test_lolevel.gain
+timeside.tests.api.test_pipe.gain" class="py-name" href="#" onclick="return doclink('link-60', 'gain', 'link-37');">gain</a></tt> <tt class="py-op">|</tt> <tt id="link-61" class="py-name"><a title="timeside.tests.api.test_pipe.fixed" class="py-name" href="#" onclick="return doclink('link-61', 'fixed', 'link-56');">fixed</a></tt> <tt class="py-op">|</tt> <tt id="link-62" class="py-name"><a title="timeside.tests.api.test_pipe.maxlevel" class="py-name" href="#" onclick="return doclink('link-62', 'maxlevel', 'link-27');">maxlevel</a></tt> </tt>
+<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line"> </tt>
+<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"><tt class="py-op">(</tt><tt id="link-63" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-63', 'decoder', 'link-24');">decoder</a></tt> <tt class="py-op">|</tt> <tt id="link-64" class="py-name"><a title="timeside.tests.api.test_pipe.subpipe" class="py-name" href="#" onclick="return doclink('link-64', 'subpipe', 'link-59');">subpipe</a></tt> <tt class="py-op">|</tt> <tt id="link-65" class="py-name"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-65', 'encoder', 'link-54');">encoder</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="timeside.core.ProcessPipe.run
+timeside.tests.TestRunner.run
+timeside.tests.test.TestAnalyzers.run
+timeside.tests.test.TestEncoders.run
+timeside.tests.test.TestGraphers.run" class="py-name" href="#" onclick="return doclink('link-66', 'run', 'link-36');">run</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">"output maxlevel: %f"</tt> <tt class="py-op">%</tt> <tt id="link-67" class="py-name"><a title="timeside.tests.api.test_pipe.maxlevel" class="py-name" href="#" onclick="return doclink('link-67', 'maxlevel', 'link-27');">maxlevel</a></tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="timeside.api.IValueAnalyzer.result
+timeside.tests.api.examples.Duration.result
+timeside.tests.api.examples.MaxLevel.result" class="py-name" href="#" onclick="return doclink('link-68', 'result', 'link-39');">result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:42 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.test_pipe_spectrogram-module.html b/doc/epydoc/timeside.tests.api.test_pipe_spectrogram-module.html
new file mode 100644 (file)
index 0000000..87c0a32
--- /dev/null
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.test_pipe_spectrogram</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        Module&nbsp;test_pipe_spectrogram
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.test_pipe_spectrogram-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module test_pipe_spectrogram</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.test_pipe_spectrogram-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="use_gst"></a><span class="summary-name">use_gst</span> = <code title="1">1</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="image_file"></a><span class="summary-name">image_file</span> = <code title="'./spectrogram.png'"><code class="variable-quote">'</code><code class="variable-string">./spectrogram.png</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.test_pipe_spectrogram-module.html#source" class="summary-name">source</a> = <code title="'/home/momo/dev/timeside/timeside/tests/api/../samples/sweep.wav'"><code class="variable-quote">'</code><code class="variable-string">/home/momo/dev/timeside/timeside/tests/api/../sample</code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="decoder"></a><span class="summary-name">decoder</span> = <code title="FileDecoder(source)">FileDecoder(source)</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.test_pipe_spectrogram-module.html#spectrogram" class="summary-name">spectrogram</a> = <code title="examples.Spectrogram(width= 1024, height= 256, output= image_file, bg_\
+color= (0, 0, 0), color_scheme= 'default')">examples.Spectrogram(width= 1024, height= 256, o<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="source"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">source</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">/home/momo/dev/timeside/timeside/tests/api/../samples/sweep.wav</code><code class="variable-quote">'</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="spectrogram"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">spectrogram</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+examples.Spectrogram(width= 1024, height= 256, output= image_file, bg_<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+color= (0, 0, 0), color_scheme= 'default')
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.test_pipe_spectrogram-pysrc.html b/doc/epydoc/timeside.tests.api.test_pipe_spectrogram-pysrc.html
new file mode 100644 (file)
index 0000000..d8dc391
--- /dev/null
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.test_pipe_spectrogram</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        Module&nbsp;test_pipe_spectrogram
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.test_pipe_spectrogram-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.tests.api.test_pipe_spectrogram-module.html">Module timeside.tests.api.test_pipe_spectrogram</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.tests=timeside.tests-module.html"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-1', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-2', 'api', 'link-2');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Module timeside.tests.api.examples=timeside.tests.api.examples-module.html"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-3', 'examples', 'link-3');">examples</a></tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-4', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-5', 'core', 'link-5');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-6', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-7', 'api', 'link-2');">api</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt id="link-8" class="py-name" targets="Variable timeside.tests.api.test_lolevel.use_gst=timeside.tests.api.test_lolevel-module.html#use_gst,Variable timeside.tests.api.test_pipe.use_gst=timeside.tests.api.test_pipe-module.html#use_gst,Variable timeside.tests.api.test_pipe_spectrogram.use_gst=timeside.tests.api.test_pipe_spectrogram-module.html#use_gst,Variable timeside.tests.api.test_pipe_waveform.use_gst=timeside.tests.api.test_pipe_waveform-module.html#use_gst"><a title="timeside.tests.api.test_lolevel.use_gst
+timeside.tests.api.test_pipe.use_gst
+timeside.tests.api.test_pipe_spectrogram.use_gst
+timeside.tests.api.test_pipe_waveform.use_gst" class="py-name" href="#" onclick="return doclink('link-8', 'use_gst', 'link-8');">use_gst</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-9" class="py-name"><a title="timeside.tests.api.test_lolevel.use_gst
+timeside.tests.api.test_pipe.use_gst
+timeside.tests.api.test_pipe_spectrogram.use_gst
+timeside.tests.api.test_pipe_waveform.use_gst" class="py-name" href="#" onclick="return doclink('link-9', 'use_gst', 'link-8');">use_gst</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-10" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-10', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-11', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-12', 'api', 'link-2');">api</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Module timeside.tests.api.gstreamer=timeside.tests.api.gstreamer-module.html"><a title="timeside.tests.api.gstreamer" class="py-name" href="#" onclick="return doclink('link-13', 'gstreamer', 'link-13');">gstreamer</a></tt> <tt class="py-keyword">import</tt> <tt id="link-14" class="py-name" targets="Class timeside.tests.api.examples.FileDecoder=timeside.tests.api.examples.FileDecoder-class.html,Class timeside.tests.api.gstreamer.FileDecoder=timeside.tests.api.gstreamer.FileDecoder-class.html"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-14', 'FileDecoder', 'link-14');">FileDecoder</a></tt><tt class="py-op">,</tt> <tt id="link-15" class="py-name" targets="Class timeside.encode.wav.WavEncoder=timeside.encode.wav.WavEncoder-class.html,Class timeside.tests.api.examples.WavEncoder=timeside.tests.api.examples.WavEncoder-class.html,Class timeside.tests.api.gstreamer.WavEncoder=timeside.tests.api.gstreamer.WavEncoder-class.html"><a title="timeside.encode.wav.WavEncoder
+timeside.tests.api.examples.WavEncoder
+timeside.tests.api.gstreamer.WavEncoder" class="py-name" href="#" onclick="return doclink('link-15', 'WavEncoder', 'link-15');">WavEncoder</a></tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-16" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-16', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-17', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-18', 'api', 'link-2');">api</a></tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-19', 'examples', 'link-3');">examples</a></tt> <tt class="py-keyword">import</tt> <tt id="link-20" class="py-name"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-20', 'FileDecoder', 'link-14');">FileDecoder</a></tt><tt class="py-op">,</tt> <tt id="link-21" class="py-name"><a title="timeside.encode.wav.WavEncoder
+timeside.tests.api.examples.WavEncoder
+timeside.tests.api.gstreamer.WavEncoder" class="py-name" href="#" onclick="return doclink('link-21', 'WavEncoder', 'link-15');">WavEncoder</a></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt id="link-22" class="py-name" targets="Variable timeside.tests.api.test_pipe_spectrogram.image_file=timeside.tests.api.test_pipe_spectrogram-module.html#image_file,Variable timeside.tests.api.test_pipe_waveform.image_file=timeside.tests.api.test_pipe_waveform-module.html#image_file"><a title="timeside.tests.api.test_pipe_spectrogram.image_file
+timeside.tests.api.test_pipe_waveform.image_file" class="py-name" href="#" onclick="return doclink('link-22', 'image_file', 'link-22');">image_file</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'./spectrogram.png'</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"># mono</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#source = os.path.join(os.path.dirname(__file__), "../samples/sweep_source.wav")</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#source = os.path.join(os.path.dirname(__file__), "../samples/guitar.wav")</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#source = os.path.join(os.path.dirname(__file__), "../samples/sweep_source.mp3")</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># stereo</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt id="link-23" class="py-name" targets="Variable timeside.tests.api.test_lolevel.source=timeside.tests.api.test_lolevel-module.html#source,Variable timeside.tests.api.test_pipe.source=timeside.tests.api.test_pipe-module.html#source,Variable timeside.tests.api.test_pipe_spectrogram.source=timeside.tests.api.test_pipe_spectrogram-module.html#source,Variable timeside.tests.api.test_pipe_waveform.source=timeside.tests.api.test_pipe_waveform-module.html#source"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-23', 'source', 'link-23');">source</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt class="py-name">__file__</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"../samples/sweep.wav"</tt><tt class="py-op">)</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-comment">#source = os.path.join(os.path.dirname(__file__), "../samples/guitar_stereo.wav")</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#source = os.path.join(os.path.dirname(__file__), "/home/momo/music/flac/Isabelle Aboulker/Mon imagier des instruments/16 - Isabelle Aboulker - 16 instru.flac")</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#source = os.path.join(os.path.dirname(__file__), "/home/momo/music/ogg/Emilie_Jolie/01 - Henri Salvador - Prologue.ogg")</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"><tt id="link-24" class="py-name" targets="Variable timeside.tests.api.test_lolevel.decoder=timeside.tests.api.test_lolevel-module.html#decoder,Variable timeside.tests.api.test_pipe.decoder=timeside.tests.api.test_pipe-module.html#decoder,Variable timeside.tests.api.test_pipe_spectrogram.decoder=timeside.tests.api.test_pipe_spectrogram-module.html#decoder,Variable timeside.tests.api.test_pipe_waveform.decoder=timeside.tests.api.test_pipe_waveform-module.html#decoder"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-24', 'decoder', 'link-24');">decoder</a></tt>  <tt class="py-op">=</tt> <tt id="link-25" class="py-name"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-25', 'FileDecoder', 'link-14');">FileDecoder</a></tt><tt class="py-op">(</tt><tt id="link-26" class="py-name"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-26', 'source', 'link-23');">source</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"><tt id="link-27" class="py-name" targets="Variable timeside.tests.api.test_pipe_spectrogram.spectrogram=timeside.tests.api.test_pipe_spectrogram-module.html#spectrogram"><a title="timeside.tests.api.test_pipe_spectrogram.spectrogram" class="py-name" href="#" onclick="return doclink('link-27', 'spectrogram', 'link-27');">spectrogram</a></tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-28', 'examples', 'link-3');">examples</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Class timeside.tests.api.examples.Spectrogram=timeside.tests.api.examples.Spectrogram-class.html"><a title="timeside.tests.api.examples.Spectrogram" class="py-name" href="#" onclick="return doclink('link-29', 'Spectrogram', 'link-29');">Spectrogram</a></tt><tt class="py-op">(</tt><tt class="py-name">width</tt><tt class="py-op">=</tt><tt class="py-number">1024</tt><tt class="py-op">,</tt> <tt class="py-name">height</tt><tt class="py-op">=</tt><tt class="py-number">256</tt><tt class="py-op">,</tt> <tt class="py-name">output</tt><tt class="py-op">=</tt><tt id="link-30" class="py-name"><a title="timeside.tests.api.test_pipe_spectrogram.image_file
+timeside.tests.api.test_pipe_waveform.image_file" class="py-name" href="#" onclick="return doclink('link-30', 'image_file', 'link-22');">image_file</a></tt><tt class="py-op">,</tt> <tt id="link-31" class="py-name" targets="Variable timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#bg_color,Variable timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#bg_color"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-31', 'bg_color', 'link-31');">bg_color</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-32" class="py-name" targets="Variable timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#color_scheme,Variable timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#color_scheme"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-32', 'color_scheme', 'link-32');">color_scheme</a></tt><tt class="py-op">=</tt><tt class="py-string">'default'</tt><tt class="py-op">)</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"><tt class="py-op">(</tt><tt id="link-33" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-33', 'decoder', 'link-24');">decoder</a></tt> <tt class="py-op">|</tt> <tt id="link-34" class="py-name"><a title="timeside.tests.api.test_pipe_spectrogram.spectrogram" class="py-name" href="#" onclick="return doclink('link-34', 'spectrogram', 'link-27');">spectrogram</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Method timeside.core.ProcessPipe.run()=timeside.core.ProcessPipe-class.html#run,Method timeside.tests.TestRunner.run()=timeside.tests.TestRunner-class.html#run,Method timeside.tests.test.TestAnalyzers.run()=timeside.tests.test.TestAnalyzers-class.html#run,Method timeside.tests.test.TestEncoders.run()=timeside.tests.test.TestEncoders-class.html#run,Method timeside.tests.test.TestGraphers.run()=timeside.tests.test.TestGraphers-class.html#run"><a title="timeside.core.ProcessPipe.run
+timeside.tests.TestRunner.run
+timeside.tests.test.TestAnalyzers.run
+timeside.tests.test.TestEncoders.run
+timeside.tests.test.TestGraphers.run" class="py-name" href="#" onclick="return doclink('link-35', 'run', 'link-35');">run</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">'frames per pixel = '</tt><tt class="py-op">,</tt> <tt id="link-36" class="py-name"><a title="timeside.tests.api.test_pipe_spectrogram.spectrogram" class="py-name" href="#" onclick="return doclink('link-36', 'spectrogram', 'link-27');">spectrogram</a></tt><tt class="py-op">.</tt><tt class="py-name">graph</tt><tt class="py-op">.</tt><tt class="py-name">samples_per_pixel</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">"render spectrogram to: %s"</tt> <tt class="py-op">%</tt> <tt id="link-37" class="py-name"><a title="timeside.tests.api.test_pipe_spectrogram.image_file
+timeside.tests.api.test_pipe_waveform.image_file" class="py-name" href="#" onclick="return doclink('link-37', 'image_file', 'link-22');">image_file</a></tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line"><tt id="link-38" class="py-name"><a title="timeside.tests.api.test_pipe_spectrogram.spectrogram" class="py-name" href="#" onclick="return doclink('link-38', 'spectrogram', 'link-27');">spectrogram</a></tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method timeside.analyze.channels.ChannelAnalyser.render()=timeside.analyze.channels.ChannelAnalyser-class.html#render,Method timeside.analyze.dc.MeanDCShiftAnalyser.render()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#render,Method timeside.analyze.duration.DurationAnalyzer.render()=timeside.analyze.duration.DurationAnalyzer-class.html#render,Method timeside.analyze.encoding.EncodingAnalyser.render()=timeside.analyze.encoding.EncodingAnalyser-class.html#render,Method timeside.analyze.format.FormatAnalyser.render()=timeside.analyze.format.FormatAnalyser-class.html#render,Method timeside.analyze.max_level.MaxLevelAnalyzer.render()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#render,Method timeside.analyze.mean_level.MeanLevelAnalyser.render()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#render,Method timeside.analyze.resolution.ResolutionAnalyser.render()=timeside.analyze.resolution.ResolutionAnalyser-class.html#render,Method timeside.analyze.samplerate.SampleRateAnalyzer.render()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#render,Method timeside.analyze.vamp.core.VampCoreAnalyzer.render()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#render,Method timeside.api.IGrapher.render()=timeside.api.IGrapher-class.html#render,Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.render()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#render,Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.render()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#render,Method timeside.tests.api.examples.Spectrogram.render()=timeside.tests.api.examples.Spectrogram-class.html#render,Method timeside.tests.api.examples.Waveform.render()=timeside.tests.api.examples.Waveform-class.html#render"><a title="timeside.analyze.channels.ChannelAnalyser.render
+timeside.analyze.dc.MeanDCShiftAnalyser.render
+timeside.analyze.duration.DurationAnalyzer.render
+timeside.analyze.encoding.EncodingAnalyser.render
+timeside.analyze.format.FormatAnalyser.render
+timeside.analyze.max_level.MaxLevelAnalyzer.render
+timeside.analyze.mean_level.MeanLevelAnalyser.render
+timeside.analyze.resolution.ResolutionAnalyser.render
+timeside.analyze.samplerate.SampleRateAnalyzer.render
+timeside.analyze.vamp.core.VampCoreAnalyzer.render
+timeside.api.IGrapher.render
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.render
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.render
+timeside.tests.api.examples.Spectrogram.render
+timeside.tests.api.examples.Waveform.render" class="py-name" href="#" onclick="return doclink('link-39', 'render', 'link-39');">render</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.test_pipe_waveform-module.html b/doc/epydoc/timeside.tests.api.test_pipe_waveform-module.html
new file mode 100644 (file)
index 0000000..3a221b0
--- /dev/null
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.test_pipe_waveform</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        Module&nbsp;test_pipe_waveform
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.test_pipe_waveform-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module test_pipe_waveform</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.api.test_pipe_waveform-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="use_gst"></a><span class="summary-name">use_gst</span> = <code title="1">1</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="image_file"></a><span class="summary-name">image_file</span> = <code title="'./waveform.png'"><code class="variable-quote">'</code><code class="variable-string">./waveform.png</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.test_pipe_waveform-module.html#source" class="summary-name">source</a> = <code title="'/home/momo/music/flac/Isabelle Aboulker/Mon imagier des instruments/1\
+6 - Isabelle Aboulker - 16 instru.flac'"><code class="variable-quote">'</code><code class="variable-string">/home/momo/music/flac/Isabelle Aboulker/Mon imagier </code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="decoder"></a><span class="summary-name">decoder</span> = <code title="FileDecoder(source)">FileDecoder(source)</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.api.test_pipe_waveform-module.html#waveform" class="summary-name">waveform</a> = <code title="examples.Waveform(width= 1024, height= 256, output= image_file, bg_col\
+or= (0, 0, 0), color_scheme= 'default')">examples.Waveform(width= 1024, height= 256, output=<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="source"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">source</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">/home/momo/music/flac/Isabelle Aboulker/Mon imagier des instruments/1</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">6 - Isabelle Aboulker - 16 instru.flac</code><code class="variable-quote">'</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="waveform"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">waveform</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+examples.Waveform(width= 1024, height= 256, output= image_file, bg_col<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+or= (0, 0, 0), color_scheme= 'default')
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.api.test_pipe_waveform-pysrc.html b/doc/epydoc/timeside.tests.api.test_pipe_waveform-pysrc.html
new file mode 100644 (file)
index 0000000..bcb19ac
--- /dev/null
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.api.test_pipe_waveform</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.api-module.html">Package&nbsp;api</a> ::
+        Module&nbsp;test_pipe_waveform
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.api.test_pipe_waveform-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.tests.api.test_pipe_waveform-module.html">Module timeside.tests.api.test_pipe_waveform</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package timeside.tests=timeside.tests-module.html"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-1', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-2', 'api', 'link-2');">api</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Module timeside.tests.api.examples=timeside.tests.api.examples-module.html"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-3', 'examples', 'link-3');">examples</a></tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-4', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-5', 'core', 'link-5');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-6', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-7', 'api', 'link-2');">api</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt id="link-8" class="py-name" targets="Variable timeside.tests.api.test_lolevel.use_gst=timeside.tests.api.test_lolevel-module.html#use_gst,Variable timeside.tests.api.test_pipe.use_gst=timeside.tests.api.test_pipe-module.html#use_gst,Variable timeside.tests.api.test_pipe_spectrogram.use_gst=timeside.tests.api.test_pipe_spectrogram-module.html#use_gst,Variable timeside.tests.api.test_pipe_waveform.use_gst=timeside.tests.api.test_pipe_waveform-module.html#use_gst"><a title="timeside.tests.api.test_lolevel.use_gst
+timeside.tests.api.test_pipe.use_gst
+timeside.tests.api.test_pipe_spectrogram.use_gst
+timeside.tests.api.test_pipe_waveform.use_gst" class="py-name" href="#" onclick="return doclink('link-8', 'use_gst', 'link-8');">use_gst</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-9" class="py-name"><a title="timeside.tests.api.test_lolevel.use_gst
+timeside.tests.api.test_pipe.use_gst
+timeside.tests.api.test_pipe_spectrogram.use_gst
+timeside.tests.api.test_pipe_waveform.use_gst" class="py-name" href="#" onclick="return doclink('link-9', 'use_gst', 'link-8');">use_gst</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-10" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-10', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-11', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-12', 'api', 'link-2');">api</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Module timeside.tests.api.gstreamer=timeside.tests.api.gstreamer-module.html"><a title="timeside.tests.api.gstreamer" class="py-name" href="#" onclick="return doclink('link-13', 'gstreamer', 'link-13');">gstreamer</a></tt> <tt class="py-keyword">import</tt> <tt id="link-14" class="py-name" targets="Class timeside.tests.api.examples.FileDecoder=timeside.tests.api.examples.FileDecoder-class.html,Class timeside.tests.api.gstreamer.FileDecoder=timeside.tests.api.gstreamer.FileDecoder-class.html"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-14', 'FileDecoder', 'link-14');">FileDecoder</a></tt><tt class="py-op">,</tt> <tt id="link-15" class="py-name" targets="Class timeside.encode.wav.WavEncoder=timeside.encode.wav.WavEncoder-class.html,Class timeside.tests.api.examples.WavEncoder=timeside.tests.api.examples.WavEncoder-class.html,Class timeside.tests.api.gstreamer.WavEncoder=timeside.tests.api.gstreamer.WavEncoder-class.html"><a title="timeside.encode.wav.WavEncoder
+timeside.tests.api.examples.WavEncoder
+timeside.tests.api.gstreamer.WavEncoder" class="py-name" href="#" onclick="return doclink('link-15', 'WavEncoder', 'link-15');">WavEncoder</a></tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-16" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-16', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-17', 'tests', 'link-1');">tests</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-18', 'api', 'link-2');">api</a></tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-19', 'examples', 'link-3');">examples</a></tt> <tt class="py-keyword">import</tt> <tt id="link-20" class="py-name"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-20', 'FileDecoder', 'link-14');">FileDecoder</a></tt><tt class="py-op">,</tt> <tt id="link-21" class="py-name"><a title="timeside.encode.wav.WavEncoder
+timeside.tests.api.examples.WavEncoder
+timeside.tests.api.gstreamer.WavEncoder" class="py-name" href="#" onclick="return doclink('link-21', 'WavEncoder', 'link-15');">WavEncoder</a></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt id="link-22" class="py-name" targets="Variable timeside.tests.api.test_pipe_spectrogram.image_file=timeside.tests.api.test_pipe_spectrogram-module.html#image_file,Variable timeside.tests.api.test_pipe_waveform.image_file=timeside.tests.api.test_pipe_waveform-module.html#image_file"><a title="timeside.tests.api.test_pipe_spectrogram.image_file
+timeside.tests.api.test_pipe_waveform.image_file" class="py-name" href="#" onclick="return doclink('link-22', 'image_file', 'link-22');">image_file</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'./waveform.png'</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"># mono</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#source = os.path.join(os.path.dirname(__file__), "../samples/sweep_source.wav")</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#source = os.path.join(os.path.dirname(__file__), "../samples/guitar.wav")</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#source = os.path.join(os.path.dirname(__file__), "../samples/sweep_source.mp3")</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#source = os.path.join(os.path.dirname(__file__), "../samples/drums.ogg")</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"># stereo</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#source = os.path.join(os.path.dirname(__file__), "../samples/sweep.wav")</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#source = os.path.join(os.path.dirname(__file__), "../samples/guitar_stereo.wav")</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt id="link-23" class="py-name" targets="Variable timeside.tests.api.test_lolevel.source=timeside.tests.api.test_lolevel-module.html#source,Variable timeside.tests.api.test_pipe.source=timeside.tests.api.test_pipe-module.html#source,Variable timeside.tests.api.test_pipe_spectrogram.source=timeside.tests.api.test_pipe_spectrogram-module.html#source,Variable timeside.tests.api.test_pipe_waveform.source=timeside.tests.api.test_pipe_waveform-module.html#source"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-23', 'source', 'link-23');">source</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt class="py-name">__file__</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"/home/momo/music/flac/Isabelle Aboulker/Mon imagier des instruments/16 - Isabelle Aboulker - 16 instru.flac"</tt><tt class="py-op">)</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"><tt class="py-comment">#source = os.path.join(os.path.dirname(__file__), "/home/momo/music/ogg/Emilie_Jolie/01 - Henri Saogg")</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"><tt id="link-24" class="py-name" targets="Variable timeside.tests.api.test_lolevel.decoder=timeside.tests.api.test_lolevel-module.html#decoder,Variable timeside.tests.api.test_pipe.decoder=timeside.tests.api.test_pipe-module.html#decoder,Variable timeside.tests.api.test_pipe_spectrogram.decoder=timeside.tests.api.test_pipe_spectrogram-module.html#decoder,Variable timeside.tests.api.test_pipe_waveform.decoder=timeside.tests.api.test_pipe_waveform-module.html#decoder"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-24', 'decoder', 'link-24');">decoder</a></tt>  <tt class="py-op">=</tt> <tt id="link-25" class="py-name"><a title="timeside.tests.api.examples.FileDecoder
+timeside.tests.api.gstreamer.FileDecoder" class="py-name" href="#" onclick="return doclink('link-25', 'FileDecoder', 'link-14');">FileDecoder</a></tt><tt class="py-op">(</tt><tt id="link-26" class="py-name"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-26', 'source', 'link-23');">source</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"><tt id="link-27" class="py-name" targets="Variable timeside.tests.api.test_pipe_waveform.waveform=timeside.tests.api.test_pipe_waveform-module.html#waveform"><a title="timeside.tests.api.test_pipe_waveform.waveform" class="py-name" href="#" onclick="return doclink('link-27', 'waveform', 'link-27');">waveform</a></tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="timeside.tests.api.examples" class="py-name" href="#" onclick="return doclink('link-28', 'examples', 'link-3');">examples</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Class timeside.tests.api.examples.Waveform=timeside.tests.api.examples.Waveform-class.html"><a title="timeside.tests.api.examples.Waveform" class="py-name" href="#" onclick="return doclink('link-29', 'Waveform', 'link-29');">Waveform</a></tt><tt class="py-op">(</tt><tt class="py-name">width</tt><tt class="py-op">=</tt><tt class="py-number">1024</tt><tt class="py-op">,</tt> <tt class="py-name">height</tt><tt class="py-op">=</tt><tt class="py-number">256</tt><tt class="py-op">,</tt> <tt class="py-name">output</tt><tt class="py-op">=</tt><tt id="link-30" class="py-name"><a title="timeside.tests.api.test_pipe_spectrogram.image_file
+timeside.tests.api.test_pipe_waveform.image_file" class="py-name" href="#" onclick="return doclink('link-30', 'image_file', 'link-22');">image_file</a></tt><tt class="py-op">,</tt> <tt id="link-31" class="py-name" targets="Variable timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#bg_color,Variable timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#bg_color"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.bg_color
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.bg_color" class="py-name" href="#" onclick="return doclink('link-31', 'bg_color', 'link-31');">bg_color</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-32" class="py-name" targets="Variable timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#color_scheme,Variable timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#color_scheme"><a title="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.color_scheme
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.color_scheme" class="py-name" href="#" onclick="return doclink('link-32', 'color_scheme', 'link-32');">color_scheme</a></tt><tt class="py-op">=</tt><tt class="py-string">'default'</tt><tt class="py-op">)</tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"><tt class="py-op">(</tt><tt id="link-33" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-33', 'decoder', 'link-24');">decoder</a></tt> <tt class="py-op">|</tt> <tt id="link-34" class="py-name"><a title="timeside.tests.api.test_pipe_waveform.waveform" class="py-name" href="#" onclick="return doclink('link-34', 'waveform', 'link-27');">waveform</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Method timeside.core.ProcessPipe.run()=timeside.core.ProcessPipe-class.html#run,Method timeside.tests.TestRunner.run()=timeside.tests.TestRunner-class.html#run,Method timeside.tests.test.TestAnalyzers.run()=timeside.tests.test.TestAnalyzers-class.html#run,Method timeside.tests.test.TestEncoders.run()=timeside.tests.test.TestEncoders-class.html#run,Method timeside.tests.test.TestGraphers.run()=timeside.tests.test.TestGraphers-class.html#run"><a title="timeside.core.ProcessPipe.run
+timeside.tests.TestRunner.run
+timeside.tests.test.TestAnalyzers.run
+timeside.tests.test.TestEncoders.run
+timeside.tests.test.TestGraphers.run" class="py-name" href="#" onclick="return doclink('link-35', 'run', 'link-35');">run</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line"> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">'frames per pixel = '</tt><tt class="py-op">,</tt> <tt id="link-36" class="py-name"><a title="timeside.tests.api.test_pipe_waveform.waveform" class="py-name" href="#" onclick="return doclink('link-36', 'waveform', 'link-27');">waveform</a></tt><tt class="py-op">.</tt><tt class="py-name">graph</tt><tt class="py-op">.</tt><tt class="py-name">samples_per_pixel</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line"><tt class="py-keyword">print</tt> <tt class="py-string">"render waveform to: %s"</tt> <tt class="py-op">%</tt> <tt id="link-37" class="py-name"><a title="timeside.tests.api.test_pipe_spectrogram.image_file
+timeside.tests.api.test_pipe_waveform.image_file" class="py-name" href="#" onclick="return doclink('link-37', 'image_file', 'link-22');">image_file</a></tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"><tt id="link-38" class="py-name"><a title="timeside.tests.api.test_pipe_waveform.waveform" class="py-name" href="#" onclick="return doclink('link-38', 'waveform', 'link-27');">waveform</a></tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method timeside.analyze.channels.ChannelAnalyser.render()=timeside.analyze.channels.ChannelAnalyser-class.html#render,Method timeside.analyze.dc.MeanDCShiftAnalyser.render()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#render,Method timeside.analyze.duration.DurationAnalyzer.render()=timeside.analyze.duration.DurationAnalyzer-class.html#render,Method timeside.analyze.encoding.EncodingAnalyser.render()=timeside.analyze.encoding.EncodingAnalyser-class.html#render,Method timeside.analyze.format.FormatAnalyser.render()=timeside.analyze.format.FormatAnalyser-class.html#render,Method timeside.analyze.max_level.MaxLevelAnalyzer.render()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#render,Method timeside.analyze.mean_level.MeanLevelAnalyser.render()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#render,Method timeside.analyze.resolution.ResolutionAnalyser.render()=timeside.analyze.resolution.ResolutionAnalyser-class.html#render,Method timeside.analyze.samplerate.SampleRateAnalyzer.render()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#render,Method timeside.analyze.vamp.core.VampCoreAnalyzer.render()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#render,Method timeside.api.IGrapher.render()=timeside.api.IGrapher-class.html#render,Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.render()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#render,Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.render()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#render,Method timeside.tests.api.examples.Spectrogram.render()=timeside.tests.api.examples.Spectrogram-class.html#render,Method timeside.tests.api.examples.Waveform.render()=timeside.tests.api.examples.Waveform-class.html#render"><a title="timeside.analyze.channels.ChannelAnalyser.render
+timeside.analyze.dc.MeanDCShiftAnalyser.render
+timeside.analyze.duration.DurationAnalyzer.render
+timeside.analyze.encoding.EncodingAnalyser.render
+timeside.analyze.format.FormatAnalyser.render
+timeside.analyze.max_level.MaxLevelAnalyzer.render
+timeside.analyze.mean_level.MeanLevelAnalyser.render
+timeside.analyze.resolution.ResolutionAnalyser.render
+timeside.analyze.samplerate.SampleRateAnalyzer.render
+timeside.analyze.vamp.core.VampCoreAnalyzer.render
+timeside.api.IGrapher.render
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.render
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.render
+timeside.tests.api.examples.Spectrogram.render
+timeside.tests.api.examples.Waveform.render" class="py-name" href="#" onclick="return doclink('link-39', 'render', 'link-39');">render</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.listprocessors-module.html b/doc/epydoc/timeside.tests.listprocessors-module.html
new file mode 100644 (file)
index 0000000..cfa5ffc
--- /dev/null
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.listprocessors</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Module&nbsp;listprocessors
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.listprocessors-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module listprocessors</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.listprocessors-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="list_processors"></a><span class="summary-sig-name">list_processors</span>(<span class="summary-sig-arg">interface</span>,
+        <span class="summary-sig-arg">prefix</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.listprocessors-pysrc.html#list_processors">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.listprocessors-pysrc.html b/doc/epydoc/timeside.tests.listprocessors-pysrc.html
new file mode 100644 (file)
index 0000000..852ad29
--- /dev/null
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.listprocessors</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Module&nbsp;listprocessors
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.listprocessors-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.tests.listprocessors-module.html">Module timeside.tests.listprocessors</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"> </tt>
+<a name="list_processors"></a><div id="list_processors-def"><a name="L3"></a><tt class="py-lineno"> 3</tt> <a class="py-toggle" href="#" id="list_processors-toggle" onclick="return toggle('list_processors');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.listprocessors-module.html#list_processors">list_processors</a><tt class="py-op">(</tt><tt class="py-param">interface</tt><tt class="py-op">,</tt> <tt class="py-param">prefix</tt><tt class="py-op">=</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="list_processors-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="list_processors-expanded"><a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt> <tt class="py-name">prefix</tt> <tt class="py-op">+</tt> <tt class="py-name">interface</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line">    <tt class="py-name">subinterfaces</tt> <tt class="py-op">=</tt> <tt class="py-name">interface</tt><tt class="py-op">.</tt><tt class="py-name">__subclasses__</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">subinterfaces</tt><tt class="py-op">:</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line">        <tt id="link-1" class="py-name" targets="Function timeside.tests.listprocessors.list_processors()=timeside.tests.listprocessors-module.html#list_processors"><a title="timeside.tests.listprocessors.list_processors" class="py-name" href="#" onclick="return doclink('link-1', 'list_processors', 'link-1');">list_processors</a></tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">prefix</tt> <tt class="py-op">+</tt> <tt class="py-string">"  "</tt><tt class="py-op">)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line">    <tt id="link-2" class="py-name" targets="Function timeside.core.processors()=timeside.core-module.html#processors"><a title="timeside.core.processors" class="py-name" href="#" onclick="return doclink('link-2', 'processors', 'link-2');">processors</a></tt> <tt class="py-op">=</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="timeside.core.processors" class="py-name" href="#" onclick="return doclink('link-4', 'processors', 'link-2');">processors</a></tt><tt class="py-op">(</tt><tt class="py-name">interface</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">p</tt> <tt class="py-keyword">in</tt> <tt id="link-5" class="py-name"><a title="timeside.core.processors" class="py-name" href="#" onclick="return doclink('link-5', 'processors', 'link-2');">processors</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-name">prefix</tt> <tt class="py-op">+</tt> <tt class="py-string">"  %s [%s]"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Static Method timeside.analyze.channels.ChannelAnalyser.id()=timeside.analyze.channels.ChannelAnalyser-class.html#id,Static Method timeside.analyze.dc.MeanDCShiftAnalyser.id()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#id,Static Method timeside.analyze.duration.DurationAnalyzer.id()=timeside.analyze.duration.DurationAnalyzer-class.html#id,Static Method timeside.analyze.encoding.EncodingAnalyser.id()=timeside.analyze.encoding.EncodingAnalyser-class.html#id,Static Method timeside.analyze.format.FormatAnalyser.id()=timeside.analyze.format.FormatAnalyser-class.html#id,Static Method timeside.analyze.max_level.MaxLevelAnalyzer.id()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#id,Static Method timeside.analyze.mean_level.MeanLevelAnalyser.id()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#id,Static Method timeside.analyze.resolution.ResolutionAnalyser.id()=timeside.analyze.resolution.ResolutionAnalyser-class.html#id,Static Method timeside.analyze.samplerate.SampleRateAnalyzer.id()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#id,Method timeside.analyze.vamp.core.VampCoreAnalyzer.id()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#id,Static Method timeside.api.IProcessor.id()=timeside.api.IProcessor-class.html#id,Static Method timeside.decode.flac.FlacDecoder.id()=timeside.decode.flac.FlacDecoder-class.html#id,Static Method timeside.decode.mp3.Mp3Decoder.id()=timeside.decode.mp3.Mp3Decoder-class.html#id,Static Method timeside.decode.ogg.OggDecoder.id()=timeside.decode.ogg.OggDecoder-class.html#id,Static Method timeside.decode.wav.WavDecoder.id()=timeside.decode.wav.WavDecoder-class.html#id,Static Method timeside.encode.flac.FlacEncoder.id()=timeside.encode.flac.FlacEncoder-class.html#id,Static Method timeside.encode.mp3.Mp3Encoder.id()=timeside.encode.mp3.Mp3Encoder-class.html#id,Static Method timeside.encode.ogg.OggVorbisEncoder.id()=timeside.encode.ogg.OggVorbisEncoder-class.html#id,Static Method timeside.encode.wav.WavEncoder.id()=timeside.encode.wav.WavEncoder-class.html#id,Static Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#id,Static Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#id,Static Method timeside.tests.api.examples.Duration.id()=timeside.tests.api.examples.Duration-class.html#id,Static Method timeside.tests.api.examples.FileDecoder.id()=timeside.tests.api.examples.FileDecoder-class.html#id,Static Method timeside.tests.api.examples.FixedInputProcessor.id()=timeside.tests.api.examples.FixedInputProcessor-class.html#id,Static Method timeside.tests.api.examples.Gain.id()=timeside.tests.api.examples.Gain-class.html#id,Static Method timeside.tests.api.examples.MaxLevel.id()=timeside.tests.api.examples.MaxLevel-class.html#id,Static Method timeside.tests.api.examples.Spectrogram.id()=timeside.tests.api.examples.Spectrogram-class.html#id,Static Method timeside.tests.api.examples.WavEncoder.id()=timeside.tests.api.examples.WavEncoder-class.html#id,Static Method timeside.tests.api.examples.Waveform.id()=timeside.tests.api.examples.Waveform-class.html#id,Static Method timeside.tests.api.gstreamer.FileDecoder.id()=timeside.tests.api.gstreamer.FileDecoder-class.html#id,Static Method timeside.tests.api.gstreamer.WavEncoder.id()=timeside.tests.api.gstreamer.WavEncoder-class.html#id"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-6', 'id', 'link-6');">id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt id="link-7" class="py-name"><a title="timeside.tests.listprocessors.list_processors" class="py-name" href="#" onclick="return doclink('link-7', 'list_processors', 'link-1');">list_processors</a></tt><tt class="py-op">(</tt><tt id="link-8" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-8', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-9', 'api', 'link-9');">api</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Class timeside.api.IProcessor=timeside.api.IProcessor-class.html"><a title="timeside.api.IProcessor" class="py-name" href="#" onclick="return doclink('link-10', 'IProcessor', 'link-10');">IProcessor</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.test-module.html b/doc/epydoc/timeside.tests.test-module.html
new file mode 100644 (file)
index 0000000..d640a76
--- /dev/null
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.test</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Module&nbsp;test
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.test-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module test</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.test-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.test.TestAnalyzers-class.html" class="summary-name">TestAnalyzers</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.test.TestDecoders-class.html" class="summary-name">TestDecoders</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.test.TestEncoders-class.html" class="summary-name">TestEncoders</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.test.TestGraphers-class.html" class="summary-name">TestGraphers</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="mimetype"></a><span class="summary-sig-name">mimetype</span>(<span class="summary-sig-arg">path</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.test-pysrc.html#mimetype">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.test-pysrc.html b/doc/epydoc/timeside.tests.test-pysrc.html
new file mode 100644 (file)
index 0000000..87ad0e8
--- /dev/null
@@ -0,0 +1,889 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.test</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Module&nbsp;test
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.test-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.tests.test-module.html">Module timeside.tests.test</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">magic</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-1', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-2', 'core', 'link-2');">core</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"> </tt>
+<a name="TestAnalyzers"></a><div id="TestAnalyzers-def"><a name="L10"></a><tt class="py-lineno"> 10</tt> <a class="py-toggle" href="#" id="TestAnalyzers-toggle" onclick="return toggle('TestAnalyzers');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.test.TestAnalyzers-class.html">TestAnalyzers</a><tt class="py-op">:</tt> </tt>
+</div><div id="TestAnalyzers-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="TestAnalyzers-expanded"><a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line">    <tt id="link-3" class="py-name" targets="Variable timeside.tests.test.TestAnalyzers.analyzers=timeside.tests.test.TestAnalyzers-class.html#analyzers"><a title="timeside.tests.test.TestAnalyzers.analyzers" class="py-name" href="#" onclick="return doclink('link-3', 'analyzers', 'link-3');">analyzers</a></tt> <tt class="py-op">=</tt> <tt id="link-4" class="py-name" targets="Function timeside.core.processors()=timeside.core-module.html#processors"><a title="timeside.core.processors" class="py-name" href="#" onclick="return doclink('link-4', 'processors', 'link-4');">processors</a></tt><tt class="py-op">(</tt><tt id="link-5" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-5', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Module timeside.api=timeside.api-module.html,Package timeside.tests.api=timeside.tests.api-module.html"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-6', 'api', 'link-6');">api</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Class timeside.api.IAnalyzer=timeside.api.IAnalyzer-class.html"><a title="timeside.api.IAnalyzer" class="py-name" href="#" onclick="return doclink('link-7', 'IAnalyzer', 'link-7');">IAnalyzer</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"> </tt>
+<a name="TestAnalyzers.list"></a><div id="TestAnalyzers.list-def"><a name="L13"></a><tt class="py-lineno"> 13</tt> <a class="py-toggle" href="#" id="TestAnalyzers.list-toggle" onclick="return toggle('TestAnalyzers.list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.test.TestAnalyzers-class.html#list">list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestAnalyzers.list-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestAnalyzers.list-expanded"><a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line">        <tt id="link-8" class="py-name"><a title="timeside.tests.test.TestAnalyzers.analyzers" class="py-name" href="#" onclick="return doclink('link-8', 'analyzers', 'link-3');">analyzers</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">analyzer_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="timeside.tests.test.TestAnalyzers.analyzers" class="py-name" href="#" onclick="return doclink('link-9', 'analyzers', 'link-3');">analyzers</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line">            <tt class="py-comment"># FIXME: should access the name, id and unit member statically</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment"># there should be no need to instantiate analyzer_class</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment"># eg: access directly analyzer_class.name(), etc...</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment">#</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment"># This remark is true at many places in this file</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt id="link-10" class="py-name" targets="Variable timeside.tests.api.test_lolevel.analyzer=timeside.tests.api.test_lolevel-module.html#analyzer"><a title="timeside.tests.api.test_lolevel.analyzer" class="py-name" href="#" onclick="return doclink('link-10', 'analyzer', 'link-10');">analyzer</a></tt> <tt class="py-op">=</tt> <tt class="py-name">analyzer_class</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">            <tt id="link-11" class="py-name"><a title="timeside.tests.test.TestAnalyzers.analyzers" class="py-name" href="#" onclick="return doclink('link-11', 'analyzers', 'link-3');">analyzers</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'name'</tt><tt class="py-op">:</tt><tt id="link-12" class="py-name"><a title="timeside.tests.api.test_lolevel.analyzer" class="py-name" href="#" onclick="return doclink('link-12', 'analyzer', 'link-10');">analyzer</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method timeside.analyze.channels.ChannelAnalyser.name()=timeside.analyze.channels.ChannelAnalyser-class.html#name,Method timeside.analyze.dc.MeanDCShiftAnalyser.name()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#name,Method timeside.analyze.duration.DurationAnalyzer.name()=timeside.analyze.duration.DurationAnalyzer-class.html#name,Method timeside.analyze.encoding.EncodingAnalyser.name()=timeside.analyze.encoding.EncodingAnalyser-class.html#name,Method timeside.analyze.format.FormatAnalyser.name()=timeside.analyze.format.FormatAnalyser-class.html#name,Static Method timeside.analyze.max_level.MaxLevelAnalyzer.name()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#name,Method timeside.analyze.mean_level.MeanLevelAnalyser.name()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#name,Method timeside.analyze.resolution.ResolutionAnalyser.name()=timeside.analyze.resolution.ResolutionAnalyser-class.html#name,Method timeside.analyze.samplerate.SampleRateAnalyzer.name()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#name,Method timeside.analyze.vamp.core.VampCoreAnalyzer.name()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#name,Static Method timeside.api.IAnalyzer.name()=timeside.api.IAnalyzer-class.html#name,Static Method timeside.api.IEffect.name()=timeside.api.IEffect-class.html#name,Static Method timeside.api.IGrapher.name()=timeside.api.IGrapher-class.html#name,Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#name,Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#name,Static Method timeside.tests.api.examples.Duration.name()=timeside.tests.api.examples.Duration-class.html#name,Static Method timeside.tests.api.examples.Gain.name()=timeside.tests.api.examples.Gain-class.html#name,Static Method timeside.tests.api.examples.MaxLevel.name()=timeside.tests.api.examples.MaxLevel-class.html#name,Static Method timeside.tests.api.examples.Spectrogram.name()=timeside.tests.api.examples.Spectrogram-class.html#name,Static Method timeside.tests.api.examples.Waveform.name()=timeside.tests.api.examples.Waveform-class.html#name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-13', 'name', 'link-13');">name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">                            <tt class="py-string">'id'</tt><tt class="py-op">:</tt><tt id="link-14" class="py-name"><a title="timeside.tests.api.test_lolevel.analyzer" class="py-name" href="#" onclick="return doclink('link-14', 'analyzer', 'link-10');">analyzer</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Static Method timeside.analyze.channels.ChannelAnalyser.id()=timeside.analyze.channels.ChannelAnalyser-class.html#id,Static Method timeside.analyze.dc.MeanDCShiftAnalyser.id()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#id,Static Method timeside.analyze.duration.DurationAnalyzer.id()=timeside.analyze.duration.DurationAnalyzer-class.html#id,Static Method timeside.analyze.encoding.EncodingAnalyser.id()=timeside.analyze.encoding.EncodingAnalyser-class.html#id,Static Method timeside.analyze.format.FormatAnalyser.id()=timeside.analyze.format.FormatAnalyser-class.html#id,Static Method timeside.analyze.max_level.MaxLevelAnalyzer.id()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#id,Static Method timeside.analyze.mean_level.MeanLevelAnalyser.id()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#id,Static Method timeside.analyze.resolution.ResolutionAnalyser.id()=timeside.analyze.resolution.ResolutionAnalyser-class.html#id,Static Method timeside.analyze.samplerate.SampleRateAnalyzer.id()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#id,Method timeside.analyze.vamp.core.VampCoreAnalyzer.id()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#id,Static Method timeside.api.IProcessor.id()=timeside.api.IProcessor-class.html#id,Static Method timeside.decode.flac.FlacDecoder.id()=timeside.decode.flac.FlacDecoder-class.html#id,Static Method timeside.decode.mp3.Mp3Decoder.id()=timeside.decode.mp3.Mp3Decoder-class.html#id,Static Method timeside.decode.ogg.OggDecoder.id()=timeside.decode.ogg.OggDecoder-class.html#id,Static Method timeside.decode.wav.WavDecoder.id()=timeside.decode.wav.WavDecoder-class.html#id,Static Method timeside.encode.flac.FlacEncoder.id()=timeside.encode.flac.FlacEncoder-class.html#id,Static Method timeside.encode.mp3.Mp3Encoder.id()=timeside.encode.mp3.Mp3Encoder-class.html#id,Static Method timeside.encode.ogg.OggVorbisEncoder.id()=timeside.encode.ogg.OggVorbisEncoder-class.html#id,Static Method timeside.encode.wav.WavEncoder.id()=timeside.encode.wav.WavEncoder-class.html#id,Static Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#id,Static Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#id,Static Method timeside.tests.api.examples.Duration.id()=timeside.tests.api.examples.Duration-class.html#id,Static Method timeside.tests.api.examples.FileDecoder.id()=timeside.tests.api.examples.FileDecoder-class.html#id,Static Method timeside.tests.api.examples.FixedInputProcessor.id()=timeside.tests.api.examples.FixedInputProcessor-class.html#id,Static Method timeside.tests.api.examples.Gain.id()=timeside.tests.api.examples.Gain-class.html#id,Static Method timeside.tests.api.examples.MaxLevel.id()=timeside.tests.api.examples.MaxLevel-class.html#id,Static Method timeside.tests.api.examples.Spectrogram.id()=timeside.tests.api.examples.Spectrogram-class.html#id,Static Method timeside.tests.api.examples.WavEncoder.id()=timeside.tests.api.examples.WavEncoder-class.html#id,Static Method timeside.tests.api.examples.Waveform.id()=timeside.tests.api.examples.Waveform-class.html#id,Static Method timeside.tests.api.gstreamer.FileDecoder.id()=timeside.tests.api.gstreamer.FileDecoder-class.html#id,Static Method timeside.tests.api.gstreamer.WavEncoder.id()=timeside.tests.api.gstreamer.WavEncoder-class.html#id"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-15', 'id', 'link-15');">id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">                            <tt class="py-string">'unit'</tt><tt class="py-op">:</tt><tt id="link-16" class="py-name"><a title="timeside.tests.api.test_lolevel.analyzer" class="py-name" href="#" onclick="return doclink('link-16', 'analyzer', 'link-10');">analyzer</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method timeside.analyze.channels.ChannelAnalyser.unit()=timeside.analyze.channels.ChannelAnalyser-class.html#unit,Method timeside.analyze.dc.MeanDCShiftAnalyser.unit()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#unit,Method timeside.analyze.duration.DurationAnalyzer.unit()=timeside.analyze.duration.DurationAnalyzer-class.html#unit,Method timeside.analyze.encoding.EncodingAnalyser.unit()=timeside.analyze.encoding.EncodingAnalyser-class.html#unit,Method timeside.analyze.format.FormatAnalyser.unit()=timeside.analyze.format.FormatAnalyser-class.html#unit,Method timeside.analyze.max_level.MaxLevelAnalyzer.unit()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#unit,Method timeside.analyze.mean_level.MeanLevelAnalyser.unit()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#unit,Method timeside.analyze.resolution.ResolutionAnalyser.unit()=timeside.analyze.resolution.ResolutionAnalyser-class.html#unit,Method timeside.analyze.samplerate.SampleRateAnalyzer.unit()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#unit,Method timeside.analyze.vamp.core.VampCoreAnalyzer.unit()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#unit,Static Method timeside.api.IAnalyzer.unit()=timeside.api.IAnalyzer-class.html#unit,Static Method timeside.tests.api.examples.Duration.unit()=timeside.tests.api.examples.Duration-class.html#unit,Static Method timeside.tests.api.examples.MaxLevel.unit()=timeside.tests.api.examples.MaxLevel-class.html#unit"><a title="timeside.analyze.channels.ChannelAnalyser.unit
+timeside.analyze.dc.MeanDCShiftAnalyser.unit
+timeside.analyze.duration.DurationAnalyzer.unit
+timeside.analyze.encoding.EncodingAnalyser.unit
+timeside.analyze.format.FormatAnalyser.unit
+timeside.analyze.max_level.MaxLevelAnalyzer.unit
+timeside.analyze.mean_level.MeanLevelAnalyser.unit
+timeside.analyze.resolution.ResolutionAnalyser.unit
+timeside.analyze.samplerate.SampleRateAnalyzer.unit
+timeside.analyze.vamp.core.VampCoreAnalyzer.unit
+timeside.api.IAnalyzer.unit
+timeside.tests.api.examples.Duration.unit
+timeside.tests.api.examples.MaxLevel.unit" class="py-name" href="#" onclick="return doclink('link-17', 'unit', 'link-17');">unit</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">                            <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt id="link-18" class="py-name"><a title="timeside.tests.test.TestAnalyzers.analyzers" class="py-name" href="#" onclick="return doclink('link-18', 'analyzers', 'link-3');">analyzers</a></tt> </tt>
+</div><a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"> </tt>
+<a name="TestAnalyzers.run"></a><div id="TestAnalyzers.run-def"><a name="L28"></a><tt class="py-lineno"> 28</tt> <a class="py-toggle" href="#" id="TestAnalyzers.run-toggle" onclick="return toggle('TestAnalyzers.run');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.test.TestAnalyzers-class.html#run">run</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestAnalyzers.run-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestAnalyzers.run-expanded"><a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-string">'\n=== Analyzer testing ===\n'</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">analyzer_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="timeside.tests.test.TestAnalyzers.analyzers" class="py-name" href="#" onclick="return doclink('link-19', 'analyzers', 'link-3');">analyzers</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">            <tt id="link-20" class="py-name"><a title="timeside.tests.api.test_lolevel.analyzer" class="py-name" href="#" onclick="return doclink('link-20', 'analyzer', 'link-10');">analyzer</a></tt> <tt class="py-op">=</tt> <tt class="py-name">analyzer_class</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">            <tt id="link-21" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-21', 'id', 'link-15');">id</a></tt> <tt class="py-op">=</tt> <tt id="link-22" class="py-name"><a title="timeside.tests.api.test_lolevel.analyzer" class="py-name" href="#" onclick="return doclink('link-22', 'analyzer', 'link-10');">analyzer</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-23', 'id', 'link-15');">id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-24" class="py-name"><a title="timeside.tests.api.test_lolevel.analyzer" class="py-name" href="#" onclick="return doclink('link-24', 'analyzer', 'link-10');">analyzer</a></tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method timeside.analyze.channels.ChannelAnalyser.render()=timeside.analyze.channels.ChannelAnalyser-class.html#render,Method timeside.analyze.dc.MeanDCShiftAnalyser.render()=timeside.analyze.dc.MeanDCShiftAnalyser-class.html#render,Method timeside.analyze.duration.DurationAnalyzer.render()=timeside.analyze.duration.DurationAnalyzer-class.html#render,Method timeside.analyze.encoding.EncodingAnalyser.render()=timeside.analyze.encoding.EncodingAnalyser-class.html#render,Method timeside.analyze.format.FormatAnalyser.render()=timeside.analyze.format.FormatAnalyser-class.html#render,Method timeside.analyze.max_level.MaxLevelAnalyzer.render()=timeside.analyze.max_level.MaxLevelAnalyzer-class.html#render,Method timeside.analyze.mean_level.MeanLevelAnalyser.render()=timeside.analyze.mean_level.MeanLevelAnalyser-class.html#render,Method timeside.analyze.resolution.ResolutionAnalyser.render()=timeside.analyze.resolution.ResolutionAnalyser-class.html#render,Method timeside.analyze.samplerate.SampleRateAnalyzer.render()=timeside.analyze.samplerate.SampleRateAnalyzer-class.html#render,Method timeside.analyze.vamp.core.VampCoreAnalyzer.render()=timeside.analyze.vamp.core.VampCoreAnalyzer-class.html#render,Method timeside.api.IGrapher.render()=timeside.api.IGrapher-class.html#render,Method timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.render()=timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html#render,Method timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.render()=timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html#render,Method timeside.tests.api.examples.Spectrogram.render()=timeside.tests.api.examples.Spectrogram-class.html#render,Method timeside.tests.api.examples.Waveform.render()=timeside.tests.api.examples.Waveform-class.html#render"><a title="timeside.analyze.channels.ChannelAnalyser.render
+timeside.analyze.dc.MeanDCShiftAnalyser.render
+timeside.analyze.duration.DurationAnalyzer.render
+timeside.analyze.encoding.EncodingAnalyser.render
+timeside.analyze.format.FormatAnalyser.render
+timeside.analyze.max_level.MaxLevelAnalyzer.render
+timeside.analyze.mean_level.MeanLevelAnalyser.render
+timeside.analyze.resolution.ResolutionAnalyser.render
+timeside.analyze.samplerate.SampleRateAnalyzer.render
+timeside.analyze.vamp.core.VampCoreAnalyzer.render
+timeside.api.IGrapher.render
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.render
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.render
+timeside.tests.api.examples.Spectrogram.render
+timeside.tests.api.examples.Waveform.render" class="py-name" href="#" onclick="return doclink('link-25', 'render', 'link-25');">render</a></tt><tt class="py-op">(</tt><tt class="py-name">media</tt><tt class="py-op">)</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt id="link-26" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-26', 'id', 'link-15');">id</a></tt> <tt class="py-op">+</tt> <tt class="py-string">' = '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt id="link-27" class="py-name"><a title="timeside.tests.api.test_lolevel.analyzer" class="py-name" href="#" onclick="return doclink('link-27', 'analyzer', 'link-10');">analyzer</a></tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.unit
+timeside.analyze.dc.MeanDCShiftAnalyser.unit
+timeside.analyze.duration.DurationAnalyzer.unit
+timeside.analyze.encoding.EncodingAnalyser.unit
+timeside.analyze.format.FormatAnalyser.unit
+timeside.analyze.max_level.MaxLevelAnalyzer.unit
+timeside.analyze.mean_level.MeanLevelAnalyser.unit
+timeside.analyze.resolution.ResolutionAnalyser.unit
+timeside.analyze.samplerate.SampleRateAnalyzer.unit
+timeside.analyze.vamp.core.VampCoreAnalyzer.unit
+timeside.api.IAnalyzer.unit
+timeside.tests.api.examples.Duration.unit
+timeside.tests.api.examples.MaxLevel.unit" class="py-name" href="#" onclick="return doclink('link-28', 'unit', 'link-17');">unit</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"> </tt>
+<a name="TestDecoders"></a><div id="TestDecoders-def"><a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="TestDecoders-toggle" onclick="return toggle('TestDecoders');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.test.TestDecoders-class.html">TestDecoders</a><tt class="py-op">:</tt> </tt>
+</div><div id="TestDecoders-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="TestDecoders-expanded"><a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">    <tt id="link-29" class="py-name" targets="Variable timeside.tests.test.TestDecoders.decoders=timeside.tests.test.TestDecoders-class.html#decoders"><a title="timeside.tests.test.TestDecoders.decoders" class="py-name" href="#" onclick="return doclink('link-29', 'decoders', 'link-29');">decoders</a></tt> <tt class="py-op">=</tt> <tt id="link-30" class="py-name"><a title="timeside.core.processors" class="py-name" href="#" onclick="return doclink('link-30', 'processors', 'link-4');">processors</a></tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-31', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-32', 'api', 'link-6');">api</a></tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Class timeside.api.IDecoder=timeside.api.IDecoder-class.html"><a title="timeside.api.IDecoder" class="py-name" href="#" onclick="return doclink('link-33', 'IDecoder', 'link-33');">IDecoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"> </tt>
+<a name="TestDecoders.list"></a><div id="TestDecoders.list-def"><a name="L40"></a><tt class="py-lineno"> 40</tt> <a class="py-toggle" href="#" id="TestDecoders.list-toggle" onclick="return toggle('TestDecoders.list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.test.TestDecoders-class.html#list">list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestDecoders.list-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestDecoders.list-expanded"><a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt class="py-name">decoders_list</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">decoder_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="timeside.tests.test.TestDecoders.decoders" class="py-name" href="#" onclick="return doclink('link-34', 'decoders', 'link-29');">decoders</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">            <tt id="link-35" class="py-name" targets="Variable timeside.tests.api.test_lolevel.decoder=timeside.tests.api.test_lolevel-module.html#decoder,Variable timeside.tests.api.test_pipe.decoder=timeside.tests.api.test_pipe-module.html#decoder,Variable timeside.tests.api.test_pipe_spectrogram.decoder=timeside.tests.api.test_pipe_spectrogram-module.html#decoder,Variable timeside.tests.api.test_pipe_waveform.decoder=timeside.tests.api.test_pipe_waveform-module.html#decoder"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-35', 'decoder', 'link-35');">decoder</a></tt> <tt class="py-op">=</tt> <tt class="py-name">decoder_class</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">            <tt class="py-name">decoders_list</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'format'</tt><tt class="py-op">:</tt> <tt id="link-36" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-36', 'decoder', 'link-35');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Module timeside.analyze.format=timeside.analyze.format-module.html,Method timeside.api.IDecoder.format()=timeside.api.IDecoder-class.html#format,Static Method timeside.api.IEncoder.format()=timeside.api.IEncoder-class.html#format,Method timeside.decode.flac.FlacDecoder.format()=timeside.decode.flac.FlacDecoder-class.html#format,Method timeside.decode.mp3.Mp3Decoder.format()=timeside.decode.mp3.Mp3Decoder-class.html#format,Method timeside.decode.ogg.OggDecoder.format()=timeside.decode.ogg.OggDecoder-class.html#format,Method timeside.decode.wav.WavDecoder.format()=timeside.decode.wav.WavDecoder-class.html#format,Method timeside.encode.flac.FlacEncoder.format()=timeside.encode.flac.FlacEncoder-class.html#format,Method timeside.encode.mp3.Mp3Encoder.format()=timeside.encode.mp3.Mp3Encoder-class.html#format,Method timeside.encode.ogg.OggVorbisEncoder.format()=timeside.encode.ogg.OggVorbisEncoder-class.html#format,Method timeside.encode.wav.WavEncoder.format()=timeside.encode.wav.WavEncoder-class.html#format,Method timeside.tests.api.examples.FileDecoder.format()=timeside.tests.api.examples.FileDecoder-class.html#format,Method timeside.tests.api.gstreamer.FileDecoder.format()=timeside.tests.api.gstreamer.FileDecoder-class.html#format"><a title="timeside.analyze.format
+timeside.api.IDecoder.format
+timeside.api.IEncoder.format
+timeside.decode.flac.FlacDecoder.format
+timeside.decode.mp3.Mp3Decoder.format
+timeside.decode.ogg.OggDecoder.format
+timeside.decode.wav.WavDecoder.format
+timeside.encode.flac.FlacEncoder.format
+timeside.encode.mp3.Mp3Encoder.format
+timeside.encode.ogg.OggVorbisEncoder.format
+timeside.encode.wav.WavEncoder.format
+timeside.tests.api.examples.FileDecoder.format
+timeside.tests.api.gstreamer.FileDecoder.format" class="py-name" href="#" onclick="return doclink('link-37', 'format', 'link-37');">format</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">                            <tt class="py-string">'mime_type'</tt><tt class="py-op">:</tt> <tt id="link-38" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-38', 'decoder', 'link-35');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Static Method timeside.api.IEncoder.mime_type()=timeside.api.IEncoder-class.html#mime_type,Method timeside.decode.flac.FlacDecoder.mime_type()=timeside.decode.flac.FlacDecoder-class.html#mime_type,Method timeside.decode.mp3.Mp3Decoder.mime_type()=timeside.decode.mp3.Mp3Decoder-class.html#mime_type,Method timeside.decode.ogg.OggDecoder.mime_type()=timeside.decode.ogg.OggDecoder-class.html#mime_type,Method timeside.decode.wav.WavDecoder.mime_type()=timeside.decode.wav.WavDecoder-class.html#mime_type,Method timeside.encode.flac.FlacEncoder.mime_type()=timeside.encode.flac.FlacEncoder-class.html#mime_type,Method timeside.encode.mp3.Mp3Encoder.mime_type()=timeside.encode.mp3.Mp3Encoder-class.html#mime_type,Method timeside.encode.ogg.OggVorbisEncoder.mime_type()=timeside.encode.ogg.OggVorbisEncoder-class.html#mime_type,Method timeside.encode.wav.WavEncoder.mime_type()=timeside.encode.wav.WavEncoder-class.html#mime_type,Static Method timeside.tests.api.examples.WavEncoder.mime_type()=timeside.tests.api.examples.WavEncoder-class.html#mime_type,Static Method timeside.tests.api.gstreamer.WavEncoder.mime_type()=timeside.tests.api.gstreamer.WavEncoder-class.html#mime_type"><a title="timeside.api.IEncoder.mime_type
+timeside.decode.flac.FlacDecoder.mime_type
+timeside.decode.mp3.Mp3Decoder.mime_type
+timeside.decode.ogg.OggDecoder.mime_type
+timeside.decode.wav.WavDecoder.mime_type
+timeside.encode.flac.FlacEncoder.mime_type
+timeside.encode.mp3.Mp3Encoder.mime_type
+timeside.encode.ogg.OggVorbisEncoder.mime_type
+timeside.encode.wav.WavEncoder.mime_type
+timeside.tests.api.examples.WavEncoder.mime_type
+timeside.tests.api.gstreamer.WavEncoder.mime_type" class="py-name" href="#" onclick="return doclink('link-39', 'mime_type', 'link-39');">mime_type</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">                            <tt class="py-string">'file_extension'</tt><tt class="py-op">:</tt> <tt id="link-40" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-40', 'decoder', 'link-35');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Static Method timeside.api.IEncoder.file_extension()=timeside.api.IEncoder-class.html#file_extension,Method timeside.decode.flac.FlacDecoder.file_extension()=timeside.decode.flac.FlacDecoder-class.html#file_extension,Method timeside.decode.mp3.Mp3Decoder.file_extension()=timeside.decode.mp3.Mp3Decoder-class.html#file_extension,Method timeside.decode.ogg.OggDecoder.file_extension()=timeside.decode.ogg.OggDecoder-class.html#file_extension,Method timeside.decode.wav.WavDecoder.file_extension()=timeside.decode.wav.WavDecoder-class.html#file_extension,Method timeside.encode.flac.FlacEncoder.file_extension()=timeside.encode.flac.FlacEncoder-class.html#file_extension,Method timeside.encode.mp3.Mp3Encoder.file_extension()=timeside.encode.mp3.Mp3Encoder-class.html#file_extension,Method timeside.encode.ogg.OggVorbisEncoder.file_extension()=timeside.encode.ogg.OggVorbisEncoder-class.html#file_extension,Method timeside.encode.wav.WavEncoder.file_extension()=timeside.encode.wav.WavEncoder-class.html#file_extension,Static Method timeside.tests.api.examples.WavEncoder.file_extension()=timeside.tests.api.examples.WavEncoder-class.html#file_extension,Static Method timeside.tests.api.gstreamer.WavEncoder.file_extension()=timeside.tests.api.gstreamer.WavEncoder-class.html#file_extension"><a title="timeside.api.IEncoder.file_extension
+timeside.decode.flac.FlacDecoder.file_extension
+timeside.decode.mp3.Mp3Decoder.file_extension
+timeside.decode.ogg.OggDecoder.file_extension
+timeside.decode.wav.WavDecoder.file_extension
+timeside.encode.flac.FlacEncoder.file_extension
+timeside.encode.mp3.Mp3Encoder.file_extension
+timeside.encode.ogg.OggVorbisEncoder.file_extension
+timeside.encode.wav.WavEncoder.file_extension
+timeside.tests.api.examples.WavEncoder.file_extension
+timeside.tests.api.gstreamer.WavEncoder.file_extension" class="py-name" href="#" onclick="return doclink('link-41', 'file_extension', 'link-41');">file_extension</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">                            <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-name">decoders_list</tt> </tt>
+</div><a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"> </tt>
+<a name="TestDecoders.get_decoder"></a><div id="TestDecoders.get_decoder-def"><a name="L50"></a><tt class="py-lineno"> 50</tt> <a class="py-toggle" href="#" id="TestDecoders.get_decoder-toggle" onclick="return toggle('TestDecoders.get_decoder');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.test.TestDecoders-class.html#get_decoder">get_decoder</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">mime_type</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestDecoders.get_decoder-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestDecoders.get_decoder-expanded"><a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">decoder_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="timeside.tests.test.TestDecoders.decoders" class="py-name" href="#" onclick="return doclink('link-42', 'decoders', 'link-29');">decoders</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">            <tt id="link-43" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-43', 'decoder', 'link-35');">decoder</a></tt> <tt class="py-op">=</tt> <tt class="py-name">decoder_class</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-44" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-44', 'decoder', 'link-35');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="timeside.api.IEncoder.mime_type
+timeside.decode.flac.FlacDecoder.mime_type
+timeside.decode.mp3.Mp3Decoder.mime_type
+timeside.decode.ogg.OggDecoder.mime_type
+timeside.decode.wav.WavDecoder.mime_type
+timeside.encode.flac.FlacEncoder.mime_type
+timeside.encode.mp3.Mp3Encoder.mime_type
+timeside.encode.ogg.OggVorbisEncoder.mime_type
+timeside.encode.wav.WavEncoder.mime_type
+timeside.tests.api.examples.WavEncoder.mime_type
+timeside.tests.api.gstreamer.WavEncoder.mime_type" class="py-name" href="#" onclick="return doclink('link-45', 'mime_type', 'link-39');">mime_type</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-46" class="py-name"><a title="timeside.api.IEncoder.mime_type
+timeside.decode.flac.FlacDecoder.mime_type
+timeside.decode.mp3.Mp3Decoder.mime_type
+timeside.decode.ogg.OggDecoder.mime_type
+timeside.decode.wav.WavDecoder.mime_type
+timeside.encode.flac.FlacEncoder.mime_type
+timeside.encode.mp3.Mp3Encoder.mime_type
+timeside.encode.ogg.OggVorbisEncoder.mime_type
+timeside.encode.wav.WavEncoder.mime_type
+timeside.tests.api.examples.WavEncoder.mime_type
+timeside.tests.api.gstreamer.WavEncoder.mime_type" class="py-name" href="#" onclick="return doclink('link-46', 'mime_type', 'link-39');">mime_type</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt id="link-47" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-47', 'decoder', 'link-35');">decoder</a></tt> </tt>
+</div><a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"> </tt>
+<a name="TestDecoders.export"></a><div id="TestDecoders.export-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="TestDecoders.export-toggle" onclick="return toggle('TestDecoders.export');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.test.TestDecoders-class.html#export">export</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media_dir</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestDecoders.export-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestDecoders.export-expanded"><a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-name">files</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">listdir</tt><tt class="py-op">(</tt><tt class="py-name">media_dir</tt><tt class="py-op">)</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">file</tt> <tt class="py-keyword">in</tt> <tt class="py-name">files</tt><tt class="py-op">:</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">            <tt class="py-name">media</tt> <tt class="py-op">=</tt> <tt class="py-name">media_dir</tt> <tt class="py-op">+</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">sep</tt> <tt class="py-op">+</tt> <tt class="py-name">file</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">            <tt class="py-name">mime</tt> <tt class="py-op">=</tt> <tt id="link-48" class="py-name" targets="Variable timeside.tests.api.gstreamer.FileDecoder.mimetype=timeside.tests.api.gstreamer.FileDecoder-class.html#mimetype,Function timeside.tests.test.mimetype()=timeside.tests.test-module.html#mimetype"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-48', 'mimetype', 'link-48');">mimetype</a></tt><tt class="py-op">(</tt><tt class="py-name">media</tt><tt class="py-op">)</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-name">mime</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">            <tt class="py-name">file_ext</tt> <tt class="py-op">=</tt> <tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">            <tt id="link-49" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-49', 'decoder', 'link-35');">decoder</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Method timeside.tests.test.TestDecoders.get_decoder()=timeside.tests.test.TestDecoders-class.html#get_decoder"><a title="timeside.tests.test.TestDecoders.get_decoder" class="py-name" href="#" onclick="return doclink('link-50', 'get_decoder', 'link-50');">get_decoder</a></tt><tt class="py-op">(</tt><tt class="py-name">mime</tt><tt class="py-op">)</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-51" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-51', 'decoder', 'link-35');">decoder</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">                <tt class="py-name">stream</tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-52', 'decoder', 'link-35');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Method timeside.api.IProcessor.process()=timeside.api.IProcessor-class.html#process,Method timeside.core.FixedSizeInputAdapter.process()=timeside.core.FixedSizeInputAdapter-class.html#process,Method timeside.core.Processor.process()=timeside.core.Processor-class.html#process,Method timeside.decode.core.DecoderCore.process()=timeside.decode.core.DecoderCore-class.html#process,Method timeside.encode.flac.FlacEncoder.process()=timeside.encode.flac.FlacEncoder-class.html#process,Method timeside.encode.mp3.Mp3Encoder.process()=timeside.encode.mp3.Mp3Encoder-class.html#process,Method timeside.encode.ogg.OggVorbisEncoder.process()=timeside.encode.ogg.OggVorbisEncoder-class.html#process,Method timeside.encode.wav.WavEncoder.process()=timeside.encode.wav.WavEncoder-class.html#process,Method timeside.grapher.core.SpectralCentroid.process()=timeside.grapher.core.SpectralCentroid-class.html#process,Method timeside.grapher.core.SpectrogramImage.process()=timeside.grapher.core.SpectrogramImage-class.html#process,Method timeside.grapher.core.WaveformImage.process()=timeside.grapher.core.WaveformImage-class.html#process,Method timeside.tests.api.examples.FileDecoder.process()=timeside.tests.api.examples.FileDecoder-class.html#process,Method timeside.tests.api.examples.FixedInputProcessor.process()=timeside.tests.api.examples.FixedInputProcessor-class.html#process,Method timeside.tests.api.examples.Gain.process()=timeside.tests.api.examples.Gain-class.html#process,Method timeside.tests.api.examples.MaxLevel.process()=timeside.tests.api.examples.MaxLevel-class.html#process,Method timeside.tests.api.examples.Spectrogram.process()=timeside.tests.api.examples.Spectrogram-class.html#process,Method timeside.tests.api.examples.WavEncoder.process()=timeside.tests.api.examples.WavEncoder-class.html#process,Method timeside.tests.api.examples.Waveform.process()=timeside.tests.api.examples.Waveform-class.html#process,Method timeside.tests.api.gstreamer.FileDecoder.process()=timeside.tests.api.gstreamer.FileDecoder-class.html#process,Method timeside.tests.api.gstreamer.WavEncoder.process()=timeside.tests.api.gstreamer.WavEncoder-class.html#process"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-53', 'process', 'link-53');">process</a></tt><tt class="py-op">(</tt><tt class="py-name">media</tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">                <tt class="py-comment">#print decoder.command</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-comment"></tt>                <tt class="py-name">file_path</tt> <tt class="py-op">=</tt> <tt class="py-string">'results/sweep'</tt> <tt class="py-op">+</tt> <tt class="py-string">'_'</tt> <tt class="py-op">+</tt> <tt class="py-name">file_ext</tt> <tt class="py-op">+</tt> <tt class="py-string">'.wav'</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">                <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">file_path</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">stream</tt><tt class="py-op">:</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">                    <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">                    <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"> </tt>
+<a name="TestEncoders"></a><div id="TestEncoders-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="TestEncoders-toggle" onclick="return toggle('TestEncoders');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.test.TestEncoders-class.html">TestEncoders</a><tt class="py-op">:</tt> </tt>
+</div><div id="TestEncoders-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="TestEncoders-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">    <tt id="link-54" class="py-name" targets="Variable timeside.tests.test.TestEncoders.encoders=timeside.tests.test.TestEncoders-class.html#encoders"><a title="timeside.tests.test.TestEncoders.encoders" class="py-name" href="#" onclick="return doclink('link-54', 'encoders', 'link-54');">encoders</a></tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name"><a title="timeside.core.processors" class="py-name" href="#" onclick="return doclink('link-55', 'processors', 'link-4');">processors</a></tt><tt class="py-op">(</tt><tt id="link-56" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-56', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-57', 'api', 'link-6');">api</a></tt><tt class="py-op">.</tt><tt id="link-58" class="py-name" targets="Class timeside.api.IEncoder=timeside.api.IEncoder-class.html"><a title="timeside.api.IEncoder" class="py-name" href="#" onclick="return doclink('link-58', 'IEncoder', 'link-58');">IEncoder</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"> </tt>
+<a name="TestEncoders.list"></a><div id="TestEncoders.list-def"><a name="L77"></a><tt class="py-lineno"> 77</tt> <a class="py-toggle" href="#" id="TestEncoders.list-toggle" onclick="return toggle('TestEncoders.list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.test.TestEncoders-class.html#list">list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestEncoders.list-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestEncoders.list-expanded"><a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">        <tt id="link-59" class="py-name"><a title="timeside.tests.test.TestEncoders.encoders" class="py-name" href="#" onclick="return doclink('link-59', 'encoders', 'link-54');">encoders</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">encoder_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="timeside.tests.test.TestEncoders.encoders" class="py-name" href="#" onclick="return doclink('link-60', 'encoders', 'link-54');">encoders</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">            <tt id="link-61" class="py-name" targets="Variable timeside.tests.api.test_lolevel.encoder=timeside.tests.api.test_lolevel-module.html#encoder,Variable timeside.tests.api.test_pipe.encoder=timeside.tests.api.test_pipe-module.html#encoder"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-61', 'encoder', 'link-61');">encoder</a></tt> <tt class="py-op">=</tt> <tt class="py-name">encoder_class</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">            <tt id="link-62" class="py-name"><a title="timeside.tests.test.TestEncoders.encoders" class="py-name" href="#" onclick="return doclink('link-62', 'encoders', 'link-54');">encoders</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'format'</tt><tt class="py-op">:</tt> <tt id="link-63" class="py-name"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-63', 'encoder', 'link-61');">encoder</a></tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="timeside.analyze.format
+timeside.api.IDecoder.format
+timeside.api.IEncoder.format
+timeside.decode.flac.FlacDecoder.format
+timeside.decode.mp3.Mp3Decoder.format
+timeside.decode.ogg.OggDecoder.format
+timeside.decode.wav.WavDecoder.format
+timeside.encode.flac.FlacEncoder.format
+timeside.encode.mp3.Mp3Encoder.format
+timeside.encode.ogg.OggVorbisEncoder.format
+timeside.encode.wav.WavEncoder.format
+timeside.tests.api.examples.FileDecoder.format
+timeside.tests.api.gstreamer.FileDecoder.format" class="py-name" href="#" onclick="return doclink('link-64', 'format', 'link-37');">format</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">                            <tt class="py-string">'mime_type'</tt><tt class="py-op">:</tt> <tt id="link-65" class="py-name"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-65', 'encoder', 'link-61');">encoder</a></tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="timeside.api.IEncoder.mime_type
+timeside.decode.flac.FlacDecoder.mime_type
+timeside.decode.mp3.Mp3Decoder.mime_type
+timeside.decode.ogg.OggDecoder.mime_type
+timeside.decode.wav.WavDecoder.mime_type
+timeside.encode.flac.FlacEncoder.mime_type
+timeside.encode.mp3.Mp3Encoder.mime_type
+timeside.encode.ogg.OggVorbisEncoder.mime_type
+timeside.encode.wav.WavEncoder.mime_type
+timeside.tests.api.examples.WavEncoder.mime_type
+timeside.tests.api.gstreamer.WavEncoder.mime_type" class="py-name" href="#" onclick="return doclink('link-66', 'mime_type', 'link-39');">mime_type</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">                            <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt id="link-67" class="py-name"><a title="timeside.tests.test.TestEncoders.encoders" class="py-name" href="#" onclick="return doclink('link-67', 'encoders', 'link-54');">encoders</a></tt> </tt>
+</div><a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"> </tt>
+<a name="TestEncoders.get_encoder"></a><div id="TestEncoders.get_encoder-def"><a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="TestEncoders.get_encoder-toggle" onclick="return toggle('TestEncoders.get_encoder');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.test.TestEncoders-class.html#get_encoder">get_encoder</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">mime_type</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestEncoders.get_encoder-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestEncoders.get_encoder-expanded"><a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">encoder_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="timeside.tests.test.TestEncoders.encoders" class="py-name" href="#" onclick="return doclink('link-68', 'encoders', 'link-54');">encoders</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">            <tt id="link-69" class="py-name"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-69', 'encoder', 'link-61');">encoder</a></tt> <tt class="py-op">=</tt> <tt class="py-name">encoder_class</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-70" class="py-name"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-70', 'encoder', 'link-61');">encoder</a></tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="timeside.api.IEncoder.mime_type
+timeside.decode.flac.FlacDecoder.mime_type
+timeside.decode.mp3.Mp3Decoder.mime_type
+timeside.decode.ogg.OggDecoder.mime_type
+timeside.decode.wav.WavDecoder.mime_type
+timeside.encode.flac.FlacEncoder.mime_type
+timeside.encode.mp3.Mp3Encoder.mime_type
+timeside.encode.ogg.OggVorbisEncoder.mime_type
+timeside.encode.wav.WavEncoder.mime_type
+timeside.tests.api.examples.WavEncoder.mime_type
+timeside.tests.api.gstreamer.WavEncoder.mime_type" class="py-name" href="#" onclick="return doclink('link-71', 'mime_type', 'link-39');">mime_type</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-72" class="py-name"><a title="timeside.api.IEncoder.mime_type
+timeside.decode.flac.FlacDecoder.mime_type
+timeside.decode.mp3.Mp3Decoder.mime_type
+timeside.decode.ogg.OggDecoder.mime_type
+timeside.decode.wav.WavDecoder.mime_type
+timeside.encode.flac.FlacEncoder.mime_type
+timeside.encode.mp3.Mp3Encoder.mime_type
+timeside.encode.ogg.OggVorbisEncoder.mime_type
+timeside.encode.wav.WavEncoder.mime_type
+timeside.tests.api.examples.WavEncoder.mime_type
+timeside.tests.api.gstreamer.WavEncoder.mime_type" class="py-name" href="#" onclick="return doclink('link-72', 'mime_type', 'link-39');">mime_type</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt id="link-73" class="py-name"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-73', 'encoder', 'link-61');">encoder</a></tt> </tt>
+</div><a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"> </tt>
+<a name="TestEncoders.run"></a><div id="TestEncoders.run-def"><a name="L92"></a><tt class="py-lineno"> 92</tt> <a class="py-toggle" href="#" id="TestEncoders.run-toggle" onclick="return toggle('TestEncoders.run');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.test.TestEncoders-class.html#run">run</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">metadata</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestEncoders.run-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestEncoders.run-expanded"><a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-string">'\n=== Encoder testing ===\n'</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">encoder_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="timeside.tests.test.TestEncoders.encoders" class="py-name" href="#" onclick="return doclink('link-74', 'encoders', 'link-54');">encoders</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-string">'=================================='</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">            <tt id="link-75" class="py-name"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-75', 'encoder', 'link-61');">encoder</a></tt> <tt class="py-op">=</tt> <tt class="py-name">encoder_class</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">            <tt class="py-name">mime</tt> <tt class="py-op">=</tt> <tt id="link-76" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-76', 'mimetype', 'link-48');">mimetype</a></tt><tt class="py-op">(</tt><tt id="link-77" class="py-name" targets="Variable timeside.tests.api.test_lolevel.source=timeside.tests.api.test_lolevel-module.html#source,Variable timeside.tests.api.test_pipe.source=timeside.tests.api.test_pipe-module.html#source,Variable timeside.tests.api.test_pipe_spectrogram.source=timeside.tests.api.test_pipe_spectrogram-module.html#source,Variable timeside.tests.api.test_pipe_waveform.source=timeside.tests.api.test_pipe_waveform-module.html#source"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-77', 'source', 'link-77');">source</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">            <tt id="link-78" class="py-name"><a title="timeside.analyze.format
+timeside.api.IDecoder.format
+timeside.api.IEncoder.format
+timeside.decode.flac.FlacDecoder.format
+timeside.decode.mp3.Mp3Decoder.format
+timeside.decode.ogg.OggDecoder.format
+timeside.decode.wav.WavDecoder.format
+timeside.encode.flac.FlacEncoder.format
+timeside.encode.mp3.Mp3Encoder.format
+timeside.encode.ogg.OggVorbisEncoder.format
+timeside.encode.wav.WavEncoder.format
+timeside.tests.api.examples.FileDecoder.format
+timeside.tests.api.gstreamer.FileDecoder.format" class="py-name" href="#" onclick="return doclink('link-78', 'format', 'link-37');">format</a></tt> <tt class="py-op">=</tt> <tt id="link-79" class="py-name"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-79', 'encoder', 'link-61');">encoder</a></tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="timeside.analyze.format
+timeside.api.IDecoder.format
+timeside.api.IEncoder.format
+timeside.decode.flac.FlacDecoder.format
+timeside.decode.mp3.Mp3Decoder.format
+timeside.decode.ogg.OggDecoder.format
+timeside.decode.wav.WavDecoder.format
+timeside.encode.flac.FlacEncoder.format
+timeside.encode.mp3.Mp3Encoder.format
+timeside.encode.ogg.OggVorbisEncoder.format
+timeside.encode.wav.WavEncoder.format
+timeside.tests.api.examples.FileDecoder.format
+timeside.tests.api.gstreamer.FileDecoder.format" class="py-name" href="#" onclick="return doclink('link-80', 'format', 'link-37');">format</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">            <tt id="link-81" class="py-name"><a title="timeside.tests.test.TestDecoders.decoders" class="py-name" href="#" onclick="return doclink('link-81', 'decoders', 'link-29');">decoders</a></tt> <tt class="py-op">=</tt> <tt id="link-82" class="py-name" targets="Class timeside.tests.test.TestDecoders=timeside.tests.test.TestDecoders-class.html"><a title="timeside.tests.test.TestDecoders" class="py-name" href="#" onclick="return doclink('link-82', 'TestDecoders', 'link-82');">TestDecoders</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">            <tt id="link-83" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-83', 'decoder', 'link-35');">decoder</a></tt> <tt class="py-op">=</tt> <tt id="link-84" class="py-name"><a title="timeside.tests.test.TestDecoders.decoders" class="py-name" href="#" onclick="return doclink('link-84', 'decoders', 'link-29');">decoders</a></tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="timeside.tests.test.TestDecoders.get_decoder" class="py-name" href="#" onclick="return doclink('link-85', 'get_decoder', 'link-50');">get_decoder</a></tt><tt class="py-op">(</tt><tt class="py-name">mime</tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">            <tt class="py-name">decoded</tt> <tt class="py-op">=</tt> <tt id="link-86" class="py-name"><a title="timeside.tests.api.test_lolevel.decoder
+timeside.tests.api.test_pipe.decoder
+timeside.tests.api.test_pipe_spectrogram.decoder
+timeside.tests.api.test_pipe_waveform.decoder" class="py-name" href="#" onclick="return doclink('link-86', 'decoder', 'link-35');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-87', 'process', 'link-53');">process</a></tt><tt class="py-op">(</tt><tt id="link-88" class="py-name"><a title="timeside.tests.api.test_lolevel.source
+timeside.tests.api.test_pipe.source
+timeside.tests.api.test_pipe_spectrogram.source
+timeside.tests.api.test_pipe_waveform.source" class="py-name" href="#" onclick="return doclink('link-88', 'source', 'link-77');">source</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">            <tt class="py-name">ext</tt> <tt class="py-op">=</tt> <tt id="link-89" class="py-name"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-89', 'encoder', 'link-61');">encoder</a></tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="timeside.api.IEncoder.file_extension
+timeside.decode.flac.FlacDecoder.file_extension
+timeside.decode.mp3.Mp3Decoder.file_extension
+timeside.decode.ogg.OggDecoder.file_extension
+timeside.decode.wav.WavDecoder.file_extension
+timeside.encode.flac.FlacEncoder.file_extension
+timeside.encode.mp3.Mp3Encoder.file_extension
+timeside.encode.ogg.OggVorbisEncoder.file_extension
+timeside.encode.wav.WavEncoder.file_extension
+timeside.tests.api.examples.WavEncoder.file_extension
+timeside.tests.api.gstreamer.WavEncoder.file_extension" class="py-name" href="#" onclick="return doclink('link-90', 'file_extension', 'link-41');">file_extension</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">            <tt class="py-name">stream</tt> <tt class="py-op">=</tt> <tt id="link-91" class="py-name"><a title="timeside.tests.api.test_lolevel.encoder
+timeside.tests.api.test_pipe.encoder" class="py-name" href="#" onclick="return doclink('link-91', 'encoder', 'link-61');">encoder</a></tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-92', 'process', 'link-53');">process</a></tt><tt class="py-op">(</tt><tt class="py-name">decoded</tt><tt class="py-op">,</tt> <tt id="link-93" class="py-name" targets="Method timeside.api.IDecoder.metadata()=timeside.api.IDecoder-class.html#metadata,Module timeside.metadata=timeside.metadata-module.html,Method timeside.tests.api.examples.FileDecoder.metadata()=timeside.tests.api.examples.FileDecoder-class.html#metadata,Method timeside.tests.api.gstreamer.FileDecoder.metadata()=timeside.tests.api.gstreamer.FileDecoder-class.html#metadata"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-93', 'metadata', 'link-93');">metadata</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">            <tt class="py-name">file_path</tt> <tt class="py-op">=</tt> <tt class="py-string">'results/sweep'</tt> <tt class="py-op">+</tt> <tt class="py-string">'.'</tt> <tt class="py-op">+</tt> <tt class="py-name">ext</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">            <tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">file_path</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">)</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">stream</tt><tt class="py-op">:</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">                <tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-string">'Sound exported to :'</tt> <tt class="py-op">+</tt> <tt class="py-name">file_path</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">            <tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-string">'==================================\n'</tt> </tt>
+</div></div><a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"> </tt>
+<a name="TestGraphers"></a><div id="TestGraphers-def"><a name="L113"></a><tt class="py-lineno">113</tt> <a class="py-toggle" href="#" id="TestGraphers-toggle" onclick="return toggle('TestGraphers');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.test.TestGraphers-class.html">TestGraphers</a><tt class="py-op">:</tt> </tt>
+</div><div id="TestGraphers-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="TestGraphers-expanded"><a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">    <tt id="link-94" class="py-name" targets="Variable timeside.tests.test.TestGraphers.graphers=timeside.tests.test.TestGraphers-class.html#graphers"><a title="timeside.tests.test.TestGraphers.graphers" class="py-name" href="#" onclick="return doclink('link-94', 'graphers', 'link-94');">graphers</a></tt> <tt class="py-op">=</tt> <tt id="link-95" class="py-name"><a title="timeside.core.processors" class="py-name" href="#" onclick="return doclink('link-95', 'processors', 'link-4');">processors</a></tt><tt class="py-op">(</tt><tt id="link-96" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-96', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="timeside.api
+timeside.tests.api" class="py-name" href="#" onclick="return doclink('link-97', 'api', 'link-6');">api</a></tt><tt class="py-op">.</tt><tt id="link-98" class="py-name" targets="Class timeside.api.IGrapher=timeside.api.IGrapher-class.html"><a title="timeside.api.IGrapher" class="py-name" href="#" onclick="return doclink('link-98', 'IGrapher', 'link-98');">IGrapher</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"> </tt>
+<a name="TestGraphers.list"></a><div id="TestGraphers.list-def"><a name="L116"></a><tt class="py-lineno">116</tt> <a class="py-toggle" href="#" id="TestGraphers.list-toggle" onclick="return toggle('TestGraphers.list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.test.TestGraphers-class.html#list">list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestGraphers.list-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestGraphers.list-expanded"><a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt id="link-99" class="py-name"><a title="timeside.tests.test.TestGraphers.graphers" class="py-name" href="#" onclick="return doclink('link-99', 'graphers', 'link-94');">graphers</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">grapher_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="timeside.tests.test.TestGraphers.graphers" class="py-name" href="#" onclick="return doclink('link-100', 'graphers', 'link-94');">graphers</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">            <tt id="link-101" class="py-name" targets="Package timeside.grapher=timeside.grapher-module.html"><a title="timeside.grapher" class="py-name" href="#" onclick="return doclink('link-101', 'grapher', 'link-101');">grapher</a></tt> <tt class="py-op">=</tt> <tt class="py-name">grapher_class</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">            <tt id="link-102" class="py-name"><a title="timeside.tests.test.TestGraphers.graphers" class="py-name" href="#" onclick="return doclink('link-102', 'graphers', 'link-94');">graphers</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'id'</tt><tt class="py-op">:</tt><tt id="link-103" class="py-name"><a title="timeside.grapher" class="py-name" href="#" onclick="return doclink('link-103', 'grapher', 'link-101');">grapher</a></tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-104', 'id', 'link-15');">id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">                            <tt class="py-string">'name'</tt><tt class="py-op">:</tt><tt id="link-105" class="py-name"><a title="timeside.grapher" class="py-name" href="#" onclick="return doclink('link-105', 'grapher', 'link-101');">grapher</a></tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.name
+timeside.analyze.dc.MeanDCShiftAnalyser.name
+timeside.analyze.duration.DurationAnalyzer.name
+timeside.analyze.encoding.EncodingAnalyser.name
+timeside.analyze.format.FormatAnalyser.name
+timeside.analyze.max_level.MaxLevelAnalyzer.name
+timeside.analyze.mean_level.MeanLevelAnalyser.name
+timeside.analyze.resolution.ResolutionAnalyser.name
+timeside.analyze.samplerate.SampleRateAnalyzer.name
+timeside.analyze.vamp.core.VampCoreAnalyzer.name
+timeside.api.IAnalyzer.name
+timeside.api.IEffect.name
+timeside.api.IGrapher.name
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.name
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.name
+timeside.tests.api.examples.Duration.name
+timeside.tests.api.examples.Gain.name
+timeside.tests.api.examples.MaxLevel.name
+timeside.tests.api.examples.Spectrogram.name
+timeside.tests.api.examples.Waveform.name" class="py-name" href="#" onclick="return doclink('link-106', 'name', 'link-13');">name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">                            <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt id="link-107" class="py-name"><a title="timeside.tests.test.TestGraphers.graphers" class="py-name" href="#" onclick="return doclink('link-107', 'graphers', 'link-94');">graphers</a></tt> </tt>
+</div><a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"> </tt>
+<a name="TestGraphers.run"></a><div id="TestGraphers.run-def"><a name="L125"></a><tt class="py-lineno">125</tt> <a class="py-toggle" href="#" id="TestGraphers.run-toggle" onclick="return toggle('TestGraphers.run');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.test.TestGraphers-class.html#run">run</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">media</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestGraphers.run-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestGraphers.run-expanded"><a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-string">'\n=== Grapher testing ===\n'</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">grapher_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="timeside.tests.test.TestGraphers.graphers" class="py-name" href="#" onclick="return doclink('link-108', 'graphers', 'link-94');">graphers</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">            <tt id="link-109" class="py-name"><a title="timeside.grapher" class="py-name" href="#" onclick="return doclink('link-109', 'grapher', 'link-101');">grapher</a></tt> <tt class="py-op">=</tt> <tt class="py-name">grapher_class</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">            <tt id="link-110" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-110', 'id', 'link-15');">id</a></tt> <tt class="py-op">=</tt> <tt id="link-111" class="py-name"><a title="timeside.grapher" class="py-name" href="#" onclick="return doclink('link-111', 'grapher', 'link-101');">grapher</a></tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-112', 'id', 'link-15');">id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">            <tt class="py-name">image</tt> <tt class="py-op">=</tt> <tt id="link-113" class="py-name"><a title="timeside.grapher" class="py-name" href="#" onclick="return doclink('link-113', 'grapher', 'link-101');">grapher</a></tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.render
+timeside.analyze.dc.MeanDCShiftAnalyser.render
+timeside.analyze.duration.DurationAnalyzer.render
+timeside.analyze.encoding.EncodingAnalyser.render
+timeside.analyze.format.FormatAnalyser.render
+timeside.analyze.max_level.MaxLevelAnalyzer.render
+timeside.analyze.mean_level.MeanLevelAnalyser.render
+timeside.analyze.resolution.ResolutionAnalyser.render
+timeside.analyze.samplerate.SampleRateAnalyzer.render
+timeside.analyze.vamp.core.VampCoreAnalyzer.render
+timeside.api.IGrapher.render
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.render
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.render
+timeside.tests.api.examples.Spectrogram.render
+timeside.tests.api.examples.Waveform.render" class="py-name" href="#" onclick="return doclink('link-114', 'render', 'link-25');">render</a></tt><tt class="py-op">(</tt><tt class="py-name">media</tt><tt class="py-op">)</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">            <tt class="py-name">file_path</tt> <tt class="py-op">=</tt> <tt class="py-string">'results/'</tt><tt class="py-op">+</tt><tt id="link-115" class="py-name"><a title="timeside.analyze.channels.ChannelAnalyser.id
+timeside.analyze.dc.MeanDCShiftAnalyser.id
+timeside.analyze.duration.DurationAnalyzer.id
+timeside.analyze.encoding.EncodingAnalyser.id
+timeside.analyze.format.FormatAnalyser.id
+timeside.analyze.max_level.MaxLevelAnalyzer.id
+timeside.analyze.mean_level.MeanLevelAnalyser.id
+timeside.analyze.resolution.ResolutionAnalyser.id
+timeside.analyze.samplerate.SampleRateAnalyzer.id
+timeside.analyze.vamp.core.VampCoreAnalyzer.id
+timeside.api.IProcessor.id
+timeside.decode.flac.FlacDecoder.id
+timeside.decode.mp3.Mp3Decoder.id
+timeside.decode.ogg.OggDecoder.id
+timeside.decode.wav.WavDecoder.id
+timeside.encode.flac.FlacEncoder.id
+timeside.encode.mp3.Mp3Encoder.id
+timeside.encode.ogg.OggVorbisEncoder.id
+timeside.encode.wav.WavEncoder.id
+timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab.id
+timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab.id
+timeside.tests.api.examples.Duration.id
+timeside.tests.api.examples.FileDecoder.id
+timeside.tests.api.examples.FixedInputProcessor.id
+timeside.tests.api.examples.Gain.id
+timeside.tests.api.examples.MaxLevel.id
+timeside.tests.api.examples.Spectrogram.id
+timeside.tests.api.examples.WavEncoder.id
+timeside.tests.api.examples.Waveform.id
+timeside.tests.api.gstreamer.FileDecoder.id
+timeside.tests.api.gstreamer.WavEncoder.id" class="py-name" href="#" onclick="return doclink('link-115', 'id', 'link-15');">id</a></tt><tt class="py-op">+</tt><tt class="py-string">'.png'</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">            <tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">file_path</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">)</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">image</tt><tt class="py-op">:</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">                <tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-string">'Image exported to :'</tt> <tt class="py-op">+</tt> <tt class="py-name">file_path</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">            <tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"> </tt>
+<a name="mimetype"></a><div id="mimetype-def"><a name="L138"></a><tt class="py-lineno">138</tt> <a class="py-toggle" href="#" id="mimetype-toggle" onclick="return toggle('mimetype');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.test-module.html#mimetype">mimetype</a><tt class="py-op">(</tt><tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="mimetype-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="mimetype-expanded"><a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">magic</tt><tt class="py-op">,</tt> <tt class="py-string">"Magic"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-116" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-116', 'mimetype', 'link-48');">mimetype</a></tt><tt class="py-op">,</tt> <tt class="py-string">"magic"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">            <tt id="link-117" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-117', 'mimetype', 'link-48');">mimetype</a></tt><tt class="py-op">.</tt><tt class="py-name">magic</tt> <tt class="py-op">=</tt> <tt class="py-name">magic</tt><tt class="py-op">.</tt><tt class="py-name">Magic</tt><tt class="py-op">(</tt><tt class="py-name">mime</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-name">magic_file</tt> <tt class="py-op">=</tt> <tt id="link-118" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-118', 'mimetype', 'link-48');">mimetype</a></tt><tt class="py-op">.</tt><tt class="py-name">magic</tt><tt class="py-op">.</tt><tt class="py-name">from_file</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">        <tt class="py-name">mime</tt> <tt class="py-op">=</tt> <tt class="py-name">magic_file</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-119" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-119', 'mimetype', 'link-48');">mimetype</a></tt><tt class="py-op">,</tt> <tt class="py-string">"magic"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">            <tt id="link-120" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-120', 'mimetype', 'link-48');">mimetype</a></tt><tt class="py-op">.</tt><tt class="py-name">magic</tt> <tt class="py-op">=</tt> <tt class="py-name">magic</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">magic</tt><tt class="py-op">.</tt><tt class="py-name">MAGIC_MIME</tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">            <tt id="link-121" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-121', 'mimetype', 'link-48');">mimetype</a></tt><tt class="py-op">.</tt><tt class="py-name">magic</tt><tt class="py-op">.</tt><tt class="py-name">load</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">        <tt class="py-name">mime</tt> <tt class="py-op">=</tt> <tt id="link-122" class="py-name"><a title="timeside.tests.api.gstreamer.FileDecoder.mimetype
+timeside.tests.test.mimetype" class="py-name" href="#" onclick="return doclink('link-122', 'mimetype', 'link-48');">mimetype</a></tt><tt class="py-op">.</tt><tt class="py-name">magic</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">mime</tt> </tt>
+</div><a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">    <tt class="py-name">sample</tt> <tt class="py-op">=</tt> <tt class="py-string">'samples/sweep_source.wav'</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">    <tt id="link-123" class="py-name"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-123', 'metadata', 'link-93');">metadata</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'creator'</tt><tt class="py-op">,</tt> <tt class="py-string">'yomguy'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'date'</tt><tt class="py-op">,</tt> <tt class="py-string">'2009'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">,</tt> <tt class="py-string">'test'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">    <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-124" class="py-name" targets="Class timeside.tests.test.TestAnalyzers=timeside.tests.test.TestAnalyzers-class.html"><a title="timeside.tests.test.TestAnalyzers" class="py-name" href="#" onclick="return doclink('link-124', 'TestAnalyzers', 'link-124');">TestAnalyzers</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="timeside.tests.test.TestDecoders" class="py-name" href="#" onclick="return doclink('link-125', 'TestDecoders', 'link-82');">TestDecoders</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">    <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-126" class="py-name" targets="Class timeside.tests.test.TestEncoders=timeside.tests.test.TestEncoders-class.html"><a title="timeside.tests.test.TestEncoders" class="py-name" href="#" onclick="return doclink('link-126', 'TestEncoders', 'link-126');">TestEncoders</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">    <tt class="py-comment">#g = TestGraphers()</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name" targets="Method timeside.tests.test.TestAnalyzers.list()=timeside.tests.test.TestAnalyzers-class.html#list,Method timeside.tests.test.TestDecoders.list()=timeside.tests.test.TestDecoders-class.html#list,Method timeside.tests.test.TestEncoders.list()=timeside.tests.test.TestEncoders-class.html#list,Method timeside.tests.test.TestGraphers.list()=timeside.tests.test.TestGraphers-class.html#list"><a title="timeside.tests.test.TestAnalyzers.list
+timeside.tests.test.TestDecoders.list
+timeside.tests.test.TestEncoders.list
+timeside.tests.test.TestGraphers.list" class="py-name" href="#" onclick="return doclink('link-127', 'list', 'link-127');">list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">    <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="timeside.tests.test.TestAnalyzers.list
+timeside.tests.test.TestDecoders.list
+timeside.tests.test.TestEncoders.list
+timeside.tests.test.TestGraphers.list" class="py-name" href="#" onclick="return doclink('link-128', 'list', 'link-127');">list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">    <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="timeside.tests.test.TestAnalyzers.list
+timeside.tests.test.TestDecoders.list
+timeside.tests.test.TestEncoders.list
+timeside.tests.test.TestGraphers.list" class="py-name" href="#" onclick="return doclink('link-129', 'list', 'link-127');">list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">    <tt class="py-comment">#g.list()</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name" targets="Method timeside.core.ProcessPipe.run()=timeside.core.ProcessPipe-class.html#run,Method timeside.tests.TestRunner.run()=timeside.tests.TestRunner-class.html#run,Method timeside.tests.test.TestAnalyzers.run()=timeside.tests.test.TestAnalyzers-class.html#run,Method timeside.tests.test.TestEncoders.run()=timeside.tests.test.TestEncoders-class.html#run,Method timeside.tests.test.TestGraphers.run()=timeside.tests.test.TestGraphers-class.html#run"><a title="timeside.core.ProcessPipe.run
+timeside.tests.TestRunner.run
+timeside.tests.test.TestAnalyzers.run
+timeside.tests.test.TestEncoders.run
+timeside.tests.test.TestGraphers.run" class="py-name" href="#" onclick="return doclink('link-130', 'run', 'link-130');">run</a></tt><tt class="py-op">(</tt><tt class="py-name">sample</tt><tt class="py-op">)</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">    <tt class="py-comment">#g.run(sample)</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="timeside.core.ProcessPipe.run
+timeside.tests.TestRunner.run
+timeside.tests.test.TestAnalyzers.run
+timeside.tests.test.TestEncoders.run
+timeside.tests.test.TestGraphers.run" class="py-name" href="#" onclick="return doclink('link-131', 'run', 'link-130');">run</a></tt><tt class="py-op">(</tt><tt class="py-name">sample</tt><tt class="py-op">,</tt> <tt id="link-132" class="py-name"><a title="timeside.api.IDecoder.metadata
+timeside.metadata
+timeside.tests.api.examples.FileDecoder.metadata
+timeside.tests.api.gstreamer.FileDecoder.metadata" class="py-name" href="#" onclick="return doclink('link-132', 'metadata', 'link-93');">metadata</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">    <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name" targets="Method timeside.tests.test.TestDecoders.export()=timeside.tests.test.TestDecoders-class.html#export"><a title="timeside.tests.test.TestDecoders.export" class="py-name" href="#" onclick="return doclink('link-133', 'export', 'link-133');">export</a></tt><tt class="py-op">(</tt><tt class="py-string">'samples/'</tt><tt class="py-op">)</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:40 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.test.TestAnalyzers-class.html b/doc/epydoc/timeside.tests.test.TestAnalyzers-class.html
new file mode 100644 (file)
index 0000000..542d178
--- /dev/null
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.test.TestAnalyzers</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.test-module.html">Module&nbsp;test</a> ::
+        Class&nbsp;TestAnalyzers
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.test.TestAnalyzers-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class TestAnalyzers</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.test-pysrc.html#TestAnalyzers">source&nbsp;code</a></span></p>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="list"></a><span class="summary-sig-name">list</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.test-pysrc.html#TestAnalyzers.list">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="run"></a><span class="summary-sig-name">run</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.test-pysrc.html#TestAnalyzers.run">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.test.TestAnalyzers-class.html#analyzers" class="summary-name">analyzers</a> = <code title="[&lt;class 'timeside.analyze.channels.ChannelAnalyser'&gt;,
+ &lt;class 'timeside.analyze.format.FormatAnalyser'&gt;,
+ &lt;class 'timeside.analyze.encoding.EncodingAnalyser'&gt;,
+ &lt;class 'timeside.analyze.resolution.ResolutionAnalyser'&gt;,
+ &lt;class 'timeside.analyze.samplerate.SampleRateAnalyzer'&gt;,
+ &lt;class 'timeside.analyze.duration.DurationAnalyzer'&gt;,
+ &lt;class 'timeside.analyze.max_level.MaxLevelAnalyzer'&gt;,
+ &lt;class 'timeside.analyze.mean_level.MeanLevelAnalyser'&gt;,
+..."><code class="variable-group">[</code>&lt;class 'timeside.analyze.channels.ChannelAnalyser<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLE DETAILS ==================== -->
+<a name="section-ClassVariableDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variable Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariableDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="analyzers"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">analyzers</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code>&lt;class 'timeside.analyze.channels.ChannelAnalyser'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.analyze.format.FormatAnalyser'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.analyze.encoding.EncodingAnalyser'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.analyze.resolution.ResolutionAnalyser'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.analyze.samplerate.SampleRateAnalyzer'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.analyze.duration.DurationAnalyzer'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.analyze.max_level.MaxLevelAnalyzer'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.analyze.mean_level.MeanLevelAnalyser'&gt;<code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.test.TestDecoders-class.html b/doc/epydoc/timeside.tests.test.TestDecoders-class.html
new file mode 100644 (file)
index 0000000..e832666
--- /dev/null
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.test.TestDecoders</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.test-module.html">Module&nbsp;test</a> ::
+        Class&nbsp;TestDecoders
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.test.TestDecoders-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class TestDecoders</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.test-pysrc.html#TestDecoders">source&nbsp;code</a></span></p>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="list"></a><span class="summary-sig-name">list</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.test-pysrc.html#TestDecoders.list">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_decoder"></a><span class="summary-sig-name">get_decoder</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">mime_type</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.test-pysrc.html#TestDecoders.get_decoder">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="export"></a><span class="summary-sig-name">export</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media_dir</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.test-pysrc.html#TestDecoders.export">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.test.TestDecoders-class.html#decoders" class="summary-name">decoders</a> = <code title="[&lt;class 'timeside.decode.ogg.OggDecoder'&gt;,
+ &lt;class 'timeside.decode.flac.FlacDecoder'&gt;,
+ &lt;class 'timeside.decode.wav.WavDecoder'&gt;,
+ &lt;class 'timeside.decode.mp3.Mp3Decoder'&gt;]"><code class="variable-group">[</code>&lt;class 'timeside.decode.ogg.OggDecoder'&gt;<code class="variable-op">, </code>&lt;class '<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLE DETAILS ==================== -->
+<a name="section-ClassVariableDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variable Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariableDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="decoders"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">decoders</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code>&lt;class 'timeside.decode.ogg.OggDecoder'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.decode.flac.FlacDecoder'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.decode.wav.WavDecoder'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.decode.mp3.Mp3Decoder'&gt;<code class="variable-group">]</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.test.TestEncoders-class.html b/doc/epydoc/timeside.tests.test.TestEncoders-class.html
new file mode 100644 (file)
index 0000000..aedda28
--- /dev/null
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.test.TestEncoders</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.test-module.html">Module&nbsp;test</a> ::
+        Class&nbsp;TestEncoders
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.test.TestEncoders-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class TestEncoders</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.test-pysrc.html#TestEncoders">source&nbsp;code</a></span></p>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="list"></a><span class="summary-sig-name">list</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.test-pysrc.html#TestEncoders.list">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_encoder"></a><span class="summary-sig-name">get_encoder</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">mime_type</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.test-pysrc.html#TestEncoders.get_encoder">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="run"></a><span class="summary-sig-name">run</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">source</span>,
+        <span class="summary-sig-arg">metadata</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.test-pysrc.html#TestEncoders.run">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.test.TestEncoders-class.html#encoders" class="summary-name">encoders</a> = <code title="[&lt;class 'timeside.encode.ogg.OggVorbisEncoder'&gt;,
+ &lt;class 'timeside.encode.wav.WavEncoder'&gt;,
+ &lt;class 'timeside.encode.mp3.Mp3Encoder'&gt;,
+ &lt;class 'timeside.encode.flac.FlacEncoder'&gt;]"><code class="variable-group">[</code>&lt;class 'timeside.encode.ogg.OggVorbisEncoder'&gt;<code class="variable-op">, </code>&lt;c<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLE DETAILS ==================== -->
+<a name="section-ClassVariableDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variable Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariableDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="encoders"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">encoders</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code>&lt;class 'timeside.encode.ogg.OggVorbisEncoder'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.encode.wav.WavEncoder'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.encode.mp3.Mp3Encoder'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.encode.flac.FlacEncoder'&gt;<code class="variable-group">]</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.test.TestGraphers-class.html b/doc/epydoc/timeside.tests.test.TestGraphers-class.html
new file mode 100644 (file)
index 0000000..987cd4b
--- /dev/null
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.test.TestGraphers</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.test-module.html">Module&nbsp;test</a> ::
+        Class&nbsp;TestGraphers
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.test.TestGraphers-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class TestGraphers</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.test-pysrc.html#TestGraphers">source&nbsp;code</a></span></p>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="list"></a><span class="summary-sig-name">list</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.test-pysrc.html#TestGraphers.list">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="run"></a><span class="summary-sig-name">run</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">media</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.test-pysrc.html#TestGraphers.run">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.test.TestGraphers-class.html#graphers" class="summary-name">graphers</a> = <code title="[&lt;class 'timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab'&gt;,
+ &lt;class 'timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudio\
+lab'&gt;]"><code class="variable-group">[</code>&lt;class 'timeside.grapher.waveform_audiolab.WaveFor<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLE DETAILS ==================== -->
+<a name="section-ClassVariableDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variable Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariableDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="graphers"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">graphers</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code>&lt;class 'timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab'&gt;<code class="variable-op">,</code>
+ &lt;class 'timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudio<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+lab'&gt;<code class="variable-group">]</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent-module.html b/doc/epydoc/timeside.tests.testcomponent-module.html
new file mode 100644 (file)
index 0000000..4a6c644
--- /dev/null
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Module&nbsp;testcomponent
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module testcomponent</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html" class="summary-name">TestComponentArchitecture</a><br />
+      Test the component and interface system
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.I1-class.html" class="summary-name" onclick="show_private();">I1</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.I2-class.html" class="summary-name" onclick="show_private();">I2</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.I3-class.html" class="summary-name" onclick="show_private();">I3</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.I4-class.html" class="summary-name" onclick="show_private();">I4</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.I5-class.html" class="summary-name" onclick="show_private();">I5</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.I6-class.html" class="summary-name" onclick="show_private();">I6</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.I7-class.html" class="summary-name" onclick="show_private();">I7</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.I8-class.html" class="summary-name" onclick="show_private();">I8</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.I9-class.html" class="summary-name" onclick="show_private();">I9</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.I10-class.html" class="summary-name" onclick="show_private();">I10</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.I11-class.html" class="summary-name" onclick="show_private();">I11</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.C1-class.html" class="summary-name" onclick="show_private();">C1</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.C2-class.html" class="summary-name" onclick="show_private();">C2</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.C3-class.html" class="summary-name" onclick="show_private();">C3</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.C4-class.html" class="summary-name" onclick="show_private();">C4</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.C5-class.html" class="summary-name" onclick="show_private();">C5</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.C6-class.html" class="summary-name" onclick="show_private();">C6</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.C7-class.html" class="summary-name" onclick="show_private();">C7</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.C8-class.html" class="summary-name" onclick="show_private();">C8</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.C9-class.html" class="summary-name" onclick="show_private();">C9</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.C10-class.html" class="summary-name" onclick="show_private();">C10</a>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testcomponent.C11-class.html" class="summary-name" onclick="show_private();">C11</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent-pysrc.html b/doc/epydoc/timeside.tests.testcomponent-pysrc.html
new file mode 100644 (file)
index 0000000..9f264b0
--- /dev/null
@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Module&nbsp;testcomponent
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.tests.testcomponent-module.html">Module timeside.tests.testcomponent</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module timeside.component=timeside.component-module.html"><a title="timeside.component" class="py-name" href="#" onclick="return doclink('link-1', 'component', 'link-1');">component</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-2', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Package timeside.tests=timeside.tests-module.html"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-3', 'tests', 'link-3');">tests</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class timeside.tests.TestCase=timeside.tests.TestCase-class.html"><a title="timeside.tests.TestCase" class="py-name" href="#" onclick="return doclink('link-4', 'TestCase', 'link-4');">TestCase</a></tt><tt class="py-op">,</tt> <tt id="link-5" class="py-name" targets="Class timeside.tests.TestRunner=timeside.tests.TestRunner-class.html"><a title="timeside.tests.TestRunner" class="py-name" href="#" onclick="return doclink('link-5', 'TestRunner', 'link-5');">TestRunner</a></tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-name">__all__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'TestComponentArchitecture'</tt><tt class="py-op">]</tt> </tt>
+<a name="TestComponentArchitecture"></a><div id="TestComponentArchitecture-def"><a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt> <a class="py-toggle" href="#" id="TestComponentArchitecture-toggle" onclick="return toggle('TestComponentArchitecture');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html">TestComponentArchitecture</a><tt class="py-op">(</tt><tt class="py-base-class">TestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestComponentArchitecture-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="TestComponentArchitecture-expanded"><a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line">    <tt class="py-docstring">"Test the component and interface system"</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line">    </tt>
+<a name="TestComponentArchitecture.testOneInterface"></a><div id="TestComponentArchitecture.testOneInterface-def"><a name="L11"></a><tt class="py-lineno"> 11</tt> <a class="py-toggle" href="#" id="TestComponentArchitecture.testOneInterface-toggle" onclick="return toggle('TestComponentArchitecture.testOneInterface');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testOneInterface">testOneInterface</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestComponentArchitecture.testOneInterface-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestComponentArchitecture.testOneInterface-expanded"><a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line">        <tt class="py-docstring">"Test a component implementing one interface"</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method timeside.tests.TestCase.assertSameList()=timeside.tests.TestCase-class.html#assertSameList"><a title="timeside.tests.TestCase.assertSameList" class="py-name" href="#" onclick="return doclink('link-6', 'assertSameList', 'link-6');">assertSameList</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name" targets="Variable timeside.component.MetaComponent.implementations=timeside.component.MetaComponent-class.html#implementations,Function timeside.component.implementations()=timeside.component-module.html#implementations"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-7', 'implementations', 'link-7');">implementations</a></tt><tt class="py-op">(</tt><tt id="link-8" class="py-name" targets="Class timeside.tests.testcomponent.I1=timeside.tests.testcomponent.I1-class.html"><a title="timeside.tests.testcomponent.I1" class="py-name" href="#" onclick="return doclink('link-8', 'I1', 'link-8');">I1</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-9" class="py-name" targets="Class timeside.tests.testcomponent.C1=timeside.tests.testcomponent.C1-class.html"><a title="timeside.tests.testcomponent.C1" class="py-name" href="#" onclick="return doclink('link-9', 'C1', 'link-9');">C1</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"> </tt>
+<a name="TestComponentArchitecture.testTwoInterfaces"></a><div id="TestComponentArchitecture.testTwoInterfaces-def"><a name="L15"></a><tt class="py-lineno"> 15</tt> <a class="py-toggle" href="#" id="TestComponentArchitecture.testTwoInterfaces-toggle" onclick="return toggle('TestComponentArchitecture.testTwoInterfaces');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testTwoInterfaces">testTwoInterfaces</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt>         </tt>
+</div><a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line">        <tt class="py-docstring">"Test a component implementing two interfaces"</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="timeside.tests.TestCase.assertSameList" class="py-name" href="#" onclick="return doclink('link-10', 'assertSameList', 'link-6');">assertSameList</a></tt><tt class="py-op">(</tt><tt id="link-11" class="py-name"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-11', 'implementations', 'link-7');">implementations</a></tt><tt class="py-op">(</tt><tt id="link-12" class="py-name" targets="Class timeside.tests.testcomponent.I2=timeside.tests.testcomponent.I2-class.html"><a title="timeside.tests.testcomponent.I2" class="py-name" href="#" onclick="return doclink('link-12', 'I2', 'link-12');">I2</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-13" class="py-name" targets="Class timeside.tests.testcomponent.C2=timeside.tests.testcomponent.C2-class.html"><a title="timeside.tests.testcomponent.C2" class="py-name" href="#" onclick="return doclink('link-13', 'C2', 'link-13');">C2</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="timeside.tests.TestCase.assertSameList" class="py-name" href="#" onclick="return doclink('link-14', 'assertSameList', 'link-6');">assertSameList</a></tt><tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-15', 'implementations', 'link-7');">implementations</a></tt><tt class="py-op">(</tt><tt id="link-16" class="py-name" targets="Class timeside.tests.testcomponent.I3=timeside.tests.testcomponent.I3-class.html"><a title="timeside.tests.testcomponent.I3" class="py-name" href="#" onclick="return doclink('link-16', 'I3', 'link-16');">I3</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-17" class="py-name"><a title="timeside.tests.testcomponent.C2" class="py-name" href="#" onclick="return doclink('link-17', 'C2', 'link-13');">C2</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"> </tt>
+<a name="TestComponentArchitecture.testTwoImplementations"></a><div id="TestComponentArchitecture.testTwoImplementations-def"><a name="L20"></a><tt class="py-lineno"> 20</tt> <a class="py-toggle" href="#" id="TestComponentArchitecture.testTwoImplementations-toggle" onclick="return toggle('TestComponentArchitecture.testTwoImplementations');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testTwoImplementations">testTwoImplementations</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestComponentArchitecture.testTwoImplementations-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestComponentArchitecture.testTwoImplementations-expanded"><a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line">        <tt class="py-docstring">"Test an interface implemented by two components"</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="timeside.tests.TestCase.assertSameList" class="py-name" href="#" onclick="return doclink('link-18', 'assertSameList', 'link-6');">assertSameList</a></tt><tt class="py-op">(</tt><tt id="link-19" class="py-name"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-19', 'implementations', 'link-7');">implementations</a></tt><tt class="py-op">(</tt><tt id="link-20" class="py-name" targets="Class timeside.tests.testcomponent.I4=timeside.tests.testcomponent.I4-class.html"><a title="timeside.tests.testcomponent.I4" class="py-name" href="#" onclick="return doclink('link-20', 'I4', 'link-20');">I4</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-21" class="py-name" targets="Class timeside.tests.testcomponent.C3=timeside.tests.testcomponent.C3-class.html"><a title="timeside.tests.testcomponent.C3" class="py-name" href="#" onclick="return doclink('link-21', 'C3', 'link-21');">C3</a></tt><tt class="py-op">,</tt> <tt id="link-22" class="py-name" targets="Class timeside.tests.testcomponent.C4=timeside.tests.testcomponent.C4-class.html"><a title="timeside.tests.testcomponent.C4" class="py-name" href="#" onclick="return doclink('link-22', 'C4', 'link-22');">C4</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"> </tt>
+<a name="TestComponentArchitecture.testInterfaceInheritance"></a><div id="TestComponentArchitecture.testInterfaceInheritance-def"><a name="L24"></a><tt class="py-lineno"> 24</tt> <a class="py-toggle" href="#" id="TestComponentArchitecture.testInterfaceInheritance-toggle" onclick="return toggle('TestComponentArchitecture.testInterfaceInheritance');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testInterfaceInheritance">testInterfaceInheritance</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestComponentArchitecture.testInterfaceInheritance-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestComponentArchitecture.testInterfaceInheritance-expanded"><a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">        <tt class="py-docstring">"Test whether a component implements an interface's parent"</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="timeside.tests.TestCase.assertSameList" class="py-name" href="#" onclick="return doclink('link-23', 'assertSameList', 'link-6');">assertSameList</a></tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-24', 'implementations', 'link-7');">implementations</a></tt><tt class="py-op">(</tt><tt id="link-25" class="py-name" targets="Class timeside.tests.testcomponent.I5=timeside.tests.testcomponent.I5-class.html"><a title="timeside.tests.testcomponent.I5" class="py-name" href="#" onclick="return doclink('link-25', 'I5', 'link-25');">I5</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-26" class="py-name" targets="Class timeside.tests.testcomponent.C5=timeside.tests.testcomponent.C5-class.html"><a title="timeside.tests.testcomponent.C5" class="py-name" href="#" onclick="return doclink('link-26', 'C5', 'link-26');">C5</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"> </tt>
+<a name="TestComponentArchitecture.testImplementationInheritance"></a><div id="TestComponentArchitecture.testImplementationInheritance-def"><a name="L28"></a><tt class="py-lineno"> 28</tt> <a class="py-toggle" href="#" id="TestComponentArchitecture.testImplementationInheritance-toggle" onclick="return toggle('TestComponentArchitecture.testImplementationInheritance');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testImplementationInheritance">testImplementationInheritance</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestComponentArchitecture.testImplementationInheritance-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestComponentArchitecture.testImplementationInheritance-expanded"><a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">        <tt class="py-docstring">"Test that a component doesn't implement the interface implemented by its parent"</tt>  </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="timeside.tests.TestCase.assertSameList" class="py-name" href="#" onclick="return doclink('link-27', 'assertSameList', 'link-6');">assertSameList</a></tt><tt class="py-op">(</tt><tt id="link-28" class="py-name"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-28', 'implementations', 'link-7');">implementations</a></tt><tt class="py-op">(</tt><tt id="link-29" class="py-name" targets="Class timeside.tests.testcomponent.I7=timeside.tests.testcomponent.I7-class.html"><a title="timeside.tests.testcomponent.I7" class="py-name" href="#" onclick="return doclink('link-29', 'I7', 'link-29');">I7</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-30" class="py-name" targets="Class timeside.tests.testcomponent.C6=timeside.tests.testcomponent.C6-class.html"><a title="timeside.tests.testcomponent.C6" class="py-name" href="#" onclick="return doclink('link-30', 'C6', 'link-30');">C6</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
+<a name="TestComponentArchitecture.testImplementationRedundancy"></a><div id="TestComponentArchitecture.testImplementationRedundancy-def"><a name="L32"></a><tt class="py-lineno"> 32</tt> <a class="py-toggle" href="#" id="TestComponentArchitecture.testImplementationRedundancy-toggle" onclick="return toggle('TestComponentArchitecture.testImplementationRedundancy');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testImplementationRedundancy">testImplementationRedundancy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestComponentArchitecture.testImplementationRedundancy-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestComponentArchitecture.testImplementationRedundancy-expanded"><a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt class="py-docstring">"Test implementation redundancy across inheritance"</tt>  </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="timeside.tests.TestCase.assertSameList" class="py-name" href="#" onclick="return doclink('link-31', 'assertSameList', 'link-6');">assertSameList</a></tt><tt class="py-op">(</tt><tt id="link-32" class="py-name"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-32', 'implementations', 'link-7');">implementations</a></tt><tt class="py-op">(</tt><tt id="link-33" class="py-name" targets="Class timeside.tests.testcomponent.I8=timeside.tests.testcomponent.I8-class.html"><a title="timeside.tests.testcomponent.I8" class="py-name" href="#" onclick="return doclink('link-33', 'I8', 'link-33');">I8</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-34" class="py-name" targets="Class timeside.tests.testcomponent.C8=timeside.tests.testcomponent.C8-class.html"><a title="timeside.tests.testcomponent.C8" class="py-name" href="#" onclick="return doclink('link-34', 'C8', 'link-34');">C8</a></tt><tt class="py-op">,</tt> <tt id="link-35" class="py-name" targets="Class timeside.tests.testcomponent.C9=timeside.tests.testcomponent.C9-class.html"><a title="timeside.tests.testcomponent.C9" class="py-name" href="#" onclick="return doclink('link-35', 'C9', 'link-35');">C9</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"> </tt>
+<a name="TestComponentArchitecture.testAbstractImplementation"></a><div id="TestComponentArchitecture.testAbstractImplementation-def"><a name="L36"></a><tt class="py-lineno"> 36</tt> <a class="py-toggle" href="#" id="TestComponentArchitecture.testAbstractImplementation-toggle" onclick="return toggle('TestComponentArchitecture.testAbstractImplementation');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testAbstractImplementation">testAbstractImplementation</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt>     </tt>
+</div><a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-docstring">"Test abstract implementation"</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="timeside.tests.TestCase.assertSameList" class="py-name" href="#" onclick="return doclink('link-36', 'assertSameList', 'link-6');">assertSameList</a></tt><tt class="py-op">(</tt><tt id="link-37" class="py-name"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-37', 'implementations', 'link-7');">implementations</a></tt><tt class="py-op">(</tt><tt id="link-38" class="py-name" targets="Class timeside.tests.testcomponent.I11=timeside.tests.testcomponent.I11-class.html"><a title="timeside.tests.testcomponent.I11" class="py-name" href="#" onclick="return doclink('link-38', 'I11', 'link-38');">I11</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="timeside.tests.TestCase.assertSameList" class="py-name" href="#" onclick="return doclink('link-39', 'assertSameList', 'link-6');">assertSameList</a></tt><tt class="py-op">(</tt><tt id="link-40" class="py-name"><a title="timeside.component.MetaComponent.implementations
+timeside.component.implementations" class="py-name" href="#" onclick="return doclink('link-40', 'implementations', 'link-7');">implementations</a></tt><tt class="py-op">(</tt><tt id="link-41" class="py-name"><a title="timeside.tests.testcomponent.I11" class="py-name" href="#" onclick="return doclink('link-41', 'I11', 'link-38');">I11</a></tt><tt class="py-op">,</tt> <tt id="link-42" class="py-name" targets="Variable timeside.component.MetaComponent.abstract=timeside.component.MetaComponent-class.html#abstract,Function timeside.component.abstract()=timeside.component-module.html#abstract"><a title="timeside.component.MetaComponent.abstract
+timeside.component.abstract" class="py-name" href="#" onclick="return doclink('link-42', 'abstract', 'link-42');">abstract</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-43" class="py-name" targets="Class timeside.tests.testcomponent.C11=timeside.tests.testcomponent.C11-class.html"><a title="timeside.tests.testcomponent.C11" class="py-name" href="#" onclick="return doclink('link-43', 'C11', 'link-43');">C11</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"> </tt>
+<a name="TestComponentArchitecture.testInterfaceDoc"></a><div id="TestComponentArchitecture.testInterfaceDoc-def"><a name="L41"></a><tt class="py-lineno"> 41</tt> <a class="py-toggle" href="#" id="TestComponentArchitecture.testInterfaceDoc-toggle" onclick="return toggle('TestComponentArchitecture.testInterfaceDoc');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testInterfaceDoc">testInterfaceDoc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt>         </tt>
+</div><a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt class="py-docstring">"Test @interfacedoc decorator"</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEquals</tt><tt class="py-op">(</tt><tt id="link-44" class="py-name" targets="Class timeside.tests.testcomponent.C10=timeside.tests.testcomponent.C10-class.html"><a title="timeside.tests.testcomponent.C10" class="py-name" href="#" onclick="return doclink('link-44', 'C10', 'link-44');">C10</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Module timeside.tests.test=timeside.tests.test-module.html,Method timeside.tests.testcomponent.C10.test()=timeside.tests.testcomponent.C10-class.html#test,Method timeside.tests.testcomponent.I10.test()=timeside.tests.testcomponent.I10-class.html#test"><a title="timeside.tests.test
+timeside.tests.testcomponent.C10.test
+timeside.tests.testcomponent.I10.test" class="py-name" href="#" onclick="return doclink('link-45', 'test', 'link-45');">test</a></tt><tt class="py-op">.</tt><tt class="py-name">__doc__</tt><tt class="py-op">,</tt> <tt class="py-string">"testdoc"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"> </tt>
+<a name="TestComponentArchitecture.testInterfaceDocStatic"></a><div id="TestComponentArchitecture.testInterfaceDocStatic-def"><a name="L45"></a><tt class="py-lineno"> 45</tt> <a class="py-toggle" href="#" id="TestComponentArchitecture.testInterfaceDocStatic-toggle" onclick="return toggle('TestComponentArchitecture.testInterfaceDocStatic');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testInterfaceDocStatic">testInterfaceDocStatic</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt>         </tt>
+</div><a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">        <tt class="py-docstring">"Test @interfacedoc decorator on static method"</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEquals</tt><tt class="py-op">(</tt><tt id="link-46" class="py-name"><a title="timeside.tests.testcomponent.C10" class="py-name" href="#" onclick="return doclink('link-46', 'C10', 'link-44');">C10</a></tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Static Method timeside.tests.testcomponent.C10.teststatic()=timeside.tests.testcomponent.C10-class.html#teststatic,Static Method timeside.tests.testcomponent.I10.teststatic()=timeside.tests.testcomponent.I10-class.html#teststatic"><a title="timeside.tests.testcomponent.C10.teststatic
+timeside.tests.testcomponent.I10.teststatic" class="py-name" href="#" onclick="return doclink('link-47', 'teststatic', 'link-47');">teststatic</a></tt><tt class="py-op">.</tt><tt class="py-name">__doc__</tt><tt class="py-op">,</tt> <tt class="py-string">"teststaticdoc"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"> </tt>
+<a name="TestComponentArchitecture.testIntefaceDocReversed"></a><div id="TestComponentArchitecture.testIntefaceDocReversed-def"><a name="L49"></a><tt class="py-lineno"> 49</tt> <a class="py-toggle" href="#" id="TestComponentArchitecture.testIntefaceDocReversed-toggle" onclick="return toggle('TestComponentArchitecture.testIntefaceDocReversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testIntefaceDocReversed">testIntefaceDocReversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestComponentArchitecture.testIntefaceDocReversed-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestComponentArchitecture.testIntefaceDocReversed-expanded"><a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt class="py-docstring">"Test @interfacedoc on static method (decorators reversed)"</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">            <tt class="py-keyword">class</tt> <tt class="py-def-name">BogusDoc1</tt><tt class="py-op">(</tt><tt class="py-base-class">Component</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">                <tt id="link-48" class="py-name" targets="Variable timeside.component.MetaComponent.implements=timeside.component.MetaComponent-class.html#implements,Function timeside.component.implements()=timeside.component-module.html#implements"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-48', 'implements', 'link-48');">implements</a></tt><tt class="py-op">(</tt><tt id="link-49" class="py-name" targets="Class timeside.tests.testcomponent.I10=timeside.tests.testcomponent.I10-class.html"><a title="timeside.tests.testcomponent.I10" class="py-name" href="#" onclick="return doclink('link-49', 'I10', 'link-49');">I10</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">                <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">                <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt>         </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">teststatic</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">                    <tt class="py-keyword">pass</tt> </tt>
+</div></div><a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"No error raised with reversed decorators"</tt><tt class="py-op">)</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt id="link-50" class="py-name" targets="Class timeside.component.ComponentError=timeside.component.ComponentError-class.html"><a title="timeside.component.ComponentError" class="py-name" href="#" onclick="return doclink('link-50', 'ComponentError', 'link-50');">ComponentError</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">    </tt>
+<a name="TestComponentArchitecture.testInterfaceDocBadMethod"></a><div id="TestComponentArchitecture.testInterfaceDocBadMethod-def"><a name="L67"></a><tt class="py-lineno"> 67</tt> <a class="py-toggle" href="#" id="TestComponentArchitecture.testInterfaceDocBadMethod-toggle" onclick="return toggle('TestComponentArchitecture.testInterfaceDocBadMethod');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html#testInterfaceDocBadMethod">testInterfaceDocBadMethod</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestComponentArchitecture.testInterfaceDocBadMethod-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="TestComponentArchitecture.testInterfaceDocBadMethod-expanded"><a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-docstring">"Test @interfacedoc with unexistant method in interface"</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">            <tt class="py-keyword">class</tt> <tt class="py-def-name">BogusDoc2</tt><tt class="py-op">(</tt><tt class="py-base-class">Component</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">                <tt id="link-51" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-51', 'implements', 'link-48');">implements</a></tt><tt class="py-op">(</tt><tt id="link-52" class="py-name"><a title="timeside.tests.testcomponent.I10" class="py-name" href="#" onclick="return doclink('link-52', 'I10', 'link-49');">I10</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">                <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">nosuchmethod</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">                    <tt class="py-keyword">pass</tt> </tt>
+</div></div><a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"No error raised when decorating an unexistant method"</tt><tt class="py-op">)</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt id="link-53" class="py-name"><a title="timeside.component.ComponentError" class="py-name" href="#" onclick="return doclink('link-53', 'ComponentError', 'link-50');">ComponentError</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div></div><a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"> </tt>
+<a name="I1"></a><div id="I1-def"><a name="L83"></a><tt class="py-lineno"> 83</tt> <a class="py-toggle" href="#" id="I1-toggle" onclick="return toggle('I1');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.I1-class.html">I1</a><tt class="py-op">(</tt><tt class="py-base-class">Interface</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="I1-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="I1-expanded"><a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"> </tt>
+<a name="I2"></a><div id="I2-def"><a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="I2-toggle" onclick="return toggle('I2');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.I2-class.html">I2</a><tt class="py-op">(</tt><tt class="py-base-class">Interface</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="I2-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="I2-expanded"><a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"> </tt>
+<a name="I3"></a><div id="I3-def"><a name="L89"></a><tt class="py-lineno"> 89</tt> <a class="py-toggle" href="#" id="I3-toggle" onclick="return toggle('I3');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.I3-class.html">I3</a><tt class="py-op">(</tt><tt class="py-base-class">Interface</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="I3-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="I3-expanded"><a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"> </tt>
+<a name="I4"></a><div id="I4-def"><a name="L92"></a><tt class="py-lineno"> 92</tt> <a class="py-toggle" href="#" id="I4-toggle" onclick="return toggle('I4');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.I4-class.html">I4</a><tt class="py-op">(</tt><tt class="py-base-class">Interface</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="I4-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="I4-expanded"><a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"> </tt>
+<a name="I5"></a><div id="I5-def"><a name="L95"></a><tt class="py-lineno"> 95</tt> <a class="py-toggle" href="#" id="I5-toggle" onclick="return toggle('I5');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.I5-class.html">I5</a><tt class="py-op">(</tt><tt class="py-base-class">Interface</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="I5-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="I5-expanded"><a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"> </tt>
+<a name="I6"></a><div id="I6-def"><a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="I6-toggle" onclick="return toggle('I6');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.I6-class.html">I6</a><tt class="py-op">(</tt><tt class="py-base-class">I5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="I6-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="I6-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"> </tt>
+<a name="I7"></a><div id="I7-def"><a name="L101"></a><tt class="py-lineno">101</tt> <a class="py-toggle" href="#" id="I7-toggle" onclick="return toggle('I7');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.I7-class.html">I7</a><tt class="py-op">(</tt><tt class="py-base-class">Interface</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="I7-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="I7-expanded"><a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt>
+<a name="I8"></a><div id="I8-def"><a name="L104"></a><tt class="py-lineno">104</tt> <a class="py-toggle" href="#" id="I8-toggle" onclick="return toggle('I8');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.I8-class.html">I8</a><tt class="py-op">(</tt><tt class="py-base-class">Interface</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="I8-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="I8-expanded"><a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"> </tt>
+<a name="I9"></a><div id="I9-def"><a name="L107"></a><tt class="py-lineno">107</tt> <a class="py-toggle" href="#" id="I9-toggle" onclick="return toggle('I9');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.I9-class.html">I9</a><tt class="py-op">(</tt><tt class="py-base-class">I8</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="I9-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="I9-expanded"><a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"> </tt>
+<a name="I10"></a><div id="I10-def"><a name="L110"></a><tt class="py-lineno">110</tt> <a class="py-toggle" href="#" id="I10-toggle" onclick="return toggle('I10');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.I10-class.html">I10</a><tt class="py-op">(</tt><tt class="py-base-class">Interface</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="I10-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="I10-expanded"><a name="I10.test"></a><div id="I10.test-def"><a name="L111"></a><tt class="py-lineno">111</tt> <a class="py-toggle" href="#" id="I10.test-toggle" onclick="return toggle('I10.test');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.I10-class.html#test">test</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="I10.test-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="I10.test-expanded"><a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-docstring">"""testdoc"""</tt> </tt>
+</div><a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt>         </tt>
+<a name="I10.teststatic"></a><div id="I10.teststatic-def"><a name="L115"></a><tt class="py-lineno">115</tt> <a class="py-toggle" href="#" id="I10.teststatic-toggle" onclick="return toggle('I10.teststatic');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.I10-class.html#teststatic">teststatic</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="I10.teststatic-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="I10.teststatic-expanded"><a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt class="py-docstring">"""teststaticdoc"""</tt> </tt>
+</div></div><a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"> </tt>
+<a name="I11"></a><div id="I11-def"><a name="L118"></a><tt class="py-lineno">118</tt> <a class="py-toggle" href="#" id="I11-toggle" onclick="return toggle('I11');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.I11-class.html">I11</a><tt class="py-op">(</tt><tt class="py-base-class">Interface</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="I11-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="I11-expanded"><a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"> </tt>
+<a name="C1"></a><div id="C1-def"><a name="L121"></a><tt class="py-lineno">121</tt> <a class="py-toggle" href="#" id="C1-toggle" onclick="return toggle('C1');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.C1-class.html">C1</a><tt class="py-op">(</tt><tt class="py-base-class">Component</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="C1-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="C1-expanded"><a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">    <tt id="link-54" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-54', 'implements', 'link-48');">implements</a></tt><tt class="py-op">(</tt><tt id="link-55" class="py-name"><a title="timeside.tests.testcomponent.I1" class="py-name" href="#" onclick="return doclink('link-55', 'I1', 'link-8');">I1</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"> </tt>
+<a name="C2"></a><div id="C2-def"><a name="L124"></a><tt class="py-lineno">124</tt> <a class="py-toggle" href="#" id="C2-toggle" onclick="return toggle('C2');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.C2-class.html">C2</a><tt class="py-op">(</tt><tt class="py-base-class">Component</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="C2-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="C2-expanded"><a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">    <tt id="link-56" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-56', 'implements', 'link-48');">implements</a></tt><tt class="py-op">(</tt><tt id="link-57" class="py-name"><a title="timeside.tests.testcomponent.I2" class="py-name" href="#" onclick="return doclink('link-57', 'I2', 'link-12');">I2</a></tt><tt class="py-op">,</tt> <tt id="link-58" class="py-name"><a title="timeside.tests.testcomponent.I3" class="py-name" href="#" onclick="return doclink('link-58', 'I3', 'link-16');">I3</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"> </tt>
+<a name="C3"></a><div id="C3-def"><a name="L127"></a><tt class="py-lineno">127</tt> <a class="py-toggle" href="#" id="C3-toggle" onclick="return toggle('C3');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.C3-class.html">C3</a><tt class="py-op">(</tt><tt class="py-base-class">Component</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="C3-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="C3-expanded"><a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">    <tt id="link-59" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-59', 'implements', 'link-48');">implements</a></tt><tt class="py-op">(</tt><tt id="link-60" class="py-name"><a title="timeside.tests.testcomponent.I4" class="py-name" href="#" onclick="return doclink('link-60', 'I4', 'link-20');">I4</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"> </tt>
+<a name="C4"></a><div id="C4-def"><a name="L130"></a><tt class="py-lineno">130</tt> <a class="py-toggle" href="#" id="C4-toggle" onclick="return toggle('C4');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.C4-class.html">C4</a><tt class="py-op">(</tt><tt class="py-base-class">Component</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="C4-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="C4-expanded"><a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">    <tt id="link-61" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-61', 'implements', 'link-48');">implements</a></tt><tt class="py-op">(</tt><tt id="link-62" class="py-name"><a title="timeside.tests.testcomponent.I4" class="py-name" href="#" onclick="return doclink('link-62', 'I4', 'link-20');">I4</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"> </tt>
+<a name="C5"></a><div id="C5-def"><a name="L133"></a><tt class="py-lineno">133</tt> <a class="py-toggle" href="#" id="C5-toggle" onclick="return toggle('C5');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.C5-class.html">C5</a><tt class="py-op">(</tt><tt class="py-base-class">Component</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="C5-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="C5-expanded"><a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">    <tt id="link-63" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-63', 'implements', 'link-48');">implements</a></tt><tt class="py-op">(</tt><tt id="link-64" class="py-name" targets="Class timeside.tests.testcomponent.I6=timeside.tests.testcomponent.I6-class.html"><a title="timeside.tests.testcomponent.I6" class="py-name" href="#" onclick="return doclink('link-64', 'I6', 'link-64');">I6</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"> </tt>
+<a name="C6"></a><div id="C6-def"><a name="L136"></a><tt class="py-lineno">136</tt> <a class="py-toggle" href="#" id="C6-toggle" onclick="return toggle('C6');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.C6-class.html">C6</a><tt class="py-op">(</tt><tt class="py-base-class">Component</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="C6-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="C6-expanded"><a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">    <tt id="link-65" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-65', 'implements', 'link-48');">implements</a></tt><tt class="py-op">(</tt><tt id="link-66" class="py-name"><a title="timeside.tests.testcomponent.I7" class="py-name" href="#" onclick="return doclink('link-66', 'I7', 'link-29');">I7</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"> </tt>
+<a name="C7"></a><div id="C7-def"><a name="L139"></a><tt class="py-lineno">139</tt> <a class="py-toggle" href="#" id="C7-toggle" onclick="return toggle('C7');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.C7-class.html">C7</a><tt class="py-op">(</tt><tt class="py-base-class">C6</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="C7-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="C7-expanded"><a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"> </tt>
+<a name="C8"></a><div id="C8-def"><a name="L142"></a><tt class="py-lineno">142</tt> <a class="py-toggle" href="#" id="C8-toggle" onclick="return toggle('C8');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.C8-class.html">C8</a><tt class="py-op">(</tt><tt class="py-base-class">Component</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="C8-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="C8-expanded"><a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">    <tt id="link-67" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-67', 'implements', 'link-48');">implements</a></tt><tt class="py-op">(</tt><tt id="link-68" class="py-name"><a title="timeside.tests.testcomponent.I8" class="py-name" href="#" onclick="return doclink('link-68', 'I8', 'link-33');">I8</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"> </tt>
+<a name="C9"></a><div id="C9-def"><a name="L145"></a><tt class="py-lineno">145</tt> <a class="py-toggle" href="#" id="C9-toggle" onclick="return toggle('C9');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.C9-class.html">C9</a><tt class="py-op">(</tt><tt class="py-base-class">Component</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="C9-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="C9-expanded"><a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">    <tt id="link-69" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-69', 'implements', 'link-48');">implements</a></tt><tt class="py-op">(</tt><tt id="link-70" class="py-name"><a title="timeside.tests.testcomponent.I8" class="py-name" href="#" onclick="return doclink('link-70', 'I8', 'link-33');">I8</a></tt><tt class="py-op">,</tt> <tt id="link-71" class="py-name" targets="Class timeside.tests.testcomponent.I9=timeside.tests.testcomponent.I9-class.html"><a title="timeside.tests.testcomponent.I9" class="py-name" href="#" onclick="return doclink('link-71', 'I9', 'link-71');">I9</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"> </tt>
+<a name="C10"></a><div id="C10-def"><a name="L148"></a><tt class="py-lineno">148</tt> <a class="py-toggle" href="#" id="C10-toggle" onclick="return toggle('C10');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.C10-class.html">C10</a><tt class="py-op">(</tt><tt class="py-base-class">Component</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="C10-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="C10-expanded"><a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">    <tt id="link-72" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-72', 'implements', 'link-48');">implements</a></tt><tt class="py-op">(</tt><tt id="link-73" class="py-name"><a title="timeside.tests.testcomponent.I10" class="py-name" href="#" onclick="return doclink('link-73', 'I10', 'link-49');">I10</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="C10.test"></a><div id="C10.test-def"><a name="L152"></a><tt class="py-lineno">152</tt> <a class="py-toggle" href="#" id="C10.test-toggle" onclick="return toggle('C10.test');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.C10-class.html#test">test</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="C10.test-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="C10.test-expanded"><a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt>         </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">interfacedoc</tt> </tt>
+<a name="C10.teststatic"></a><div id="C10.teststatic-def"><a name="L157"></a><tt class="py-lineno">157</tt> <a class="py-toggle" href="#" id="C10.teststatic-toggle" onclick="return toggle('C10.teststatic');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testcomponent.C10-class.html#teststatic">teststatic</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="C10.teststatic-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="C10.teststatic-expanded"><a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt> </tt>
+</div></div><a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"> </tt>
+<a name="C11"></a><div id="C11-def"><a name="L160"></a><tt class="py-lineno">160</tt> <a class="py-toggle" href="#" id="C11-toggle" onclick="return toggle('C11');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testcomponent.C11-class.html">C11</a><tt class="py-op">(</tt><tt class="py-base-class">Component</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="C11-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="C11-expanded"><a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">    <tt id="link-74" class="py-name"><a title="timeside.component.MetaComponent.abstract
+timeside.component.abstract" class="py-name" href="#" onclick="return doclink('link-74', 'abstract', 'link-42');">abstract</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">    <tt id="link-75" class="py-name"><a title="timeside.component.MetaComponent.implements
+timeside.component.implements" class="py-name" href="#" onclick="return doclink('link-75', 'implements', 'link-48');">implements</a></tt><tt class="py-op">(</tt><tt id="link-76" class="py-name"><a title="timeside.tests.testcomponent.I11" class="py-name" href="#" onclick="return doclink('link-76', 'I11', 'link-38');">I11</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">    <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">main</tt><tt class="py-op">(</tt><tt class="py-name">testRunner</tt><tt class="py-op">=</tt><tt id="link-77" class="py-name"><a title="timeside.tests.TestRunner" class="py-name" href="#" onclick="return doclink('link-77', 'TestRunner', 'link-5');">TestRunner</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.C1-class.html b/doc/epydoc/timeside.tests.testcomponent.C1-class.html
new file mode 100644 (file)
index 0000000..af52da3
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.C1</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;C1
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.C1-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class C1</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C1">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Component-class.html">component.Component</a> --+
+                      |
+                     <strong class="uidshort">C1</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.component.Component-class.html">component.Component</a></code></b>:
+      <code><a href="timeside.component.MetaComponent-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.C10-class.html b/doc/epydoc/timeside.tests.testcomponent.C10-class.html
new file mode 100644 (file)
index 0000000..698919e
--- /dev/null
@@ -0,0 +1,317 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.C10</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;C10
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.C10-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class C10</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C10">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Component-class.html">component.Component</a> --+
+                      |
+                     <strong class="uidshort">C10</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.component.Component-class.html">component.Component</a></code></b>:
+      <code><a href="timeside.component.MetaComponent-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.testcomponent.C10-class.html#test" class="summary-sig-name">test</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      testdoc</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C10.test">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.testcomponent.C10-class.html#teststatic" class="summary-sig-name">teststatic</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      teststaticdoc</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C10.teststatic">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="test"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">test</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C10.test">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>testdoc</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="teststatic"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">teststatic</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C10.teststatic">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>teststaticdoc</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@interfacedoc</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.C11-class.html b/doc/epydoc/timeside.tests.testcomponent.C11-class.html
new file mode 100644 (file)
index 0000000..4797401
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.C11</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;C11
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.C11-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class C11</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C11">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Component-class.html">component.Component</a> --+
+                      |
+                     <strong class="uidshort">C11</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.component.Component-class.html">component.Component</a></code></b>:
+      <code><a href="timeside.component.MetaComponent-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.C2-class.html b/doc/epydoc/timeside.tests.testcomponent.C2-class.html
new file mode 100644 (file)
index 0000000..09ac98d
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.C2</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;C2
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.C2-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class C2</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C2">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Component-class.html">component.Component</a> --+
+                      |
+                     <strong class="uidshort">C2</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.component.Component-class.html">component.Component</a></code></b>:
+      <code><a href="timeside.component.MetaComponent-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.C3-class.html b/doc/epydoc/timeside.tests.testcomponent.C3-class.html
new file mode 100644 (file)
index 0000000..c621849
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.C3</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;C3
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.C3-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class C3</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C3">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Component-class.html">component.Component</a> --+
+                      |
+                     <strong class="uidshort">C3</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.component.Component-class.html">component.Component</a></code></b>:
+      <code><a href="timeside.component.MetaComponent-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.C4-class.html b/doc/epydoc/timeside.tests.testcomponent.C4-class.html
new file mode 100644 (file)
index 0000000..cb84bb5
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.C4</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;C4
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.C4-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class C4</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C4">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Component-class.html">component.Component</a> --+
+                      |
+                     <strong class="uidshort">C4</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.component.Component-class.html">component.Component</a></code></b>:
+      <code><a href="timeside.component.MetaComponent-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.C5-class.html b/doc/epydoc/timeside.tests.testcomponent.C5-class.html
new file mode 100644 (file)
index 0000000..8d2e08a
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.C5</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;C5
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.C5-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class C5</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C5">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Component-class.html">component.Component</a> --+
+                      |
+                     <strong class="uidshort">C5</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.component.Component-class.html">component.Component</a></code></b>:
+      <code><a href="timeside.component.MetaComponent-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.C6-class.html b/doc/epydoc/timeside.tests.testcomponent.C6-class.html
new file mode 100644 (file)
index 0000000..76f2e37
--- /dev/null
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.C6</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;C6
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.C6-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class C6</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C6">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Component-class.html">component.Component</a> --+
+                      |
+                     <strong class="uidshort">C6</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li class="private"><a href="timeside.tests.testcomponent.C7-class.html" onclick="show_private();">C7</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.component.Component-class.html">component.Component</a></code></b>:
+      <code><a href="timeside.component.MetaComponent-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.C7-class.html b/doc/epydoc/timeside.tests.testcomponent.C7-class.html
new file mode 100644 (file)
index 0000000..748a319
--- /dev/null
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.C7</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;C7
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.C7-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class C7</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C7">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Component-class.html">component.Component</a> --+    
+                      |    
+                     <a href="timeside.tests.testcomponent.C6-class.html" onclick="show_private();">C6</a> --+
+                          |
+                         <strong class="uidshort">C7</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.component.Component-class.html">component.Component</a></code></b>:
+      <code><a href="timeside.component.MetaComponent-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.C8-class.html b/doc/epydoc/timeside.tests.testcomponent.C8-class.html
new file mode 100644 (file)
index 0000000..1d5c2e3
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.C8</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;C8
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.C8-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class C8</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C8">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Component-class.html">component.Component</a> --+
+                      |
+                     <strong class="uidshort">C8</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.component.Component-class.html">component.Component</a></code></b>:
+      <code><a href="timeside.component.MetaComponent-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.C9-class.html b/doc/epydoc/timeside.tests.testcomponent.C9-class.html
new file mode 100644 (file)
index 0000000..a3d0749
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.C9</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;C9
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.C9-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class C9</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#C9">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Component-class.html">component.Component</a> --+
+                      |
+                     <strong class="uidshort">C9</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.component.Component-class.html">component.Component</a></code></b>:
+      <code><a href="timeside.component.MetaComponent-class.html">__metaclass__</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.I1-class.html b/doc/epydoc/timeside.tests.testcomponent.I1-class.html
new file mode 100644 (file)
index 0000000..7121459
--- /dev/null
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.I1</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;I1
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.I1-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class I1</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#I1">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+
+                      |
+                     <strong class="uidshort">I1</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.I10-class.html b/doc/epydoc/timeside.tests.testcomponent.I10-class.html
new file mode 100644 (file)
index 0000000..69e80b7
--- /dev/null
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.I10</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;I10
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.I10-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class I10</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#I10">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+
+                      |
+                     <strong class="uidshort">I10</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test"></a><span class="summary-sig-name">test</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      testdoc</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#I10.test">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="teststatic"></a><span class="summary-sig-name">teststatic</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      teststaticdoc</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#I10.teststatic">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.I11-class.html b/doc/epydoc/timeside.tests.testcomponent.I11-class.html
new file mode 100644 (file)
index 0000000..de430a1
--- /dev/null
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.I11</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;I11
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.I11-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class I11</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#I11">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+
+                      |
+                     <strong class="uidshort">I11</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.I2-class.html b/doc/epydoc/timeside.tests.testcomponent.I2-class.html
new file mode 100644 (file)
index 0000000..30cf954
--- /dev/null
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.I2</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;I2
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.I2-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class I2</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#I2">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+
+                      |
+                     <strong class="uidshort">I2</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.I3-class.html b/doc/epydoc/timeside.tests.testcomponent.I3-class.html
new file mode 100644 (file)
index 0000000..7061ab8
--- /dev/null
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.I3</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;I3
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.I3-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class I3</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#I3">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+
+                      |
+                     <strong class="uidshort">I3</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.I4-class.html b/doc/epydoc/timeside.tests.testcomponent.I4-class.html
new file mode 100644 (file)
index 0000000..b7e47a3
--- /dev/null
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.I4</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;I4
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.I4-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class I4</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#I4">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+
+                      |
+                     <strong class="uidshort">I4</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.I5-class.html b/doc/epydoc/timeside.tests.testcomponent.I5-class.html
new file mode 100644 (file)
index 0000000..8f1ad6e
--- /dev/null
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.I5</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;I5
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.I5-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class I5</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#I5">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+
+                      |
+                     <strong class="uidshort">I5</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li class="private"><a href="timeside.tests.testcomponent.I6-class.html" onclick="show_private();">I6</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.I6-class.html b/doc/epydoc/timeside.tests.testcomponent.I6-class.html
new file mode 100644 (file)
index 0000000..6197e5c
--- /dev/null
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.I6</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;I6
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.I6-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class I6</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#I6">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+    
+                      |    
+                     <a href="timeside.tests.testcomponent.I5-class.html" onclick="show_private();">I5</a> --+
+                          |
+                         <strong class="uidshort">I6</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.I7-class.html b/doc/epydoc/timeside.tests.testcomponent.I7-class.html
new file mode 100644 (file)
index 0000000..b61bb23
--- /dev/null
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.I7</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;I7
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.I7-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class I7</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#I7">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+
+                      |
+                     <strong class="uidshort">I7</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.I8-class.html b/doc/epydoc/timeside.tests.testcomponent.I8-class.html
new file mode 100644 (file)
index 0000000..c8b24ad
--- /dev/null
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.I8</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;I8
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.I8-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class I8</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#I8">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+    
+                  |    
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+
+                      |
+                     <strong class="uidshort">I8</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li class="private"><a href="timeside.tests.testcomponent.I9-class.html" onclick="show_private();">I9</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.I9-class.html b/doc/epydoc/timeside.tests.testcomponent.I9-class.html
new file mode 100644 (file)
index 0000000..f1af416
--- /dev/null
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.I9</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;I9
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.I9-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class I9</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#I9">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+         object --+        
+                  |        
+<a href="timeside.component.Interface-class.html">component.Interface</a> --+    
+                      |    
+                     <a href="timeside.tests.testcomponent.I8-class.html" onclick="show_private();">I8</a> --+
+                          |
+                         <strong class="uidshort">I9</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testcomponent.TestComponentArchitecture-class.html b/doc/epydoc/timeside.tests.testcomponent.TestComponentArchitecture-class.html
new file mode 100644 (file)
index 0000000..64adc55
--- /dev/null
@@ -0,0 +1,428 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testcomponent.TestComponentArchitecture</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testcomponent-module.html">Module&nbsp;testcomponent</a> ::
+        Class&nbsp;TestComponentArchitecture
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testcomponent.TestComponentArchitecture-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class TestComponentArchitecture</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#TestComponentArchitecture">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+       object --+        
+                |        
+unittest.TestCase --+    
+                    |    
+             <a href="timeside.tests.TestCase-class.html">TestCase</a> --+
+                        |
+                       <strong class="uidshort">TestComponentArchitecture</strong>
+</pre>
+
+<hr />
+<p>Test the component and interface system</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.TestCase</code></b>:
+      <code><a href="exceptions.AssertionError-class.html">failureException</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testOneInterface"></a><span class="summary-sig-name">testOneInterface</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test a component implementing one interface</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#TestComponentArchitecture.testOneInterface">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testTwoInterfaces"></a><span class="summary-sig-name">testTwoInterfaces</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test a component implementing two interfaces</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#TestComponentArchitecture.testTwoInterfaces">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testTwoImplementations"></a><span class="summary-sig-name">testTwoImplementations</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test an interface implemented by two components</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#TestComponentArchitecture.testTwoImplementations">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testInterfaceInheritance"></a><span class="summary-sig-name">testInterfaceInheritance</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test whether a component implements an interface's parent</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#TestComponentArchitecture.testInterfaceInheritance">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testImplementationInheritance"></a><span class="summary-sig-name">testImplementationInheritance</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test that a component doesn't implement the interface implemented by 
+      its parent</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#TestComponentArchitecture.testImplementationInheritance">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testImplementationRedundancy"></a><span class="summary-sig-name">testImplementationRedundancy</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test implementation redundancy across inheritance</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#TestComponentArchitecture.testImplementationRedundancy">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testAbstractImplementation"></a><span class="summary-sig-name">testAbstractImplementation</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test abstract implementation</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#TestComponentArchitecture.testAbstractImplementation">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testInterfaceDoc"></a><span class="summary-sig-name">testInterfaceDoc</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test @interfacedoc decorator</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#TestComponentArchitecture.testInterfaceDoc">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testInterfaceDocStatic"></a><span class="summary-sig-name">testInterfaceDocStatic</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test @interfacedoc decorator on static method</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#TestComponentArchitecture.testInterfaceDocStatic">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testIntefaceDocReversed"></a><span class="summary-sig-name">testIntefaceDocReversed</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test @interfacedoc on static method (decorators reversed)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#TestComponentArchitecture.testIntefaceDocReversed">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testInterfaceDocBadMethod"></a><span class="summary-sig-name">testInterfaceDocBadMethod</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test @interfacedoc with unexistant method in interface</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testcomponent-pysrc.html#TestComponentArchitecture.testInterfaceDocBadMethod">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.tests.TestCase-class.html">TestCase</a></code></b>:
+      <code><a href="timeside.tests.TestCase-class.html#assertSameList">assertSameList</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.TestCase</code></b>:
+      <code>__call__</code>,
+      <code>__init__</code>,
+      <code>__repr__</code>,
+      <code>__str__</code>,
+      <code>assertAlmostEqual</code>,
+      <code>assertAlmostEquals</code>,
+      <code>assertEqual</code>,
+      <code>assertEquals</code>,
+      <code>assertFalse</code>,
+      <code>assertNotAlmostEqual</code>,
+      <code>assertNotAlmostEquals</code>,
+      <code>assertNotEqual</code>,
+      <code>assertNotEquals</code>,
+      <code>assertRaises</code>,
+      <code>assertTrue</code>,
+      <code>assert_</code>,
+      <code>countTestCases</code>,
+      <code>debug</code>,
+      <code>defaultTestResult</code>,
+      <code>fail</code>,
+      <code>failIf</code>,
+      <code>failIfAlmostEqual</code>,
+      <code>failIfEqual</code>,
+      <code>failUnless</code>,
+      <code>failUnlessAlmostEqual</code>,
+      <code>failUnlessEqual</code>,
+      <code>failUnlessRaises</code>,
+      <code>id</code>,
+      <code>run</code>,
+      <code>setUp</code>,
+      <code>shortDescription</code>,
+      <code>tearDown</code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.TestCase</code></b> (private):
+      <code>_exc_info</code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__setattr__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testinputadapter-module.html b/doc/epydoc/timeside.tests.testinputadapter-module.html
new file mode 100644 (file)
index 0000000..3b72648
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testinputadapter</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Module&nbsp;testinputadapter
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testinputadapter-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module testinputadapter</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testinputadapter-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html" class="summary-name">TestFixedSizeInputAdapter</a><br />
+      Test the fixed-sized input adapter
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:38 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testinputadapter-pysrc.html b/doc/epydoc/timeside.tests.testinputadapter-pysrc.html
new file mode 100644 (file)
index 0000000..a3e07ac
--- /dev/null
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testinputadapter</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        Module&nbsp;testinputadapter
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testinputadapter-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="timeside.tests.testinputadapter-module.html">Module timeside.tests.testinputadapter</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package timeside=timeside-module.html"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-0', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module timeside.analyze.core=timeside.analyze.core-module.html,Module timeside.analyze.vamp.core=timeside.analyze.vamp.core-module.html,Module timeside.core=timeside.core-module.html,Module timeside.decode.core=timeside.decode.core-module.html,Module timeside.encode.core=timeside.encode.core-module.html,Module timeside.grapher.core=timeside.grapher.core-module.html"><a title="timeside.analyze.core
+timeside.analyze.vamp.core
+timeside.core
+timeside.decode.core
+timeside.encode.core
+timeside.grapher.core" class="py-name" href="#" onclick="return doclink('link-1', 'core', 'link-1');">core</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class timeside.core.FixedSizeInputAdapter=timeside.core.FixedSizeInputAdapter-class.html"><a title="timeside.core.FixedSizeInputAdapter" class="py-name" href="#" onclick="return doclink('link-2', 'FixedSizeInputAdapter', 'link-2');">FixedSizeInputAdapter</a></tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="timeside" class="py-name" href="#" onclick="return doclink('link-3', 'timeside', 'link-0');">timeside</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Package timeside.tests=timeside.tests-module.html"><a title="timeside.tests" class="py-name" href="#" onclick="return doclink('link-4', 'tests', 'link-4');">tests</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class timeside.tests.TestCase=timeside.tests.TestCase-class.html"><a title="timeside.tests.TestCase" class="py-name" href="#" onclick="return doclink('link-5', 'TestCase', 'link-5');">TestCase</a></tt><tt class="py-op">,</tt> <tt id="link-6" class="py-name" targets="Class timeside.tests.TestRunner=timeside.tests.TestRunner-class.html"><a title="timeside.tests.TestRunner" class="py-name" href="#" onclick="return doclink('link-6', 'TestRunner', 'link-6');">TestRunner</a></tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"> </tt>
+<a name="TestFixedSizeInputAdapter"></a><div id="TestFixedSizeInputAdapter-def"><a name="L6"></a><tt class="py-lineno"> 6</tt> <a class="py-toggle" href="#" id="TestFixedSizeInputAdapter-toggle" onclick="return toggle('TestFixedSizeInputAdapter');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html">TestFixedSizeInputAdapter</a><tt class="py-op">(</tt><tt class="py-base-class">TestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestFixedSizeInputAdapter-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="TestFixedSizeInputAdapter-expanded"><a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line">    <tt class="py-docstring">"Test the fixed-sized input adapter"</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"> </tt>
+<a name="TestFixedSizeInputAdapter.assertIOEquals"></a><div id="TestFixedSizeInputAdapter.assertIOEquals-def"><a name="L9"></a><tt class="py-lineno"> 9</tt> <a class="py-toggle" href="#" id="TestFixedSizeInputAdapter.assertIOEquals-toggle" onclick="return toggle('TestFixedSizeInputAdapter.assertIOEquals');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#assertIOEquals">assertIOEquals</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">adapter</tt><tt class="py-op">,</tt> <tt class="py-param">input</tt><tt class="py-op">,</tt> <tt class="py-param">input_eod</tt><tt class="py-op">,</tt> <tt class="py-param">output</tt><tt class="py-op">,</tt> <tt class="py-param">output_eod</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestFixedSizeInputAdapter.assertIOEquals-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="TestFixedSizeInputAdapter.assertIOEquals-expanded"><a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line">        <tt class="py-name">output</tt> <tt class="py-op">=</tt> <tt class="py-name">output</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line">        <tt class="py-name">output</tt><tt class="py-op">.</tt><tt class="py-name">reverse</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line">        <tt class="py-name">_eod</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">buffer</tt><tt class="py-op">,</tt> <tt class="py-name">_eod</tt> <tt class="py-keyword">in</tt> <tt class="py-name">adapter</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method timeside.api.IProcessor.process()=timeside.api.IProcessor-class.html#process,Method timeside.core.FixedSizeInputAdapter.process()=timeside.core.FixedSizeInputAdapter-class.html#process,Method timeside.core.Processor.process()=timeside.core.Processor-class.html#process,Method timeside.decode.core.DecoderCore.process()=timeside.decode.core.DecoderCore-class.html#process,Method timeside.encode.flac.FlacEncoder.process()=timeside.encode.flac.FlacEncoder-class.html#process,Method timeside.encode.mp3.Mp3Encoder.process()=timeside.encode.mp3.Mp3Encoder-class.html#process,Method timeside.encode.ogg.OggVorbisEncoder.process()=timeside.encode.ogg.OggVorbisEncoder-class.html#process,Method timeside.encode.wav.WavEncoder.process()=timeside.encode.wav.WavEncoder-class.html#process,Method timeside.grapher.core.SpectralCentroid.process()=timeside.grapher.core.SpectralCentroid-class.html#process,Method timeside.grapher.core.SpectrogramImage.process()=timeside.grapher.core.SpectrogramImage-class.html#process,Method timeside.grapher.core.WaveformImage.process()=timeside.grapher.core.WaveformImage-class.html#process,Method timeside.tests.api.examples.FileDecoder.process()=timeside.tests.api.examples.FileDecoder-class.html#process,Method timeside.tests.api.examples.FixedInputProcessor.process()=timeside.tests.api.examples.FixedInputProcessor-class.html#process,Method timeside.tests.api.examples.Gain.process()=timeside.tests.api.examples.Gain-class.html#process,Method timeside.tests.api.examples.MaxLevel.process()=timeside.tests.api.examples.MaxLevel-class.html#process,Method timeside.tests.api.examples.Spectrogram.process()=timeside.tests.api.examples.Spectrogram-class.html#process,Method timeside.tests.api.examples.WavEncoder.process()=timeside.tests.api.examples.WavEncoder-class.html#process,Method timeside.tests.api.examples.Waveform.process()=timeside.tests.api.examples.Waveform-class.html#process,Method timeside.tests.api.gstreamer.FileDecoder.process()=timeside.tests.api.gstreamer.FileDecoder-class.html#process,Method timeside.tests.api.gstreamer.WavEncoder.process()=timeside.tests.api.gstreamer.WavEncoder-class.html#process"><a title="timeside.api.IProcessor.process
+timeside.core.FixedSizeInputAdapter.process
+timeside.core.Processor.process
+timeside.decode.core.DecoderCore.process
+timeside.encode.flac.FlacEncoder.process
+timeside.encode.mp3.Mp3Encoder.process
+timeside.encode.ogg.OggVorbisEncoder.process
+timeside.encode.wav.WavEncoder.process
+timeside.grapher.core.SpectralCentroid.process
+timeside.grapher.core.SpectrogramImage.process
+timeside.grapher.core.WaveformImage.process
+timeside.tests.api.examples.FileDecoder.process
+timeside.tests.api.examples.FixedInputProcessor.process
+timeside.tests.api.examples.Gain.process
+timeside.tests.api.examples.MaxLevel.process
+timeside.tests.api.examples.Spectrogram.process
+timeside.tests.api.examples.WavEncoder.process
+timeside.tests.api.examples.Waveform.process
+timeside.tests.api.gstreamer.FileDecoder.process
+timeside.tests.api.gstreamer.WavEncoder.process" class="py-name" href="#" onclick="return doclink('link-7', 'process', 'link-7');">process</a></tt><tt class="py-op">(</tt><tt class="py-name">input</tt><tt class="py-op">,</tt> <tt class="py-name">input_eod</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line">            <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">output</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array_equiv</tt><tt class="py-op">(</tt><tt class="py-name">buffer</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"\n-- Actual --\n%s\n -- Expected -- \n%s\n"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">buffer</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">_eod</tt> <tt class="py-op">!=</tt> <tt class="py-name">output_eod</tt><tt class="py-op">:</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"eod do not match: %s != %s"</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">_eod</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">output_eod</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">output</tt><tt class="py-op">:</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"trailing expected data: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">output</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"> </tt>
+<a name="TestFixedSizeInputAdapter.setUp"></a><div id="TestFixedSizeInputAdapter.setUp-def"><a name="L24"></a><tt class="py-lineno">24</tt> <a class="py-toggle" href="#" id="TestFixedSizeInputAdapter.setUp-toggle" onclick="return toggle('TestFixedSizeInputAdapter.setUp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#setUp">setUp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestFixedSizeInputAdapter.setUp-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="TestFixedSizeInputAdapter.setUp-expanded"><a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">arange</tt><tt class="py-op">(</tt><tt class="py-number">44</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">22</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">transpose</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"> </tt>
+<a name="TestFixedSizeInputAdapter.testTwoChannels"></a><div id="TestFixedSizeInputAdapter.testTwoChannels-def"><a name="L27"></a><tt class="py-lineno">27</tt> <a class="py-toggle" href="#" id="TestFixedSizeInputAdapter.testTwoChannels-toggle" onclick="return toggle('TestFixedSizeInputAdapter.testTwoChannels');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#testTwoChannels">testTwoChannels</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestFixedSizeInputAdapter.testTwoChannels-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="TestFixedSizeInputAdapter.testTwoChannels-expanded"><a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line">        <tt class="py-docstring">"Test simple stream with two channels"</tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">        <tt class="py-name">adapter</tt> <tt class="py-op">=</tt> <tt id="link-8" class="py-name"><a title="timeside.core.FixedSizeInputAdapter" class="py-name" href="#" onclick="return doclink('link-8', 'FixedSizeInputAdapter', 'link-2');">FixedSizeInputAdapter</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEquals</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">adapter</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method timeside.api.IProcessor.nframes()=timeside.api.IProcessor-class.html#nframes,Method timeside.core.FixedSizeInputAdapter.nframes()=timeside.core.FixedSizeInputAdapter-class.html#nframes,Method timeside.core.Processor.nframes()=timeside.core.Processor-class.html#nframes,Method timeside.tests.api.examples.FileDecoder.nframes()=timeside.tests.api.examples.FileDecoder-class.html#nframes,Method timeside.tests.api.gstreamer.FileDecoder.nframes()=timeside.tests.api.gstreamer.FileDecoder-class.html#nframes,Variable timeside.tests.api.test_lolevel.nframes=timeside.tests.api.test_lolevel-module.html#nframes"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-9', 'nframes', 'link-9');">nframes</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line"> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals()=timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#assertIOEquals"><a title="timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals" class="py-name" href="#" onclick="return doclink('link-10', 'assertIOEquals', 'link-10');">assertIOEquals</a></tt><tt class="py-op">(</tt><tt class="py-name">adapter</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals" class="py-name" href="#" onclick="return doclink('link-11', 'assertIOEquals', 'link-10');">assertIOEquals</a></tt><tt class="py-op">(</tt><tt class="py-name">adapter</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals" class="py-name" href="#" onclick="return doclink('link-12', 'assertIOEquals', 'link-10');">assertIOEquals</a></tt><tt class="py-op">(</tt><tt class="py-name">adapter</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">5</tt><tt class="py-op">:</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">:</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals" class="py-name" href="#" onclick="return doclink('link-13', 'assertIOEquals', 'link-10');">assertIOEquals</a></tt><tt class="py-op">(</tt><tt class="py-name">adapter</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">:</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals" class="py-name" href="#" onclick="return doclink('link-14', 'assertIOEquals', 'link-10');">assertIOEquals</a></tt><tt class="py-op">(</tt><tt class="py-name">adapter</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">:</tt><tt class="py-number">14</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals" class="py-name" href="#" onclick="return doclink('link-15', 'assertIOEquals', 'link-10');">assertIOEquals</a></tt><tt class="py-op">(</tt><tt class="py-name">adapter</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">14</tt><tt class="py-op">:</tt><tt class="py-number">18</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">:</tt><tt class="py-number">16</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals" class="py-name" href="#" onclick="return doclink('link-16', 'assertIOEquals', 'link-10');">assertIOEquals</a></tt><tt class="py-op">(</tt><tt class="py-name">adapter</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">18</tt><tt class="py-op">:</tt><tt class="py-number">20</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">16</tt><tt class="py-op">:</tt><tt class="py-number">20</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals" class="py-name" href="#" onclick="return doclink('link-17', 'assertIOEquals', 'link-10');">assertIOEquals</a></tt><tt class="py-op">(</tt><tt class="py-name">adapter</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">20</tt><tt class="py-op">:</tt><tt class="py-number">21</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals" class="py-name" href="#" onclick="return doclink('link-18', 'assertIOEquals', 'link-10');">assertIOEquals</a></tt><tt class="py-op">(</tt><tt class="py-name">adapter</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">21</tt><tt class="py-op">:</tt><tt class="py-number">22</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">20</tt><tt class="py-op">:</tt><tt class="py-number">22</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line"> </tt>
+<a name="TestFixedSizeInputAdapter.testPadding"></a><div id="TestFixedSizeInputAdapter.testPadding-def"><a name="L43"></a><tt class="py-lineno">43</tt> <a class="py-toggle" href="#" id="TestFixedSizeInputAdapter.testPadding-toggle" onclick="return toggle('TestFixedSizeInputAdapter.testPadding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#testPadding">testPadding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestFixedSizeInputAdapter.testPadding-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="TestFixedSizeInputAdapter.testPadding-expanded"><a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-docstring">"Test automatic padding support"</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">        <tt class="py-name">adapter</tt> <tt class="py-op">=</tt> <tt id="link-19" class="py-name"><a title="timeside.core.FixedSizeInputAdapter" class="py-name" href="#" onclick="return doclink('link-19', 'FixedSizeInputAdapter', 'link-2');">FixedSizeInputAdapter</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">pad</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line"> </tt>
+<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEquals</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">adapter</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="timeside.api.IProcessor.nframes
+timeside.core.FixedSizeInputAdapter.nframes
+timeside.core.Processor.nframes
+timeside.tests.api.examples.FileDecoder.nframes
+timeside.tests.api.gstreamer.FileDecoder.nframes
+timeside.tests.api.test_lolevel.nframes" class="py-name" href="#" onclick="return doclink('link-20', 'nframes', 'link-9');">nframes</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line"> </tt>
+<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals" class="py-name" href="#" onclick="return doclink('link-21', 'assertIOEquals', 'link-10');">assertIOEquals</a></tt><tt class="py-op">(</tt><tt class="py-name">adapter</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">21</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt>  </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">:</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">:</tt><tt class="py-number">16</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">16</tt><tt class="py-op">:</tt><tt class="py-number">20</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt>  </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line">            <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals" class="py-name" href="#" onclick="return doclink('link-22', 'assertIOEquals', 'link-10');">assertIOEquals</a></tt><tt class="py-op">(</tt><tt class="py-name">adapter</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">21</tt><tt class="py-op">:</tt><tt class="py-number">22</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">[</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-number">42</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">21</tt><tt class="py-op">,</tt> <tt class="py-number">43</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">        <tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line"> </tt>
+<a name="TestFixedSizeInputAdapter.testSizeMultiple"></a><div id="TestFixedSizeInputAdapter.testSizeMultiple-def"><a name="L60"></a><tt class="py-lineno">60</tt> <a class="py-toggle" href="#" id="TestFixedSizeInputAdapter.testSizeMultiple-toggle" onclick="return toggle('TestFixedSizeInputAdapter.testSizeMultiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#testSizeMultiple">testSizeMultiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TestFixedSizeInputAdapter.testSizeMultiple-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="TestFixedSizeInputAdapter.testSizeMultiple-expanded"><a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">        <tt class="py-docstring">"Test a stream which contain a multiple number of buffers"</tt> </tt>
+<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">        <tt class="py-name">adapter</tt> <tt class="py-op">=</tt> <tt id="link-23" class="py-name"><a title="timeside.core.FixedSizeInputAdapter" class="py-name" href="#" onclick="return doclink('link-23', 'FixedSizeInputAdapter', 'link-2');">FixedSizeInputAdapter</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line"> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="timeside.tests.testinputadapter.TestFixedSizeInputAdapter.assertIOEquals" class="py-name" href="#" onclick="return doclink('link-24', 'assertIOEquals', 'link-10');">assertIOEquals</a></tt><tt class="py-op">(</tt><tt class="py-name">adapter</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">20</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">,</tt>  </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">:</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">:</tt><tt class="py-number">16</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">16</tt><tt class="py-op">:</tt><tt class="py-number">20</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt>  </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">            <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line"> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line"> </tt>
+<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line">    <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">main</tt><tt class="py-op">(</tt><tt class="py-name">testRunner</tt><tt class="py-op">=</tt><tt id="link-25" class="py-name"><a title="timeside.tests.TestRunner" class="py-name" href="#" onclick="return doclink('link-25', 'TestRunner', 'link-6');">TestRunner</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:41 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html b/doc/epydoc/timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html
new file mode 100644 (file)
index 0000000..42c8117
--- /dev/null
@@ -0,0 +1,370 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside.tests.testinputadapter.TestFixedSizeInputAdapter</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="timeside-module.html">Package&nbsp;timeside</a> ::
+        <a href="timeside.tests-module.html">Package&nbsp;tests</a> ::
+        <a href="timeside.tests.testinputadapter-module.html">Module&nbsp;testinputadapter</a> ::
+        Class&nbsp;TestFixedSizeInputAdapter
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class TestFixedSizeInputAdapter</h1><p class="nomargin-top"><span class="codelink"><a href="timeside.tests.testinputadapter-pysrc.html#TestFixedSizeInputAdapter">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+       object --+        
+                |        
+unittest.TestCase --+    
+                    |    
+             <a href="timeside.tests.TestCase-class.html">TestCase</a> --+
+                        |
+                       <strong class="uidshort">TestFixedSizeInputAdapter</strong>
+</pre>
+
+<hr />
+<p>Test the fixed-sized input adapter</p>
+
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Nested Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-NestedClasses"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.TestCase</code></b>:
+      <code><a href="exceptions.AssertionError-class.html">failureException</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="assertIOEquals"></a><span class="summary-sig-name">assertIOEquals</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">adapter</span>,
+        <span class="summary-sig-arg">input</span>,
+        <span class="summary-sig-arg">input_eod</span>,
+        <span class="summary-sig-arg">output</span>,
+        <span class="summary-sig-arg">output_eod</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testinputadapter-pysrc.html#TestFixedSizeInputAdapter.assertIOEquals">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html#setUp" class="summary-sig-name">setUp</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Hook method for setting up the test fixture before exercising it.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testinputadapter-pysrc.html#TestFixedSizeInputAdapter.setUp">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testTwoChannels"></a><span class="summary-sig-name">testTwoChannels</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test simple stream with two channels</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testinputadapter-pysrc.html#TestFixedSizeInputAdapter.testTwoChannels">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testPadding"></a><span class="summary-sig-name">testPadding</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test automatic padding support</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testinputadapter-pysrc.html#TestFixedSizeInputAdapter.testPadding">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="testSizeMultiple"></a><span class="summary-sig-name">testSizeMultiple</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Test a stream which contain a multiple number of buffers</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="timeside.tests.testinputadapter-pysrc.html#TestFixedSizeInputAdapter.testSizeMultiple">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="timeside.tests.TestCase-class.html">TestCase</a></code></b>:
+      <code><a href="timeside.tests.TestCase-class.html#assertSameList">assertSameList</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.TestCase</code></b>:
+      <code>__call__</code>,
+      <code>__init__</code>,
+      <code>__repr__</code>,
+      <code>__str__</code>,
+      <code>assertAlmostEqual</code>,
+      <code>assertAlmostEquals</code>,
+      <code>assertEqual</code>,
+      <code>assertEquals</code>,
+      <code>assertFalse</code>,
+      <code>assertNotAlmostEqual</code>,
+      <code>assertNotAlmostEquals</code>,
+      <code>assertNotEqual</code>,
+      <code>assertNotEquals</code>,
+      <code>assertRaises</code>,
+      <code>assertTrue</code>,
+      <code>assert_</code>,
+      <code>countTestCases</code>,
+      <code>debug</code>,
+      <code>defaultTestResult</code>,
+      <code>fail</code>,
+      <code>failIf</code>,
+      <code>failIfAlmostEqual</code>,
+      <code>failIfEqual</code>,
+      <code>failUnless</code>,
+      <code>failUnlessAlmostEqual</code>,
+      <code>failUnlessEqual</code>,
+      <code>failUnlessRaises</code>,
+      <code>id</code>,
+      <code>run</code>,
+      <code>shortDescription</code>,
+      <code>tearDown</code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.TestCase</code></b> (private):
+      <code>_exc_info</code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__setattr__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="setUp"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setUp</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="timeside.tests.testinputadapter-pysrc.html#TestFixedSizeInputAdapter.setUp">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Hook method for setting up the test fixture before exercising it.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        unittest.TestCase.setUp
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="timeside-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 11 15:38:39 2010
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-everything.html b/doc/epydoc/toc-everything.html
new file mode 100644 (file)
index 0000000..8476c08
--- /dev/null
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Everything</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Everything</h1>
+<hr />
+  <h2 class="toc">All Classes</h2>
+    <a target="mainFrame" href="exceptions.AssertionError-class.html"
+     >exceptions.AssertionError</a><br />    <a target="mainFrame" href="timeside.analyze.channels.ChannelAnalyser-class.html"
+     >timeside.analyze.channels.ChannelAnalyser</a><br />    <a target="mainFrame" href="timeside.analyze.core.AudioProcessor-class.html"
+     >timeside.analyze.core.AudioProcessor</a><br />    <a target="mainFrame" href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html"
+     >timeside.analyze.dc.MeanDCShiftAnalyser</a><br />    <a target="mainFrame" href="timeside.analyze.duration.DurationAnalyzer-class.html"
+     >timeside.analyze.duration.DurationAnalyzer</a><br />    <a target="mainFrame" href="timeside.analyze.encoding.EncodingAnalyser-class.html"
+     >timeside.analyze.encoding.EncodingAnalyser</a><br />    <a target="mainFrame" href="timeside.analyze.format.FormatAnalyser-class.html"
+     >timeside.analyze.format.FormatAnalyser</a><br />    <a target="mainFrame" href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html"
+     >timeside.analyze.max_level.MaxLevelAnalyzer</a><br />    <a target="mainFrame" href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html"
+     >timeside.analyze.mean_level.MeanLevelAnalyser</a><br />    <a target="mainFrame" href="timeside.analyze.resolution.ResolutionAnalyser-class.html"
+     >timeside.analyze.resolution.ResolutionAnalyser</a><br />    <a target="mainFrame" href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html"
+     >timeside.analyze.samplerate.SampleRateAnalyzer</a><br />    <a target="mainFrame" href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html"
+     >timeside.analyze.vamp.core.VampCoreAnalyzer</a><br />    <a target="mainFrame" href="timeside.api.IAnalyzer-class.html"
+     >timeside.api.IAnalyzer</a><br />    <a target="mainFrame" href="timeside.api.IDecoder-class.html"
+     >timeside.api.IDecoder</a><br />    <a target="mainFrame" href="timeside.api.IEffect-class.html"
+     >timeside.api.IEffect</a><br />    <a target="mainFrame" href="timeside.api.IEncoder-class.html"
+     >timeside.api.IEncoder</a><br />    <a target="mainFrame" href="timeside.api.IGrapher-class.html"
+     >timeside.api.IGrapher</a><br />    <a target="mainFrame" href="timeside.api.IProcessor-class.html"
+     >timeside.api.IProcessor</a><br />    <a target="mainFrame" href="timeside.api.IValueAnalyzer-class.html"
+     >timeside.api.IValueAnalyzer</a><br />    <a target="mainFrame" href="timeside.component.Component-class.html"
+     >timeside.component.Component</a><br />    <a target="mainFrame" href="timeside.component.ComponentError-class.html"
+     >timeside.component.ComponentError</a><br />    <a target="mainFrame" href="timeside.component.Interface-class.html"
+     >timeside.component.Interface</a><br />    <a target="mainFrame" href="timeside.component.MetaComponent-class.html"
+     >timeside.component.MetaComponent</a><br />    <a target="mainFrame" href="timeside.core.FixedSizeInputAdapter-class.html"
+     >timeside.core.FixedSizeInputAdapter</a><br />    <a target="mainFrame" href="timeside.core.MetaProcessor-class.html"
+     >timeside.core.MetaProcessor</a><br />    <a target="mainFrame" href="timeside.core.ProcessPipe-class.html"
+     >timeside.core.ProcessPipe</a><br />    <a target="mainFrame" href="timeside.core.Processor-class.html"
+     >timeside.core.Processor</a><br />    <a target="mainFrame" href="timeside.decode.core.DecoderCore-class.html"
+     >timeside.decode.core.DecoderCore</a><br />    <a target="mainFrame" href="timeside.decode.core.SubProcessPipe-class.html"
+     >timeside.decode.core.SubProcessPipe</a><br />    <a target="mainFrame" href="timeside.decode.flac.FlacDecoder-class.html"
+     >timeside.decode.flac.FlacDecoder</a><br />    <a target="mainFrame" href="timeside.decode.mp3.Mp3Decoder-class.html"
+     >timeside.decode.mp3.Mp3Decoder</a><br />    <a target="mainFrame" href="timeside.decode.ogg.OggDecoder-class.html"
+     >timeside.decode.ogg.OggDecoder</a><br />    <a target="mainFrame" href="timeside.decode.wav.WavDecoder-class.html"
+     >timeside.decode.wav.WavDecoder</a><br />    <a target="mainFrame" href="timeside.encode.core.EncoderCore-class.html"
+     >timeside.encode.core.EncoderCore</a><br />    <a target="mainFrame" href="timeside.encode.core.SubProcessPipe-class.html"
+     >timeside.encode.core.SubProcessPipe</a><br />    <a target="mainFrame" href="timeside.encode.flac.FlacEncoder-class.html"
+     >timeside.encode.flac.FlacEncoder</a><br />    <a target="mainFrame" href="timeside.encode.mp3.Mp3Encoder-class.html"
+     >timeside.encode.mp3.Mp3Encoder</a><br />    <a target="mainFrame" href="timeside.encode.ogg.OggVorbisEncoder-class.html"
+     >timeside.encode.ogg.OggVorbisEncoder</a><br />    <a target="mainFrame" href="timeside.encode.wav.WavEncoder-class.html"
+     >timeside.encode.wav.WavEncoder</a><br />    <a target="mainFrame" href="timeside.exceptions.ApiError-class.html"
+     >timeside.exceptions.ApiError</a><br />    <a target="mainFrame" href="timeside.exceptions.Error-class.html"
+     >timeside.exceptions.Error</a><br />    <a target="mainFrame" href="timeside.exceptions.SubProcessError-class.html"
+     >timeside.exceptions.SubProcessError</a><br />    <a target="mainFrame" href="timeside.grapher.core.Noise-class.html"
+     >timeside.grapher.core.Noise</a><br />    <a target="mainFrame" href="timeside.grapher.core.SpectralCentroid-class.html"
+     >timeside.grapher.core.SpectralCentroid</a><br />    <a target="mainFrame" href="timeside.grapher.core.SpectrogramImage-class.html"
+     >timeside.grapher.core.SpectrogramImage</a><br />    <a target="mainFrame" href="timeside.grapher.core.WaveformImage-class.html"
+     >timeside.grapher.core.WaveformImage</a><br />    <a target="mainFrame" href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html"
+     >timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab</a><br />    <a target="mainFrame" href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html"
+     >timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab</a><br />    <a target="mainFrame" href="timeside.metadata.Metadata-class.html"
+     >timeside.metadata.Metadata</a><br />    <a target="mainFrame" href="timeside.tests.TestCase-class.html"
+     >timeside.tests.TestCase</a><br />    <a target="mainFrame" href="timeside.tests.TestRunner-class.html"
+     >timeside.tests.TestRunner</a><br />  <div class="private">
+    <a target="mainFrame" href="timeside.tests._TextTestResult-class.html"
+     >timeside.tests._TextTestResult</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests._WritelnDecorator-class.html"
+     >timeside.tests._WritelnDecorator</a><br />  </div>
+    <a target="mainFrame" href="timeside.tests.api.examples.Duration-class.html"
+     >timeside.tests.api.examples.Duration</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.FileDecoder-class.html"
+     >timeside.tests.api.examples.FileDecoder</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.FixedInputProcessor-class.html"
+     >timeside.tests.api.examples.FixedInputProcessor</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.Gain-class.html"
+     >timeside.tests.api.examples.Gain</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.MaxLevel-class.html"
+     >timeside.tests.api.examples.MaxLevel</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.Spectrogram-class.html"
+     >timeside.tests.api.examples.Spectrogram</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.WavEncoder-class.html"
+     >timeside.tests.api.examples.WavEncoder</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.Waveform-class.html"
+     >timeside.tests.api.examples.Waveform</a><br />    <a target="mainFrame" href="timeside.tests.api.gstreamer.FileDecoder-class.html"
+     >timeside.tests.api.gstreamer.FileDecoder</a><br />    <a target="mainFrame" href="timeside.tests.api.gstreamer.WavEncoder-class.html"
+     >timeside.tests.api.gstreamer.WavEncoder</a><br />    <a target="mainFrame" href="timeside.tests.test.TestAnalyzers-class.html"
+     >timeside.tests.test.TestAnalyzers</a><br />    <a target="mainFrame" href="timeside.tests.test.TestDecoders-class.html"
+     >timeside.tests.test.TestDecoders</a><br />    <a target="mainFrame" href="timeside.tests.test.TestEncoders-class.html"
+     >timeside.tests.test.TestEncoders</a><br />    <a target="mainFrame" href="timeside.tests.test.TestGraphers-class.html"
+     >timeside.tests.test.TestGraphers</a><br />  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C1-class.html"
+     >timeside.tests.testcomponent.C1</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C10-class.html"
+     >timeside.tests.testcomponent.C10</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C11-class.html"
+     >timeside.tests.testcomponent.C11</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C2-class.html"
+     >timeside.tests.testcomponent.C2</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C3-class.html"
+     >timeside.tests.testcomponent.C3</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C4-class.html"
+     >timeside.tests.testcomponent.C4</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C5-class.html"
+     >timeside.tests.testcomponent.C5</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C6-class.html"
+     >timeside.tests.testcomponent.C6</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C7-class.html"
+     >timeside.tests.testcomponent.C7</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C8-class.html"
+     >timeside.tests.testcomponent.C8</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C9-class.html"
+     >timeside.tests.testcomponent.C9</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I1-class.html"
+     >timeside.tests.testcomponent.I1</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I10-class.html"
+     >timeside.tests.testcomponent.I10</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I11-class.html"
+     >timeside.tests.testcomponent.I11</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I2-class.html"
+     >timeside.tests.testcomponent.I2</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I3-class.html"
+     >timeside.tests.testcomponent.I3</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I4-class.html"
+     >timeside.tests.testcomponent.I4</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I5-class.html"
+     >timeside.tests.testcomponent.I5</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I6-class.html"
+     >timeside.tests.testcomponent.I6</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I7-class.html"
+     >timeside.tests.testcomponent.I7</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I8-class.html"
+     >timeside.tests.testcomponent.I8</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I9-class.html"
+     >timeside.tests.testcomponent.I9</a><br />  </div>
+    <a target="mainFrame" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html"
+     >timeside.tests.testcomponent.TestComponentArchitecture</a><br />    <a target="mainFrame" href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html"
+     >timeside.tests.testinputadapter.TestFixedSizeInputAdapter</a><br />  <h2 class="toc">All Functions</h2>
+    <a target="mainFrame" href="timeside.component-module.html#abstract"
+     >timeside.component.abstract</a><br />  <div class="private">
+    <a target="mainFrame" href="timeside.component-module.html#extend_unique"
+     >timeside.component.extend_unique</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.component-module.html#find_implementations"
+     >timeside.component.find_implementations</a><br />  </div>
+    <a target="mainFrame" href="timeside.component-module.html#implementations"
+     >timeside.component.implementations</a><br />    <a target="mainFrame" href="timeside.component-module.html#implements"
+     >timeside.component.implements</a><br />    <a target="mainFrame" href="timeside.component-module.html#interfacedoc"
+     >timeside.component.interfacedoc</a><br />    <a target="mainFrame" href="timeside.core-module.html#get_processor"
+     >timeside.core.get_processor</a><br />    <a target="mainFrame" href="timeside.core-module.html#processors"
+     >timeside.core.processors</a><br />    <a target="mainFrame" href="timeside.grapher.core-module.html#interpolate_colors"
+     >timeside.grapher.core.interpolate_colors</a><br />    <a target="mainFrame" href="timeside.tests.listprocessors-module.html#list_processors"
+     >timeside.tests.listprocessors.list_processors</a><br />    <a target="mainFrame" href="timeside.tests.test-module.html#mimetype"
+     >timeside.tests.test.mimetype</a><br />  <h2 class="toc">All Variables</h2>
+  <div class="private">
+    <a target="mainFrame" href="timeside.core-module.html#_processors"
+     >timeside.core._processors</a><br />  </div>
+    <a target="mainFrame" href="timeside.grapher-module.html#color_schemes"
+     >timeside.grapher.color_schemes</a><br />    <a target="mainFrame" href="timeside.grapher.core-module.html#color_schemes"
+     >timeside.grapher.core.color_schemes</a><br />    <a target="mainFrame" href="timeside.grapher.spectrogram_audiolab-module.html#color_schemes"
+     >timeside.grapher.spectrogram_audiolab.color_schemes</a><br />    <a target="mainFrame" href="timeside.grapher.waveform_audiolab-module.html#color_schemes"
+     >timeside.grapher.waveform_audiolab.color_schemes</a><br />    <a target="mainFrame" href="timeside.tests.api.examples-module.html#color_schemes"
+     >timeside.tests.api.examples.color_schemes</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#analyzer"
+     >timeside.tests.api.test_lolevel.analyzer</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#decoder"
+     >timeside.tests.api.test_lolevel.decoder</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#destination"
+     >timeside.tests.api.test_lolevel.destination</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#effect"
+     >timeside.tests.api.test_lolevel.effect</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#encoder"
+     >timeside.tests.api.test_lolevel.encoder</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#eod"
+     >timeside.tests.api.test_lolevel.eod</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#frames"
+     >timeside.tests.api.test_lolevel.frames</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#gain"
+     >timeside.tests.api.test_lolevel.gain</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#max_level"
+     >timeside.tests.api.test_lolevel.max_level</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#nchannels"
+     >timeside.tests.api.test_lolevel.nchannels</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#nframes"
+     >timeside.tests.api.test_lolevel.nframes</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#samplerate"
+     >timeside.tests.api.test_lolevel.samplerate</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#source"
+     >timeside.tests.api.test_lolevel.source</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#use_gst"
+     >timeside.tests.api.test_lolevel.use_gst</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#decoder"
+     >timeside.tests.api.test_pipe.decoder</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#duration"
+     >timeside.tests.api.test_pipe.duration</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#encoder"
+     >timeside.tests.api.test_pipe.encoder</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#fixed"
+     >timeside.tests.api.test_pipe.fixed</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#gain"
+     >timeside.tests.api.test_pipe.gain</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#maxlevel"
+     >timeside.tests.api.test_pipe.maxlevel</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#source"
+     >timeside.tests.api.test_pipe.source</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#subpipe"
+     >timeside.tests.api.test_pipe.subpipe</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#use_gst"
+     >timeside.tests.api.test_pipe.use_gst</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_spectrogram-module.html#decoder"
+     >timeside.tests.api.test_pipe_spectrogram.decoder</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_spectrogram-module.html#image_file"
+     >timeside.tests.api.test_pipe_spectrogram.image_file</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_spectrogram-module.html#source"
+     >timeside.tests.api.test_pipe_spectrogram.source</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_spectrogram-module.html#spectrogram"
+     >timeside.tests.api.test_pipe_spectrogram.spectrogram</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_spectrogram-module.html#use_gst"
+     >timeside.tests.api.test_pipe_spectrogram.use_gst</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_waveform-module.html#decoder"
+     >timeside.tests.api.test_pipe_waveform.decoder</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_waveform-module.html#image_file"
+     >timeside.tests.api.test_pipe_waveform.image_file</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_waveform-module.html#source"
+     >timeside.tests.api.test_pipe_waveform.source</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_waveform-module.html#use_gst"
+     >timeside.tests.api.test_pipe_waveform.use_gst</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_waveform-module.html#waveform"
+     >timeside.tests.api.test_pipe_waveform.waveform</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside-module.html b/doc/epydoc/toc-timeside-module.html
new file mode 100644 (file)
index 0000000..860cc2e
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>timeside</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module timeside</h1>
+<hr />
+<hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.analyze-module.html b/doc/epydoc/toc-timeside.analyze-module.html
new file mode 100644 (file)
index 0000000..d7f6bcc
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>analyze</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module analyze</h1>
+<hr />
+<hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.analyze.channels-module.html b/doc/epydoc/toc-timeside.analyze.channels-module.html
new file mode 100644 (file)
index 0000000..47220db
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>channels</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module channels</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.analyze.channels.ChannelAnalyser-class.html"
+     >ChannelAnalyser</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.analyze.core-module.html b/doc/epydoc/toc-timeside.analyze.core-module.html
new file mode 100644 (file)
index 0000000..42c7812
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module core</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.analyze.core.AudioProcessor-class.html"
+     >AudioProcessor</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.analyze.dc-module.html b/doc/epydoc/toc-timeside.analyze.dc-module.html
new file mode 100644 (file)
index 0000000..a415474
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>dc</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module dc</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.analyze.dc.MeanDCShiftAnalyser-class.html"
+     >MeanDCShiftAnalyser</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.analyze.duration-module.html b/doc/epydoc/toc-timeside.analyze.duration-module.html
new file mode 100644 (file)
index 0000000..538c40b
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>duration</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module duration</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.analyze.duration.DurationAnalyzer-class.html"
+     >DurationAnalyzer</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.analyze.encoding-module.html b/doc/epydoc/toc-timeside.analyze.encoding-module.html
new file mode 100644 (file)
index 0000000..fc6b900
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>encoding</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module encoding</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.analyze.encoding.EncodingAnalyser-class.html"
+     >EncodingAnalyser</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.analyze.format-module.html b/doc/epydoc/toc-timeside.analyze.format-module.html
new file mode 100644 (file)
index 0000000..b07c397
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>format</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module format</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.analyze.format.FormatAnalyser-class.html"
+     >FormatAnalyser</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.analyze.max_level-module.html b/doc/epydoc/toc-timeside.analyze.max_level-module.html
new file mode 100644 (file)
index 0000000..bd4908f
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>max_level</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module max_level</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.analyze.max_level.MaxLevelAnalyzer-class.html"
+     >MaxLevelAnalyzer</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.analyze.mean_level-module.html b/doc/epydoc/toc-timeside.analyze.mean_level-module.html
new file mode 100644 (file)
index 0000000..c7a5890
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>mean_level</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module mean_level</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.analyze.mean_level.MeanLevelAnalyser-class.html"
+     >MeanLevelAnalyser</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.analyze.resolution-module.html b/doc/epydoc/toc-timeside.analyze.resolution-module.html
new file mode 100644 (file)
index 0000000..ae84f50
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>resolution</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module resolution</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.analyze.resolution.ResolutionAnalyser-class.html"
+     >ResolutionAnalyser</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.analyze.samplerate-module.html b/doc/epydoc/toc-timeside.analyze.samplerate-module.html
new file mode 100644 (file)
index 0000000..cdca972
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>samplerate</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module samplerate</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.analyze.samplerate.SampleRateAnalyzer-class.html"
+     >SampleRateAnalyzer</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.analyze.vamp-module.html b/doc/epydoc/toc-timeside.analyze.vamp-module.html
new file mode 100644 (file)
index 0000000..d0ddce4
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>vamp</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module vamp</h1>
+<hr />
+<hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.analyze.vamp.core-module.html b/doc/epydoc/toc-timeside.analyze.vamp.core-module.html
new file mode 100644 (file)
index 0000000..d57aebe
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module core</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.analyze.vamp.core.VampCoreAnalyzer-class.html"
+     >VampCoreAnalyzer</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.api-module.html b/doc/epydoc/toc-timeside.api-module.html
new file mode 100644 (file)
index 0000000..cedcfc5
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>api</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module api</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.api.IAnalyzer-class.html"
+     >IAnalyzer</a><br />    <a target="mainFrame" href="timeside.api.IDecoder-class.html"
+     >IDecoder</a><br />    <a target="mainFrame" href="timeside.api.IEffect-class.html"
+     >IEffect</a><br />    <a target="mainFrame" href="timeside.api.IEncoder-class.html"
+     >IEncoder</a><br />    <a target="mainFrame" href="timeside.api.IGrapher-class.html"
+     >IGrapher</a><br />    <a target="mainFrame" href="timeside.api.IProcessor-class.html"
+     >IProcessor</a><br />    <a target="mainFrame" href="timeside.api.IValueAnalyzer-class.html"
+     >IValueAnalyzer</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.component-module.html b/doc/epydoc/toc-timeside.component-module.html
new file mode 100644 (file)
index 0000000..b015888
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>component</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module component</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.component.Component-class.html"
+     >Component</a><br />    <a target="mainFrame" href="timeside.component.ComponentError-class.html"
+     >ComponentError</a><br />    <a target="mainFrame" href="timeside.component.Interface-class.html"
+     >Interface</a><br />    <a target="mainFrame" href="timeside.component.MetaComponent-class.html"
+     >MetaComponent</a><br />  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="timeside.component-module.html#abstract"
+     >abstract</a><br />  <div class="private">
+    <a target="mainFrame" href="timeside.component-module.html#extend_unique"
+     >extend_unique</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.component-module.html#find_implementations"
+     >find_implementations</a><br />  </div>
+    <a target="mainFrame" href="timeside.component-module.html#implementations"
+     >implementations</a><br />    <a target="mainFrame" href="timeside.component-module.html#implements"
+     >implements</a><br />    <a target="mainFrame" href="timeside.component-module.html#interfacedoc"
+     >interfacedoc</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.core-module.html b/doc/epydoc/toc-timeside.core-module.html
new file mode 100644 (file)
index 0000000..f4ca3b9
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module core</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.core.FixedSizeInputAdapter-class.html"
+     >FixedSizeInputAdapter</a><br />    <a target="mainFrame" href="timeside.core.MetaProcessor-class.html"
+     >MetaProcessor</a><br />    <a target="mainFrame" href="timeside.core.ProcessPipe-class.html"
+     >ProcessPipe</a><br />    <a target="mainFrame" href="timeside.core.Processor-class.html"
+     >Processor</a><br />  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="timeside.core-module.html#abstract"
+     >abstract</a><br />    <a target="mainFrame" href="timeside.core-module.html#get_processor"
+     >get_processor</a><br />    <a target="mainFrame" href="timeside.core-module.html#implements"
+     >implements</a><br />    <a target="mainFrame" href="timeside.core-module.html#interfacedoc"
+     >interfacedoc</a><br />    <a target="mainFrame" href="timeside.core-module.html#processors"
+     >processors</a><br />  <h2 class="toc">Variables</h2>
+  <div class="private">
+    <a target="mainFrame" href="timeside.core-module.html#_processors"
+     >_processors</a><br />  </div>
+<hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.decode-module.html b/doc/epydoc/toc-timeside.decode-module.html
new file mode 100644 (file)
index 0000000..50e85a1
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>decode</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module decode</h1>
+<hr />
+<hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.decode.core-module.html b/doc/epydoc/toc-timeside.decode.core-module.html
new file mode 100644 (file)
index 0000000..39694f7
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module core</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.decode.core.DecoderCore-class.html"
+     >DecoderCore</a><br />    <a target="mainFrame" href="timeside.decode.core.SubProcessPipe-class.html"
+     >SubProcessPipe</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.decode.flac-module.html b/doc/epydoc/toc-timeside.decode.flac-module.html
new file mode 100644 (file)
index 0000000..68b5f1e
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>flac</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module flac</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.decode.flac.FlacDecoder-class.html"
+     >FlacDecoder</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.decode.mp3-module.html b/doc/epydoc/toc-timeside.decode.mp3-module.html
new file mode 100644 (file)
index 0000000..fc1d225
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>mp3</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module mp3</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.decode.mp3.Mp3Decoder-class.html"
+     >Mp3Decoder</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.decode.ogg-module.html b/doc/epydoc/toc-timeside.decode.ogg-module.html
new file mode 100644 (file)
index 0000000..749f432
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>ogg</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module ogg</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.decode.ogg.OggDecoder-class.html"
+     >OggDecoder</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.decode.wav-module.html b/doc/epydoc/toc-timeside.decode.wav-module.html
new file mode 100644 (file)
index 0000000..89cf548
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>wav</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module wav</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.decode.wav.WavDecoder-class.html"
+     >WavDecoder</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.encode-module.html b/doc/epydoc/toc-timeside.encode-module.html
new file mode 100644 (file)
index 0000000..725256d
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>encode</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module encode</h1>
+<hr />
+<hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.encode.core-module.html b/doc/epydoc/toc-timeside.encode.core-module.html
new file mode 100644 (file)
index 0000000..d0857b6
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module core</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.encode.core.EncoderCore-class.html"
+     >EncoderCore</a><br />    <a target="mainFrame" href="timeside.encode.core.SubProcessPipe-class.html"
+     >SubProcessPipe</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.encode.flac-module.html b/doc/epydoc/toc-timeside.encode.flac-module.html
new file mode 100644 (file)
index 0000000..27b9686
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>flac</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module flac</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.encode.flac.FlacEncoder-class.html"
+     >FlacEncoder</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.encode.mp3-module.html b/doc/epydoc/toc-timeside.encode.mp3-module.html
new file mode 100644 (file)
index 0000000..dda1632
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>mp3</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module mp3</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.encode.mp3.Mp3Encoder-class.html"
+     >Mp3Encoder</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.encode.ogg-module.html b/doc/epydoc/toc-timeside.encode.ogg-module.html
new file mode 100644 (file)
index 0000000..f3c556c
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>ogg</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module ogg</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.encode.ogg.OggVorbisEncoder-class.html"
+     >OggVorbisEncoder</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.encode.wav-module.html b/doc/epydoc/toc-timeside.encode.wav-module.html
new file mode 100644 (file)
index 0000000..77eee68
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>wav</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module wav</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.encode.wav.WavEncoder-class.html"
+     >WavEncoder</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.exceptions-module.html b/doc/epydoc/toc-timeside.exceptions-module.html
new file mode 100644 (file)
index 0000000..6056acf
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>exceptions</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module exceptions</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.exceptions.ApiError-class.html"
+     >ApiError</a><br />    <a target="mainFrame" href="timeside.exceptions.Error-class.html"
+     >Error</a><br />    <a target="mainFrame" href="timeside.exceptions.SubProcessError-class.html"
+     >SubProcessError</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.grapher-module.html b/doc/epydoc/toc-timeside.grapher-module.html
new file mode 100644 (file)
index 0000000..ae31646
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>grapher</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module grapher</h1>
+<hr />
+  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="timeside.grapher-module.html#color_schemes"
+     >color_schemes</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.grapher.core-module.html b/doc/epydoc/toc-timeside.grapher.core-module.html
new file mode 100644 (file)
index 0000000..5c339dc
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>core</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module core</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.grapher.core.Noise-class.html"
+     >Noise</a><br />    <a target="mainFrame" href="timeside.grapher.core.SpectralCentroid-class.html"
+     >SpectralCentroid</a><br />    <a target="mainFrame" href="timeside.grapher.core.SpectrogramImage-class.html"
+     >SpectrogramImage</a><br />    <a target="mainFrame" href="timeside.grapher.core.WaveformImage-class.html"
+     >WaveformImage</a><br />  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="timeside.grapher.core-module.html#interpolate_colors"
+     >interpolate_colors</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="timeside.grapher.core-module.html#color_schemes"
+     >color_schemes</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.grapher.spectrogram_audiolab-module.html b/doc/epydoc/toc-timeside.grapher.spectrogram_audiolab-module.html
new file mode 100644 (file)
index 0000000..97fc8df
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>spectrogram_audiolab</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module spectrogram_audiolab</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.grapher.spectrogram_audiolab.SpectrogramGrapherAudiolab-class.html"
+     >SpectrogramGrapherAudiolab</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="timeside.grapher.spectrogram_audiolab-module.html#color_schemes"
+     >color_schemes</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.grapher.waveform_audiolab-module.html b/doc/epydoc/toc-timeside.grapher.waveform_audiolab-module.html
new file mode 100644 (file)
index 0000000..2e92a4c
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>waveform_audiolab</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module waveform_audiolab</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.grapher.waveform_audiolab.WaveFormGrapherAudiolab-class.html"
+     >WaveFormGrapherAudiolab</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="timeside.grapher.waveform_audiolab-module.html#color_schemes"
+     >color_schemes</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.metadata-module.html b/doc/epydoc/toc-timeside.metadata-module.html
new file mode 100644 (file)
index 0000000..06c391b
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>metadata</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module metadata</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.metadata.Metadata-class.html"
+     >Metadata</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.tests-module.html b/doc/epydoc/toc-timeside.tests-module.html
new file mode 100644 (file)
index 0000000..9250c7e
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>tests</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module tests</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.tests.TestCase-class.html"
+     >TestCase</a><br />    <a target="mainFrame" href="timeside.tests.TestRunner-class.html"
+     >TestRunner</a><br />  <div class="private">
+    <a target="mainFrame" href="timeside.tests._TextTestResult-class.html"
+     >_TextTestResult</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests._WritelnDecorator-class.html"
+     >_WritelnDecorator</a><br />  </div>
+<hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.tests.alltests-module.html b/doc/epydoc/toc-timeside.tests.alltests-module.html
new file mode 100644 (file)
index 0000000..3feedd0
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>alltests</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module alltests</h1>
+<hr />
+<hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.tests.api-module.html b/doc/epydoc/toc-timeside.tests.api-module.html
new file mode 100644 (file)
index 0000000..e526bdd
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>api</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module api</h1>
+<hr />
+<hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.tests.api.examples-module.html b/doc/epydoc/toc-timeside.tests.api.examples-module.html
new file mode 100644 (file)
index 0000000..fe40290
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>examples</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module examples</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.tests.api.examples.Duration-class.html"
+     >Duration</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.FileDecoder-class.html"
+     >FileDecoder</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.FixedInputProcessor-class.html"
+     >FixedInputProcessor</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.Gain-class.html"
+     >Gain</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.MaxLevel-class.html"
+     >MaxLevel</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.Spectrogram-class.html"
+     >Spectrogram</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.WavEncoder-class.html"
+     >WavEncoder</a><br />    <a target="mainFrame" href="timeside.tests.api.examples.Waveform-class.html"
+     >Waveform</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="timeside.tests.api.examples-module.html#color_schemes"
+     >color_schemes</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.tests.api.gstreamer-module.html b/doc/epydoc/toc-timeside.tests.api.gstreamer-module.html
new file mode 100644 (file)
index 0000000..966e035
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>gstreamer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module gstreamer</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.tests.api.gstreamer.FileDecoder-class.html"
+     >FileDecoder</a><br />    <a target="mainFrame" href="timeside.tests.api.gstreamer.WavEncoder-class.html"
+     >WavEncoder</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.tests.api.test_lolevel-module.html b/doc/epydoc/toc-timeside.tests.api.test_lolevel-module.html
new file mode 100644 (file)
index 0000000..e90fb81
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>test_lolevel</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module test_lolevel</h1>
+<hr />
+  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#analyzer"
+     >analyzer</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#decoder"
+     >decoder</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#destination"
+     >destination</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#effect"
+     >effect</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#encoder"
+     >encoder</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#eod"
+     >eod</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#frames"
+     >frames</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#gain"
+     >gain</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#max_level"
+     >max_level</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#nchannels"
+     >nchannels</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#nframes"
+     >nframes</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#samplerate"
+     >samplerate</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#source"
+     >source</a><br />    <a target="mainFrame" href="timeside.tests.api.test_lolevel-module.html#use_gst"
+     >use_gst</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.tests.api.test_pipe-module.html b/doc/epydoc/toc-timeside.tests.api.test_pipe-module.html
new file mode 100644 (file)
index 0000000..c82ee75
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>test_pipe</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module test_pipe</h1>
+<hr />
+  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#decoder"
+     >decoder</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#duration"
+     >duration</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#encoder"
+     >encoder</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#fixed"
+     >fixed</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#gain"
+     >gain</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#maxlevel"
+     >maxlevel</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#source"
+     >source</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#subpipe"
+     >subpipe</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe-module.html#use_gst"
+     >use_gst</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.tests.api.test_pipe_spectrogram-module.html b/doc/epydoc/toc-timeside.tests.api.test_pipe_spectrogram-module.html
new file mode 100644 (file)
index 0000000..20d8413
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>test_pipe_spectrogram</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module test_pipe_spectrogram</h1>
+<hr />
+  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="timeside.tests.api.test_pipe_spectrogram-module.html#decoder"
+     >decoder</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_spectrogram-module.html#image_file"
+     >image_file</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_spectrogram-module.html#source"
+     >source</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_spectrogram-module.html#spectrogram"
+     >spectrogram</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_spectrogram-module.html#use_gst"
+     >use_gst</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.tests.api.test_pipe_waveform-module.html b/doc/epydoc/toc-timeside.tests.api.test_pipe_waveform-module.html
new file mode 100644 (file)
index 0000000..f22077a
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>test_pipe_waveform</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module test_pipe_waveform</h1>
+<hr />
+  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="timeside.tests.api.test_pipe_waveform-module.html#decoder"
+     >decoder</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_waveform-module.html#image_file"
+     >image_file</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_waveform-module.html#source"
+     >source</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_waveform-module.html#use_gst"
+     >use_gst</a><br />    <a target="mainFrame" href="timeside.tests.api.test_pipe_waveform-module.html#waveform"
+     >waveform</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.tests.listprocessors-module.html b/doc/epydoc/toc-timeside.tests.listprocessors-module.html
new file mode 100644 (file)
index 0000000..442a001
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>listprocessors</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module listprocessors</h1>
+<hr />
+  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="timeside.tests.listprocessors-module.html#list_processors"
+     >list_processors</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.tests.test-module.html b/doc/epydoc/toc-timeside.tests.test-module.html
new file mode 100644 (file)
index 0000000..51794e2
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>test</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module test</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.tests.test.TestAnalyzers-class.html"
+     >TestAnalyzers</a><br />    <a target="mainFrame" href="timeside.tests.test.TestDecoders-class.html"
+     >TestDecoders</a><br />    <a target="mainFrame" href="timeside.tests.test.TestEncoders-class.html"
+     >TestEncoders</a><br />    <a target="mainFrame" href="timeside.tests.test.TestGraphers-class.html"
+     >TestGraphers</a><br />  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="timeside.tests.test-module.html#mimetype"
+     >mimetype</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.tests.testcomponent-module.html b/doc/epydoc/toc-timeside.tests.testcomponent-module.html
new file mode 100644 (file)
index 0000000..3cf6bbe
--- /dev/null
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>testcomponent</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module testcomponent</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C1-class.html"
+     >C1</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C10-class.html"
+     >C10</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C11-class.html"
+     >C11</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C2-class.html"
+     >C2</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C3-class.html"
+     >C3</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C4-class.html"
+     >C4</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C5-class.html"
+     >C5</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C6-class.html"
+     >C6</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C7-class.html"
+     >C7</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C8-class.html"
+     >C8</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.C9-class.html"
+     >C9</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I1-class.html"
+     >I1</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I10-class.html"
+     >I10</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I11-class.html"
+     >I11</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I2-class.html"
+     >I2</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I3-class.html"
+     >I3</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I4-class.html"
+     >I4</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I5-class.html"
+     >I5</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I6-class.html"
+     >I6</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I7-class.html"
+     >I7</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I8-class.html"
+     >I8</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="timeside.tests.testcomponent.I9-class.html"
+     >I9</a><br />  </div>
+    <a target="mainFrame" href="timeside.tests.testcomponent.TestComponentArchitecture-class.html"
+     >TestComponentArchitecture</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc-timeside.tests.testinputadapter-module.html b/doc/epydoc/toc-timeside.tests.testinputadapter-module.html
new file mode 100644 (file)
index 0000000..5494e0b
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>testinputadapter</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module testinputadapter</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="timeside.tests.testinputadapter.TestFixedSizeInputAdapter-class.html"
+     >TestFixedSizeInputAdapter</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/doc/epydoc/toc.html b/doc/epydoc/toc.html
new file mode 100644 (file)
index 0000000..038ecbc
--- /dev/null
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Table of Contents</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Table&nbsp;of&nbsp;Contents</h1>
+<hr />
+  <a target="moduleFrame" href="toc-everything.html">Everything</a>
+  <br />
+  <h2 class="toc">Modules</h2>
+    <a target="moduleFrame" href="toc-timeside-module.html"
+     onclick="setFrame('toc-timeside-module.html','timeside-module.html');"     >timeside</a><br />    <a target="moduleFrame" href="toc-timeside.analyze-module.html"
+     onclick="setFrame('toc-timeside.analyze-module.html','timeside.analyze-module.html');"     >timeside.analyze</a><br />    <a target="moduleFrame" href="toc-timeside.analyze.channels-module.html"
+     onclick="setFrame('toc-timeside.analyze.channels-module.html','timeside.analyze.channels-module.html');"     >timeside.analyze.channels</a><br />    <a target="moduleFrame" href="toc-timeside.analyze.core-module.html"
+     onclick="setFrame('toc-timeside.analyze.core-module.html','timeside.analyze.core-module.html');"     >timeside.analyze.core</a><br />    <a target="moduleFrame" href="toc-timeside.analyze.dc-module.html"
+     onclick="setFrame('toc-timeside.analyze.dc-module.html','timeside.analyze.dc-module.html');"     >timeside.analyze.dc</a><br />    <a target="moduleFrame" href="toc-timeside.analyze.duration-module.html"
+     onclick="setFrame('toc-timeside.analyze.duration-module.html','timeside.analyze.duration-module.html');"     >timeside.analyze.duration</a><br />    <a target="moduleFrame" href="toc-timeside.analyze.encoding-module.html"
+     onclick="setFrame('toc-timeside.analyze.encoding-module.html','timeside.analyze.encoding-module.html');"     >timeside.analyze.encoding</a><br />    <a target="moduleFrame" href="toc-timeside.analyze.format-module.html"
+     onclick="setFrame('toc-timeside.analyze.format-module.html','timeside.analyze.format-module.html');"     >timeside.analyze.format</a><br />    <a target="moduleFrame" href="toc-timeside.analyze.max_level-module.html"
+     onclick="setFrame('toc-timeside.analyze.max_level-module.html','timeside.analyze.max_level-module.html');"     >timeside.analyze.max_level</a><br />    <a target="moduleFrame" href="toc-timeside.analyze.mean_level-module.html"
+     onclick="setFrame('toc-timeside.analyze.mean_level-module.html','timeside.analyze.mean_level-module.html');"     >timeside.analyze.mean_level</a><br />    <a target="moduleFrame" href="toc-timeside.analyze.resolution-module.html"
+     onclick="setFrame('toc-timeside.analyze.resolution-module.html','timeside.analyze.resolution-module.html');"     >timeside.analyze.resolution</a><br />    <a target="moduleFrame" href="toc-timeside.analyze.samplerate-module.html"
+     onclick="setFrame('toc-timeside.analyze.samplerate-module.html','timeside.analyze.samplerate-module.html');"     >timeside.analyze.samplerate</a><br />    <a target="moduleFrame" href="toc-timeside.analyze.vamp-module.html"
+     onclick="setFrame('toc-timeside.analyze.vamp-module.html','timeside.analyze.vamp-module.html');"     >timeside.analyze.vamp</a><br />    <a target="moduleFrame" href="toc-timeside.analyze.vamp.core-module.html"
+     onclick="setFrame('toc-timeside.analyze.vamp.core-module.html','timeside.analyze.vamp.core-module.html');"     >timeside.analyze.vamp.core</a><br />    <a target="moduleFrame" href="toc-timeside.api-module.html"
+     onclick="setFrame('toc-timeside.api-module.html','timeside.api-module.html');"     >timeside.api</a><br />    <a target="moduleFrame" href="toc-timeside.component-module.html"
+     onclick="setFrame('toc-timeside.component-module.html','timeside.component-module.html');"     >timeside.component</a><br />    <a target="moduleFrame" href="toc-timeside.core-module.html"
+     onclick="setFrame('toc-timeside.core-module.html','timeside.core-module.html');"     >timeside.core</a><br />    <a target="moduleFrame" href="toc-timeside.decode-module.html"
+     onclick="setFrame('toc-timeside.decode-module.html','timeside.decode-module.html');"     >timeside.decode</a><br />    <a target="moduleFrame" href="toc-timeside.decode.core-module.html"
+     onclick="setFrame('toc-timeside.decode.core-module.html','timeside.decode.core-module.html');"     >timeside.decode.core</a><br />    <a target="moduleFrame" href="toc-timeside.decode.flac-module.html"
+     onclick="setFrame('toc-timeside.decode.flac-module.html','timeside.decode.flac-module.html');"     >timeside.decode.flac</a><br />    <a target="moduleFrame" href="toc-timeside.decode.mp3-module.html"
+     onclick="setFrame('toc-timeside.decode.mp3-module.html','timeside.decode.mp3-module.html');"     >timeside.decode.mp3</a><br />    <a target="moduleFrame" href="toc-timeside.decode.ogg-module.html"
+     onclick="setFrame('toc-timeside.decode.ogg-module.html','timeside.decode.ogg-module.html');"     >timeside.decode.ogg</a><br />    <a target="moduleFrame" href="toc-timeside.decode.wav-module.html"
+     onclick="setFrame('toc-timeside.decode.wav-module.html','timeside.decode.wav-module.html');"     >timeside.decode.wav</a><br />    <a target="moduleFrame" href="toc-timeside.encode-module.html"
+     onclick="setFrame('toc-timeside.encode-module.html','timeside.encode-module.html');"     >timeside.encode</a><br />    <a target="moduleFrame" href="toc-timeside.encode.core-module.html"
+     onclick="setFrame('toc-timeside.encode.core-module.html','timeside.encode.core-module.html');"     >timeside.encode.core</a><br />    <a target="moduleFrame" href="toc-timeside.encode.flac-module.html"
+     onclick="setFrame('toc-timeside.encode.flac-module.html','timeside.encode.flac-module.html');"     >timeside.encode.flac</a><br />    <a target="moduleFrame" href="toc-timeside.encode.mp3-module.html"
+     onclick="setFrame('toc-timeside.encode.mp3-module.html','timeside.encode.mp3-module.html');"     >timeside.encode.mp3</a><br />    <a target="moduleFrame" href="toc-timeside.encode.ogg-module.html"
+     onclick="setFrame('toc-timeside.encode.ogg-module.html','timeside.encode.ogg-module.html');"     >timeside.encode.ogg</a><br />    <a target="moduleFrame" href="toc-timeside.encode.wav-module.html"
+     onclick="setFrame('toc-timeside.encode.wav-module.html','timeside.encode.wav-module.html');"     >timeside.encode.wav</a><br />    <a target="moduleFrame" href="toc-timeside.exceptions-module.html"
+     onclick="setFrame('toc-timeside.exceptions-module.html','timeside.exceptions-module.html');"     >timeside.exceptions</a><br />    <a target="moduleFrame" href="toc-timeside.grapher-module.html"
+     onclick="setFrame('toc-timeside.grapher-module.html','timeside.grapher-module.html');"     >timeside.grapher</a><br />    <a target="moduleFrame" href="toc-timeside.grapher.core-module.html"
+     onclick="setFrame('toc-timeside.grapher.core-module.html','timeside.grapher.core-module.html');"     >timeside.grapher.core</a><br />    <a target="moduleFrame" href="toc-timeside.grapher.spectrogram_audiolab-module.html"
+     onclick="setFrame('toc-timeside.grapher.spectrogram_audiolab-module.html','timeside.grapher.spectrogram_audiolab-module.html');"     >timeside.grapher.spectrogram_audiolab</a><br />    <a target="moduleFrame" href="toc-timeside.grapher.waveform_audiolab-module.html"
+     onclick="setFrame('toc-timeside.grapher.waveform_audiolab-module.html','timeside.grapher.waveform_audiolab-module.html');"     >timeside.grapher.waveform_audiolab</a><br />    <a target="moduleFrame" href="toc-timeside.metadata-module.html"
+     onclick="setFrame('toc-timeside.metadata-module.html','timeside.metadata-module.html');"     >timeside.metadata</a><br />    <a target="moduleFrame" href="toc-timeside.tests-module.html"
+     onclick="setFrame('toc-timeside.tests-module.html','timeside.tests-module.html');"     >timeside.tests</a><br />    <a target="moduleFrame" href="toc-timeside.tests.alltests-module.html"
+     onclick="setFrame('toc-timeside.tests.alltests-module.html','timeside.tests.alltests-module.html');"     >timeside.tests.alltests</a><br />    <a target="moduleFrame" href="toc-timeside.tests.api-module.html"
+     onclick="setFrame('toc-timeside.tests.api-module.html','timeside.tests.api-module.html');"     >timeside.tests.api</a><br />    <a target="moduleFrame" href="toc-timeside.tests.api.examples-module.html"
+     onclick="setFrame('toc-timeside.tests.api.examples-module.html','timeside.tests.api.examples-module.html');"     >timeside.tests.api.examples</a><br />    <a target="moduleFrame" href="toc-timeside.tests.api.gstreamer-module.html"
+     onclick="setFrame('toc-timeside.tests.api.gstreamer-module.html','timeside.tests.api.gstreamer-module.html');"     >timeside.tests.api.gstreamer</a><br />    <a target="moduleFrame" href="toc-timeside.tests.api.test_lolevel-module.html"
+     onclick="setFrame('toc-timeside.tests.api.test_lolevel-module.html','timeside.tests.api.test_lolevel-module.html');"     >timeside.tests.api.test_lolevel</a><br />    <a target="moduleFrame" href="toc-timeside.tests.api.test_pipe-module.html"
+     onclick="setFrame('toc-timeside.tests.api.test_pipe-module.html','timeside.tests.api.test_pipe-module.html');"     >timeside.tests.api.test_pipe</a><br />    <a target="moduleFrame" href="toc-timeside.tests.api.test_pipe_spectrogram-module.html"
+     onclick="setFrame('toc-timeside.tests.api.test_pipe_spectrogram-module.html','timeside.tests.api.test_pipe_spectrogram-module.html');"     >timeside.tests.api.test_pipe_spectrogram</a><br />    <a target="moduleFrame" href="toc-timeside.tests.api.test_pipe_waveform-module.html"
+     onclick="setFrame('toc-timeside.tests.api.test_pipe_waveform-module.html','timeside.tests.api.test_pipe_waveform-module.html');"     >timeside.tests.api.test_pipe_waveform</a><br />    <a target="moduleFrame" href="toc-timeside.tests.listprocessors-module.html"
+     onclick="setFrame('toc-timeside.tests.listprocessors-module.html','timeside.tests.listprocessors-module.html');"     >timeside.tests.listprocessors</a><br />    <a target="moduleFrame" href="toc-timeside.tests.test-module.html"
+     onclick="setFrame('toc-timeside.tests.test-module.html','timeside.tests.test-module.html');"     >timeside.tests.test</a><br />    <a target="moduleFrame" href="toc-timeside.tests.testcomponent-module.html"
+     onclick="setFrame('toc-timeside.tests.testcomponent-module.html','timeside.tests.testcomponent-module.html');"     >timeside.tests.testcomponent</a><br />    <a target="moduleFrame" href="toc-timeside.tests.testinputadapter-module.html"
+     onclick="setFrame('toc-timeside.tests.testinputadapter-module.html','timeside.tests.testinputadapter-module.html');"     >timeside.tests.testinputadapter</a><br /><hr />
+  <span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>