class_docstr: File decoder based on aubio 
class_docstr_tok: ["File","decoder","based","on","aubio"]
code: def __init__(
      self,
      uri,
      start=0,
      duration=None,
      sha1=None,
      progress_callback=None,
  ):
      super().__init__(
          start=start,
          duration=duration,
          progress_callback=progress_callback,
      )
      self.uri = uri
  
      # create the source with default settings
      try:
          self.source = aubio.source(
              self.uri, hop_size=self.output_blocksize
          )
      except RuntimeError as e:
          raise IOError(e)
      self.input_samplerate = self.source.samplerate
      self.input_channels = self.source.channels
  
      # get the original file duration
      self.input_totalframes = self.source.duration
      self.input_duration = (
          self.input_totalframes / self.input_samplerate
      )
      self.uri_duration = self.input_duration
  
      self.start = start
      self.duration = duration
  
      # FIXME
      self.mimetype = mimetypes.guess_type(uri)[0]
      self.input_width = 8
  
      if sha1 is not None:
          self._sha1 = sha1
      else:
          self._sha1 = get_sha1(uri)
  
file_path: TimeSide/timeside/plugins/decoder/aubio.py
imports: from timeside.core.decoder import Decoder, IDecoder, implements, interfacedoc
  from timeside.plugins.decoder.utils import get_sha1, get_media_uri_info
  import aubio
  import mimetypes
label_desc: Use image node_id 1 to create a new AubioDecoder object from inherited base classes: Decoder with example: obj = AubioDecoder(uri, start, duration, sha1, progress_callback)