🔌 Wtyczki VST3 / CLAP / LV2 / VST2 i Tryby Hostowania
Omni DAW umożliwia używanie zewnętrznych wtyczek efektowych i syntezatorów w standardach VST3, CLAP, LV2 oraz (dla starszych bibliotek) VST2. Aby zagwarantować zarówno niskie opóźnienia, jak i stabilność bez ryzyka zamknięcia aplikacji przez wadliwą wtyczkę, Omni DAW oferuje dwa niezależne tryby hostowania:
1. Dwa Tryby Hostowania Wtyczek (Hosting Modes)
W ustawieniach aplikacji (Settings → Plugins) możesz wybrać domyślny tryb pracy dla wczytywanych wtyczek:
┌───────────────────────────────────────────────┐
│ Omni DAW Audio Engine │
└───────┬───────────────────────────────┬───────┘
│ │
[ Tryb 1: IN-PROCESS ] [ Tryb 2: OUT-OF-PROCESS SANDBOX ]
│ │
┌─────────────────────▼────────────────┐ ┌─────────▼──────────────────┐
│ Wątek Audio + Circuit Breaker │ │ Shared Memory IPC │
│ (Bezpośrednia pamięć, 0 latency) │ │ (Wyizolowany proces) │
└──────────────────────────────────────┘ └────────────────────────────┘
Tryb 1: In-Process z Ochroną Circuit-Breaker
- Zasada działania: Wtyczka przetwarza dźwięk bezpośrednio wewnątrz głównego procesu audio DAW.
- Zalety: Najniższe możliwe opóźnienia, brak kopiowania buforów przez magistralę IPC.
- System Zabezpieczeń Circuit-Breaker:
- Każde wywołanie przetwarzania zapisuje bezblokujący znacznik czasu.
- Dedykowany wątek Watchdog sprawdza co 25 ms, czy wtyczka nie przetwarza dłużej niż 100 ms.
- Po przekroczeniu tego limitu Circuit-Breaker natychmiast blokuje wtyczkę — dalsze wywołania zwracają ciszę zamiast wstrzymywać silnik audio, więc reszta projektu gra dalej bez przerwy.
Tryb 2: Out-of-Process Sandbox IPC
- Zasada działania: Wtyczka jest ładowana w osobnym, wyizolowanym procesie potomnym (
omni_plugin_host). - Izolacja awarii: Jeśli wtyczka spowoduje błąd pamięci, ulega awarii wyłącznie proces potomny — główna aplikacja Omni DAW, projekt i nagrane ścieżki pozostają nienaruszone. Dedykowany wątek watchdog wykrywa padnięty proces i automatycznie go restartuje ("wskrzeszenie") bez zatrzymywania silnika audio.
- Pamięć Współdzielona (Shared Memory): Ramki audio przekazywane są między procesami przez pamięć współdzieloną systemu operacyjnego. Synchronizacja odbywa się przez natywny futex (na Linuksie) lub aktywne oczekiwanie (spin-wait) na pozostałych platformach.
2. Skanowanie i Walidacja Wtyczek
Podczas skanowania folderów wtyczek Omni DAW stosuje bezpieczną procedurę sondowania:
- Sondowanie w krótkotrwałym procesie: Nowa wtyczka jest ładowana i testowana w osobnym, jednorazowym procesie skanującym — nigdy bezpośrednio w DAW.
- Kwarantanna i Czarna Lista (Blocklist): Jeśli wtyczka ulegnie awarii lub przekroczy limit czasu skanowania (15 sekund), zostaje automatycznie dodana do czarnej listy z podanym powodem (Crashed lub Timeout).
- Statusy Zaufania Wtyczek:
- Safe: wbudowane efekty/syntezatory oraz skrypty OmniScript.
- Trusted: zewnętrzna wtyczka zweryfikowana i zaakceptowana przez użytkownika.
- Blocklisted: wtyczka niestabilna, zablokowana.
- Unknown: nowo wykryta wtyczka — przy wczytywaniu projektu z takimi wtyczkami Omni pokaże okno z opcjami "Trust all & load", "Block all" lub "Skip" (decyzja dotyczy wszystkich oczekujących wtyczek w projekcie naraz).
3. Zarządzanie Wtyczkami
Zarządzanie hostowaniem wtyczek jest podzielone między dwa miejsca w interfejsie:
- Settings → Plugins: przełącznik domyślnego trybu hostowania (In-Process / Sandbox).
- Panel Przeglądarki → zakładka Plugins: lista folderów przeszukiwanych pod kątem wtyczek VST3/CLAP/LV2/VST2 (dodawana przyciskiem "+"), przycisk Scan uruchamiający skanowanie w tle, oraz przeglądarka wykrytych wtyczek gotowych do przeciągnięcia na ścieżkę.
A guide to the ScratchDeck player, ElevenLabs Sound FX integration, audio waveform editing, transient detection, and Slice-to-MIDI.
A manual for writing custom generative algorithms, MIDI processors, modulators, and simple DSP effects in the integrated OmniScript language.