46 lines
1.4 KiB
Python
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!') |