§ Handleiding · Voor ontwikkelaars

Control Logic Pro met Python: wat werkt er echt?

Gepubliceerd augustus 2026

Om te beginnen het directe antwoord: Logic Pro heeft geen Python API. Geen scriptinterface, geen automatisering op projectniveau, geen plugin-SDK die de configuratie ondersteunt. Als " Logic besturen met Python" betekent dat je de draaiende app bestuurt zoals je een browser bestuurt met Selenium, dan bestaat die optie niet, bij geen enkele leverancier.

Maar de meeste mensen die deze vraag typen, hoeven de afspeelkop van Logic niet daadwerkelijk van de code te verplaatsen. Ze hebben een van de volgende drie programmatische dingen nodig: lezen Wat zit er in een Logic project? creëren een Logic project vanuit code, of transformeren één — en alle drie werken vandaag de dag, omdat ze aan het project werken. bestand in plaats van de actieve app.

Wat Apple je biedt (en waarom het dit niet is)

Logic levert precies één scriptinterface: ScripterEen MIDI -FX-plugin die JavaScript uitvoert binnen een kanaalstrip. Het ziet MIDI events die in realtime door die ene strip stromen, en verder niets — het kan de arrangementen niet lezen, geen track toevoegen of een andere regio beïnvloeden. Het is een creatieve MIDI -processor, geen automatiserings-API. Bovendien is het AppleScript-woordenboek van Logic zo goed als leeg, en macOS UI-scripting (gesimuleerde menuklikken) is iets dat bij elke update problemen oplevert. Geen van beide is een goede basis om tools op te bouwen.

Het oppervlak dat wél bestaat: het projectbestand

A .logicx is een macOS pakket — een map — waarvan de projectgegevens een niet-gedocumenteerd binair formaat hebben (de details staan in binnen het .logicx bestandsformaatDoseedo onderhoudt hiervoor een eigen parser en schrijver, beschikbaar via een eenvoudige HTTP API, waardoor "control Logic with Python" een alledaags begrip wordt. requests code:

import requests, time

API = "https://api.doseedo.com"
H = {"X-API-Key": "dsk_live_..."}  # doseedo.com/settings/api-keys

# 1 — presign, then upload the zipped .logicx project folder
r = requests.post(f"{API}/api/upload/r2/signed-url",
                  params={"filename": "MySong.zip",
                          "content_type": "application/zip"},
                  headers=H).json()
with open("MySong.zip", "rb") as f:
    requests.put(r["upload_url"], data=f,
                 headers={"Content-Type": "application/zip"})

# 2 — convert it (12 directions: logic|ableton|fl|reaper, any pair)
task = requests.post(f"{API}/api/convert", headers=H,
                     json={"source_key": r.get("path") or r.get("key"),
                           "direction": "logic2reaper",
                           "async": True}).json()["task_id"]

# 3 — poll, then download the finished project
while True:
    s = requests.get(f"{API}/api/convert/status",
                     params={"task": task}, headers=H).json()
    if s["status"] in ("done", "error"): break
    time.sleep(5)
out = requests.get(f"{API}/api/convert/result",
                   params={"task": task}, headers=H)
open("MySong_reaper.zip", "wb").write(out.content)

Dat voorbeeld zet Logic → REAPER opzettelijk om: een .rpp is platte tekstZodra de conversie is voltooid, kan je Python (of je AI-agent) de sessie als tekst parseren en bewerken — tracknamen, regioposities, MIDI, tempo — en vervolgens de omgekeerde richting uitvoeren. reaper2logicom een inheemse te krijgen .logicx Terug. Structurele bewerkingen blijven behouden in deze lus; automatisering, sends en plugin-status worden alleen volledig correct overgedragen bij de directe verbinding tussen Logic en Ableton, dus houd de tekst heen en weer voor arrangementwerk.

Een Logic project maken vanuit code

De andere richting vereist helemaal geen bronproject. POST /api/audio-to-session Neemt een geüploade mix en retourneert een native nummer. .logicx: afzonderlijke stems op benoemde tracks, een gedetecteerde tempokaart, optionele MIDI per stem en een akkoordbegeleidingstrack. Eén oproep, ongeveer vier minuten, en het artefact wordt geopend in Logic. audio-naar-sessie pagina laat zien wat er terugkomt.

Geeft u de voorkeur aan een agent boven rechtstreekse HTTP?

Dezelfde tools zijn beschikbaar als gehoste MCP-server: Claude Code, Claude Desktop of Cursor maken met één commando verbinding, waarna de agent zelf het uploaden, pollen en downloaden afhandelt.

De Doseedo MCP-server →

De eerlijke beslissingstabel

Veelgestelde vragen

Heeft Logic Pro een Python API?

Nee. Logic Pro biedt geen Python API, geen scripting op projectniveau en geen automatiseringsinterface. De ingebouwde Scripter-plugin is geschreven in JavaScript, werkt alleen binnen Logic en kan alleen MIDI events verwerken die door één kanaalstrip lopen; het kan het project niet lezen of wijzigen.

Kan Python een .logicx project lezen of schrijven?

Niet met een standaardbibliotheek — de projectgegevens in een .logicx Het is een niet-gedocumenteerd binair formaat. Wat momenteel werkt, is het aansturen van een parser via HTTP: upload het gezipte project en laat het opnieuw opbouwen in het formaat van een andere DAW, openen als een afspeelbare browsersessie, of bewerken via het platte tekstformaat van REAPER en vervolgens weer converteren.

Kan ik een Logic project maken vanuit code?

Ja, programmatisch, vanuit audio: één API-aanroep zet een mix om in een native audiobestand. .logicx met gescheiden stems op benoemde tracks, een tempokaart, optionele MIDI per stem en een akkoordengids. Het converteren van een .als, .flp of .rpp naar .logicx is ook één telefoontje.

En hoe zit het met AppleScript of UI-scripting?

Logic 's AppleScript-woordenboek is minimaal en UI-scripting betekent het simuleren van menuklikken — het werkt niet meer in verschillende versies en kan de interne werking van een project niet betrouwbaar beïnvloeden. Het is geen basis om op voort te bouwen.

Verwant