from timeside.analyzer.core import Analyzer
from timeside.api import IAnalyzer
from timeside.analyzer.preprocessors import downmix_to_mono, frames_adapter
+from ..tools.parameters import Unicode, Int, HasTraits
+
+
import numpy as np
"""Spectrogram analyzer"""
implements(IAnalyzer)
+ # Define Parameters
+ class _Param(HasTraits):
+ FFT_SIZE = Int()
+
def __init__(self, blocksize=2048, stepsize=None, fft_size=None):
super(Spectrogram, self).__init__()
abstract = False
def __new__(cls, name, bases, d):
- new_class = type.__new__(cls, name, bases, d)
+ new_class = super(MetaComponent, cls).__new__(cls, name, bases, d)
# Register implementations
if MetaComponent.implements:
"""Base class of all components"""
__metaclass__ = MetaComponent
+ def __init__(self):
+ super(Component, self).__init__()
+
def extend_unique(list1, list2):
"""Extend list1 with list2 as list.extend(), but doesn't append duplicates
from .component import implements, implementations, interfacedoc
from .api import IProcessor
from .exceptions import Error, PIDError, ApiError
+from .tools.parameters import HasParam
import re
import numpy
valid_id = re.compile("^[a-z][_a-z0-9]*$")
def __new__(cls, name, bases, d):
- new_class = MetaComponent.__new__(cls, name, bases, d)
+ new_class = super(MetaProcessor, cls).__new__(cls, name, bases, d)
if new_class in implementations(IProcessor):
id = str(new_class.id())
if id in _processors:
return new_class
-class Processor(Component):
+class Processor(Component, HasParam):
"""Base component class of all processors