OmniDAW API pozwala innym programom sterować Omni: tworzyć tory, zapisywać nuty i akordy, ustawiać efekty, automatyzować parametry, odsłuchiwać wynik, masterować go i eksportować. Pierwszym użytkownikiem jest asystent AI (przez Model Context Protocol, MCP), ale API to zwykły JSON, więc skrypty, kontrolery sprzętowe, narzędzia testowe i Twoje własne programy korzystają z niego tak samo.
Ta sekcja zawiera wszystko, czego potrzebuje programista: pojęcia i pierwsze wywołanie na tej stronie, protokół, pełną referencję metod, poradnik budowy własnego serwera MCP, biblioteki klienckie, działające receptury oraz bezpieczeństwo i licencję.
Darmowe do budowania. API jest w całości opisane na tych stronach, a przykładowy kod (klient Pythona, przykładowy serwer MCP, małe klienty w Node.js i Ruście) możesz pobrać i używać za darmo na licencji MIT. Własny serwer MCP lub klienta dla Omni możesz zbudować i rozpowszechniać bez pytania o zgodę. Pobierz przykłady (zip).
Jak to się składa
Klient AI (Claude Desktop, Claude Code, Cursor, ...)
| MCP przez stdio
v
omni-mcp serwer MCP: narzędzia, prompty i zasoby
| zrobione z katalogu metod
| OmniDAW API: JSON-RPC 2.0, jeden obiekt w linii, TCP 127.0.0.1
v
Omni wątek nasłuchu -> wątek UI -> ten sam kod
| co kliknięcie na ekranie
| komendy silnika
v
silnik audio nietknięty: API nigdy nie działa na wątku audio
Całość trzymają cztery idee:
- Jeden katalog. Każda możliwość to metoda z opisem napisanym dla modelu, schematem JSON jej parametrów i gotowym przykładem. Narzędzia MCP, dokument
api.methodsi referencja są z niego generowane. - Ta sama droga co użytkownik. Wywołanie robi to, co odpowiadające mu kliknięcie. Działa na wątku UI, więc wątek audio nigdy nie jest blokowany.
- Wszystko odwracalne. Każda edycja to jeden krok w Historii Cofania Omni z etykietą
API: .... Użytkownik cofa to, co zrobił asystent, przez Ctrl+Z, a asystent może sam wywołaćedit.undo. - Uszy przed rękami. Wszystko, co zmienia dźwięk, można też zmierzyć: mierniki, głośność, widmo, szerokość stereo, maskowanie. Agent może sprawdzić własną pracę.
Co można zrobić
| Obszar | Przykłady |
|---|---|
| Komponowanie | Skale, akordy i progresje w 18 stylach z prowadzeniem głosów; melodie w 12 stylach; harmonizacja melodii; wzorce perkusji; efekty i generatory MIDI zrenderowane do nut |
| Aranżacja | Budowa utworu ze scen, układanie i edycja klipów na osi czasu, markery, pętle, mapa tempa i zmiany metrum, groove |
| Brzmienie | Instrumenty wbudowane i wtyczki wraz z presetami, każdy parametr instrumentów i efektów, ścieżki automatyki, wysyłki i returny |
| Miks | Łańcuchy efektów na torach, returnach i masterze; mierniki na żywo; nagranie i analiza mastera lub toru; porównanie dwóch nagrań pod kątem maskowania |
| Mastering | Cele dostawy (Spotify, Apple Music, YouTube, EBU R128 i inne), werdykty, łańcuch masteringowy zbudowany z pomiaru, eksport do WAV |
| Audio | Import audio, cięcie sampla i granie wzorców oraz melodii ze slice'ów, transkrypcja audio na nuty, rozdzielanie miksu na stemy |
Metod jest 102 w 24 domenach. Referencja wymienia wszystkie.
Włącz
API jest domyślnie wyłączone, bo otwiera port na Twoim komputerze (osiągalny tylko z Twojej maszyny).
- W Omni otwórz Ustawienia, AI Create i włącz Enable OmniDAW API. Aby włączyć tylko na jedno uruchomienie, uruchom Omni z parametrem
--apialbo ustawOMNI_API=1. - Omni zapisuje w swoim folderze ustawień plik z numerem portu i świeżym tajnym tokenem,
endpoint.json:
| System | Folder ustawień |
|---|---|
| Windows | %APPDATA%\omni |
| macOS | ~/Library/Application Support/omni |
| Linux | $XDG_CONFIG_HOME/omni, a jeśli brak, ~/.config/omni |
Plik to api/endpoint.json w tym folderze i istnieje tylko wtedy, gdy Omni działa z włączonym API. Klienci czytają go, żeby znaleźć Omni; nic innego w sieci tego nie potrafi.
Pierwsze wywołanie
Najszybciej wejść przez klienta Pythona: jeden plik, który wymaga tylko niedawnego Pythona 3 (pobierz omnidaw.py):
from omnidaw import Omni
with Omni() as omni:
print(omni.session.info())
for track in omni.tracks.list():
print(track["index"], track["name"], track["kind"])
Za tym stoi jedna linia JSON na wywołanie. Tak wygląda to, co klient wysyła zwykłym połączeniem TCP do 127.0.0.1:
{"jsonrpc":"2.0","id":2,"method":"session.info"}
i co wraca:
{"jsonrpc":"2.0","id":2,"result":{"api_version":"0.21.0","app_version":"0.1.0","dirty":false,"engine_running":true,"project_name":"My Song","project_path":"C:\\Music\\My Song.omni","return_bus_count":1,"sample_rate":48000,"scene_count":8,"track_count":5}}
(Wyniki rosną z nowymi wersjami; klient powinien ignorować pola, których nie zna.) Przed pierwszym wywołaniem połączenie musi przywitać się tokenem; uścisk dłoni pokazuje strona o protokole. Klient Pythona robi to za Ciebie.
Podłącz asystenta AI
Omni zawiera serwer MCP, omni-mcp, zbudowany z tego samego katalogu. Leży obok pliku wykonywalnego Omni. W Ustawieniach, AI Create, Copy MCP config daje wpis do wklejenia w konfiguracji asystenta:
{
"mcpServers": {
"omni": { "command": "C:\\path\\to\\omni-mcp.exe" }
}
}
Dla Claude Code: claude mcp add omni -- C:\path\to\omni-mcp.exe.
Na Linuksie Omni jest AppImage, a omni-mcp jest w środku. Uruchom AppImage z --mcp, by wystartować serwer MCP (./Omni-x86_64.AppImage --mcp). Copy MCP config daje wtedy wpis ze ścieżką Twojego AppImage i tym parametrem; dla Claude Code: claude mcp add omni -- /path/to/Omni-x86_64.AppImage --mcp.
Serwer uruchamia się także wtedy, gdy Omni nie działa; narzędzia odpowiadają wtedy czytelnym błędem, a następne wywołanie łączy się samo, gdy tylko Omni wstanie, również po jego restarcie. Serwer oferuje też gotowe prompty (przegląd miksu, kontrola głośności, kontrola maskowania, mastering pod cel, aranżacja utworu, komponowanie pętli) i zasoby tylko do odczytu.
Chcesz inny serwer albo serwer w innym języku? Do tego służy Budowa serwera MCP.
Wersje
API ma wersję major.minor.patch. Klient zbudowany dla starszej wersji minor działa dalej, bo nowe wersje tylko dodają metody i pola. Omni przyjmuje każdego klienta z tym samym numerem major i wersją nie nowszą od własnej. Aktualna wersja: 0.21.
| Wersja | Dodano |
|---|---|
| 0.1 | Fundament: sesja, transport, tory, instrumenty, klipy sesji, mierniki na żywo, cofnij i ponów |
| 0.2 | Teoria muzyki i progresje, transformacje klipów, sceny, usuwanie torów |
| 0.3 | Zmiana instrumentu, przesuwanie torów, nazwy scen, długość klipu, analiza akordów i tonacji klipu |
| 0.4 | Łańcuchy efektów na torach, returnach i masterze; mikser (wysyłki, returny, master) |
| 0.5 | Słuchanie: zadania, nagranie i analiza mastera lub toru, porównanie maskowania |
| 0.6 | Mastering: cele dostawy, werdykty, łańcuch masteringowy, analiza plików, eksport do WAV |
| 0.7 | Aranżacja: utwory ze scen, klipy na osi czasu, markery, pętla |
| 0.8 | Wzorce perkusji dla syntezatora perkusji TOMNIC |
| 0.9 | Każdy parametr instrumentów i efektów, także wtyczek |
| 0.10 | TOMNIC na osi czasu, zapis projektu |
| 0.11 | Tworzenie i usuwanie szyn return, etykiety opcji parametrów wyboru |
| 0.12 | Ścieżki automatyki |
| 0.13 | Edycja, kopiowanie i usuwanie pojedynczych klipów na osi czasu |
| 0.14 | Instrumenty-wtyczki i ich presety |
| 0.15 | Generator melodii, harmonizacja, duplikowanie torów, ekspresja nut |
| 0.16 | Efekty MIDI, wtyczki efektowe na każdym łańcuchu |
| 0.17 | Szybki eksport offline, stemy, dithering |
| 0.18 | Mapa tempa, zmiany metrum, groove |
| 0.19 | Import audio, transkrypcja, rozdzielanie stemów, sampler i slicer |
| 0.20 | Capabilities w uścisku dłoni, klient Python |
| 0.21 | Renderowanie efektów i generatorów MIDI do klipów |
Co dalej
- Chcesz tylko spróbować? Przejdź receptury: pętla akordów z melodią, przemiatanie filtra, pętla masteringowa, krojenie breaka.
- Budujesz serwer MCP? Przeczytaj Budowę serwera MCP, gdzie jest kompletny działający serwer w około 110 liniach.
- Piszesz klienta w innym języku? Protokół jest mały: gniazda i JSON.
- Szukasz metody? Referencja zawiera każdy parametr i gotowe zapytanie dla każdej metody.
Practical step-by-step guides: Creating your first drum beat, bassline, recording melodies with Scale Fold, chaotic modulation, and track export.
The OmniDAW API on the wire: discovery, handshake, requests and errors, units, references, effects and undo, jobs, limits and versioning.
