1
2 import Live
3 from ControlSurfaceComponent import ControlSurfaceComponent
4 from EncoderElement import EncoderElement
5 from _Generic.Devices import get_parameter_by_name
6 FILTER_DEVICES = {'AutoFilter': {'Frequency': 'Frequency',
7 'Resonance': 'Resonance'},
8 'Operator': {'Frequency': 'Filter Freq',
9 'Resonance': 'Filter Res'},
10 'OriginalSimpler': {'Frequency': 'Filter Freq',
11 'Resonance': 'Filter Res'},
12 'MultiSampler': {'Frequency': 'Filter Freq',
13 'Resonance': 'Filter Res'},
14 'UltraAnalog': {'Frequency': 'F1 Freq',
15 'Resonance': 'F1 Resonance'},
16 'StringStudio': {'Frequency': 'Filter Freq',
17 'Resonance': 'Filter Reso'}}
18
20 """ Class representing a track's filter, attaches to the last filter in the track """
21
28
30 if self._freq_control != None:
31 self._freq_control.release_parameter()
32 self._freq_control = None
33 if self._reso_control != None:
34 self._reso_control.release_parameter()
35 self._reso_control = None
36 if self._track != None:
37 self._track.remove_devices_listener(self._on_devices_changed)
38 self._track = None
39 self._device = None
40
43
45 if not (track == None or isinstance(track, Live.Track.Track)):
46 raise AssertionError
47 if self._track != None:
48 self._track.remove_devices_listener(self._on_devices_changed)
49 if self._device != None:
50 if self._freq_control != None:
51 self._freq_control.release_parameter()
52 if self._reso_control != None:
53 self._reso_control.release_parameter()
54 self._track = track
55 self._track != None and self._track.add_devices_listener(self._on_devices_changed)
56 self._on_devices_changed()
57
59 if not isinstance(freq, EncoderElement):
60 raise AssertionError
61 if not isinstance(freq, EncoderElement):
62 raise AssertionError
63 if self._device != None:
64 self._freq_control != None and self._freq_control.release_parameter()
65 self._reso_control != None and self._reso_control.release_parameter()
66 self._freq_control = freq
67 self._reso_control = reso
68 self.update()
69
83
85 self._device = None
86 if self._track != None:
87 for index in range(len(self._track.devices)):
88 device = self._track.devices[-1 * (index + 1)]
89 if device.class_name in FILTER_DEVICES.keys():
90 self._device = device
91 break
92
93 self.update()
94