Beispiel #1
0
    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)))
Beispiel #2
0
    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)))
Beispiel #3
0
    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