| 
					
				 | 
			
			
				@@ -44,6 +44,100 @@ def _add_space(frame,r,c): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     c=0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return r,c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#MAIN.meta.fx3_grid["ATTR:1"].val("PAN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#MAIN.meta.fx3_grid["TYPE:1"].val("COS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def basic(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for i in range(4): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "GRP:1" #.format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("POS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "ATTR:1" #.format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("PAN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "ATTR:2" #.format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("TILT") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "SIZE:{}".format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(255) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["init_value"] = 255 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["max"] = 512 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["cycle"] = [0,127,255] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "SPEED:{}".format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["init_value"] = 10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["max"] = 255 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["cycle"] = [0,5,25,30,100,255] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "OFFSET:{}".format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(100) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["init_value"] = 100 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["inc"] = 25 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "WIDTH:{}".format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(25) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["init_value"] = 25 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["max"] = 100 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["inc"] = 5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "START:{}".format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["init_value"] = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["max"] = 255 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["inc"] = 5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "SHUFFLE:{}".format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["init_value"] = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["max"] = 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "DIR:{}".format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["init_value"] = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["max"] = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "INVERT:{}".format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["init_value"] = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].data["max"] = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def circle(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    basic() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    k = "GRP:1" #.format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    MAIN.meta.fx3_grid[k].val("POS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    k = "ATTR:1" #.format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    MAIN.meta.fx3_grid[k].val("PAN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    k = "ATTR:2" #.format(i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    MAIN.meta.fx3_grid[k].val("TILT") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+circle() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def _refresh_fx3(): #frame,c,r,gui,mode="FX"): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    while 1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ct  = MAIN.meta.fx3 #moves 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        prm = MAIN.meta.fx3_prm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        #MAIN.meta.fx3_grid["ATTR:1"].val("PAN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        #print("_-| "*22) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        #MAIN.meta.fx3_grid["ATTR:1"].val("PAN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        #MAIN.meta.fx3_grid["TYPE:1"].val("COS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for comm in ct.labels: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #comm = comm.strip() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if comm not in ct.elem: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            b = ct.elem[comm] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if comm in MAIN.meta.fx3_grid: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                v2 = MAIN.meta.fx3_grid[comm].val() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                v1 = b["text"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if "ATTR" in comm: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    print([comm,v1,v2]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if str(v2) != str(v1): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    print([comm,b,v1,v2]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    b["text"] = str(v2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        time.sleep(4) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def _draw_fx3(frame,c,r,gui,mode="FX"): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ct  = MAIN.meta.fx3 #moves 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     prm = MAIN.meta.fx3_prm 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -80,7 +174,7 @@ def _draw_fx3(frame,c,r,gui,mode="FX"): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             b["text"] = comm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             b["bg"] = "#ffbf00" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if comm == "PLAY":  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if comm == "START":  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             b["bg"] = "orange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             b.config(activebackground="#dd0") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -380,12 +474,6 @@ def _refr_loop2(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if comm.startswith("ATTR:"): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     fx3_line[comm] = 1  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MAIN.meta.fx3_grid["GRP:1"].val("RGB") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            print([0,MAIN.meta.fx3_grid["GRP:1"].data]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            print("_ _ "*22) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MAIN.meta.fx3_grid["ATTR:1"].val("PAN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MAIN.meta.fx3_grid["TYPE:1"].val("COS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            print([1,MAIN.meta.fx3_grid["ATTR:1"].data]) #.val()]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             print("  ER7R mc...",e) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -395,4 +483,6 @@ def _refr_loop2(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 thread.start_new_thread(_refr_loop,()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 thread.start_new_thread(_refr_loop2,()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+thread.start_new_thread(_refresh_fx3,()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 root.mainloop() 
			 |