""" Set parameter number and settings """ try: total = len(self.song().view.selected_track.view.selected_device.parameters) x = 1 if x >= total: x = 0 encoder = self.midi_cc_ch_0_val_21.cur_val max = self.song().view.selected_track.view.selected_device.parameters[x].max min = self.song().view.selected_track.view.selected_device.parameters[x].min enabled = self.song().view.selected_track.view.selected_device.parameters[x].is_enabled quantized = self.song().view.selected_track.view.selected_device.parameters[x].is_quantized except AttributeError: return """ Functions for regular parameters """ def setParam( num ): param = self.song().view.selected_track.view.selected_device.parameters[x].value + num if param >= max: self.song().view.selected_track.view.selected_device.parameters[x].value = max elif param <= min: self.song().view.selected_track.view.selected_device.parameters[x].value = min else: self.song().view.selected_track.view.selected_device.parameters[x].value = param return def checkParam( value ): if value == 1: setParam( 0.010 ) elif value == 2: setParam( 0.020 ) elif value == 3: setParam( 0.030 ) elif value == 4: setParam( 0.040 ) elif value == 5: setParam( 0.050 ) elif value == 6: setParam( 0.060 ) elif value == 7: setParam( 0.080 ) elif value == 8: setParam( 0.10 ) elif value == 65: setParam( -0.010 ) elif value == 66: setParam( -0.020 ) elif value == 67: setParam( -0.030 ) elif value == 68: setParam( -0.040) elif value == 69: setParam( -0.050 ) elif value == 70: setParam( -0.060 ) elif value == 71: setParam( -0.080 ) elif value == 72: setParam( -0.10 ) return """ Functions for quantized parameters """ def setItem( num ): items = self.song().view.selected_track.view.selected_device.parameters[x].value_items total = len(items) a = self.song().view.selected_track.view.selected_device.parameters[x].value + num if a >= total: self.song().view.selected_track.view.selected_device.parameters[x].value = total - 1 elif a <= 0: self.song().view.selected_track.view.selected_device.parameters[x].value = 0 else: self.song().view.selected_track.view.selected_device.parameters[x].value = int(a) return def checkItem( value ): if value >= 1 and value <= 8: setItem(1) elif value >= 65 and value <= 72: setItem(-1) return """ Functions for parameters that go from 0 to 127 (Macros)""" def setMacro( num ): param = self.song().view.selected_track.view.selected_device.parameters[x].value + num if param >= 127: self.song().view.selected_track.view.selected_device.parameters[x].value = 127 elif param <= 0: self.song().view.selected_track.view.selected_device.parameters[x].value = 0 else: self.song().view.selected_track.view.selected_device.parameters[x].value = param return def checkMacro( value ): if value == 1: setMacro( 1 ) elif value == 2: setMacro( 2 ) elif value == 3: setMacro( 3 ) elif value == 4: setMacro( 4 ) elif value == 5: setMacro( 5 ) elif value == 6: setMacro( 6 ) elif value == 7: setMacro( 8 ) elif value == 8: setMacro( 10 ) elif value == 65: setMacro( -1 ) elif value == 66: setMacro( -2 ) elif value == 67: setMacro( -3 ) elif value == 68: setMacro( -4) elif value == 69: setMacro( -5 ) elif value == 70: setMacro( -6 ) elif value == 71: setMacro( -8 ) elif value == 72: setMacro( -10 ) return """ Action For Relative Encoder """ if enabled == True and x != 0: if quantized == True: checkItem( encoder ) else: if max == 127: checkMacro( encoder ) else: checkParam( encoder )