Changeset 77


Ignore:
Timestamp:
09/04/10 18:02:47 (7 years ago)
Author:
st8
Message:

LiveControl_TO: fixed some bugs, added support for iPad. Added XY page, removed Looper

Location:
trunk/LiveControl_TO
Files:
1 added
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LiveControl_TO/ClipLauncher.py

    r73 r77  
    5151 
    5252    def default_labels(self): 
    53         self.oscServer.sendOSC('/1/label37', "Device") 
    54         self.oscServer.sendOSC('/1/label38', "LQ-") 
    55         self.oscServer.sendOSC('/1/label39', "LQ+") 
    56         self.oscServer.sendOSC('/1/label40', "Od " + (self.song().overdub and 'On' or 'Off')) 
    57         self.oscServer.sendOSC('/1/label41', "Met " + (self.song().metronome and 'On' or 'Off')) 
    58         self.oscServer.sendOSC('/1/label42', "Tap")     
     53        self.oscServer.sendOSC('/1/2nlabel2', "Device") 
     54        self.oscServer.sendOSC('/1/2nlabel3', "LQ-") 
     55        self.oscServer.sendOSC('/1/2nlabel4', "LQ+") 
     56        self.oscServer.sendOSC('/1/2nlabel5', "Od " + (self.song().overdub and 'On' or 'Off')) 
     57        self.oscServer.sendOSC('/1/2nlabel6', "Met " + (self.song().metronome and 'On' or 'Off')) 
     58        self.oscServer.sendOSC('/1/2nlabel7', str(int(self.song().tempo))) 
    5959 
    6060    def rem_listeners(self): 
     
    132132     
    133133        self.trpl[x] = 0 
    134         self.oscServer.sendOSC('/1/label' + str(29 + x), 'Stop') 
     134        self.oscServer.sendOSC('/1/slabel' + str(x+1), 'Stop') 
    135135         
    136136        if clip.is_playing == 1: 
     
    191191                     
    192192                        if beats % 2 == 0: 
    193                             self.oscServer.sendOSC('/1/label' + str(x + 29), '<' + name + '>') 
    194                         else: 
    195                             self.oscServer.sendOSC('/1/label' + str(x + 29), name) 
     193                            self.oscServer.sendOSC('/1/slabel' + str(x + 1), '<' + name + '>') 
     194                        elif beats % 2 == 1: 
     195                            self.oscServer.sendOSC('/1/slabel' + str(x + 1), name) 
    196196                     
    197197                    if slot.has_clip: 
     
    208208                                if sub % 3 == 1: 
    209209                                    self.oscServer.sendOSC('/1/label' + str(id), '<' + name + '>') 
    210                                 else: 
     210                                elif sub % 3 == 0: 
    211211                                    self.oscServer.sendOSC('/1/label' + str(id), name) 
    212212                                     
     
    214214                                if beats % 2 == 0: 
    215215                                    self.oscServer.sendOSC('/1/label' + str(id), '<' + name + '>') 
    216                                 else: 
     216                                elif beats % 2 == 1: 
    217217                                    self.oscServer.sendOSC('/1/label' + str(id), name) 
    218218 
     
    255255                 
    256256                if val == 1: 
    257                     self.oscServer.sendOSC('/1/label38', "RQ-") 
    258                     self.oscServer.sendOSC('/1/label39', "RQ+") 
    259                     self.oscServer.sendOSC('/1/label41', "Temp-") 
    260                     self.oscServer.sendOSC('/1/label42', "Temp+") 
     257                    self.oscServer.sendOSC('/1/2nlabel3', "RQ-") 
     258                    self.oscServer.sendOSC('/1/2nlabel4', "RQ+") 
     259                    self.oscServer.sendOSC('/1/2nlabel6', "Temp-") 
     260                    self.oscServer.sendOSC('/1/2nlabel7', "Temp+") 
    261261                     
    262262                else: 
     
    298298                self.update_matrix() 
    299299     
     300        elif type == 'stop': 
     301            if val == 1: 
     302                x = id - 1 + self.track 
     303                self.song().visible_tracks[x].clip_slots[self.trid[x]].clip.stop() 
     304             
     305        elif type == '2nav': 
     306            if val == 1: 
     307                # Tap Tempo 
     308                if id == 7: 
     309                    if self.shift == 1: 
     310                        self.song().tempo = self.song().tempo + 1 
     311                    else: 
     312                        self.song().tap_tempo() 
     313                         
     314                    self.oscServer.sendOSC('/1/2nlabel' + str(id), str(int(self.song().tempo))) 
     315                     
     316                # Metronome 
     317                elif id == 6: 
     318                    if self.shift == 1: 
     319                        self.song().tempo = self.song().tempo - 1 
     320                        self.oscServer.sendOSC('/1/2nlabel' + str(id+1), str(int(self.song().tempo))) 
     321                    else: 
     322                        if self.song().metronome == 1: 
     323                            self.song().metronome = 0 
     324                        else: 
     325                            self.song().metronome = 1                 
     326                     
     327                        self.oscServer.sendOSC('/1/2nlabel' + str(id), "Met " + (self.song().metronome and 'On' or 'Off')) 
     328                     
     329                # Overdub 
     330                elif id == 5: 
     331                    if self.song().overdub == 1: 
     332                        self.song().overdub = 0 
     333                    else: 
     334                        self.song().overdub = 1 
     335                         
     336                    self.oscServer.sendOSC('/1/2nlabel' + str(id), "Od " + (self.song().overdub and 'On' or 'Off')) 
     337                         
     338                # Quantisation Up 
     339                elif id == 4: 
     340                    if self.shift == 1: 
     341                        self.song().midi_recording_quantization = self.song().clip_trigger_quantization - 1 
     342                    else: 
     343                        self.song().clip_trigger_quantization = self.song().clip_trigger_quantization - 1 
     344         
     345                # Quantisation Down 
     346                elif id == 3: 
     347                    if self.shift == 1: 
     348                        self.song().midi_recording_quantization = self.song().midi_recording_quantization + 1  
     349                    else: 
     350                        self.song().clip_trigger_quantization = self.song().clip_trigger_quantization + 1 
     351                 
     352                # Clip / Track View 
     353                elif id == 2: 
     354                    if self.view == 1: 
     355                        Live.Application.get_application().view.show_view("Detail/Clip") 
     356                        self.oscServer.sendOSC('/1/2nlabel' + str(id), "Clip") 
     357                        self.view = 0 
     358                    else: 
     359                        Live.Application.get_application().view.show_view("Detail/DeviceChain") 
     360                        self.oscServer.sendOSC('/1/2nlabel' + str(id), "Device") 
     361                        self.view = 1 
     362         
    300363        elif type == 'push': 
    301364            if val == 1: 
     
    306369                self.log(str(id) + " " + str(x) + " " + str(y)) 
    307370             
    308                 # Bottom Row 
    309                 if id > 35: 
    310                     # Tap Tempo 
    311                     if id == 42: 
    312                         if self.shift == 1: 
    313                             self.song().tempo = self.song().tempo + 1 
    314                         else: 
    315                             self.song().tap_tempo() 
    316                              
    317                         self.oscServer.sendOSC('/1/label' + str(id), str(int(self.song().tempo))) 
    318                          
    319                     # Metronome 
    320                     elif id == 41: 
    321                         if self.shift == 1: 
    322                             self.song().tempo = self.song().tempo - 1 
    323                             self.oscServer.sendOSC('/1/label' + str(id+1), str(int(self.song().tempo))) 
    324                         else: 
    325                             if self.song().metronome == 1: 
    326                                 self.song().metronome = 0 
    327                             else: 
    328                                 self.song().metronome = 1                 
    329                          
    330                             self.oscServer.sendOSC('/1/label' + str(id), "Met " + (self.song().metronome and 'On' or 'Off')) 
    331                          
    332                     # Overdub 
    333                     elif id == 40: 
    334                         if self.song().overdub == 1: 
    335                             self.song().overdub = 0 
    336                         else: 
    337                             self.song().overdub = 1 
    338                              
    339                         self.oscServer.sendOSC('/1/label' + str(id), "Od " + (self.song().overdub and 'On' or 'Off')) 
    340                              
    341                     # Quantisation Up 
    342                     elif id == 39: 
    343                         if self.shift == 1: 
    344                             self.song().midi_recording_quantization = self.song().clip_trigger_quantization - 1 
    345                         else: 
    346                             self.song().clip_trigger_quantization = self.song().clip_trigger_quantization - 1 
    347              
    348                     # Quantisation Down 
    349                     elif id == 38: 
    350                         if self.shift == 1: 
    351                             self.song().midi_recording_quantization = self.song().midi_recording_quantization + 1  
    352                         else: 
    353                             self.song().clip_trigger_quantization = self.song().clip_trigger_quantization + 1 
    354                      
    355                     # Clip / Track View 
    356                     elif id == 37: 
    357                         if self.view == 1: 
    358                             Live.Application.get_application().view.show_view("Detail/Clip") 
    359                             self.oscServer.sendOSC('/1/label' + str(id), "Clip") 
    360                             self.view = 0 
    361                         else: 
    362                             Live.Application.get_application().view.show_view("Detail/DeviceChain") 
    363                             self.oscServer.sendOSC('/1/label' + str(id), "Device") 
    364                             self.view = 1 
    365                  
    366                 # Stop Tracks 
    367                 elif id > 28: 
    368                     self.song().visible_tracks[x].clip_slots[self.trid[x]].clip.stop() 
     371                # View Track / Clip 
     372                if self.shift == 1: 
     373                    track = self.song().visible_tracks[x] 
     374                 
     375                    self.song().view.selected_track = track 
     376                    self.song().view.selected_scene = self.song().scenes[y] 
     377                    self.song().view.detail_clip = track.clip_slots[y].clip 
     378                    Live.Application.get_application().view.show_view("Detail/Clip") 
    369379                 
    370380                # Launch Clips 
    371381                else: 
    372                     # View Track / Clip 
    373                     if self.shift == 1: 
    374                         track = self.song().visible_tracks[x] 
    375                      
    376                         self.song().view.selected_track = track 
    377                         self.song().view.selected_scene = self.song().scenes[y] 
    378                         self.song().view.detail_clip = track.clip_slots[y].clip 
    379                         Live.Application.get_application().view.show_view("Detail/Clip") 
    380                      
    381                     # Launch Clips 
    382                     else: 
    383                         if self.song().visible_tracks[x].clip_slots[y].has_clip: 
    384                             self.song().visible_tracks[x].clip_slots[y].clip.fire() 
    385                         else: 
    386                             self.song().visible_tracks[x].clip_slots[y].fire() 
     382                    if self.song().visible_tracks[x].clip_slots[y].has_clip: 
     383                        self.song().visible_tracks[x].clip_slots[y].clip.fire() 
     384                    else: 
     385                        self.song().visible_tracks[x].clip_slots[y].fire() 
  • trunk/LiveControl_TO/DeviceControl.py

    r73 r77  
    2222from Program import Program 
    2323import Live 
    24 import ConfigParser 
    2524import os 
     25import pickle 
    2626 
    2727class DeviceControl(Program): 
    2828    name = "Device Control"    
    29     pageid = [3] 
     29    pageid = [3, 5] 
    3030     
    3131    def __init__(self, parent, width, height): 
     
    3737        self.oscServer = parent.oscServer 
    3838         
    39         self.device_cache = {} 
     39        self.device_params = {} 
    4040        self.listen  = {} 
    4141        self.dlisten = {} 
     
    4343         
    4444        self.bank   = 0 
     45         
     46        self.x_offset = 0 
     47        self.y_offset = 0 
     48         
     49        self.update = 0 
    4550         
    4651        self.do_refresh_state()   
     
    104109            self.oscServer.sendOSC('/3/rotary' + str(pid), (param.value - param.min)/(param.max-param.min)) 
    105110             
     111            x = self.xy(0) 
     112            y = self.xy(1) 
     113             
     114            if tid == self.device[0] and did == self.device[1]: 
     115                x = self.xy(0) 
     116                y = self.xy(1) 
     117                 
     118                if x == pid or y == pid: 
     119                    self.update_xy() 
     120         
    106121        self.log("Parameter: " + str(tid) + " " + str(did) + " " + str(pid) + " changed: " + str(param.value) + " min:" + str(param.min) + " max:" + str(param.max)) 
    107122 
     
    146161                self.oscServer.sendOSC('/3/rotary' + str(i+1), 0) 
    147162         
     163        self.update_labels() 
     164         
    148165    def do_button_press(self, page, type, id, val, xy = []): 
    149         if type == 'toggle': 
    150             if id == 1: 
    151                 self.log("button toggle") 
     166        if page == 3: 
     167            if type == 'toggle': 
     168                if id == 1: 
     169                    self.log("button toggle") 
     170                    if val == 1: 
     171                        self.tracks()[self.device[0]].devices[self.device[1]].parameters[0].value = 0 
     172                    else: 
     173                        self.tracks()[self.device[0]].devices[self.device[1]].parameters[0].value = 1 
     174         
     175            if type == 'rotary': 
     176                params = self.tracks()[self.device[0]].devices[self.device[1]].parameters 
     177                 
     178                if id < len(params): 
     179                    p = params[id] 
     180                     
     181                    newval = (val * (p.max - p.min)) + p.min             
     182                    p.value = newval 
     183                     
     184            elif type == 'nav': 
    152185                if val == 1: 
    153                     self.tracks()[self.device[0]].devices[self.device[1]].parameters[0].value = 0 
     186                    # Track Right 
     187                    if id == 2: 
     188                        self.sel_track_right() 
     189 
     190                    # Track Left 
     191                    elif id == 1: 
     192                        self.sel_track_left() 
     193                             
     194                    # Device Right 
     195                    elif id == 4: 
     196                        self.device_right() 
     197 
     198                    # Device Left 
     199                    elif id == 3: 
     200                        self.device_left() 
     201                     
     202                    # Bank Up 
     203                    elif id == 6: 
     204                        self.bank = self.bank + 1 
     205                        self.update_params() 
     206 
     207                    # Bank Down 
     208                    elif id == 5: 
     209                        if self.bank > 0: 
     210                            self.bank = self.bank - 1 
     211                            self.update_params() 
     212                             
     213            elif type == 'toggle': 
     214                # Device On/Off 
     215                track = self.song().view.selected_track 
     216                device = track.view.selected_device 
     217                 
     218                if device != None: 
     219                    if device.parameters[0].value == 1: 
     220                        device.parameters[0].value = 0 
     221                    else: 
     222                        device.parameters[0].value = 1         
     223                         
     224        elif page == 5:  
     225            if type == 'push': 
     226                self.log("HI") 
     227                if val == 1: 
     228                    p = self.tracks()[self.device[0]].devices[self.device[1]].parameters 
     229                     
     230                    if id < 6: 
     231                        pid = id + (self.x_offset*5) 
     232                        self.xy(0, pid) 
     233                             
     234                    else: 
     235                        pid = id + (self.y_offset*5) - 5 
     236                        self.xy(1, pid) 
     237                                 
     238                    self.update_labels() 
     239                     
     240            elif type == '2nav': 
     241                if val == 1: 
     242                    if id == 2: 
     243                        self.x_offset += 1 
     244                         
     245                    elif id == 1: 
     246                        if self.x_offset > 0: 
     247                            self.x_offset -= 1 
     248                             
     249                    elif id == 4: 
     250                        self.y_offset += 1 
     251                         
     252                    elif id == 3: 
     253                        if self.y_offset > 0: 
     254                            self.y_offset -= 1                 
     255                     
     256                    self.update_labels() 
     257                     
     258            elif type == 'nav': 
     259                if val == 1: 
     260                    if id == 1: 
     261                        self.sel_track_left() 
     262                    elif id == 2: 
     263                        self.sel_track_right() 
     264                    elif id == 3: 
     265                        self.device_left() 
     266                    elif id == 4: 
     267                        self.device_right() 
     268                    elif id == 5: 
     269                        file = os.path.expanduser('~') + '/livecontrol_to_xy.pkl' 
     270                        if os.path.exists(file) and os.path.isfile(file): 
     271                            pkl = open(file, 'rb') 
     272                            self.device_params = pickle.load(pkl) 
     273                            pkl.close() 
     274                             
     275                            self.update = 6 
     276                            self.update_labels() 
     277                            self.oscServer.sendOSC('/5/title', 'Config Loaded...') 
     278                             
     279                    elif id == 6: 
     280                        file = os.path.expanduser('~') + '/livecontrol_to_xy.pkl' 
     281                        pkl = open(file, 'wb') 
     282                        pickle.dump(self.device_params, pkl) 
     283                        pkl.close() 
     284                             
     285                        self.oscServer.sendOSC('/5/title', 'Config Saved...') 
     286                        self.update = 6 
     287                             
     288            elif type == 'xy': 
     289                x = self.xy(0) 
     290                y = self.xy(1) 
     291                 
     292                if x != None and y != None: 
     293                    px = self.tracks()[self.device[0]].devices[self.device[1]].parameters[x] 
     294                    py = self.tracks()[self.device[0]].devices[self.device[1]].parameters[y] 
     295                     
     296                    px.value = (xy[1] * (px.max - px.min)) + px.min 
     297                    py.value = (xy[0] * (py.max - py.min)) + py.min 
     298                 
     299    def device_left(self): 
     300        track = self.song().view.selected_track 
     301        did   = self.tuple_idx(track.devices, track.view.selected_device) 
     302         
     303        if did > 0: 
     304            self.song().view.select_device(track.devices[did - 1])     
     305             
     306    def device_right(self): 
     307        track = self.song().view.selected_track 
     308        did   = self.tuple_idx(track.devices, track.view.selected_device) 
     309         
     310        if len(track.devices) > did + 1: 
     311            self.song().view.select_device(track.devices[did + 1]) 
     312                             
     313    def xy(self, xy, pid = None): 
     314        if pid == None: 
     315            if self.device_params.has_key(self.device[0]): 
     316                if self.device_params[self.device[0]].has_key(self.device[1]): 
     317                    return self.device_params[self.device[0]][self.device[1]][xy] 
     318                     
     319        else: 
     320            p = self.tracks()[self.device[0]].devices[self.device[1]].parameters 
     321             
     322            if pid < len(p): 
     323                arr = [1,1] 
     324                arr[xy] = pid 
     325             
     326                if self.device_params.has_key(self.device[0]): 
     327                    if self.device_params[self.device[0]].has_key(self.device[1]): 
     328                        self.device_params[self.device[0]][self.device[1]][xy] = pid 
     329                    else: 
     330                        self.device_params[self.device[0]][self.device[1]] = arr 
    154331                else: 
    155                     self.tracks()[self.device[0]].devices[self.device[1]].parameters[0].value = 1 
    156      
    157         if type == 'rotary': 
    158             params = self.tracks()[self.device[0]].devices[self.device[1]].parameters 
    159              
    160             if id < len(params): 
    161                 p = params[id] 
    162                  
    163                 newval = (val * (p.max - p.min)) + p.min             
    164                 p.value = newval 
    165                  
    166         elif type == 'nav': 
    167             if val == 1: 
    168                 # Track Right 
    169                 if id == 2: 
    170                     self.sel_track_right() 
    171  
    172                 # Track Left 
    173                 elif id == 1: 
    174                     self.sel_track_left() 
    175                          
    176                 # Device Right 
    177                 elif id == 4: 
    178                     track = self.song().view.selected_track 
    179                     did   = self.tuple_idx(track.devices, track.view.selected_device) 
    180                      
    181                     if len(track.devices) > did + 1: 
    182                         self.song().view.select_device(track.devices[did + 1]) 
    183  
    184                 # Device Left 
    185                 elif id == 3: 
    186                     track = self.song().view.selected_track 
    187                     did   = self.tuple_idx(track.devices, track.view.selected_device) 
    188                      
    189                     if did > 0: 
    190                         self.song().view.select_device(track.devices[did - 1]) 
    191                  
    192                 # Bank Up 
    193                 elif id == 6: 
    194                     self.bank = self.bank + 1 
    195                     self.update_params() 
    196  
    197                 # Bank Down 
    198                 elif id == 5: 
    199                     if self.bank > 0: 
    200                         self.bank = self.bank - 1 
    201                         self.update_params() 
    202                          
    203         elif type == 'toggle': 
    204             # Device On/Off 
    205             track = self.song().view.selected_track 
    206             device = track.view.selected_device 
    207              
    208             if device != None: 
    209                 if device.parameters[0].value == 1: 
    210                     device.parameters[0].value = 0 
     332                    self.device_params[self.device[0]] = { self.device[1]: arr } 
     333                     
     334    def update_labels(self): 
     335        if self.device[1] < len(self.tracks()[self.device[0]].devices): 
     336            device = self.tracks()[self.device[0]].devices[self.device[1]] 
     337         
     338            self.oscServer.sendOSC('/5/title', str(self.tracks()[self.device[0]].name) + ": " + str(device.name)) 
     339         
     340            for i in range(5): 
     341                x = i + (self.x_offset*5) + 1 
     342                y = i + (self.y_offset*5) + 1 
     343                 
     344                if x < len(device.parameters): 
     345                    self.oscServer.sendOSC('/5/label' + str(i+1), self.trunc_string(str(device.parameters[x].name).strip(), 12)) 
    211346                else: 
    212                     device.parameters[0].value = 1         
     347                    self.oscServer.sendOSC('/5/label' + str(i+1), " ") 
     348                     
     349                if y < len(device.parameters): 
     350                    self.oscServer.sendOSC('/5/label' + str(i+6), self.trunc_string(str(device.parameters[y].name).strip(), 12)) 
     351                else: 
     352                    self.oscServer.sendOSC('/5/label' + str(i+6), " ") 
     353                 
     354            x = self.xy(0) 
     355            y = self.xy(1) 
     356                     
     357            if x: 
     358                self.oscServer.sendOSC('/5/paramx', str(device.parameters[x].name)) 
     359                self.oscServer.sendOSC('/5/paramy', str(device.parameters[y].name)) 
     360                 
     361            else: 
     362                self.oscServer.sendOSC('/5/paramx', " ") 
     363                self.oscServer.sendOSC('/5/paramy', " ") 
     364                 
     365        else: 
     366            self.oscServer.sendOSC('/5/paramx', " ") 
     367            self.oscServer.sendOSC('/5/paramy', " ")    
     368             
     369            self.oscServer.sendOSC('/5/title', str(self.tracks()[self.device[0]].name) + ": No Device Selected")                    
     370 
     371            for i in range(5): 
     372                self.oscServer.sendOSC('/5/label' + str(i+1), " ") 
     373                self.oscServer.sendOSC('/5/label' + str(i+6), " ") 
     374             
     375        self.update_xy() 
     376             
     377    def update_xy(self): 
     378        x = self.xy(0) 
     379        y = self.xy(1) 
     380         
     381        if x != None and y != None: 
     382            device = self.tracks()[self.device[0]].devices[self.device[1]] 
     383             
     384            xp = device.parameters[x] 
     385            xval = (xp.value-xp.min)/(xp.max - xp.min) 
     386             
     387            yp = device.parameters[y] 
     388            yval = (yp.value-yp.min)/(yp.max - yp.min) 
     389             
     390            self.oscServer.sendOSC('/5/xy1', (yval, xval)) 
     391 
     392        else: 
     393            self.oscServer.sendOSC('/5/xy1', (0,0)) 
    213394             
    214395    def track_change(self): 
     
    254435         
    255436    def do_bg(self): 
    256         pass 
     437        if self.update > 0: 
     438            self.update -= 1 
     439             
     440        if self.update == 1: 
     441            self.update_labels() 
    257442     
    258443    def do_update(self): 
  • trunk/LiveControl_TO/LiveControl.py

    r76 r77  
    7171            receive  = 5000 
    7272             
     73        try: 
     74            ipad = int(config.get("LiveControl", "ipad")) 
     75        except: 
     76            ipad = 0 
     77             
     78        if ipad == 1: 
     79            self.height = 9 
     80             
    7381        self.oscServer = RemixNet.OSCServer(remote, send, RemixNet.get_ip(), receive) 
    7482         
    7583        for j in range(1,9): 
    76             self.log('/1/rotary' + str(j)) 
     84            self.oscServer.callbackManager.add(self.button_press, '/1/stop' + str(j)) 
    7785            self.oscServer.callbackManager.add(self.button_press, '/3/rotary' + str(j)) 
    7886            self.oscServer.callbackManager.add(self.button_press, '/2/fader' + str(j)) 
     
    9199            self.oscServer.callbackManager.add(self.page_change, '/'+str(i)) 
    92100             
    93             for j in range(1,7): 
     101            for j in range(1,8): 
    94102                self.oscServer.callbackManager.add(self.button_press, '/'+str(i)+'/nav' + str(j)) 
     103                self.oscServer.callbackManager.add(self.button_press, '/'+str(i)+'/2nav' + str(j)) 
    95104               
    96105        for i in range(1,70): 
     
    98107            self.oscServer.callbackManager.add(self.button_press, '/6/toggle' + str(i)) 
    99108             
    100         for i in range(1,9): 
     109        for i in range(1,11): 
    101110            self.oscServer.callbackManager.add(self.button_press, '/4/push' + str(i)) 
     111            self.oscServer.callbackManager.add(self.button_press, '/5/push' + str(i)) 
     112                     
     113        self.oscServer.callbackManager.add(self.button_press, '/5/xy1') 
    102114                     
    103115        self.mode = 1 
     
    135147         
    136148    def button_press(self, msg): 
    137         if msg[0].find('multifader') > -1: 
     149        if msg[0].find('xy') > -1: 
     150            m = re.match('/(\d+)/(\w+?)(\d+)', msg[0]) 
     151 
     152            for prog in self.prog: 
     153                if int(m.group(1)) in prog.pageid: 
     154                    prog.do_button_press(int(m.group(1)), m.group(2), int(m.group(3)), 0, [msg[2], msg[3]]) 
     155             
     156        elif msg[0].find('multifader') > -1: 
    138157            m = re.match('/(\d+)/(\w+?)(\d+)/(\d+)', msg[0]) 
    139158            #self.log("page: " + str(m.group(1)) + "type: " + m.group(2) + " id:" + str(m.group(3)) + " val:" + str(msg[2]) + "[" + str(m.group(4)) + ",0]") 
     
    200219    def build_midi_map(self, midi_map_handle): 
    201220        for i in range(len(self.prog)): 
    202             self.prog[i].do_refresh_state() 
     221            self.prog[i].do_refresh_state()          
    203222 
    204223        def send_midi(self, midi_bytes): 
  • trunk/LiveControl_TO/Sequencer.py

    r73 r77  
    187187 
    188188    def default_labels(self): 
    189         self.oscServer.sendOSC('/4/label1', 'Left') 
    190         self.oscServer.sendOSC('/4/label2', 'Right') 
    191         self.oscServer.sendOSC('/4/label3', 'Down') 
    192         self.oscServer.sendOSC('/4/label4', 'Up') 
    193         self.oscServer.sendOSC('/4/label5', 'Zoom-') 
    194         self.oscServer.sendOSC('/4/label6', 'Zoom+') 
     189        self.oscServer.sendOSC('/4/nlabel1', 'Left') 
     190        self.oscServer.sendOSC('/4/nlabel2', 'Right') 
     191        self.oscServer.sendOSC('/4/nlabel3', 'Down') 
     192        self.oscServer.sendOSC('/4/nlabel4', 'Up') 
     193        self.oscServer.sendOSC('/4/nlabel5', 'Zoom-') 
     194        self.oscServer.sendOSC('/4/nlabel6', 'Zoom+') 
    195195 
    196196    def menu2_labels(self): 
    197         self.oscServer.sendOSC('/4/label1', 'Left') 
    198         self.oscServer.sendOSC('/4/label2', 'Right') 
    199         self.oscServer.sendOSC('/4/label3', 'Down') 
    200         self.oscServer.sendOSC('/4/label4', 'Up') 
    201         self.oscServer.sendOSC('/4/label5', 'Fold') 
     197        self.oscServer.sendOSC('/4/nlabel1', 'Left') 
     198        self.oscServer.sendOSC('/4/nlabel2', 'Right') 
     199        self.oscServer.sendOSC('/4/nlabel3', 'Down') 
     200        self.oscServer.sendOSC('/4/nlabel4', 'Up') 
     201        self.oscServer.sendOSC('/4/nlabel5', 'Fold') 
    202202         
    203203        if self.sel_clip != None: 
    204204            if self.sel_clip.is_playing: 
    205                 self.oscServer.sendOSC('/4/label6', 'Stop') 
    206             else: 
    207                 self.oscServer.sendOSC('/4/label6', 'Start') 
     205                self.oscServer.sendOSC('/4/nlabel6', 'Stop') 
     206            else: 
     207                self.oscServer.sendOSC('/4/nlabel6', 'Start') 
    208208        else: 
    209             self.oscServer.sendOSC('/4/label6', 'Start') 
     209            self.oscServer.sendOSC('/4/nlabel6', 'Start') 
    210210 
    211211    def do_button_press(self, page, type, id, val, xy = []): 
     
    214214            self.update_vel(self.last_note, self.pos(xy[0]-1), val*127.0)             
    215215         
    216         elif type == 'push': 
     216        elif type == 'nav': 
    217217            if id == 7: 
    218218                if val == 1: 
  • trunk/LiveControl_TO/TrackControl.py

    r73 r77  
    190190 
    191191    def update_tracks(self): 
    192         for i in range(self.width):  
     192        for i in range(self.width-1):  
    193193            if i < self.twidth: 
    194194                tr = i + self.track  
     
    197197            else: 
    198198                for j in range(7): 
    199                     self.oscServer.sendOSC('/6/toggle' + str((j*7)+i+1), 0) 
    200                      
    201                 self.oscServer.sendOSC('/6/label' + str(i+1), " ")                             
     199                    self.oscServer.sendOSC('/6/toggle' + str((j*(self.width-1))+i+1), 0) 
     200                     
     201                self.oscServer.sendOSC('/6/label' + str(i+1), " ") 
    202202         
    203203    def update_track(self, tr, i): 
     
    233233                    elif id == 2: 
    234234                        self.track_right() 
     235                         
     236                    self.update_tracks() 
    235237         
    236238            elif type == 'toggle': 
  • trunk/LiveControl_TO/livecontrol_to.txt

    r73 r77  
    33send = 5001 
    44receive = 5000 
     5ipad = 0 
Note: See TracChangeset for help on using the changeset viewer.