コード例 #1
0
    def loadAllCB(self, msg):
        """Called when a /live/tracks message is received.

        Messages:
        /live/tracks       no argument or 'query'  Returns the total number of scenes

        """
        if len(msg) == 2 or (len(msg) == 3 and msg[2] == "query"):
            trackTotal = len(LiveUtils.getTracks())
            sceneTotal = len(LiveUtils.getScenes())
            returnsTotal = len(LiveUtils.getSong().return_tracks)
            self.oscServer.sendOSC("/set/size",
                                   (trackTotal, sceneTotal, returnsTotal))
            self.oscServer.sendOSC("/NSLOG_REPLACE", "set size load all cb")
            return
コード例 #2
0
    def loadTracksStartUp(self, msg):

        self.getVersion(1)

        try:
            self.loadSetStartup()
        except:
            self.error_log("touchAbleCallbacks: loadSetStartup failed")


        self.oscServer.sendOSC("/bundle/start", 1)
        self.oscServer.sendOSC("/song/loop", (int(LiveUtils.getSong().loop)))
               
        trackTotal = len(LiveUtils.getTracks())
        sceneTotal = len(LiveUtils.getScenes())
        returnsTotal = len(LiveUtils.getSong().return_tracks)
        self.oscServer.sendOSC("/set/size", (int(trackTotal), int(sceneTotal), int(returnsTotal)))

        selected_track = LiveUtils.getSong().view.selected_track
        selected_index = 0

        selected_scene = LiveUtils.getSong().view.selected_scene
        
        scene_index = 0
        selected_scene_index = 0
        all_scenes = LiveUtils.getSong().scenes
        
        for sce in all_scenes:
            if sce == selected_scene:
                selected_scene_index = scene_index
            scene_index = scene_index + 1
        
        self.oscServer.sendOSC("/set/selected_scene", int(selected_scene_index+1))


        trackNumber = 0
        ascnm = " "
        nm = " "
        grouptrack = 0
        is_midi_track = 0

        all_tracks = LiveUtils.getTracks()
        
        for track in all_tracks:
            clipNumber = 0
            if track.name != None:
                nm = touchAbleUtils.cut_string2(track.name)
                col = 0
                try:
                    col = track.color
                except:
                    pass
            if track.is_foldable == 1:
                grouptrack = 1
            else:
                grouptrack = 0
            is_midi_track = track.has_midi_input
            

            #self.touchAble._log( "track nr" + str(trackNumber), True)

            live_pointer = ""
            self.oscServer.sendOSC("/track", (trackNumber, touchAbleUtils.repr2(nm), col, grouptrack, int(is_midi_track),live_pointer))
            self.oscServer.sendOSC("/track/volume", (trackNumber, float(LiveUtils.trackVolume(trackNumber))))
            self.oscServer.sendOSC("/pan", (trackNumber, float(LiveUtils.trackPan(trackNumber))))
            self.oscServer.sendOSC("/track/mute", (trackNumber, int(track.mute)))
            self.oscServer.sendOSC("/track/solo", (trackNumber, int(track.solo)))
            self.oscServer.sendOSC("/track/crossfade_assign", (trackNumber, int(track.mixer_device.crossfade_assign)))
            self.oscServer.sendOSC("/track/is_grouped", (trackNumber, int(track.is_grouped)))
            self.oscServer.sendOSC("/track/is_visible", (trackNumber, int(track.is_visible)))

            try:
                self.sendTrackIO(trackNumber, track, "", 0)
            except:
                self.error_log("touchAbleCallbacks: sendTrackIO for track " + str(trackNumber) + "failed")

            try:
                self.sendTrackClips(trackNumber,track)
            except:
                self.error_log("touchAbleCallbacks: sendTrackClips for track " + str(trackNumber) + "failed")
            

            if track.can_be_armed == 1:
                self.oscServer.sendOSC("/track/arm", (trackNumber, int(track.arm)))
                self.oscServer.sendOSC("/track/current_monitoring_state", (trackNumber, track.current_monitoring_state))

            else:
                self.oscServer.sendOSC("/track/arm", (trackNumber, 0))
                self.oscServer.sendOSC("/track/current_monitoring_state", (trackNumber, 3))
     
            try:
                self.load_devices_for_track(track, trackNumber, 0)
            except:
                self.error_log("touchAbleCallbacks: load_devices_for_track for track " + str(trackNumber) + " failed")
            

            return_tracks_length = len(LiveUtils.getSong().return_tracks)
            for i in range(return_tracks_length):
                self.oscServer.sendOSC("/track/send", (trackNumber,i, float(LiveUtils.trackSend(trackNumber, i))))

            if track == selected_track:
                selected_index = trackNumber
                self.oscServer.sendOSC("/set/selected_track", (0, (selected_index)))

            trackNumber = trackNumber + 1
            #sleep(0.02)

        
        try:
            self.load_devices_for_track(LiveUtils.getSong().master_track, int(1), int(1))
        except:
            self.error_log("touchAbleCallbacks: load_devices_for_track for master_track failed")


        if LiveUtils.getSong().master_track == selected_track:
            self.oscServer.sendOSC("/set/selected_track", (1))
        
        try:
            self.loadReturnsStartUp(selected_track)
        except:
            self.error_log("touchAbleCallbacks: loadReturnsStartUp failed")

        self.oscServer.sendOSC("/done", (1))

        self.oscServer.sendOSC("/finish_loading", (1))
        self.oscServer.sendOSC("/bundle/end", (1))
        
        try:
            #self.oscServer.sendOSC("/NSLOG_REPLACE", ("setid 0"))
            setid = LiveUtils.getSong().get_data("setid", "")
            #self.oscServer.sendOSC("/NSLOG_REPLACE", ("setid 1"))
            
            if setid == "":
                #setid = self.my_random_string()
                setid = "no setid"
                LiveUtils.getSong().set_data("setid", setid)
                #self.oscServer.sendOSC("/NSLOG_REPLACE", ("setid 2"))
            else:
                pass

            #self.oscServer.sendOSC("/NSLOG_REPLACE", (str(setid)))

            self.oscServer.sendOSC("/setid", (str(setid)))
            #self.oscServer.sendOSC("/NSLOG_REPLACE", ("setid 3"))
        except:
            #self.oscServer.sendOSC("/NSLOG_REPLACE", ("setid -2"))
            
            setid = touchAbleUtils.my_random_string()
            #self.oscServer.sendOSC("/NSLOG_REPLACE", ("setid -3"))
            
            LiveUtils.getSong().set_data("setid", setid)
            #self.oscServer.sendOSC("/NSLOG_REPLACE", ("setid -4"))
            
            self.oscServer.sendOSC("/setid", (str(setid)))
        
        self.loading = 0
        if self.should_check_if_load == 1:

            trackTotal2 = len(LiveUtils.getTracks())
            sceneTotal2 = len(LiveUtils.getScenes())
            returnsTotal2 = len(LiveUtils.getSong().return_tracks)

            if (trackTotal != trackTotal2 or sceneTotal != sceneTotal2 or returnsTotal != returnsTotal2):
                self.touchAble.error_log("load is needed")

                self.should_check_if_load = 0
                self.tracksCB(msg)