OMNi
Dokumentacja/Wtyczki i Zaawansowane

Wtyczki VST3 / CLAP / LV2 / VST2 i Tryby Hostowania

Przewodnik po uruchamianiu wtyczek w Omni DAW: tryb In-Process z zabezpieczeniem Circuit Breaker oraz pełny Sandbox IPC w procesie potomnym.

~3 min czytania
Oficjalny Podręcznik OMNI
Precyzja 960 PPQ

🔌 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:

code
                  ┌───────────────────────────────────────────────┐
                  │          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:

  1. Sondowanie w krótkotrwałym procesie: Nowa wtyczka jest ładowana i testowana w osobnym, jednorazowym procesie skanującym — nigdy bezpośrednio w DAW.
  2. 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).
  3. 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ę.