def muteTrackCB(self, msg): """Called when a /live/mute message is received. Messages: /live/mute (int track) Mutes track number track """ ty = msg[0] == '/live/return/mute' and 1 or 0 track = msg[2] if len(msg) == 4: if msg[3] == 1: if ty == 1: status = LiveUtils.getSong().return_tracks[track].mute else: status = LiveUtils.getTrack(track).mute if status == 1: LiveUtils.unmuteTrack(track, ty) elif status == 0: LiveUtils.muteTrack(track, ty) else: LiveUtils.unmuteTrack(track, ty) elif len(msg) == 3: if ty == 1: status = LiveUtils.getSong().return_tracks[track].mute self.oscServer.sendOSC("/return/mute", (track, int(status))) else: status = LiveUtils.getTrack(track).mute self.oscServer.sendOSC("/mute", (track, int(status)))
def mixert_changestate(self, type, tid, track, r=0): val = eval("track." + type) #self.oscServer.sendOSC("/NSLOG_REPLACE", ("mixert_changestate")) if r == 1: self.oscServer.sendOSC('/return/' + type, (tid, int(val))) else: self.oscServer.sendOSC('/track/' + type, (tid, int(val))) if type == "arm": if val == 0: if LiveUtils.getTrack(tid).playing_slot_index != -2: cid = LiveUtils.getTrack(tid).playing_slot_index self.oscServer.sendOSC('/clip/playing_status', (tid, cid, 1)) else: pass elif val == 1: if LiveUtils.getTrack(tid).playing_slot_index != -2: cid = LiveUtils.getTrack(tid).playing_slot_index if LiveUtils.getSong( ).overdub == 1 or LiveUtils.getTrack( tid).has_midi_input == 0: self.oscServer.sendOSC('/clip/playing_status', (tid, cid, 3)) else: self.oscServer.sendOSC('/clip/playing_status', (tid, cid, 1)) else: pass else: pass
def soloTrackCB(self, msg): """Called when a /live/solo message is received. Messages: /live/solo (int track) Solos track number track """ ty = msg[0] == '/live/return/solo' and 1 or 0 track = msg[2] if len(msg) == 4: if msg[3] == 1: status = 0 if ty == 1: status = LiveUtils.getSong().return_tracks[track].solo if LiveUtils.getSong().exclusive_solo == 1: i = 0 for tr in LiveUtils.getSong().return_tracks: LiveUtils.unsoloTrack(i, ty) i = i + 1 else: trk = LiveUtils.getTrack(track) status = trk.solo #trk.color = 12410829 if LiveUtils.getSong().exclusive_solo == 1: i = 0 all_tracks = LiveUtils.getTracks() for tr in all_tracks: LiveUtils.unsoloTrack(i, ty) i = i + 1 if status == 1: LiveUtils.unsoloTrack(track, ty) elif status == 0: LiveUtils.soloTrack(track, ty) elif msg[3] == 2: message = "solo track nr: " + str(track) tr = LiveUtils.getTrack(track) if tr.can_be_armed: LiveUtils.soloTrack(track) else: LiveUtils.unsoloTrack(track, ty) elif len(msg) == 3: if ty == 1: status = LiveUtils.getSong().return_tracks[track].solo self.oscServer.sendOSC("/return/solo", (track, int(status))) else: status = LiveUtils.getTrack(track).solo self.oscServer.sendOSC("/solo", (track, int(status)))
def monitorTrackCB(self, msg): """Called when a /live/monitor message is received. Messages: /live/monitor (int track) monitors track number track """ track = msg[2] status = msg[3] if len(msg) == 4: LiveUtils.getTrack(track).current_monitoring_state = status elif len(msg) == 3: status = LiveUtils.getTrack(track).current_monitoring_state self.oscServer.sendOSC("/monitor", (track, int(status)))
def trackJump(self, msg): """Called when a /live/track/jump message is received. Messages: /live/track/jump (int track, float beats) Jumps in track's currently running session clip by beats """ if len(msg) == 4: track = msg[2] beats = msg[3] track = LiveUtils.getTrack(track) track.jump_in_running_session_clip(beats)
def foldTrackCB(self, msg): tr = msg[2] track = LiveUtils.getTrack(tr) if track.is_foldable == 1: if track.fold_state == 0: track.fold_state = 1 else: track.fold_state = 0 else: pass
def armTrackCB(self, msg): """Called when a /live/arm message is received. Messages: /live/arm (int track) (int armed/disarmed) Arms track number track """ track = msg[2] if len(msg) == 4: trk = LiveUtils.getTrack(track) if trk.can_be_armed: if msg[3] == 1: status = LiveUtils.getTrack(track).arm if LiveUtils.getSong().exclusive_arm == 1: i = 0 all_tracks = LiveUtils.getTracks() for tr in all_tracks: if tr.can_be_armed: LiveUtils.disarmTrack(i) else: pass i = i + 1 if status == 1: LiveUtils.disarmTrack(track) elif status == 0: LiveUtils.armTrack(track) elif msg[3] == 2: tr = LiveUtils.getTrack(track) if tr.can_be_armed: LiveUtils.armTrack(track) else: LiveUtils.disarmTrack(track) else: pass # Return arm status elif len(msg) == 3: status = LiveUtils.getTrack(track).arm self.oscServer.sendOSC("/arm", (track, int(status)))
def stopTrackCB(self, msg): """Called when a /live/stop/track message is received. Messages: /live/stop/track (int track, int clip) Stops track number track """ i = msg[2] LiveUtils.stopTrack(i) track = LiveUtils.getTrack(i) if track.playing_slot_index != -2: if track.playing_slot_index != -1: self.oscServer.sendOSC('/track/stop', (1, i)) else: pass else: pass
def renametrackCB(self, msg): trackNumber = msg[2] new_name = msg[3] track = LiveUtils.getTrack(trackNumber).name = new_name