Files
ableton-mcp-ai/AbletonMCP_AI/MCP_Server/tofix.md
renato97 6ec8663954 Initial commit: AbletonMCP-AI complete system
- MCP Server with audio fallback, sample management
- Song generator with bus routing
- Reference listener and audio resampler
- Vector-based sample search
- Master chain with limiter and calibration
- Fix: Audio fallback now works without M4L
- Fix: Full song detection in sample loader

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 22:53:10 -03:00

4.3 KiB

🛠️ TOFIX — Pendientes del MCP AbletonMCP_AI

Última revisión: 2026-03-22


🔴 Crítico (bloquean funcionalidad)

(Ninguno actualmente — todos los errores de runtime F821/F841 han sido corregidos)


🟠 Alta Prioridad (lint / calidad de código)

Archivos con permisos bloqueados por Windows ACL

Estos archivos tienen permisos de escritura restringidos por la instalación de Ableton. Para editarlos necesitás abrir el editor / terminal como Administrador.

Archivo Línea Error Descripción
audio_analyzer.py 317 F401 struct importado pero nunca usado
role_matcher.py 12 F401 random importado pero nunca usado (se importa inline donde se necesita)
role_matcher.py 13 F401 typing.Set importado pero nunca usado
sample_manager.py 13 F401 os importado pero nunca usado (reemplazado por pathlib)
sample_manager.py 17 F401 shutil importado pero nunca usado
sample_manager.py 19 F401 typing.Set importado pero nunca usado
sample_manager.py 24 F401 time importado pero nunca usado
sample_manager.py 28/32 F401 audio_analyzer.quick_analyze importado pero nunca llamado
sample_manager.py 292 F841 file_hash asignado pero nunca usado

Cómo fixear:

# Desde PowerShell como Administrador:
icacls "C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\MCP_Server\audio_analyzer.py" /grant Users:F
icacls "C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\MCP_Server\role_matcher.py" /grant Users:F
icacls "C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\MCP_Server\sample_manager.py" /grant Users:F

🟡 Media Prioridad (errores de análisis estático Pyre2)

Estos NO son errores reales en Python — son limitaciones del motor de análisis Pyre2 con código dinámico. No causan ningún problema en runtime.

Tipo Patrón Cantidad estimada Causa real
+= no soportado defaultdict + int ~40+ Pyre2 no infiere defaultdict correctamente
* no soportado dict[str, float] * float ~10+ Pyre2 confunde el tipo de retorno de .get()
in no soportado str in set() ~5+ Pyre2 pierde el tipo de set después de asignación
round() overload round(x, 3) ~6 Bug conocido de Pyre2 con ndigits != None
Cannot index dict[Literal[...]] ~4 Pyre2 infiere dict demasiado estricto

Impacto real: Ninguno. Todos son falsos positivos de inferencia de tipos.


🟢 Baja Prioridad (mejoras arquitecturales)

Área Descripción
sample_manager.py file_hash se calcula pero no se usa para detectar cambios reales — actualmente usa st_mtime. Podría usarse para comparación más robusta.
reference_listener.py _compute_segment_features referenciado pero el método no está visible en el scope de Pyre2 — verificar que está en la misma clase.
reference_listener.py str[::step] slice con step — Pyre2 reporta error pero es Python válido. Documentar o usar cast().
song_generator.py Variables materialized_track_roles y event_track_roles son set pero nunca se leen después de ser llenadas — revisar si son necesarias.
sample_manager.py SampleType = None como fallback cuando audio_analyzer no se puede importar — podría causar TypeError si se usa como clase.

Ya corregido en esta sesión

Archivo Fix
song_generator.py:2691 kind_kind (F841)
song_generator.py:4144 root_note_root_note (F841)
song_generator.py:3265 Set[str]set (F821 — Set no importado)
song_generator.py:3292 Set[str]set (F821 — Set no importado)
reference_listener.py:243 falling_falling (F841)
reference_listener.py:318 smoothed_onset_smoothed_onset (F841)
reference_listener.py:343 total_frames_total_frames (F841)
reference_listener.py:2594 'Sample' tipo hint → Any (F821 — Sample no definido en scope)
reference_listener.py:2600 'Sample' tipo hint → Any (F821 — Sample no definido en scope)
opencode.json Creado con MCP registrado y todos los permisos en allow