# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.coverage', 'sphinx.ext.viewcode', 'sphinx.ext.autosummary', 'sphinx.ext.doctest', 'numpydoc']
+extensions = ['sphinx.ext.autodoc',
+ 'sphinx.ext.coverage',
+ 'sphinx.ext.viewcode',
+ 'sphinx.ext.autosummary',
+ 'sphinx.ext.doctest', 'numpydoc',
+ 'matplotlib.sphinxext.mathmpl',
+ 'matplotlib.sphinxext.plot_directive']
doctest_path = os.path.abspath('../../')
doctest_global_setup = '''
>>> pitch = get_processor('aubio_pitch')()
>>> pipe = (decoder | pitch)
>>> print pipe.processors #doctest: +ELLIPSIS
-[gst_dec-{}, aubio_pitch-{}]
+[gst_dec-{}, aubio_pitch-{"blocksize_s": 0.0, "stepsize_s": 0.0}]
Run the pipe:
>>> encoders = get_processor('gst_mp3_enc')('sweep.mp3') | get_processor('gst_flac_enc')('sweep.flac')
>>> (decoder | levels | encoders).run()
>>> print levels.results
- {'...': AnalyzerResult(id_metadata=IdMetadata(id='level.max', name='Level Max', unit='dBFS', description='', date='...', version='...', author='TimeSide', proc_uuid='...', res_uuid='...'), data_object=GlobalValueObject(value=array([-6.021]), y_value=array([], dtype=float64)), audio_metadata=AudioMetadata(uri='.../sweep.wav', start=0.0, duration=8.0, is_segment=False, sha1='...', channels=2, channelsManagement=''), parameters={}), '...': AnalyzerResult(id_metadata=IdMetadata(id='level.rms', name='Level RMS', unit='dBFS', description='', date='...', version='...', author='TimeSide', proc_uuid='...', res_uuid='...'), data_object=GlobalValueObject(value=array([-9.856]), y_value=array([], dtype=float64)), audio_metadata=AudioMetadata(uri='.../sweep.wav', start=0.0, duration=8.0, is_segment=False, sha1='...', channels=2, channelsManagement=''), parameters={})}
+ {'...': AnalyzerResult(id_metadata=IdMetadata(id='level.max', name='Level Max', unit='dBFS', description='', date='...', version='...', author='TimeSide', proc_uuid='...', res_uuid='...'), data_object=GlobalValueObject(value=array([ 0.]), y_value=array([], dtype=float64)), audio_metadata=AudioMetadata(uri='.../sweep.wav', start=0.0, duration=8.0, is_segment=False, sha1='...', channels=2, channelsManagement=''), parameters={}), '...': AnalyzerResult(id_metadata=IdMetadata(id='level.rms', name='Level RMS', unit='dBFS', description='', date='...', version='...', author='TimeSide', proc_uuid='...', res_uuid='...'), data_object=GlobalValueObject(value=array([-2.995]), y_value=array([], dtype=float64)), audio_metadata=AudioMetadata(uri='.../sweep.wav', start=0.0, duration=8.0, is_segment=False, sha1='...', channels=2, channelsManagement=''), parameters={})}
class Level(Analyzer):
- """RMS level analyzer"""
+ """RMS level analyzer
+ """
implements(IValueAnalyzer)
@interfacedoc
rms_level.data_object.value = np.round(20 * np.log10(rms_val), 3)
self.add_result(rms_level)
+
+if __name__ == "__main__":
+ import doctest
+ print doctest.testmod(verbose=True)
# along with TimeSide. If not, see <http://www.gnu.org/licenses/>.
# Author: Paul Brossier <piem@piem.org>
+
from __future__ import division
from timeside.core import implements, interfacedoc
from timeside.analyzer.core import Analyzer
from timeside.tools.parameters import Int, HasTraits
from timeside.tools.buffering import BufferTable
-
import numpy as np
class Spectrogram(Analyzer):
- """Spectrogram analyzer
+ """
+ Spectrogram analyzer
Parameters
----------
Examples
--------
-
>>> import timeside
+ >>> from timeside.core import get_processor
>>> from timeside.tools.data_samples import samples as ts_samples
>>> audio_source = ts_samples['sweep.wav']
- >>> decoder = timeside.decoder.file.FileDecoder(uri=audio_source)
- >>> spectrogram = timeside.analyzer.spectrogram.Spectrogram(input_blocksize=2048, input_stepsize=1024)
+ >>> decoder = get_processor('gst_dec')(uri=audio_source)
+ >>> spectrogram = get_processor('spectrogram_analyzer')(input_blocksize=2048, input_stepsize=1024)
>>> pipe = (decoder | spectrogram)
>>> pipe.run()
+
+ .. plot::
+
+ import timeside
+ from timeside.core import get_processor
+ from timeside.tools.data_samples import samples as ts_samples
+ audio_source = ts_samples['sweep.wav']
+ decoder = get_processor('gst_dec')(uri=audio_source)
+ spectrogram = get_processor('spectrogram_analyzer')(input_blocksize=2048,
+ input_stepsize=1024)
+ pipe = (decoder | spectrogram)
+ pipe.run()
+ res = spectrogram.results['spectrogram_analyzer']
+ res.render()
+
+
"""
implements(IAnalyzer)
if __name__ == "__main__":
import doctest
- doctest.testmod()
+ import timeside
+ doctest.testmod(timeside.analyzer.spectrogram, verbose=True)
if __name__ == "__main__":
import doctest
-
- doctest.testmod()
+ import timeside
+ doctest.testmod(timeside.decoder.live, verbose=True)