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)
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)
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)
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)
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)
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}
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)
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)
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)
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))))
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
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)
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)
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))
def __on_parameters_changed(self): self.slope_option.set_parameter(get_parameter_by_name(self, u'Slope'))
def _get_lfo_retrigger_property_host(self): return get_parameter_by_name( self, u'LFO {} Retrigger'.format(self._lfo_types_provider.index + 1))
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))
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'))
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)
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)
def __on_parameters_changed(self): self.filter_slope_option.set_parameter( get_parameter_by_name(self, 'Filter Slope'))
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'))
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)
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)
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)
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)
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))
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)
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)
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)