コード例 #1
0
 def __init__(self, *a, **k):
     super(UtilityDeviceDecorator, self).__init__(*a, **k)
     self.__on_parameters_changed.subject = self._live_object
     self.mono_option = DeviceOnOffOption(name='Mono', property_host=get_parameter_by_name(self, 'Mono'))
     self.bass_mono_option = DeviceOnOffOption(name='Bass Mono', property_host=get_parameter_by_name(self, 'Bass Mono'))
     self.dc_filter_option = DeviceOnOffOption(name='DC Filter', property_host=get_parameter_by_name(self, 'DC Filter'))
     self.register_disconnectables(self.options)
コード例 #2
0
 def __init__(self, *a, **k):
     (super(Chorus2DeviceDecorator, self).__init__)(*a, **k)
     self.fb_inv_option = DeviceOnOffOption(
         name='FB Inv',
         property_host=(get_parameter_by_name(self, 'FB Inv')))
     self.hpf_enabled_option = DeviceOnOffOption(
         name='High Pass',
         property_host=(get_parameter_by_name(self, 'HPF Enabled')))
     self.register_disconnectables(self.options)
コード例 #3
0
 def __init__(self, *a, **k):
     super(DelayDeviceDecorator, self).__init__(*a, **k)
     self.sync_l_option = DeviceOnOffOption(name='L Delay Sync', property_host=get_parameter_by_name(self, 'L Sync'))
     self.sync_r_option = DeviceOnOffOption(name='R Delay Sync', property_host=get_parameter_by_name(self, 'R Sync'))
     self.filter_on_option = DeviceOnOffOption(name='Filter', property_host=get_parameter_by_name(self, 'Filter On'))
     self.freeze_on_option = DeviceOnOffOption(name='Freeze', property_host=get_parameter_by_name(self, 'Freeze'))
     self.smoothing_mode = DeviceSwitchOption(name='Delay Mode', parameter=get_parameter_by_name(self, 'Delay Mode'), labels=[
      'Repitch', 'Fade', 'Jump'])
     self.register_disconnectables(self._additional_parameters)
     self.register_disconnectables(self.options)
コード例 #4
0
 def __init__(self, *a, **k):
     super(SpectralDeviceDecorator, self).__init__(*a, **k)
     self.freeze_option = DeviceOnOffOption(name=u'Freeze', property_host=get_parameter_by_name(self, u'Freeze On'))
     self.unit_option = DeviceSwitchOption(name=u'Unit', parameter=get_parameter_by_name(self, u'Unit'), labels=[u'ms', u'Notes'])
     self.delay_unit_option = DeviceSwitchOption(name=u'Delay Dly. Unit', parameter=get_parameter_by_name(self, u'Delay Dly. Unit'), labels=[u'ms',
      u'Notes',
      u'16th',
      u'Tr',
      u'Dt'])
     self.fade_type_option = DeviceSwitchOption(name=u'Fade Type', parameter=get_parameter_by_name(self, u'Fade Type'), labels=[u'X-Fade', u'Env'])
     self.register_disconnectables(self.options)
コード例 #5
0
 def __init__(self, *a, **k):
     (super(ShifterDeviceDecorator, self).__init__)(*a, **k)
     self._pitch_mode_parameter = EnumWrappingParameter(
         name='Pitch Mode',
         parent=self,
         values_host=(self._live_object),
         index_property_host=self,
         values_property='pitch_mode_list',
         index_property='pitch_mode_index')
     self._pitch_bend_range_parameter = IntegerParameter(
         name='Pitch Bend Range',
         parent=self,
         integer_value_host=(self._live_object),
         integer_value_property_name='pitch_bend_range',
         min_value=(self.MIN_PITCH_BEND_RANGE),
         max_value=(self.MAX_PITCH_BEND_RANGE),
         show_as_quantized=False,
         display_value_conversion=(lambda x: unicode(x) + ' st'))
     self._additional_parameters = (self._pitch_mode_parameter,
                                    self._pitch_bend_range_parameter)
     self.on_pitch_mode_change.subject = self._pitch_mode_parameter
     self.on_pitch_mode_change()
     self._options = tuple([
         DeviceOnOffOption(name=n,
                           property_host=(get_parameter_by_name(self, p)))
         for n, p in (('Delay', 'Delay On'), ('Delay Sync', 'Delay Sync'),
                      ('Lfo Sync', 'Lfo Sync'), ('Lfo Spin', 'Lfo Spin'),
                      ('Wide', 'Wide'), ('RM Drive', 'RM Drive'),
                      ('Env. Follow', 'Env On'))
     ])
     self.register_disconnectables(self.options)
     self.register_disconnectables(self._additional_parameters)
コード例 #6
0
ファイル: echo.py プロジェクト: Elton47/Ableton-MRS-10.1.13
    def _adjustment_view_data(self):
        is_linked = bool(get_parameter_by_name(self.device(), 'Link').value)
        adjusting_tunnel_left = adjusting_tunnel_right = False
        adjusting_filter_hp = adjusting_filter_lp = False
        adjusting_lfo = adjusting_lfo_phase = False
        touched_parameters = [ self.parameters[button.index] for button in self.parameter_touch_buttons if button.is_pressed
                             ]
        for parameter in touched_parameters:
            if parameter.name == 'Feedback':
                adjusting_tunnel_left = adjusting_tunnel_right = True
            elif parameter.name.startswith('L '):
                adjusting_tunnel_left = True
                if parameter.name != 'L Offset' and is_linked:
                    adjusting_tunnel_right = True
            elif parameter.name == 'R Offset' or parameter.name.startswith('R ') and not is_linked:
                adjusting_tunnel_right = True
            elif parameter.name in (u'HP Freq', u'HP Res'):
                adjusting_filter_hp = True
            elif parameter.name in (u'LP Freq', u'LP Res'):
                adjusting_filter_lp = True
            elif parameter.name == 'Mod Phase':
                adjusting_lfo_phase = True
            elif parameter.name.startswith('Mod '):
                adjusting_lfo = True

        return {'AdjustingTunnelLeft': adjusting_tunnel_left, 
           'AdjustingTunnelRight': adjusting_tunnel_right, 
           'AdjustingFilterHighPass': adjusting_filter_hp, 
           'AdjustingFilterLowPass': adjusting_filter_lp, 
           'AdjustingLfo': adjusting_lfo, 
           'AdjustingLfoPhase': adjusting_lfo_phase}
コード例 #7
0
 def __init__(self, *a, **k):
     super(SamplerDeviceDecorator, self).__init__(*a, **k)
     self.__on_parameters_changed.subject = self._live_object
     self.filter_slope_option = DeviceSwitchOption(
         name='Filter Slope',
         parameter=get_parameter_by_name(self, 'Filter Slope'))
     self.register_disconnectables(self.options)
コード例 #8
0
 def __init__(self, *a, **k):
     (super(SpectralDeviceDecorator, self).__init__)(*a, **k)
     self.freeze_option = DeviceOnOffOption(name='Frozen',
       property_host=(get_parameter_by_name(self, 'Frozen')))
     self.unit_option = DeviceSwitchOption(name='Unit',
       parameter=(get_parameter_by_name(self, 'Unit')),
       labels=[
      'ms', 'Notes'])
     self.delay_unit_option = DeviceSwitchOption(name='Delay Dly. Unit',
       parameter=(get_parameter_by_name(self, 'Delay Dly. Unit')),
       labels=[
      'ms', 'Notes', '16th', 'Tr', 'Dt'])
     self.fade_type_option = DeviceSwitchOption(name='Fade Type',
       parameter=(get_parameter_by_name(self, 'Fade Type')),
       labels=[
      'X-Fade', 'Env'])
     self.register_disconnectables(self.options)
コード例 #9
0
 def __init__(self, *a, **k):
     (super(PhaserNewDeviceDecorator, self).__init__)(*a, **k)
     self.mod_sync_option = DeviceOnOffOption(
         name='Sync',
         property_host=(get_parameter_by_name(self, 'Mod Sync')))
     self.fb_inv_option = DeviceOnOffOption(
         name='FB Inv',
         property_host=(get_parameter_by_name(self, 'FB Inv')))
     self.spin_option = DeviceOnOffOption(
         name='Spin',
         property_host=(get_parameter_by_name(self, 'Spin Enabled')))
     self.env_fol_option = DeviceOnOffOption(
         name='Env Follow',
         property_host=(get_parameter_by_name(self, 'Env Enabled')))
     self.mod_sync2_option = DeviceOnOffOption(
         name='Sync 2',
         property_host=(get_parameter_by_name(self, 'Mod Sync 2')))
     self.register_disconnectables(self.options)
コード例 #10
0
 def _create_parameters(self):
     self._channel_switch = EnumWrappingParameter(
         name='Channel',
         parent=self,
         values_host=(self._channel_type_provider),
         index_property_host=(self._channel_type_provider),
         values_property='available_values',
         index_property='index',
         value_type=ChannelType)
     self._delay_line_link_parameter = get_parameter_by_name(self, 'Link')
     self._DelayDeviceDecorator__on_channel_switch_changed.subject = self._channel_switch
     self._DelayDeviceDecorator__on_linked_changed.subject = self._delay_line_link_parameter
     self._DelayDeviceDecorator__on_linked_changed()
     return (self._channel_switch,
             EnumWrappingParameter(
                 name='L Sync Enum',
                 parent=self,
                 values_host=self,
                 values_property='sync_modes',
                 index_property_host=(get_parameter_by_name(self,
                                                            'L Sync')),
                 index_property='value',
                 to_index_conversion=(lambda index: int(index)),
                 from_index_conversion=(lambda index: int(index))),
             EnumWrappingParameter(
                 name='R Sync Enum',
                 parent=self,
                 values_host=self,
                 values_property='sync_modes',
                 index_property_host=(get_parameter_by_name(self,
                                                            'R Sync')),
                 index_property='value',
                 to_index_conversion=(lambda index: int(index)),
                 from_index_conversion=(lambda index: int(index))),
             EnumWrappingParameter(
                 name='Link Switch',
                 parent=self,
                 values_host=self,
                 values_property='link_modes',
                 index_property_host=(self._delay_line_link_parameter),
                 index_property='value',
                 to_index_conversion=(lambda index: int(not index)),
                 from_index_conversion=(lambda index: int(not index))))
コード例 #11
0
 def _resolve_ambiguous_modulation_target_name(self, target_parameter_name):
     if re.match('^Osc (1|2) Transp$', target_parameter_name):
         return target_parameter_name.replace('Transp', 'Pitch')
     lfo_rate_re = re.match('^LFO (1|2) S\\. Rate$', target_parameter_name)
     if lfo_rate_re:
         lfo_number = lfo_rate_re.group(1)
         lfo_sync_param = get_parameter_by_name(self, 'LFO {} Sync'.format(lfo_number))
         if lfo_sync_param.value == 0:
             return 'LFO {} Rate'.format(lfo_number)
     return target_parameter_name
コード例 #12
0
    def setup_options(self):

        def get_simpler_flag(name):
            return liveobj_valid(self._live_object) and getattr(self._live_object, name)

        def call_simpler_function(name, *a):
            if liveobj_valid(self._live_object):
                return getattr(self._live_object, name)(*a)

        def sample_available():
            return liveobj_valid(self._live_object) and liveobj_valid(self._live_object.sample)

        def call_sample_function(name, *a):
            if sample_available():
                return getattr(self._live_object.sample, name)(*a)

        def reset_slices():
            call_sample_function('reset_slices')
            self.show_notification(RESET_SLICING_NOTIFICATION)

        def split_slice_available():
            if sample_available():
                slices = self._live_object.sample.slices
                return len(slices) != MAX_NUMBER_SLICES or slices[(-1)] != self._live_object.view.selected_slice
            return False

        self.crop_option = DeviceTriggerOption(name='Crop', callback=partial(call_simpler_function, 'crop'))
        self.reverse_option = DeviceTriggerOption(name='Reverse', callback=partial(call_simpler_function, 'reverse'))
        self.one_shot_sustain_mode_option = DeviceSwitchOption(name='Trigger Mode', parameter=get_parameter_by_name(self, 'Trigger Mode'))
        self.retrigger_option = DeviceOnOffOption(name='Retrigger', property_host=self._live_object, value_property_name='retrigger')
        self.warp_as_x_bars_option = DeviceTriggerOption(name='Warp as X Bars', default_label=self.get_warp_as_option_label(), callback=lambda : call_simpler_function('warp_as', call_simpler_function('guess_playback_length')), is_active=lambda : get_simpler_flag('can_warp_as'))
        self.warp_half_option = DeviceTriggerOption(name=':2', callback=partial(call_simpler_function, 'warp_half'), is_active=lambda : get_simpler_flag('can_warp_half'))
        self.warp_double_option = DeviceTriggerOption(name='x2', callback=partial(call_simpler_function, 'warp_double'), is_active=lambda : get_simpler_flag('can_warp_double'))
        self.lfo_sync_option = DeviceSwitchOption(name='LFO Sync Type', parameter=get_parameter_by_name(self, 'L Sync'))
        self.loop_option = DeviceOnOffOption(name='Loop', property_host=get_parameter_by_name(self, 'S Loop On'))
        self.filter_slope_option = DeviceSwitchOption(name='Filter Slope', parameter=get_parameter_by_name(self, 'Filter Slope'))
        self.clear_slices_action = DeviceTriggerOption(name='Clear Slices', default_label='Clear Slices', callback=lambda : call_sample_function('clear_slices'), is_active=lambda : sample_available() and len(self._live_object.sample.slices) > 1)
        self.reset_slices_action = DeviceTriggerOption(name='Reset Slices', default_label='Reset Slices', callback=reset_slices, is_active=lambda : sample_available())
        self.split_slice_action = DeviceTriggerOption(name='Split Slice', default_label='Split Slice', callback=lambda : insert_new_slice(self._live_object), is_active=split_slice_available)
コード例 #13
0
 def __init__(self, *a, **k):
     super(OperatorDeviceDecorator, self).__init__(*a, **k)
     self._osc_types_provider = NotifyingList(available_values=[
      'A', 'B', 'C', 'D'], default_value=OscillatorType.a)
     self._env_feature_provider = NotifyingList(available_values=[
      'Time', 'Level'], default_value=EnvelopeFeature.time)
     self._sloped_env_feature_provider = NotifyingList(available_values=[
      'Time', 'Slope', 'Level'], default_value=SlopedEnvelopeFeature.time)
     self.__on_parameters_changed.subject = self._live_object
     self.oscillator = EnumWrappingParameter(name='Oscillator', parent=self, values_host=self._osc_types_provider, index_property_host=self._osc_types_provider, values_property='available_values', index_property='index', value_type=OscillatorType)
     self.env_feature = EnumWrappingParameter(name='Envelope Feature Time/Level', parent=self, values_host=self._env_feature_provider, index_property_host=self._env_feature_provider, values_property='available_values', index_property='index', value_type=EnvelopeFeature)
     self.sloped_env_feature = EnumWrappingParameter(name='Envelope Feature Time/Slope/Level', parent=self, values_host=self._sloped_env_feature_provider, index_property_host=self._sloped_env_feature_provider, values_property='available_values', index_property='index', value_type=SlopedEnvelopeFeature)
     self.__on_oscillator_switch_value_changed.subject = self.oscillator
     self.filter_slope_option = DeviceSwitchOption(name='Filter Slope', parameter=get_parameter_by_name(self, 'Filter Slope'))
     self.register_disconnectables(self.options)
コード例 #14
0
    def __init__(self, *a, **k):
        super(CompressorDeviceDecorator, self).__init__(*a, **k)
        for event, func in (('input_routing_type',
                             self.notify_input_routing_type_index),
                            ('input_routing_channel',
                             self.notify_input_routing_channel_index)):
            self.register_slot(event_name=event,
                               subject=self._live_object,
                               listener=func)

        make_option = lambda option_name, parameter_name: DeviceOnOffOption(
            name=option_name,
            property_host=get_parameter_by_name(self, parameter_name))
        self._options = tuple([
            self.register_disconnectable(make_option(option_name, param_name))
            for option_name, param_name in ((u'Auto Release',
                                             u'Auto Release On/Off'),
                                            (u'Makeup', u'Makeup'),
                                            (u'Listen', u'S/C Listen'),
                                            (u'Sidechain', u'S/C On'))
        ])
        make_parameter = lambda name, values, index: EnumWrappingParameter(
            name=name,
            parent=self,
            values_host=self,
            index_property_host=self,
            values_property=values,
            index_property=index)
        self._position_parameter = make_parameter(
            'Position', 'input_channel_positions',
            'input_channel_position_index')
        self._additional_parameters = self.register_disconnectables(
            (make_parameter('Input Type', 'available_input_routing_types',
                            'input_routing_type_index'),
             make_parameter('Input Channel',
                            'available_input_routing_channels',
                            'input_routing_channel_index'),
             self._position_parameter))
コード例 #15
0
 def __on_parameters_changed(self):
     self.slope_option.set_parameter(get_parameter_by_name(self, u'Slope'))
コード例 #16
0
 def _get_lfo_retrigger_property_host(self):
     return get_parameter_by_name(
         self,
         u'LFO {} Retrigger'.format(self._lfo_types_provider.index + 1))
コード例 #17
0
 def _get_osc_on_property_host(self):
     return get_parameter_by_name(
         self,
         u'Osc {} On'.format(2 if self.oscillator_switch.value else 1))
コード例 #18
0
 def __on_parameters_changed(self):
     self.mono_option.set_property_host(get_parameter_by_name(self, 'Mono'))
     self.bass_mono_option.set_property_host(
         get_parameter_by_name(self, 'Bass Mono'))
コード例 #19
0
 def __init__(self, *a, **k):
     super(PedalDeviceDecorator, self).__init__(*a, **k)
     self.mid_freq_option = DeviceSwitchOption(
         name='Mid Freq', parameter=get_parameter_by_name(self, 'Mid Freq'))
     self.register_disconnectables(self.options)
コード例 #20
0
 def __init__(self, *a, **k):
     (super(AutoFilterDeviceDecorator, self).__init__)(*a, **k)
     self._AutoFilterDeviceDecorator__on_parameters_changed.subject = self._live_object
     self.slope_option = DeviceSwitchOption(
         name='Slope', parameter=(get_parameter_by_name(self, 'Slope')))
     self.register_disconnectables(self.options)
コード例 #21
0
 def __on_parameters_changed(self):
     self.filter_slope_option.set_parameter(
         get_parameter_by_name(self, 'Filter Slope'))
コード例 #22
0
 def __on_parameters_changed(self):
     self.lfo_sync_option.set_parameter(
         get_parameter_by_name(self, u'L Sync'))
     self.filter_slope_option.set_parameter(
         get_parameter_by_name(self, u'Filter Slope'))
コード例 #23
0
 def __init__(self, *a, **k):
     super(DrumBussDeviceDecorator, self).__init__(*a, **k)
     self.compressor_option = DeviceOnOffOption(
         name='Compressor',
         property_host=get_parameter_by_name(self, 'Compressor On'))
     self.register_disconnectables(self.options)
コード例 #24
0
 def __init__(self, *a, **k):
     super(Redux2DeviceDecorator, self).__init__(*a, **k)
     self.postFilter_on_option = DeviceOnOffOption(name=u'Post-Filter', property_host=get_parameter_by_name(self, u'Post-Filter On'))
     self.register_disconnectables(self.options)
コード例 #25
0
    def _create_options(self):
        def is_selected_parameter_modulatable():
            if self.single_selected_parameter is None:
                return False
            if isinstance(self.single_selected_parameter, PitchParameter):
                return True
            if isinstance(self.single_selected_parameter,
                          InternalParameterBase):
                return False
            return self._live_object.is_parameter_modulatable(
                self.single_selected_parameter)

        def add_selected_parameter_to_mod_matrix():
            if is_selected_parameter_modulatable():
                param = self.single_selected_parameter.decimal_value_host if isinstance(
                    self.single_selected_parameter,
                    PitchParameter) else self.single_selected_parameter
                self.current_mod_target_index.index = self._live_object.add_parameter_to_modulation_matrix(
                    param)
                self.notify_request_bank_view(u'Matrix')

        def jump_to_bank(bank_name):
            self.notify_request_bank_view(bank_name)

        def choose_envelope(value):
            self.envelope_switch.value = value

        def choose_lfo(value):
            self.lfo_switch.value = value

        self.osc_on_option = DeviceOnOffOption(
            name=u'Osc', property_host=self._get_osc_on_property_host())
        self.filter_on_option = DeviceOnOffOption(
            name=u'Filter', property_host=self._get_filter_on_property_host())
        self.lfo_retrigger_option = DeviceOnOffOption(
            name=u'Retrigger',
            property_host=self._get_lfo_retrigger_property_host())
        self.add_to_mod_matrix_option = DeviceTriggerOption(
            name=u'Add to Matrix',
            callback=add_selected_parameter_to_mod_matrix,
            is_active=is_selected_parameter_modulatable)
        return (
            DeviceOnOffOption(name=u'Sub',
                              property_host=get_parameter_by_name(
                                  self, u'Sub On')),
            DeviceSwitchOption(name=u'Filter 1 Slope',
                               parameter=get_parameter_by_name(
                                   self, u'Filter 1 Slope'),
                               labels=[u'12dB', u'24dB']),
            DeviceSwitchOption(name=u'Filter 2 Slope',
                               parameter=get_parameter_by_name(
                                   self, u'Filter 2 Slope'),
                               labels=[u'12dB', u'24dB']),
            DeviceSwitchOption(
                name=u'Filter Switch',
                parameter=self.filter_switch_for_filter_switch_option,
                labels=[u'Filter 1', u'Filter 2']),
            DeviceSwitchOption(name=u'LFO 1 Sync',
                               parameter=get_parameter_by_name(
                                   self, u'LFO 1 Sync'),
                               labels=[u'Hz', u'Sync']),
            DeviceSwitchOption(name=u'LFO 2 Sync',
                               parameter=get_parameter_by_name(
                                   self, u'LFO 2 Sync'),
                               labels=[u'Hz', u'Sync']),
            DeviceTriggerOption(name=u'Go to Amp Env',
                                callback=lambda:
                                (choose_envelope(WavetableEnvelopeType.amp),
                                 jump_to_bank(u'Envelopes'))),
            DeviceTriggerOption(name=u'Go to Env 2',
                                callback=lambda:
                                (choose_envelope(WavetableEnvelopeType.env2),
                                 jump_to_bank(u'Envelopes'))),
            DeviceTriggerOption(name=u'Go to Env 3',
                                callback=lambda:
                                (choose_envelope(WavetableEnvelopeType.env3),
                                 jump_to_bank(u'Envelopes'))),
            DeviceTriggerOption(
                name=u'Go to LFO 1',
                callback=lambda:
                (choose_lfo(WavetableLfoType.one), jump_to_bank(u'LFOs'))),
            DeviceTriggerOption(
                name=u'Go to LFO 2',
                callback=lambda:
                (choose_lfo(WavetableLfoType.two), jump_to_bank(u'LFOs'))),
            DeviceTriggerOption(
                name=u'Back',
                callback=self.notify_request_previous_bank_from_mod_matrix)
        ) + (self.osc_on_option, self.filter_on_option,
             self.lfo_retrigger_option, self.add_to_mod_matrix_option)
コード例 #26
0
 def __on_parameters_changed(self):
     edit_mode_parameter = get_parameter_by_name(self, 'Edit Mode')
     self.left_right_curve_switch_option.set_parameter(edit_mode_parameter)
     self.mid_side_curve_switch_option.set_parameter(edit_mode_parameter)
コード例 #27
0
 def _get_filter_on_property_host(self):
     return get_parameter_by_name(
         self, u'Filter {} On'.format(
             self.filter_switch_for_filter_switch_option.value + 1))
コード例 #28
0
 def __init__(self, *a, **k):
     (super(CorpusDeviceDecorator, self).__init__)(*a, **k)
     self.note_off_option = DeviceOnOffOption(name='Off Decay',
       property_host=(get_parameter_by_name(self, 'Note Off')))
     self.register_disconnectables(self.options)
コード例 #29
0
ファイル: echo.py プロジェクト: aarkwright/ableton_devices
 def __init__(self, *a, **k):
     super(EchoDeviceDecorator, self).__init__(*a, **k)
     self._channel_names_provider = NotifyingList(
         available_values=[b'Left', b'Right'],
         default_value=EchoDeviceDecorator.EchoChannelName.left)
     self.channel_switch_parameter = EnumWrappingParameter(
         name=b'Channel Toggle',
         parent=self,
         values_host=self._channel_names_provider,
         index_property_host=self._channel_names_provider,
         values_property=b'available_values',
         index_property=b'index',
         value_type=EchoDeviceDecorator.EchoChannelName)
     self._additional_parameters = (self.channel_switch_parameter, )
     self.link_option = DeviceOnOffOption(
         name=b'Link', property_host=get_parameter_by_name(self, b'Link'))
     self.sync_l_option = DeviceOnOffOption(
         name=b'L Sync',
         property_host=get_parameter_by_name(self, b'L Sync'))
     self.sync_r_option = DeviceOnOffOption(
         name=b'R Sync',
         property_host=get_parameter_by_name(self, b'R Sync'))
     self.sync_m_option = DeviceOnOffOption(
         name=b'M Sync',
         property_host=get_parameter_by_name(self, b'L Sync'))
     self.sync_s_option = DeviceOnOffOption(
         name=b'S Sync',
         property_host=get_parameter_by_name(self, b'R Sync'))
     self.clip_dry_option = DeviceOnOffOption(
         name=b'Clip Dry',
         property_host=get_parameter_by_name(self, b'Clip Dry'))
     self.filter_on_option = DeviceOnOffOption(
         name=b'Filter',
         property_host=get_parameter_by_name(self, b'Filter On'))
     self.feedback_inv_option = DeviceOnOffOption(
         name=b'Invert',
         property_host=get_parameter_by_name(self, b'Feedback Inv'))
     self.modulation_times_four_option = DeviceOnOffOption(
         name=b'Mod 4x',
         property_host=get_parameter_by_name(self, b'Mod 4x'))
     self.reverb_loc_option = DeviceSwitchOption(
         name=b'Reverb Loc',
         parameter=get_parameter_by_name(self, b'Reverb Loc'))
     self.duck_option = DeviceOnOffOption(
         name=b'Duck',
         property_host=get_parameter_by_name(self, b'Duck On'))
     self.gate_option = DeviceOnOffOption(
         name=b'Gate',
         property_host=get_parameter_by_name(self, b'Gate On'))
     self.wobble_option = DeviceOnOffOption(
         name=b'Wobble',
         property_host=get_parameter_by_name(self, b'Wobble On'))
     self.noise_option = DeviceOnOffOption(
         name=b'Noise',
         property_host=get_parameter_by_name(self, b'Noise On'))
     self.channel_switch_lr_option = DeviceSwitchOption(
         name=b'L/R Switch',
         parameter=self.channel_switch_parameter,
         labels=[b'Left', b'Right'])
     self.channel_switch_ms_option = DeviceSwitchOption(
         name=b'M/S Switch',
         parameter=self.channel_switch_parameter,
         labels=[b'Mid', b'Side'])
     self.register_disconnectables(self._additional_parameters)
     self.register_disconnectables(self.options)
コード例 #30
0
 def __init__(self, *a, **k):
     super(HybridReverbDeviceDecorator, self).__init__(*a, **k)
     self.main_section_labels = [u'Convolution',
      u'Algo',
      u'Mix',
      u'EQ']
     self.routing_full_labels = [u'Serial',
      u'Parallel',
      u'Algorithm',
      u'Convolution']
     self.routing_option_labels = [u'Ser.',
      u'Par.',
      u'Alg.',
      u'Cv.']
     self.vintage_labels = [u'Off',
      u'Subtle',
      u'Old',
      u'Older',
      u'Extreme']
     self.band_names_labels = [u'1&4', u'2&3']
     self.pre_delay_sync_labels = [u'Ms', u'Sync']
     self.filter_types_labels = [u'Cut', u'Shelf']
     self.routing_live_parameter = get_parameter_by_name(self, u'Routing')
     self.vintage_live_parameter = get_parameter_by_name(self, u'Vintage')
     self.pre_delay_sync_live_parameter = get_parameter_by_name(self, u'P.Dly Sync')
     self.eq_low_type_live_parameter = get_parameter_by_name(self, u'EQ Low Type')
     self.eq_high_type_live_parameter = get_parameter_by_name(self, u'EQ High Type')
     self.eq_on_live_parameter = get_parameter_by_name(self, u'EQ On')
     self.freeze_live_parameter = get_parameter_by_name(self, u'Freeze')
     self.freeze_in_live_parameter = get_parameter_by_name(self, u'Freeze In')
     self.eq_prealgo_live_parameter = get_parameter_by_name(self, u'EQ Pre Algo')
     self.bass_mono_live_parameter = get_parameter_by_name(self, u'Bass Mono')
     self._band_names_provider = NotifyingList(available_values=self.band_names_labels, default_value=0)
     self.band = EnumWrappingParameter(name=u'Band', parent=self, values_host=self._band_names_provider, index_property_host=self._band_names_provider, values_property=u'available_values', index_property=u'index')
     self._main_section_provider = NotifyingList(available_values=self.main_section_labels, default_value=0)
     self.main_section = EnumWrappingParameter(name=u'Section', parent=self, values_host=self._main_section_provider, index_property_host=self._main_section_provider, values_property=u'available_values', index_property=u'index')
     self.routing_switch = DeviceSwitchOption(name=u'Routing Switch', parameter=self.routing_live_parameter, labels=self.routing_option_labels)
     self.feedback_ms_sync_switch = DeviceSwitchOption(name=u'Ms Sync Switch', parameter=self.pre_delay_sync_live_parameter, labels=self.pre_delay_sync_labels)
     self.eq_low_type_switch = DeviceSwitchOption(name=u'Low Type Switch', parameter=self.eq_low_type_live_parameter, labels=self.filter_types_labels)
     self.eq_high_type_switch = DeviceSwitchOption(name=u'High Type Switch', parameter=self.eq_high_type_live_parameter, labels=self.filter_types_labels)
     self.ir_post_processing_bool = BoolWrappingParameter(name=u'Ir Post Processing Bool', parent=self, property_host=self, source_property=u'ir_time_shaping_on')
     self.ir_post_processing_option = DeviceOnOffOption(name=u'Shape', property_host=self.ir_post_processing_bool)
     self.eq_on_option = DeviceOnOffOption(name=u'EQ', property_host=self.eq_on_live_parameter)
     self.freeze_option = DeviceOnOffOption(name=u'Freeze', property_host=self.freeze_live_parameter)
     self.freeze_in_option = DeviceOnOffOption(name=u'Freeze In', property_host=self.freeze_in_live_parameter)
     self.prealgo_option = DeviceOnOffOption(name=u'Pre Algo', property_host=self.eq_prealgo_live_parameter)
     self.bass_mono_option = DeviceOnOffOption(name=u'Bass Mono', property_host=self.bass_mono_live_parameter)
     self.ir_attack_time_parameter = WrappingParameter(name=u'Ir Attack Time', parent=self, property_host=self, source_property=u'ir_attack_time', display_value_conversion=to_ms_display, from_property_value=user_to_linear_exp(0.0, 3.0, 3.33), to_property_value=linear_to_user_exp(0.0, 3.0, 3.33))
     self.ir_decay_time_parameter = WrappingParameter(name=u'Ir Decay Time', parent=self, property_host=self, source_property=u'ir_decay_time', display_value_conversion=to_ms_display, from_property_value=user_to_linear_exp(0.02, 20.0, 3.33), to_property_value=linear_to_user_exp(0.02, 20.0, 3.33))
     self.ir_size_factor_parameter = WrappingParameter(name=u'Ir Size Factor', parent=self, property_host=self, source_property=u'ir_size_factor', display_value_conversion=to_percentage_display, from_property_value=user_to_linear_log(0.2, 5.0), to_property_value=linear_to_user_log(0.2, 5.0))
     self.ir_category_list_parameter = EnumWrappingParameter(name=u'IR Category', parent=self, values_host=self._live_object, index_property_host=self, values_property=u'ir_category_list', index_property=u'ir_category_index')
     self.ir_file_list_parameter = EnumWrappingParameter(name=u'IR', parent=self, values_host=self._live_object, index_property_host=self, values_property=u'ir_file_list', index_property=u'ir_file_index')
     self.vintage_enum_copy = NotifyingList(available_values=self.vintage_labels, default_value=0)
     self.vintage_parameter_copy = EnumWrappingParameter(name=u'Vintage Copy', parent=self, values_host=self.vintage_enum_copy, index_property_host=self.vintage_enum_copy, values_property=u'available_values', index_property=u'index')
     self.routing_parameter_enum = NotifyingList(available_values=self.routing_full_labels, default_value=0)
     self.routing_parameter_eq_off = EnumWrappingParameter(name=u'Routing Eq Off', parent=self, values_host=self.routing_parameter_enum, index_property_host=self.routing_parameter_enum, values_property=u'available_values', index_property=u'index')
     self.routing_parameter_eq_on_prealgo_off = EnumWrappingParameter(name=u'Routing Eq On PreAlgo Off', parent=self, values_host=self.routing_parameter_enum, index_property_host=self.routing_parameter_enum, values_property=u'available_values', index_property=u'index')
     self.routing_parameter_eq_on_prealgo_on = EnumWrappingParameter(name=u'Routing Eq On PreAlgo On', parent=self, values_host=self.routing_parameter_enum, index_property_host=self.routing_parameter_enum, values_property=u'available_values', index_property=u'index')
     self.on_routing_parameter_change.subject = self.routing_live_parameter
     self.on_routing_parameter_change()
     self.on_routing_parameter_eq_off_change.subject = self.routing_parameter_eq_off
     self.on_routing_parameter_eq_off_change()
     self.on_routing_parameter_eq_on_prealgo_on_change.subject = self.routing_parameter_eq_on_prealgo_on
     self.on_routing_parameter_eq_on_prealgo_on_change()
     self.on_routing_parameter_eq_on_prealgo_off_change.subject = self.routing_parameter_eq_on_prealgo_off
     self.on_routing_parameter_eq_on_prealgo_off_change()
     self.on_vintage_parameter_change.subject = self.vintage_live_parameter
     self.on_vintage_parameter_change()
     self.on_vintage_copy_parameter_change.subject = self.vintage_parameter_copy
     self.on_vintage_copy_parameter_change()
     self.on_shape_option_change.subject = self.ir_post_processing_bool
     self.on_shape_option_change()
     self._additional_parameters = (self.band,
      self.main_section,
      self.ir_post_processing_bool,
      self.ir_attack_time_parameter,
      self.ir_decay_time_parameter,
      self.ir_size_factor_parameter,
      self.ir_category_list_parameter,
      self.ir_file_list_parameter,
      self.vintage_parameter_copy,
      self.routing_parameter_eq_off,
      self.routing_parameter_eq_on_prealgo_on,
      self.routing_parameter_eq_on_prealgo_off)
     self.register_disconnectable(self._additional_parameters)