コード例 #1
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def mviewDeviceCB(self, msg, source):
     track = LiveUtils.getSong().master_track
     
     if len(msg) == 3:
         LiveUtils.getSong().view.selected_track = track
         LiveUtils.getSong().view.select_device(track.devices[msg[2]])
         Live.Application.get_application().view.show_view("Detail/DeviceChain")
コード例 #2
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def redoCB(self, msg, source):
     """Called when a /live/redo message is received.
     
     Messages:
     /live/redo      Requests the song to redo the last action
     """
     LiveUtils.getSong().redo()
コード例 #3
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def crossfaderCB(self, msg, source):
     if len(msg) == 2 or (len(msg) == 3 and msg[2] == "query"):
         self.oscEndpoint.send("/live/master/crossfader", float(LiveUtils.getSong().master_track.mixer_device.crossfader.value))
     
     elif len(msg) == 3:
         val = msg[2]
         LiveUtils.getSong().master_track.mixer_device.crossfader.value = val
コード例 #4
0
ファイル: LiveOSCCallbacks.py プロジェクト: georgi/vtouch
 def undoCB(self, msg):
     """Called when a /live/undo message is received.
     
     Messages:
     /live/undo      Requests the song to undo the last action
     """
     LiveUtils.getSong().undo()
コード例 #5
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def mdeviceCB(self, msg, source):
     if len(msg) == 3:
         device = msg[2]
         po = [device]
         
         params = LiveUtils.getSong().master_track.devices[device].parameters
 
         for i in range(len(params)):
             po.append(i)
             po.append(float(params[i].value))
             po.append(str(params[i].name))
         
         self.oscEndpoint.send("/live/master/device", tuple(po))
 
     elif len(msg) == 4:
         device = msg[2]
         param  = msg[3]
         
         p = LiveUtils.getSong().master_track.devices[device].parameters[param]
     
         self.oscEndpoint.send("/live/master/device", (device, param, p.value, str(p.name)))
 
     elif len(msg) == 5:
         device = msg[2]
         param  = msg[3]
         value  = msg[4]
     
         LiveUtils.getSong().master_track.devices[device].parameters[param].value = value
コード例 #6
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
    def nameReturnCB(self, msg, source):
        """Called when a /live/name/return message is received.

        Messages:
        /live/name/return                            Returns a a series of all the track names in the form /live/name/track (int track, string name)
        /live/name/return    (int track)             Returns a single track's name in the form /live/name/track (int track, string name)
        /live/name/return    (int track, string name)Sets track number track's name to name

        """
        #Requesting all track names
        if len(msg) == 2 or (len(msg) == 3 and msg[2] == "query"):
            trackNumber = 0
            bundle = OSC.OSCBundle()
            for track in LiveUtils.getSong().return_tracks:
                bundle.append("/live/name/return", (trackNumber, str(track.name)))
                trackNumber = trackNumber + 1
            self.oscEndpoint.sendMessage(bundle)
            return
        #Requesting a single track name
        if len(msg) == 3:
            trackNumber = msg[2]
            self.oscEndpoint.send("/live/name/return", (trackNumber, str(LiveUtils.getSong().return_tracks[trackNumber].name)))
            return
        #renaming a track
        if len(msg) == 4:
            trackNumber = msg[2]
            name = msg[3]
            LiveUtils.getSong().return_tracks[trackNumber].name = name
コード例 #7
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def devicerangeCB(self, msg, source):
     ty = msg[0] == '/live/return/device/range' and 1 or 0
     track = msg[2]
 
     if len(msg) == 4:
         device = msg[3]
         po = [track, device]
         
         if ty == 1:
             params = LiveUtils.getSong().return_tracks[track].devices[device].parameters
         else:
             params = LiveUtils.getSong().visible_tracks[track].devices[device].parameters
 
         for i in range(len(params)):
             po.append(i)
             po.append(params[i].min)
             po.append(params[i].max)
         
         self.oscEndpoint.send(ty == 1 and "/live/return/device/range" or "/live/device/range", tuple(po))
 
     elif len(msg) == 5:
         device = msg[3]
         param  = msg[4]
         
         if ty == 1:
             p = LiveUtils.getSong().return_tracks[track].devices[device].parameters[param]
         else: 
             p = LiveUtils.getSong().visible_tracks[track].devices[device].parameters[param]
     
         self.oscEndpoint.send(ty == 1 and "/live/return/device/range" or "/live/device/range", (track, device, param, p.min, p.max))
コード例 #8
0
 def tactileY(self, msg):
     """Called when a "/mrmr/tactilezoneY/49/iPhone1 message is received."""
     value = msg[2]
     value *= 128.0
     LiveUtils.getSong().visible_tracks[38].devices[0].parameters[2].value = value
     LiveUtils.getSong().visible_tracks[39].devices[0].parameters[2].value = value
     LiveUtils.getSong().visible_tracks[40].devices[0].parameters[2].value = value
     LiveUtils.getSong().visible_tracks[41].devices[0].parameters[2].value = value
コード例 #9
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def viewSceneCB(self, msg, source):
     """Called when a /live/scene/view message is received.
     
     Messages:
     /live/scene/view     (int track)      Selects a track to view
     """
     
     if len(msg) == 3:
         scene = msg[2]
         LiveUtils.getSong().view.selected_scene = LiveUtils.getSong().scenes[scene]
コード例 #10
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
    def mviewTrackCB(self, msg, source):
        """Called when a /live/master/view message is received.
        
        Messages:
        /live/track/view     (int track)      Selects a track to view
        """
        track = LiveUtils.getSong().master_track

        LiveUtils.getSong().view.selected_track = track
        Live.Application.get_application().view.show_view("Detail/DeviceChain")        
コード例 #11
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/pages-2
 def stateCB(self, msg):
     tempo = LiveUtils.getTempo()
     overdub = LiveUtils.getSong().overdub
     selected_scene = LiveUtils.getSong().view.selected_scene
     scenes = LiveUtils.getScenes()
     index = 0
     selected_index = 0
     for scene in scenes:
         index = index + 1        
         if scene == selected_scene:
             selected_index = index
     self.oscServer.sendOSC("/live/state", (tempo, overdub, selected_index))
コード例 #12
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def warpingCB(self, msg, source):
     """ Called when a /live/clip/warping message is recieved
     """
     track = msg[2]
     clip = msg[3]
     
     
     if len(msg) == 4:
         state = LiveUtils.getSong().visible_tracks[track].clip_slots[clip].clip.warping
         self.oscEndpoint.send("/live/clip/warping", (track, clip, int(state)))
     
     elif len(msg) == 5:
         LiveUtils.getSong().visible_tracks[track].clip_slots[clip].clip.warping = msg[4]
コード例 #13
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/pages-2
 def viewClipCB(self, msg):
     """Called when a /live/clip/view message is received.
     
     Messages:
     /live/clip/view     (int track, int clip)      Selects a track to view
     """
     track = LiveUtils.getSong().tracks[msg[2]]
     
     if len(msg) == 4:
         clip  = msg[3]
     else:
         clip  = 0
     
     LiveUtils.getSong().view.detail_clip = track.clip_slots[clip].clip
コード例 #14
0
 def toggleMisc(self, msg):
     """Called when a /mrmr/pushbutton/48/iPhone1 message is received."""
     track = 41
     device = 0
     paramter = 0
     value = msg[2]
     LiveUtils.getSong().visible_tracks[track].devices[device].parameters[paramter].value = value
コード例 #15
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def viewClipCB(self, msg, source):
     """Called when a /live/clip/view message is received.
     
     Messages:
     /live/clip/view     (int track, int clip)      Selects a track to view
     """
     track = LiveUtils.getSong().visible_tracks[msg[2]]
     
     if len(msg) == 4:
         clip  = msg[3]
     else:
         clip  = 0
     
     LiveUtils.getSong().view.selected_track = track
     LiveUtils.getSong().view.detail_clip = track.clip_slots[clip].clip
     Live.Application.get_application().view.show_view("Detail/Clip")  
コード例 #16
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/pages-2
 def viewTrackCB(self, msg):
     """Called when a /live/track/view message is received.
     
     Messages:
     /live/track/view     (int track)      Selects a track to view
     """
     ty = msg[0] == '/live/return/view' and 1 or 0
     track_num = msg[2]
     
     if len(msg) == 3:
         if ty == 1:
             track = LiveUtils.getSong().return_tracks[track_num]
         else:
             track = LiveUtils.getSong().tracks[track_num]
             
         track.view.select_instrument()
コード例 #17
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/pages-2
 def mviewTrackCB(self, msg):
     """Called when a /live/master/view message is received.
     
     Messages:
     /live/track/view     (int track)      Selects a track to view
     """
     track = LiveUtils.getSong().master_track
     track.view.select_instrument()
コード例 #18
0
 def toggleBass(self, msg):
     """Called when a /mrmr/pushbutton/45/iPhone1 message is received."""
     track = 38
     device = 0
     paramter = 0
     value = msg[2]
     LiveUtils.getSong().visible_tracks[track].devices[device].parameters[paramter].value = value
     """Print track names, devices and parameters
コード例 #19
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def viewTrackCB(self, msg, source):
     """Called when a /live/track/view message is received.
     
     Messages:
     /live/track/view     (int track)      Selects a track to view
     """
     ty = msg[0] == '/live/return/view' and 1 or 0
     track_num = msg[2]
     
     if len(msg) == 3:
         if ty == 1:
             track = LiveUtils.getSong().return_tracks[track_num]
         else:
             track = LiveUtils.getSong().visible_tracks[track_num]
             
         LiveUtils.getSong().view.selected_track = track
         Live.Application.get_application().view.show_view("Detail/DeviceChain")
コード例 #20
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def overdubCB(self, msg, source):
     """Called when a /live/overdub message is received.
     
     Messages:
     /live/overdub     (int on/off)      Enables/disables overdub
     """        
     if len(msg) == 3:
         overdub = msg[2]
         LiveUtils.getSong().overdub = overdub
コード例 #21
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
    def devicelistCB(self, msg, source):
        ty = msg[0] == '/live/return/devicelist' and 1 or 0

        track = msg[2]
    
        if len(msg) == 3:
            do = [track]
            
            if ty == 1:
                devices = LiveUtils.getSong().return_tracks[track].devices
            else:
                devices = LiveUtils.getSong().visible_tracks[track].devices
        
            for i in range(len(devices)):
                do.append(i)
                do.append(str(devices[i].name))
            
            self.oscEndpoint.send(ty == 1 and "/live/return/devicelist" or "/live/devicelist", tuple(do))
コード例 #22
0
 def stateCB(self, msg):
     """Called when a /live/state is received.
     
     Messages:
     /live/state                    Returns the current tempo and overdub status
     """
     if len(msg) == 2 or (len(msg) == 3 and msg[2] == "query"):
         tempo = LiveUtils.getTempo()
         overdub = LiveUtils.getSong().overdub
         self.oscServer.sendOSC("/live/state", (tempo, int(overdub)))
コード例 #23
0
    def viewDeviceCB(self, msg, source):
        """Called when a /live/track/device/view message is received.
        
        Messages:
        /live/track/device/view     (int track)      Selects a track to view
        """
        ty = msg[0] == '/live/return/device/view' and 1 or 0
        track_num = msg[2]

        if len(msg) == 4:
            if ty == 1:
                track = LiveUtils.getSong().return_tracks[track_num]
            else:
                track = LiveUtils.getSong().visible_tracks[track_num]

            LiveUtils.getSong().view.selected_track = track
            LiveUtils.getSong().view.select_device(track.devices[msg[3]])
            Live.Application.get_application().view.show_view(
                "Detail/DeviceChain")
コード例 #24
0
    def sendCB(self, msg):
        """Called when a /live/send message is received.

        Messages:
        /live/send     (int track, int send)                              Returns the send level of send (send) on track number track as: /live/send (int track, int send, float level(0.0 to 1.0))
        /live/send     (int track, int send, float level(0.0 to 1.0))     Sets the send (send) of track number (track)'s level to (level)

        """
        ty = msg[0] == '/live/return/send' and 1 or 0
        track = msg[2]
        
        if len(msg) == 5:
            send = msg[3]
            level = msg[4]
            if ty == 1:
                LiveUtils.getSong().return_tracks[track].mixer_device.sends[send].value = level
            
            else:
                LiveUtils.trackSend(track, send, level)
        
        elif len(msg) == 4:
            send = msg[3]
            if ty == 1:
                self.oscServer.sendOSC("/live/return/send", (track, send, float(LiveUtils.getSong().return_tracks[track].mixer_device.sends[send].value)))

            else:
                self.oscServer.sendOSC("/live/send", (track, send, float(LiveUtils.trackSend(track, send))))
            
        elif len(msg) == 3:
            if ty == 1:
                sends = LiveUtils.getSong().return_tracks[track].mixer_device.sends
            else:
                sends = LiveUtils.getSong().tracks[track].mixer_device.sends
                
            so = [track]
            for i in range(len(sends)):
                so.append(i)
                so.append(float(sends[i].value))
                
            if ty == 1:
                self.oscServer.sendOSC("/live/return/send", tuple(so))
            else:
                self.oscServer.sendOSC("/live/send", tuple(so))
コード例 #25
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def stateCB(self, msg, source):
     """Called when a /live/state is received.
     
     Messages:
     /live/state                    Returns the current tempo and overdub status
     """
     if len(msg) == 2 or (len(msg) == 3 and msg[2] == "query"):
         tempo = LiveUtils.getTempo()
         overdub = LiveUtils.getSong().overdub
         self.oscEndpoint.send("/live/state", (tempo, int(overdub)))
コード例 #26
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
    def sendCB(self, msg, source):
        """Called when a /live/send message is received.

        Messages:
        /live/send     (int track, int send)                              Returns the send level of send (send) on track number track as: /live/send (int track, int send, float level(0.0 to 1.0))
        /live/send     (int track, int send, float level(0.0 to 1.0))     Sets the send (send) of track number (track)'s level to (level)

        """
        ty = msg[0] == '/live/return/send' and 1 or 0
        track = msg[2]
        
        if len(msg) == 5:
            send = msg[3]
            level = msg[4]
            if ty == 1:
                LiveUtils.getSong().return_tracks[track].mixer_device.sends[send].value = level
            
            else:
                LiveUtils.trackSend(track, send, level)
        
        elif len(msg) == 4:
            send = msg[3]
            if ty == 1:
                self.oscEndpoint.send("/live/return/send", (track, send, float(LiveUtils.getSong().return_tracks[track].mixer_device.sends[send].value)))

            else:
                self.oscEndpoint.send("/live/send", (track, send, float(LiveUtils.trackSend(track, send))))
            
        elif len(msg) == 3:
            if ty == 1:
                sends = LiveUtils.getSong().return_tracks[track].mixer_device.sends
            else:
                sends = LiveUtils.getSong().visible_tracks[track].mixer_device.sends
                
            so = [track]
            for i in range(len(sends)):
                so.append(i)
                so.append(float(sends[i].value))
                
            if ty == 1:
                self.oscEndpoint.send("/live/return/send", tuple(so))
            else:
                self.oscEndpoint.send("/live/send", tuple(so))
コード例 #27
0
    def mdevicelistCB(self, msg):
        if len(msg) == 2 or (len(msg) == 3 and msg[2] == "query"):
            do = []
            devices = LiveUtils.getSong().master_track.devices

            for i in range(len(devices)):
                do.append(i)
                do.append(str(devices[i].name))

            self.oscServer.sendOSC("/live/master/devicelist", tuple(do))
コード例 #28
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def mdevicelistCB(self, msg, source):
     if len(msg) == 2 or (len(msg) == 3 and msg[2] == "query"):
         do = []
         devices = LiveUtils.getSong().master_track.devices
     
         for i in range(len(devices)):
             do.append(i)
             do.append(str(devices[i].name))
         
         self.oscEndpoint.send("/live/master/devicelist", tuple(do))            
コード例 #29
0
    def devicelistCB(self, msg, source):
        ty = msg[0] == '/live/return/devicelist' and 1 or 0

        track = msg[2]

        if len(msg) == 3:
            do = [track]

            if ty == 1:
                devices = LiveUtils.getSong().return_tracks[track].devices
            else:
                devices = LiveUtils.getSong().visible_tracks[track].devices

            for i in range(len(devices)):
                do.append(i)
                do.append(str(devices[i].name))

            self.oscEndpoint.send(
                ty == 1 and "/live/return/devicelist" or "/live/devicelist",
                tuple(do))
コード例 #30
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
    def returnsCB(self, msg, source):
        """Called when a /live/returns message is received.

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

        """
        if len(msg) == 2 or (len(msg) == 3 and msg[2] == "query"):
            trackTotal = len(LiveUtils.getSong().return_tracks)
            self.oscEndpoint.send("/live/returns", (trackTotal))
            return
コード例 #31
0
    def scanMulti(self, msg, source):

        self.oscEndpoint.sendMessage(OSC.OSCMessage("/multi/start/"))
        index = 0
        for scene in LiveUtils.getSong().scenes:
            self.oscEndpoint.sendMessage(
                OSC.OSCMessage("/multi/section/",
                               (int(index), str(scene.is_empty), str(
                                   scene.name), float(scene.tempo))))
            index += 1
        self.oscEndpoint.sendMessage(OSC.OSCMessage("/multi/end/"))
コード例 #32
0
 def addControlClips(self, songID):
     controlTrack = LiveUtils.getTrack(0)
     slotNumber = 0
     for slot in controlTrack.clip_slots:
         if not slot.has_clip:
             signature_denominator = LiveUtils.getSong(
             ).signature_denominator
             signature_numerator = LiveUtils.getSong().signature_numerator
             if slotNumber in self.sceneScanLengths.keys():
                 info = self.sceneScanLengths[slotNumber]
                 length = info['length']
                 signature_numerator = int(info['signature_numerator'])
                 signature_denominator = int(info['signature_denominator'])
             else:
                 length = 4.0
             slot.create_clip(length)
             slot.clip.signature_numerator = signature_numerator
             slot.clip.signature_denominator = signature_denominator
             slot.length = length
             slot.clip.name = CONTROL_CLIP_IDENTIFIER + " " + songID
         slotNumber = slotNumber + 1
コード例 #33
0
 def mdevicerangeCB(self, msg):
     if len(msg) == 3:
         device = msg[2]
         po = [device]
         
         params = LiveUtils.getSong().master_track.devices[device].parameters
 
         for i in range(len(params)):
             po.append(i)
             po.append(params[i].max)
             po.append(params[i].min)
         
         self.oscServer.sendOSC("/live/master/device/range", tuple(po))
 
     elif len(msg) == 4:
         device = msg[2]
         param  = msg[3]
         
         p = LiveUtils.getSong().master_track.devices[device].parameters[param]
     
         self.oscServer.sendOSC("/live/master/device/range", (device, param, p.min, p.max))
コード例 #34
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def mdevicerangeCB(self, msg, source):
     if len(msg) == 3:
         device = msg[2]
         po = [device]
         
         params = LiveUtils.getSong().master_track.devices[device].parameters
 
         for i in range(len(params)):
             po.append(i)
             po.append(params[i].max)
             po.append(params[i].min)
         
         self.oscEndpoint.send("/live/master/device/range", tuple(po))
 
     elif len(msg) == 4:
         device = msg[2]
         param  = msg[3]
         
         p = LiveUtils.getSong().master_track.devices[device].parameters[param]
     
         self.oscEndpoint.send("/live/master/device/range", (device, param, p.min, p.max))
コード例 #35
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
 def sceneCB(self, msg, source):
     """Called when a /live/scene message is received.
     
     Messages:
     /live/scene         no argument or 'query'  Returns the currently playing scene number
     """
     if len(msg) == 2 or (len(msg) == 3 and msg[2] == "query"):
         selected_scene = LiveUtils.getSong().view.selected_scene
         scenes = LiveUtils.getScenes()
         index = 0
         selected_index = 0
         for scene in scenes:
             index = index + 1        
             if scene == selected_scene:
                 selected_index = index
                 
         self.oscEndpoint.send("/live/scene", (selected_index))
         
     elif len(msg) == 3:
         scene = msg[2]
         LiveUtils.getSong().view.selected_scene = LiveUtils.getSong().scenes[scene]
コード例 #36
0
 def sceneCB(self, msg, source):
     """Called when a /live/scene message is received.
     
     Messages:
     /live/scene         no argument or 'query'  Returns the currently playing scene number
     """
     if len(msg) == 2 or (len(msg) == 3 and msg[2] == "query"):
         selected_scene = LiveUtils.getSong().view.selected_scene
         scenes = LiveUtils.getScenes()
         index = 0
         selected_index = 0
         for scene in scenes:
             index = index + 1        
             if scene == selected_scene:
                 selected_index = index
                 
         self.oscEndpoint.send("/live/scene", (selected_index))
         
     elif len(msg) == 3:
         scene = msg[2]
         LiveUtils.getSong().view.selected_scene = LiveUtils.getSong().scenes[scene]
コード例 #37
0
    def device_changestate(self, track, tid, type):
        
        did = self.tuple_idx(track.devices, track.view.selected_device)

        if type == 2:
            devices = LiveUtils.getSong().master_track.devices
            nm = str(devices[int(did)].name)
            params = LiveUtils.getSong().master_track.devices[did].parameters
            onoff = params[0].value
            num = len(devices)
            self.oscEndpoint.send('/master/selected_device', (1, did, nm, onoff, num))
        elif type == 1:
            devices = LiveUtils.getSong().return_tracks[tid].devices
            nm = str(devices[int(did)].name)
            params = LiveUtils.getSong().return_tracks[tid].devices[did].parameters
            onoff = params[0].value
            num = len(devices)
            self.oscEndpoint.send('/return/selected_device', (2, tid, did, nm, onoff, num))
        else:
            devices = LiveUtils.getSong().tracks[tid].devices
            nm = str(devices[int(did)].name)
            params = LiveUtils.getSong().tracks[tid].devices[did].parameters
            onoff = params[0].value
            num = len(devices)
            self.oscEndpoint.send('/track/selected_device', (0, tid, did, nm, onoff, num))       
コード例 #38
0
    def trackxfaderCB(self, msg, source):
        """ Called when a /live/track/crossfader or /live/return/crossfader message is received
        """
        ty = msg[0] == '/live/return/crossfader' and 1 or 0

        if len(msg) == 3:
            track = msg[2]

            if ty == 1:
                assign = LiveUtils.getSong(
                ).return_tracks[track].mixer_device.crossfade_assign
                name = LiveUtils.getSong().return_tracks[
                    track].mixer_device.crossfade_assignments.values[assign]

                self.oscEndpoint.send("/live/return/crossfader",
                                      (track, str(assign), str(name)))
            else:
                assign = LiveUtils.getSong(
                ).visible_tracks[track].mixer_device.crossfade_assign
                name = LiveUtils.getSong().visible_tracks[
                    track].mixer_device.crossfade_assignments.values[assign]

                self.oscEndpoint.send("/live/track/crossfader",
                                      (track, str(assign), str(name)))

        elif len(msg) == 4:
            track = msg[2]
            assign = msg[3]

            if ty == 1:
                LiveUtils.getSong(
                ).return_tracks[track].mixer_device.crossfade_assign = assign
            else:
                LiveUtils.getSong(
                ).visible_tracks[track].mixer_device.crossfade_assign = assign
コード例 #39
0
    def device_changestate(self, track, tid, type):

        did = self.tuple_idx(track.devices, track.view.selected_device)

        if type == 2:
            devices = LiveUtils.getSong().master_track.devices
            nm = str(devices[int(did)].name)
            params = LiveUtils.getSong().master_track.devices[did].parameters
            onoff = params[0].value
            num = len(devices)
            self.oscEndpoint.send('/master/selected_device',
                                  (1, did, nm, onoff, num))
        elif type == 1:
            devices = LiveUtils.getSong().return_tracks[tid].devices
            nm = str(devices[int(did)].name)
            params = LiveUtils.getSong(
            ).return_tracks[tid].devices[did].parameters
            onoff = params[0].value
            num = len(devices)
            self.oscEndpoint.send('/return/selected_device',
                                  (2, tid, did, nm, onoff, num))
        else:
            devices = LiveUtils.getSong().tracks[tid].devices
            nm = str(devices[int(did)].name)
            params = LiveUtils.getSong().tracks[tid].devices[did].parameters
            onoff = params[0].value
            num = len(devices)
            self.oscEndpoint.send('/track/selected_device',
                                  (0, tid, did, nm, onoff, num))
コード例 #40
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
    def trackxfaderCB(self, msg, source):
        """ Called when a /live/track/crossfader or /live/return/crossfader message is received
        """
        ty = msg[0] == '/live/return/crossfader' and 1 or 0
    
        if len(msg) == 3:
            track = msg[2]
        
            if ty == 1:
                assign = LiveUtils.getSong().return_tracks[track].mixer_device.crossfade_assign
                name   = LiveUtils.getSong().return_tracks[track].mixer_device.crossfade_assignments.values[assign]
            
                self.oscEndpoint.send("/live/return/crossfader", (track, str(assign), str(name)))
            else:
                assign = LiveUtils.getSong().visible_tracks[track].mixer_device.crossfade_assign
                name   = LiveUtils.getSong().visible_tracks[track].mixer_device.crossfade_assignments.values[assign]
            
                self.oscEndpoint.send("/live/track/crossfader", (track, str(assign), str(name)))

            
        elif len(msg) == 4:
            track = msg[2]
            assign = msg[3]
            
            if ty == 1:
                LiveUtils.getSong().return_tracks[track].mixer_device.crossfade_assign = assign
            else:
                LiveUtils.getSong().visible_tracks[track].mixer_device.crossfade_assign = assign
コード例 #41
0
    def panCB(self, msg):
        """Called when a /live/pan message is received.

        Messages:
        /live/pan     (int track)                            Returns the pan of track number track as: /live/pan (int track, float pan(-1.0 to 1.0))
        /live/pan     (int track, float pan(-1.0 to 1.0))    Sets track number track's pan to pan

        """
        if msg[0] == '/live/return/pan':
            ty = 1
        elif msg[0] == '/live/master/pan':
            ty = 2
        else:
            ty = 0
        
        if len(msg) == 2 and ty == 2:
            self.oscServer.sendOSC("/live/master/pan", LiveUtils.getSong().master_track.mixer_device.panning.value)
        
        elif len(msg) == 3 and ty == 2:
            pan = msg[2]
            LiveUtils.getSong().master_track.mixer_device.panning.value = pan
            
        elif len(msg) == 4:
            track = msg[2]
            pan = msg[3]
            
            if ty == 0:
                LiveUtils.trackPan(track, pan)
            elif ty == 1:
                LiveUtils.getSong().return_tracks[track].mixer_device.panning.value = pan
            
        elif len(msg) == 3:
            track = msg[2]
            
            if ty == 1:
                self.oscServer.sendOSC("/live/pan", (track, LiveUtils.getSong().return_tracks[track].mixer_device.panning.value))
            
            else:
                self.oscServer.sendOSC("/live/pan", (track, LiveUtils.trackPan(track)))
コード例 #42
0
ファイル: LiveOSCCallbacks.py プロジェクト: dinchak/LiveOSC
    def panCB(self, msg, source):
        """Called when a /live/pan message is received.

        Messages:
        /live/pan     (int track)                            Returns the pan of track number track as: /live/pan (int track, float pan(-1.0 to 1.0))
        /live/pan     (int track, float pan(-1.0 to 1.0))    Sets track number track's pan to pan

        """
        if msg[0] == '/live/return/pan':
            ty = 1
        elif msg[0] == '/live/master/pan':
            ty = 2
        else:
            ty = 0
        
        if len(msg) == 2 and ty == 2:
            self.oscEndpoint.send("/live/master/pan", LiveUtils.getSong().master_track.mixer_device.panning.value)
        
        elif len(msg) == 3 and ty == 2:
            pan = msg[2]
            LiveUtils.getSong().master_track.mixer_device.panning.value = pan
            
        elif len(msg) == 4:
            track = msg[2]
            pan = msg[3]
            
            if ty == 0:
                LiveUtils.trackPan(track, pan)
            elif ty == 1:
                LiveUtils.getSong().return_tracks[track].mixer_device.panning.value = pan
            
        elif len(msg) == 3:
            track = msg[2]
            
            if ty == 1:
                self.oscEndpoint.send("/live/pan", (track, LiveUtils.getSong().return_tracks[track].mixer_device.panning.value))
            
            else:
                self.oscEndpoint.send("/live/pan", (track, LiveUtils.trackPan(track)))
コード例 #43
0
    def volumeCB(self, msg):
        """Called when a /live/volume message is received.

        Messages:
        /live/volume     (int track)                            Returns the current volume of track number track as: /live/volume (int track, float volume(0.0 to 1.0))
        /live/volume     (int track, float volume(0.0 to 1.0))  Sets track number track's volume to volume
        """
        if msg[0] == '/live/return/volume':
            ty = 1
        elif msg[0] == '/live/master/volume':
            ty = 2
        else:
            ty = 0
        
        if len(msg) == 2 and ty == 2:
            self.oscServer.sendOSC("/live/master/volume", LiveUtils.getSong().master_track.mixer_device.volume.value)
        
        elif len(msg) == 3 and ty == 2:
            volume = msg[2]
            LiveUtils.getSong().master_track.mixer_device.volume.value = volume
        
        elif len(msg) == 4:
            track = msg[2]
            volume = msg[3]
            
            if ty == 0:
                LiveUtils.trackVolume(track, volume)
            elif ty == 1:
                LiveUtils.getSong().return_tracks[track].mixer_device.volume.value = volume

        elif len(msg) == 3:
            track = msg[2]

            if ty == 1:
                self.oscServer.sendOSC("/live/return/volume", (track, LiveUtils.getSong().return_tracks[track].mixer_device.volume.value))
            
            else:
                self.oscServer.sendOSC("/live/volume", (track, LiveUtils.trackVolume(track)))
コード例 #44
0
    def devicerangeCB(self, msg, source):
        ty = msg[0] == '/live/return/device/range' and 1 or 0
        track = msg[2]

        if len(msg) == 4:
            device = msg[3]
            po = [track, device]

            if ty == 1:
                params = LiveUtils.getSong(
                ).return_tracks[track].devices[device].parameters
            else:
                params = LiveUtils.getSong(
                ).visible_tracks[track].devices[device].parameters

            for i in range(len(params)):
                po.append(i)
                po.append(params[i].min)
                po.append(params[i].max)

            self.oscEndpoint.send(
                ty == 1 and "/live/return/device/range"
                or "/live/device/range", tuple(po))

        elif len(msg) == 5:
            device = msg[3]
            param = msg[4]

            if ty == 1:
                p = LiveUtils.getSong(
                ).return_tracks[track].devices[device].parameters[param]
            else:
                p = LiveUtils.getSong(
                ).visible_tracks[track].devices[device].parameters[param]

            self.oscEndpoint.send(
                ty == 1 and "/live/return/device/range"
                or "/live/device/range", (track, device, param, p.min, p.max))
コード例 #45
0
    def trimSong(self, msg, source):
        sceneCount = int(0)
        song = LiveUtils.getSong()
        sceneLength = len(song.scenes) - 1
        #Live.remove_listeners()
        for scene in song.scenes:
            log(sceneLength)
            if sceneLength < int(msg[2]) or sceneLength > int(msg[3]):
                log("Deleted!!")
                song.delete_scene(sceneLength)
                #time.sleep(0.1)

            sceneLength -= 1
        self.oscEndpoint.sendMessage(OSC.OSCMessage("/multi/trimmed/"))
コード例 #46
0
 def sigCB(self, msg, source):
     """ Called when a /live/clip/signature message is recieved
     """
     track = msg[2]
     clip = msg[3]
     c = LiveUtils.getSong().visible_tracks[track].clip_slots[clip].clip
     
     if len(msg) == 4:
         self.oscEndpoint.send("/live/clip/signature", (track, clip, c.signature_numerator, c.signature_denominator))
         
     if len(msg) == 6:
         self.oscEndpoint.send("/live/clip/signature", 1)
         c.signature_denominator = msg[5]
         c.signature_numerator = msg[4]
コード例 #47
0
    def deviceCB(self, msg, source):
        ty = msg[0] == '/live/return/device' and 1 or 0
        track = msg[2]

        if len(msg) == 4:
            device = msg[3]
            po = [track, device]

            if ty == 1:
                params = LiveUtils.getSong(
                ).return_tracks[track].devices[device].parameters
            else:
                params = LiveUtils.getSong(
                ).visible_tracks[track].devices[device].parameters

            for i in range(len(params)):
                po.append(i)
                po.append(float(params[i].value))
                po.append(str(params[i].name))

            self.oscEndpoint.send(
                ty == 1 and "/live/return/device/allparam"
                or "/live/device/allparam", tuple(po))

        elif len(msg) == 5:
            device = msg[3]
            param = msg[4]

            if ty == 1:
                p = LiveUtils.getSong(
                ).return_tracks[track].devices[device].parameters[param]
            else:
                p = LiveUtils.getSong(
                ).visible_tracks[track].devices[device].parameters[param]

            self.oscEndpoint.send(
                ty == 1 and "/live/return/device/param"
                or "/live/device/param",
                (track, device, param, p.value, str(p.name)))

        elif len(msg) == 6:
            device = msg[3]
            param = msg[4]
            value = msg[5]

            if ty == 1:
                LiveUtils.getSong().return_tracks[track].devices[
                    device].parameters[param].value = value
            else:
                LiveUtils.getSong().visible_tracks[track].devices[
                    device].parameters[param].value = value
コード例 #48
0
ファイル: LiveOSCCallbacks.py プロジェクト: dberzon/yaas
    def playSelectedClipCB(self, msg):
        """Called when a /live/play/clipslot message is received.

        Messages:
        /live/play/clipslot     (int track)   Launches current scenes clipslot in track number track
        """
        if len(msg) == 3:
            selected_scene = LiveUtils.getSong().view.selected_scene
            scenes = LiveUtils.getScenes()
            index = 0
            selected_index = 0
            for scene in scenes:
                index = index + 1        
                if scene == selected_scene:
                    selected_index = index
            track_num = msg[2]
            clip_num = (selected_index - 1)
            track = LiveUtils.getTrack(track_num)
            clipslot = track.clip_slots[clip_num]
            clipslot.fire()
コード例 #49
0
ファイル: LiveOSCCallbacks.py プロジェクト: dberzon/yaas
    def nameClipFromSceneCB(self, msg):
        """Called when a /live/name/clip message is received.

        Messages:
        /live/name/clip                                      Returns a a series of all the clip names in the form /live/name/clip (int track, int clip, string name)
        /live/name/clip    (int track, int clip)             Returns a single clip's name in the form /live/name/clip (int clip, string name)
        /live/name/clip    (int track, int clip, string name)Sets clip number clip in track number track's name to name

        """
        if len(msg) == 3:
            selected_scene = LiveUtils.getSong().view.selected_scene
            scenes = LiveUtils.getScenes()
            index = 0
            selected_index = 0
            for scene in scenes:
                index = index + 1        
                if scene == selected_scene:
                    selected_index = index
            trackNumber = msg[2]
            clipNumber = selected_index
            self.oscServer.sendOSC("/live/name/clipfromscene/" + str(selected_index), (str(LiveUtils.getClip(trackNumber, clipNumber).name)))
            return
コード例 #50
0
    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:
                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("/live/return/mute", (track, int(status)))
                
            else:
                status = LiveUtils.getTrack(track).mute
                self.oscServer.sendOSC("/live/mute", (track, int(status)))
コード例 #51
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:
                LiveUtils.soloTrack(track, ty)
            else:
                LiveUtils.unsoloTrack(track, ty)
            
        elif len(msg) == 3:
            if ty == 1:
                status = LiveUtils.getSong().return_tracks[track].solo
                self.oscServer.sendOSC("/live/return/solo", (track, int(status)))
                
            else:
                status = LiveUtils.getTrack(track).solo
                self.oscServer.sendOSC("/live/solo", (track, int(status)))
コード例 #52
0
 def overdub_change(self):
     overdub = LiveUtils.getSong().overdub
     self.oscServer.sendOSC("/live/overdub", (int(overdub) + 1))
コード例 #53
0
 def metronome_change(self):
     metronome = LiveUtils.getSong().metronome
     self.oscEndpoint.send("/live/metronome", int(metronome))
コード例 #54
0
 def signature_change(self):
     numerator = LiveUtils.getSong().signature_numerator
     denominator = LiveUtils.getSong().signature_denominator
     self.oscEndpoint.send("/live/signature",
                           (int(numerator), int(denominator)))
コード例 #55
0
 def overdubCB(self, msg):
     if len(msg) == 3:
         overdub = msg[2]
         LiveUtils.getSong().overdub = overdub
コード例 #56
0
 def quantizationCB(self, msg, source):
     quant = msg[2]
     LiveUtils.getSong().clip_trigger_quantization = quant
コード例 #57
0
 def overdub_change(self):
     overdub = LiveUtils.getSong().overdub
     self.oscEndpoint.send("/live/overdub", (int(overdub) + 1))
コード例 #58
0
 def loop_change(self):
     loop = LiveUtils.getSong().loop
     self.oscEndpoint.send("/live/loop", int(loop))