import socket import json def send_command(cmd_type, params): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(30) try: sock.connect(('127.0.0.1', 9877)) request = json.dumps({'type': cmd_type, 'params': params}) sock.sendall((request + '\n').encode('utf-8')) response = b'' while True: chunk = sock.recv(4096) if not chunk: break response += chunk if b'\n' in chunk: break return json.loads(response.decode('utf-8')) except Exception as e: return {'status': 'error', 'message': f'Socket error: {str(e)}'} finally: sock.close() log_path = r'C:\Users\ren\Documents\Ableton\Logs\percussion_group.txt' tracks = { 26: 'PERC LOOP 1', 27: 'PERC LOOP 2', 28: 'TOP LOOP', 29: 'SHAKER', 30: 'CONGA', 31: 'COWBELL' } print('Setting input routing to "No Input" for percussion tracks...') for track_idx, name in tracks.items(): result = send_command('set_track_input_routing', {'index': track_idx, 'routing_name': 'No Input'}) print(f' {name} (track {track_idx}): {result.get("status", "unknown")}') with open(log_path, 'a', encoding='utf-8') as f: f.write('\n=== INPUT ROUTING SET ===\n') for track_idx, name in tracks.items(): f.write(f'{name} (track {track_idx}): No Input\n') print('\nDone!')