예제 #1
0
    def setup_device(self, rack):
	""" Set up macros and rack chain params """   
	MacrobatParameterRackTemplate.setup_device(self, rack)
	self._rack = self.get_rack()
	if self._rack:
	    param_name = self._parent.get_name(rack.name[12:].strip())  
	    for index in range(1,9):
		chain_to_edit = {}
		macro = rack.parameters[index]
		param = None
		if macro.is_enabled:
		    chain_name = self._parent.get_name(macro.name)
		    if self._rack.has_key(chain_name):
			chain_to_edit = self._rack[chain_name]
		    if chain_to_edit.has_key(param_name):
			param = chain_to_edit[param_name]
		    if param and param.is_enabled:
			m_listener = lambda index = index:self.macro_changed(index)
			macro.add_value_listener(m_listener)
			p_listener = lambda index = index:self.param_changed(index)
			param.add_value_listener(p_listener)
			self._param_macros[index] = (macro, param)
	    if IS_LIVE_9:
		self._tasks.add(self.get_initial_value)
	    else:
		self._get_initial_value = True    
예제 #2
0
    def setup_device(self, rack):
	""" Set up macros and drum rack params """   
	MacrobatParameterRackTemplate.setup_device(self, rack)
	self._drum_rack = self.get_drum_rack()
	if self._drum_rack:
	    drum_name = rack.name[5:].strip()
	    drum_to_edit = {}
	    if self._drum_rack['devs_by_index'].has_key(drum_name):
		drum_to_edit = self._drum_rack['devs_by_index'][drum_name]
	    elif self._drum_rack['devs_by_name'].has_key(drum_name):
		drum_to_edit = self._drum_rack['devs_by_name'][drum_name]
	    for index in range(1,9):
		macro = rack.parameters[index]
		param = None
		if macro.is_enabled:
		    name = self._parent.get_name(macro.name)
		    if drum_to_edit.has_key(name):
			param = drum_to_edit[name]
		    if param and param.is_enabled:
			m_listener = lambda index = index:self.macro_changed(index)
			macro.add_value_listener(m_listener)
			p_listener = lambda index = index:self.param_changed(index)
			param.add_value_listener(p_listener)
			self._param_macros[index] = (macro, param)
	    if IS_LIVE_9:
		self._tasks.add(self.get_initial_value)
	    else:
		self._get_initial_value = True      
예제 #3
0
    def setup_device(self, rack):
	""" Setup macros and track mixer params """  
	MacrobatParameterRackTemplate.setup_device(self, rack)
	for index in range(1,9):
	    macro = rack.parameters[index]
	    param = None
	    if macro.is_enabled:
		name = self._parent.get_name(macro.name)
		if name.startswith('SEND') and not self._track == self.song().master_track:
		    try: param = self._track.mixer_device.sends[ord(name[5]) - 65]
		    except: param = None
		elif name.startswith('VOL'):
		    param = self._track.mixer_device.volume
		elif name.startswith('PAN'):
		    param = self._track.mixer_device.panning
	    if param and param.is_enabled:
		m_listener = lambda index = index:self.macro_changed(index)
		macro.add_value_listener(m_listener)
		p_listener = lambda index = index:self.param_changed(index)
		param.add_value_listener(p_listener)
		self._param_macros[index] = (macro, param)
	if IS_LIVE_9:
	    self._tasks.add(self.get_initial_value)
	else:
	    self._get_initial_value = True 
	
# local variables:
# tab-width: 4
예제 #4
0
 def setup_device(self, rack):
     """ Set up receiver and send macros """
     MacrobatParameterRackTemplate.setup_device(self, rack)
     receiver_macros = self.get_ident_macros(rack)
     if receiver_macros:
         self._sender_macros = []
         for t in (tuple(self.song().tracks) +
                   tuple(self.song().return_tracks) +
                   (self.song().master_track, )):
             self.get_sender_macros(t.devices)
         if self._sender_macros:
             for r in receiver_macros:
                 index = 0
                 for s in self._sender_macros:
                     index += 1
                     if r[0] == s[0] and r[1].is_enabled and s[1].is_enabled:
                         r_listener = lambda index=index: self.macro_changed(
                             index)
                         r[1].add_value_listener(r_listener)
                         s_listener = lambda index=index: self.param_changed(
                             index)
                         s[1].add_value_listener(s_listener)
                         self._param_macros[index] = (r[1], s[1])
         if IS_LIVE_9:
             self._tasks.add(self.get_initial_value)
         else:
             self._get_initial_value = True
예제 #5
0
 def disconnect(self):
     if self.song().view.selected_parameter_has_listener(
             self.on_selected_parameter_changed):
         self.song().view.remove_selected_parameter_listener(
             self.on_selected_parameter_changed)
     self._rack = None
     MacrobatParameterRackTemplate.disconnect(self)
예제 #6
0
    def setup_device(self, rack):
	""" Set up macros and drum rack params """   
	MacrobatParameterRackTemplate.setup_device(self, rack)
	self._rack = rack
	self._drum_rack = self.get_drum_rack()
	self._selected_chain = None
	self._on_sends_changed.subject = None
	self._on_selected_pad_changed.subject = None
	if self._drum_rack:
	    self._on_selected_pad_changed.subject = self._drum_rack['rack'].view
	    self._set_selected_chain()
	    if self._selected_chain:
		num_sends = len(self._selected_chain.mixer_device.sends)
		for index in range(1,9):
		    if rack.parameters[index].is_enabled:
			param = None
			if index == 1:
			    param = self._selected_chain.mixer_device.volume
			elif index == 2:
			    param = self._selected_chain.mixer_device.panning
			else:
			    s_index = index - 3
			    if s_index < num_sends:
				param = self._selected_chain.mixer_device.sends[s_index]
			if param and param.is_enabled:
			    macro = rack.parameters[index]
			    m_listener = lambda index = index:self.macro_changed(index)
			    macro.add_value_listener(m_listener)
			    p_listener = lambda index = index:self.param_changed(index)
			    param.add_value_listener(p_listener)
			    self._param_macros[index] = (macro, param)
		self._tasks.add(self.get_initial_value)
예제 #7
0
    def __init__(self, parent, rack, track):
	self._rack = rack
	#---delay adding listener to prevent issue with change on set load
	if IS_LIVE_9:
	    parent.schedule_message(8, partial(parent.song().view.add_selected_parameter_listener, self.on_selected_parameter_changed))
	else:
	    parent.schedule_message(8, parent.song().view.add_selected_parameter_listener, self.on_selected_parameter_changed)
        MacrobatParameterRackTemplate.__init__(self, parent, rack, track)
예제 #8
0
    def setup_device(self, rack):
	""" Set up macro 1 and learned param """   
	MacrobatParameterRackTemplate.setup_device(self, rack)
	self._rack = rack
	param = self.song().view.selected_parameter
	if LAST_PARAM and LAST_PARAM.has_key(0):
	    param = LAST_PARAM[0]
	if self._rack and param:
	    if self._rack.parameters[1].is_enabled and param.is_enabled:
		index = 1
		m_listener = lambda index = index:self.macro_changed(index)
		self._rack.parameters[1].add_value_listener(m_listener)
		p_listener = lambda index = index:self.param_changed(index)
		param.add_value_listener(p_listener)
		self._param_macros[index] = (self._rack.parameters[1], param)
	    if IS_LIVE_9:
		self._tasks.add(self.get_initial_value)
	    else:
		self._get_initial_value = True 
예제 #9
0
    def setup_device(self, rack):
	""" Set up macro 1 and chain selector """   
	MacrobatParameterRackTemplate.setup_device(self, rack)
	self._rack = rack
	if self._rack:
	    macro = self._rack.parameters[1]
	    cs = self._rack.parameters[9]
	    if macro.is_enabled and cs.is_enabled:
		self._wrapper = CSWrapper(cs)
		self._wrapper.max = len(self._rack.chains)
		if self._wrapper.max > 1:
		    self._on_chains_changed.subject = self._rack
		    index = 1
		    m_listener = lambda index = index:self.macro_changed(index)
		    macro.add_value_listener(m_listener)
		    p_listener = lambda index = index:self.param_changed(index)
		    self._wrapper.add_value_listener(p_listener)
		    self._param_macros[index] = (macro, self._wrapper)
		if IS_LIVE_9:
		    self._tasks.add(self.get_initial_value)
		else:
		    self._get_initial_value = True
예제 #10
0
    def disconnect(self):
	self._rack = None
	MacrobatParameterRackTemplate.disconnect(self)
예제 #11
0
    def __init__(self, parent, rack, track):
	self._rack = {}
        MacrobatParameterRackTemplate.__init__(self, parent, rack, track)
예제 #12
0
    def disconnect(self):
	self._drum_rack = None
	self._rack = None
	self._selected_chain = None
	MacrobatParameterRackTemplate.disconnect(self)
예제 #13
0
    def __init__(self, parent, rack, track):
	self._drum_rack = {}
	self._rack = None
	self._selected_chain = None
        MacrobatParameterRackTemplate.__init__(self, parent, rack, track)
예제 #14
0
    def __init__(self, parent, rack, track):
	self._rack = rack
	self._wrapper = None
        MacrobatParameterRackTemplate.__init__(self, parent, rack, track)