Files
ableton-mcp-ai/AbletonMCP_AI/set_input_routing.py
2026-03-30 02:35:02 -03:00

46 lines
1.4 KiB
Python

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!')