예제 #1
0
파일: reader.py 프로젝트: metrasynth/rv
 def process_chunks(self):
     try:
         for name, data in chunks(self.f):
             name = name.decode(ENCODING).strip()
             method_name = "process_{}".format(name)
             method = getattr(self, method_name, None)
             log_args = (self.__class__.__name__, method_name)
             if callable(method):
                 log.debug(_F("-> {}.{}", *log_args))
                 method(data)
             else:
                 log.warning(_F("no {}.{} method", *log_args))
         self.process_end_of_file()
     except ReaderFinished:
         pass
예제 #2
0
 def process_chunks(self):
     try:
         for name, data in chunks(self.f):
             name = name.decode(ENCODING).strip().lower()
             method_name = "process_{}".format(name)
             method = getattr(self, method_name, None)
             log_args = (self.__class__.__name__, method_name)
             if callable(method):
                 log.debug(_F("-> {}.{}", *log_args))
                 method(data)
             else:
                 log.warning(_F("no {}.{} method", *log_args))
         self.process_end_of_file()
     except ReaderFinished:
         pass
예제 #3
0
파일: module.py 프로젝트: metrasynth/rv
 def process_SEND(self, data):
     self._load_last_chunk()
     self.object.finalize_load()
     if self.object.mtype == "MetaModule":
         self.object.update_user_defined_controllers()
         self.object.recompute_controller_attachment()
     for cnum, raw_value in reversed(list(enumerate(self._cvals))):
         if cnum < len(self._controller_keys):
             controller_name = self._controller_keys[cnum]
             log.debug(_F("Setting {} from raw {}", controller_name, raw_value))
             self.object.set_raw(controller_name, raw_value)
             self.object.controllers_loaded.add(controller_name)
         else:
             log.warning(
                 _F(
                     "Unsupported controller at index {} with raw value {}",
                     cnum,
                     raw_value,
                 )
             )
     raise ReaderFinished()
예제 #4
0
 def process_SEND(self, data):
     self._load_last_chunk()
     self.object.finalize_load()
     if self.object.mtype == "MetaModule":
         self.object.update_user_defined_controllers()
         self.object.recompute_controller_attachment()
     for cnum, raw_value in reversed(list(enumerate(self._cvals))):
         if cnum < len(self._controller_keys):
             controller_name = self._controller_keys[cnum]
             log.debug(
                 _F("Setting {} from raw {}", controller_name, raw_value))
             self.object.set_raw(controller_name, raw_value)
             self.object.controllers_loaded.add(controller_name)
         else:
             log.warning(
                 _F(
                     "Unsupported controller at index {} with raw value {}",
                     cnum,
                     raw_value,
                 ))
     raise ReaderFinished()
예제 #5
0
파일: sampler.py 프로젝트: metrasynth/rv
 def _upgrade_envelopes(self):
     log.info(
         _F(
             "Upgrading Sampler{} to infinite envelope format",
             "[{}]".format(self.index) if self.index is not None else "",
         )
     )
     vol = self.volume_envelope
     pan = self.panning_envelope
     vol.bitmask = vol._legacy_bitmask
     vol.sustain_point = vol._legacy_sustain_point
     vol.loop_start_point = vol._legacy_loop_start_point
     vol.loop_end_point = vol._legacy_loop_end_point
     pan.bitmask = pan._legacy_bitmask
     pan.sustain_point = pan._legacy_sustain_point
     pan.loop_start_point = pan._legacy_loop_start_point
     pan.loop_end_point = pan._legacy_loop_end_point
     vol_x_points = [
         unpack("<H", vol._legacy_point_bytes[4 * i : 4 * i + 2])[0]
         for i in range(vol._legacy_active_points)
     ]
     pan_x_points = [
         unpack("<H", pan._legacy_point_bytes[4 * i : 4 * i + 2])[0]
         for i in range(pan._legacy_active_points)
     ]
     vol_y_points = [
         unpack("<H", vol._legacy_point_bytes[4 * i + 2 : 4 * i + 4])[0] * 0x200
         for i in range(vol._legacy_active_points)
     ]
     pan_y_points = [
         unpack("<H", pan._legacy_point_bytes[4 * i + 2 : 4 * i + 4])[0] * 0x200
         - pan.range[0]
         for i in range(pan._legacy_active_points)
     ]
     vol.points = [
         (vol_x_points[i], vol_y_points[i]) for i in range(vol._legacy_active_points)
     ]
     pan.points = [
         (pan_x_points[i], pan_y_points[i]) for i in range(pan._legacy_active_points)
     ]
예제 #6
0
 def _upgrade_envelopes(self):
     log.info(
         _F(
             "Upgrading Sampler{} to infinite envelope format",
             "[{}]".format(self.index) if self.index is not None else "",
         ))
     vol = self.volume_envelope
     pan = self.panning_envelope
     vol.bitmask = vol._legacy_bitmask
     vol.sustain_point = vol._legacy_sustain_point
     vol.loop_start_point = vol._legacy_loop_start_point
     vol.loop_end_point = vol._legacy_loop_end_point
     pan.bitmask = pan._legacy_bitmask
     pan.sustain_point = pan._legacy_sustain_point
     pan.loop_start_point = pan._legacy_loop_start_point
     pan.loop_end_point = pan._legacy_loop_end_point
     vol_x_points = [
         unpack("<H", vol._legacy_point_bytes[4 * i:4 * i + 2])[0]
         for i in range(vol._legacy_active_points)
     ]
     pan_x_points = [
         unpack("<H", pan._legacy_point_bytes[4 * i:4 * i + 2])[0]
         for i in range(pan._legacy_active_points)
     ]
     vol_y_points = [
         unpack("<H", vol._legacy_point_bytes[4 * i + 2:4 * i + 4])[0] *
         0x200 for i in range(vol._legacy_active_points)
     ]
     pan_y_points = [
         unpack("<H", pan._legacy_point_bytes[4 * i + 2:4 * i + 4])[0] *
         0x200 - pan.range[0] for i in range(pan._legacy_active_points)
     ]
     vol.points = [(vol_x_points[i], vol_y_points[i])
                   for i in range(vol._legacy_active_points)]
     pan.points = [(pan_x_points[i], pan_y_points[i])
                   for i in range(pan._legacy_active_points)]
예제 #7
0
 def load_chunk(self, chunk):
     """Load a CHNK/CHNM/CHDT/CHFF/CHFR block into this module."""
     log.warning(_F("load_chunk not implemented for {}", self.__class__.__name__))