Exemplo n.º 1
0
 def __init__(self,
              msg_type,
              channel,
              identifier,
              map_mode,
              name,
              num,
              script,
              mapping_feedback_delay=1,
              monobridge=None,
              *a,
              **k):
     super(MonoEncoderElement,
           self).__init__(msg_type,
                          channel,
                          identifier,
                          map_mode=Live.MidiMap.MapMode.absolute,
                          *a,
                          **k)
     self._mapping_feedback_delay = mapping_feedback_delay
     self.name = name
     self.num = num
     self._parameter = None
     self._script = script
     self._is_enabled = True
     self._paramter_lcd_name = ' '
     self._parameter_last_value = None
     self._mapped_to_midi_velocity = False
     if not monobridge is None:
         self._monobridge = monobridge
     elif hasattr(script, 'notification_to_bridge'):
         self._monobridge = script
     else:
         self._monobridge = MonoBridgeProxy()
     self.set_report_values(True, False)
Exemplo n.º 2
0
    def __init__(self, *a, **k):
        super(DescriptiveMonoButtonElement, self).__init__(*a, **k)

        self._descriptor = None
        self._last_reported_descriptor = None

        monobridge = k['monobridge'] if 'monobridge' in k else None
        if not monobridge is None:
            self._monobridge = monobridge
        elif hasattr(self._script, 'notification_to_bridge'):
            self._monobridge = self._script
        else:
            self._monobridge = MonoBridgeProxy()
 def __init__(
     self,
     msg_type,
     channel,
     identifier,
     map_mode,
     name,
     num,
     script,
     mapping_feedback_delay=1,
     monobridge=None,
     *a,
     **k
 ):
     super(MonoEncoderElement, self).__init__(
         msg_type, channel, identifier, map_mode=Live.MidiMap.MapMode.absolute, *a, **k
     )
     self._mapping_feedback_delay = mapping_feedback_delay
     self.name = name
     self.num = num
     self._parameter = None
     self._script = script
     self._is_enabled = True
     self._paramter_lcd_name = " "
     self._parameter_last_value = None
     self._mapped_to_midi_velocity = False
     if not monobridge is None:
         self._monobridge = monobridge
     elif hasattr(script, "notification_to_bridge"):
         self._monobridge = script
     else:
         self._monobridge = MonoBridgeProxy()
     self.set_report_values(True, False)
	def __init__(self, *a, **k):
		super(DescriptiveMonoButtonElement, self).__init__(*a, **k)

		self._descriptor = None
		self._last_reported_descriptor = None

		monobridge = k['monobridge'] if 'monobridge' in k else None
		if not monobridge is None:
			self._monobridge = monobridge
		elif hasattr(self._script, 'notification_to_bridge'):
			self._monobridge = self._script
		else:
			self._monobridge = MonoBridgeProxy()
Exemplo n.º 5
0
class DescriptiveMonoButtonElement(MonoButtonElement):


	def __init__(self, *a, **k):

		super(DescriptiveMonoButtonElement, self).__init__(*a, **k)

		self._descriptor = None
		self._last_reported_descriptor = None

		monobridge = k['monobridge'] if 'monobridge' in k else None
		if not monobridge is None:
			self._monobridge = monobridge
		elif hasattr(self._script, 'notification_to_bridge'):
			self._monobridge = self._script
		else:
			self._monobridge = MonoBridgeProxy()
	

	def set_descriptor(self, descriptor):
		self._descriptor = '.' + str(descriptor) if descriptor else ''
	

	def _set_descriptor(self, descriptor):
		#debug('_set_descriptor:', descriptor)
		self.set_descriptor(descriptor)
	

	def _get_descriptor(self):
		#debug('_get_descriptor:', '' if self._descriptor is None else str(self._descriptor))
		return '' if self._descriptor is None else str(self._descriptor)
	
	
	descriptor = property(_get_descriptor, _set_descriptor)

	def report_descriptor(self, descriptor = None, force = False):
		if force or (descriptor != self._last_reported_descriptor):
			self._monobridge._send(self.name, 'button_function', str(descriptor) + self.descriptor)
		self._last_reported_descriptor = descriptor
	

	def set_light(self, value, *a, **k):
		try:
			self._skin[value]
		except SkinColorMissingError:
			pass
		super(MonoButtonElement, self).set_light(value, *a, **k)
		self.report_descriptor(value)
	

	def turn_on(self, force = False):
		self.force_next_send()
		if self._on_value in range(0, 128):
			self.send_value(self._on_value)
			self.report_descriptor('on')
		else:
			try:
				color = self._skin[self._on_value]
				color.draw(self)
			except SkinColorMissingError:
				#super(MonoButtonElement, self).turn_on()
				debug('skin color missing', self._on_value)
				self.send_value(127)
			self.report_descriptor(self._on_value)
	

	def turn_off(self, force = False):
		self.force_next_send()
		#debug('turn off:', self._off_value)
		if self._off_value in range(0, 128):
			self.send_value(self._off_value)
			self.report_descriptor('off')
		else:
			try:
				color = self._skin[self._off_value]
				color.draw(self)
			except SkinColorMissingError:
				#super(MonoButtonElement, self).turn_off()
				debug('skin color missing', self._off_value)
				self.send_value(0)
			self.report_descriptor(self._off_value)
Exemplo n.º 6
0
class MonoEncoderElement(EncoderElement):
    __module__ = __name__
    __doc__ = ' Class representing a slider on the controller '

    def __init__(self,
                 msg_type,
                 channel,
                 identifier,
                 map_mode,
                 name,
                 num,
                 script,
                 mapping_feedback_delay=1,
                 monobridge=None,
                 *a,
                 **k):
        super(MonoEncoderElement,
              self).__init__(msg_type,
                             channel,
                             identifier,
                             map_mode=Live.MidiMap.MapMode.absolute,
                             *a,
                             **k)
        self._mapping_feedback_delay = mapping_feedback_delay
        self.name = name
        self.num = num
        self._parameter = None
        self._script = script
        self._is_enabled = True
        self._paramter_lcd_name = ' '
        self._parameter_last_value = None
        self._mapped_to_midi_velocity = False
        if not monobridge is None:
            self._monobridge = monobridge
        elif hasattr(script, 'notification_to_bridge'):
            self._monobridge = script
        else:
            self._monobridge = MonoBridgeProxy()
        self.set_report_values(True, False)

    def _report_value(self, value, is_input):
        self._script.touched()

    def disconnect(self):
        self.remove_parameter_listener(self._parameter)
        super(MonoEncoderElement, self).disconnect()

    def connect_to(self, parameter):
        if parameter == None:
            self.release_parameter()
        else:
            self._mapped_to_midi_velocity = False
            assignment = parameter
            try:
                if (str(parameter.name) == str('Track Volume')
                    ):  #checks to see if parameter is track volume
                    if (parameter.canonical_parent.canonical_parent.
                            has_audio_output is
                            False):  #checks to see if track has audio output
                        if (len(parameter.canonical_parent.canonical_parent.
                                devices) > 0):
                            if (str(parameter.canonical_parent.
                                    canonical_parent.devices[0].class_name) ==
                                    str('MidiVelocity')
                                ):  #if not, looks for velicty as first plugin
                                assignment = parameter.canonical_parent.canonical_parent.devices[
                                    0].parameters[
                                        6]  #if found, assigns fader to its 'outhi' parameter
                                self._mapped_to_midi_velocity = True
            except:
                assignment = parameter
            if not self._parameter_to_map_to is assignment:
                self.send_value(0, True)
            super(MonoEncoderElement, self).connect_to(assignment)
            self.add_parameter_listener(self._parameter_to_map_to)

    def set_enabled(self, enabled):
        self._is_enabled = enabled
        self._request_rebuild()

    def set_value(self, value):
        if (self._parameter_to_map_to != None):
            newval = float(
                value *
                (self._parameter_to_map_to.max - self._parameter_to_map_to.min)
            ) + self._parameter_to_map_to.min
            self._parameter_to_map_to.value = newval
            return [value, str(self.mapped_parameter())]
        else:
            self.receive_value(int(value * 127))

    def release_parameter(self):
        if (self._parameter_to_map_to != None):
            self.remove_parameter_listener(self._parameter_to_map_to)
        super(MonoEncoderElement, self).release_parameter()

    def script_wants_forwarding(self):
        if not self._is_enabled:
            return False
        else:
            return super(MonoEncoderElement, self).script_wants_forwarding()

    def forward_parameter_value(self):
        if (not (type(self._parameter) is type(None))):
            #new_value=int(((self._parameter.value - self._parameter.min) / (self._parameter.max - self._parameter.min))  * 127)
            try:
                parameter = str(self.mapped_parameter())
            except:
                parameter = ' '
            if (parameter != self._parameter_last_value):
                #self._parameter_last_value = str(self.mapped_parameter())
                try:
                    self._parameter_last_value = str(self.mapped_parameter())
                except:
                    self._parameter_last_value = ' '
                self._monobridge.notification_to_bridge(
                    self._parameter_lcd_name, self._parameter_last_value, self)

    def add_parameter_listener(self, parameter):
        self._parameter = parameter
        if parameter:
            if isinstance(parameter, Live.DeviceParameter.DeviceParameter):
                if str(
                        parameter.original_name
                ) == 'Track Volume' or self._mapped_to_midi_velocity is True:
                    try:
                        self._parameter_lcd_name = str(
                            parameter.canonical_parent.canonical_parent.name)
                    except:
                        self._parameter_lcd_name = ' '
                elif str(parameter.original_name) == 'Track Panning':
                    self._parameter_lcd_name = 'Pan'
                else:
                    try:
                        self._parameter_lcd_name = str(parameter.name)
                    except:
                        self._parameter_lcd_name = ' '
            #self._last_value(int(((self._parameter.value - self._parameter.min) / (self._parameter.max - self._parameter.min))  * 127))
            #self._parameter_last_value = str(self.mapped_parameter())
            try:
                self._parameter_last_value = str(self.mapped_parameter())
            except:
                self._parameter_last_value = ' '
            self._monobridge.notification_to_bridge(self._parameter_lcd_name,
                                                    self._parameter_last_value,
                                                    self)
            cb = lambda: self.forward_parameter_value()
            parameter.add_value_listener(cb)

    def remove_parameter_listener(self, parameter):
        self._parameter = None
        #self._script.log_message('remove_parameter_listener ' + str(parameter.name + str(self.name)))
        if parameter:
            cb = lambda: self.forward_parameter_value()
            if (parameter.value_has_listener is True):
                parameter.remove_value_listener(cb)
            self._parameter_lcd_name = ' '
            self._parameter_last_value = ' '
            self._monobridge.notification_to_bridge(' ', ' ', self)
Exemplo n.º 7
0
class DescriptiveMonoButtonElement(MonoButtonElement):
    def __init__(self, *a, **k):
        super(DescriptiveMonoButtonElement, self).__init__(*a, **k)

        self._descriptor = None
        self._last_reported_descriptor = None

        monobridge = k['monobridge'] if 'monobridge' in k else None
        if not monobridge is None:
            self._monobridge = monobridge
        elif hasattr(self._script, 'notification_to_bridge'):
            self._monobridge = self._script
        else:
            self._monobridge = MonoBridgeProxy()

    def set_descriptor(self, descriptor):
        self._descriptor = '.' + str(descriptor) if descriptor else ''

    def _set_descriptor(self, descriptor):
        #debug('_set_descriptor:', descriptor)
        self.set_descriptor(descriptor)

    def _get_descriptor(self):
        #debug('_get_descriptor:', '' if self._descriptor is None else str(self._descriptor))
        return '' if self._descriptor is None else str(self._descriptor)

    descriptor = property(_get_descriptor, _set_descriptor)

    def report_descriptor(self, descriptor=None, force=False):
        if force or (descriptor != self._last_reported_descriptor):
            self._monobridge._send(self.name, 'button_function',
                                   str(descriptor) + self.descriptor)
        self._last_reported_descriptor = descriptor

    def set_light(self, value, *a, **k):
        try:
            self._skin[value]
        except SkinColorMissingError:
            pass
        super(MonoButtonElement, self).set_light(value, *a, **k)
        self.report_descriptor(value)

    def turn_on(self, force=False):
        self.force_next_send()
        if self._on_value in range(0, 128):
            self.send_value(self._on_value)
            self.report_descriptor('on')
        else:
            try:
                color = self._skin[self._on_value]
                color.draw(self)
            except SkinColorMissingError:
                #super(MonoButtonElement, self).turn_on()
                debug('skin color missing', self._on_value)
                self.send_value(127)
            self.report_descriptor(self._on_value)

    def turn_off(self, force=False):
        self.force_next_send()
        #debug('turn off:', self._off_value)
        if self._off_value in range(0, 128):
            self.send_value(self._off_value)
            self.report_descriptor('off')
        else:
            try:
                color = self._skin[self._off_value]
                color.draw(self)
            except SkinColorMissingError:
                #super(MonoButtonElement, self).turn_off()
                debug('skin color missing', self._off_value)
                self.send_value(0)
            self.report_descriptor(self._off_value)
class MonoEncoderElement(EncoderElement):
    __module__ = __name__
    __doc__ = " Class representing a slider on the controller "

    def __init__(
        self,
        msg_type,
        channel,
        identifier,
        map_mode,
        name,
        num,
        script,
        mapping_feedback_delay=1,
        monobridge=None,
        *a,
        **k
    ):
        super(MonoEncoderElement, self).__init__(
            msg_type, channel, identifier, map_mode=Live.MidiMap.MapMode.absolute, *a, **k
        )
        self._mapping_feedback_delay = mapping_feedback_delay
        self.name = name
        self.num = num
        self._parameter = None
        self._script = script
        self._is_enabled = True
        self._paramter_lcd_name = " "
        self._parameter_last_value = None
        self._mapped_to_midi_velocity = False
        if not monobridge is None:
            self._monobridge = monobridge
        elif hasattr(script, "notification_to_bridge"):
            self._monobridge = script
        else:
            self._monobridge = MonoBridgeProxy()
        self.set_report_values(True, False)

    def _report_value(self, value, is_input):
        self._script.touched()

    def disconnect(self):
        self.remove_parameter_listener(self._parameter)
        super(MonoEncoderElement, self).disconnect()

    def connect_to(self, parameter):
        if parameter == None:
            self.release_parameter()
        else:
            self._mapped_to_midi_velocity = False
            assignment = parameter
            try:
                if str(parameter.name) == str("Track Volume"):  # checks to see if parameter is track volume
                    if (
                        parameter.canonical_parent.canonical_parent.has_audio_output is False
                    ):  # checks to see if track has audio output
                        if len(parameter.canonical_parent.canonical_parent.devices) > 0:
                            if str(parameter.canonical_parent.canonical_parent.devices[0].class_name) == str(
                                "MidiVelocity"
                            ):  # if not, looks for velicty as first plugin
                                assignment = parameter.canonical_parent.canonical_parent.devices[0].parameters[
                                    6
                                ]  # if found, assigns fader to its 'outhi' parameter
                                self._mapped_to_midi_velocity = True
            except:
                assignment = parameter
            if not self._parameter_to_map_to is assignment:
                self.send_value(0, True)
            super(MonoEncoderElement, self).connect_to(assignment)
            self.add_parameter_listener(self._parameter_to_map_to)

    def set_enabled(self, enabled):
        self._is_enabled = enabled
        self._request_rebuild()

    def set_value(self, value):
        if self._parameter_to_map_to != None:
            newval = (
                float(value * (self._parameter_to_map_to.max - self._parameter_to_map_to.min))
                + self._parameter_to_map_to.min
            )
            self._parameter_to_map_to.value = newval
            return [value, str(self.mapped_parameter())]
        else:
            self.receive_value(int(value * 127))

    def release_parameter(self):
        if self._parameter_to_map_to != None:
            self.remove_parameter_listener(self._parameter_to_map_to)
        super(MonoEncoderElement, self).release_parameter()

    def script_wants_forwarding(self):
        if not self._is_enabled:
            return False
        else:
            return super(MonoEncoderElement, self).script_wants_forwarding()

    def forward_parameter_value(self):
        if not (type(self._parameter) is type(None)):
            # new_value=int(((self._parameter.value - self._parameter.min) / (self._parameter.max - self._parameter.min))  * 127)
            try:
                parameter = str(self.mapped_parameter())
            except:
                parameter = " "
            if parameter != self._parameter_last_value:
                # self._parameter_last_value = str(self.mapped_parameter())
                try:
                    self._parameter_last_value = str(self.mapped_parameter())
                except:
                    self._parameter_last_value = " "
                self._monobridge.notification_to_bridge(self._parameter_lcd_name, self._parameter_last_value, self)

    def add_parameter_listener(self, parameter):
        self._parameter = parameter
        if parameter:
            if isinstance(parameter, Live.DeviceParameter.DeviceParameter):
                if str(parameter.original_name) == "Track Volume" or self._mapped_to_midi_velocity is True:
                    try:
                        self._parameter_lcd_name = str(parameter.canonical_parent.canonical_parent.name)
                    except:
                        self._parameter_lcd_name = " "
                elif str(parameter.original_name) == "Track Panning":
                    self._parameter_lcd_name = "Pan"
                else:
                    try:
                        self._parameter_lcd_name = str(parameter.name)
                    except:
                        self._parameter_lcd_name = " "
                        # self._last_value(int(((self._parameter.value - self._parameter.min) / (self._parameter.max - self._parameter.min))  * 127))
                        # self._parameter_last_value = str(self.mapped_parameter())
            try:
                self._parameter_last_value = str(self.mapped_parameter())
            except:
                self._parameter_last_value = " "
            self._monobridge.notification_to_bridge(self._parameter_lcd_name, self._parameter_last_value, self)
            cb = lambda: self.forward_parameter_value()
            parameter.add_value_listener(cb)

    def remove_parameter_listener(self, parameter):
        self._parameter = None
        # self._script.log_message('remove_parameter_listener ' + str(parameter.name + str(self.name)))
        if parameter:
            cb = lambda: self.forward_parameter_value()
            if parameter.value_has_listener is True:
                parameter.remove_value_listener(cb)
            self._parameter_lcd_name = " "
            self._parameter_last_value = " "
            self._monobridge.notification_to_bridge(" ", " ", self)