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 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 playSceneCB(self, msg): """Called when a /live/play/scene message is received. Messages: /live/play/scene (int scene) Launches scene number scene """ if len(msg) == 3: scene = msg[2] trackNumber = 0 LiveUtils.launchScene(scene) #self.oscServer.sendOSC("/scene/fired", int(scene)+1) all_tracks = LiveUtils.getTracks() for track in all_tracks: if track.is_foldable != 1: clipslot = track.clip_slots[scene] if clipslot.clip == None: if track.playing_slot_index != -2: if track.playing_slot_index != -1: if clipslot.has_stop_button == 1: self.oscServer.sendOSC( '/clip/playing_status', (trackNumber, scene, 5)) else: pass else: pass else: pass else: if track.arm == 1 and clipslot.clip.is_audio_clip == 0 and LiveUtils.getSong( ).overdub == 1: self.oscServer.sendOSC('/clip/playing_status', (trackNumber, scene, 4)) else: self.oscServer.sendOSC('/clip/playing_status', (trackNumber, scene, 2)) else: pass trackNumber = trackNumber + 1