Build: 01caffa — 60 commitów od poprzedniego wpisu
🧠 OmniScript — własny język skryptowy Omni
Omni dostaje wbudowany język skryptowy OmniScript — lekki, deterministyczny, zaprojektowany specjalnie do sterowania logiką MIDI i modulacjami w czasie rzeczywistym.
Aktualny zakres działania:
MIDI FX — skrypt jako efekt MIDI w łańcuchu ścieżki: transformuje nuty, generuje akordy, filtruje eventy.
Modulator rack — skrypt jako źródło modulacji dla dowolnego parametru.
Track FX i Master FX — skrypt podpięty do łańcucha efektów audio.

Język obsługuje pętle while/for, funkcje użytkownika, sekcje @block i @sample (wykonywane odpowiednio raz na bufor i co próbkę). Panel parametrów renderuje suwaki DragValue dla zmiennych eksponowanych przez skrypt. Arp MIDI FX i modulator skryptowy poprawnie wykonują teraz sekcje @block/@sample.
🎚️ Modulator — nauka parametrów (Listen/Learn)
System modulacji dostał graficzny tryb nauki:
Kliknij Listen na dowolnym modulatorze → Omni zaczyna nasłuchiwać ruchu parametrów.
Dotknij pokrętła lub suwaka (w wbudowanych syntezatorach, efektach i zewnętrznych pluginach CLAP/VST3) → modulator automatycznie się do niego podpina.
Zakres modulacji jest zapamiętywany w momencie nauki i używany do prawidłowej denormalizacji wartości przy wysyłaniu eventów do syntezatorów.
Pikker docelowego parametru wyświetla teraz parametry pluginów ładowanych asynchronicznie — brak pustej listy po załadowaniu pluginu.
Step sequencer w roli modulatora zyskał synchronizację z beatem i wskaźnik aktywnego kroku.
🎹 Analizator akordów + przeciąganie do piano rolla
W piano rollu pojawił się panel analizy harmonicznej:
Automatyczne rozpoznawanie akordów z zaznaczonych nut (z analizą progresji).
Przeciągnij akord z panelu bezpośrednio na piano roll — nuty trafiają na właściwą pozycję z jednym ruchem.
Naprawiono błąd ucinania ostatniego akordu przy nagrywaniu piano rolla z Session View do aranżacji.
📑 Zakładki klipów w edytorze dolnym panelu
Dolny panel edytora (piano roll, step sequencer, euklides) zyskał zakładki klipów — analogicznie do istniejących zakładek w samplerze:
Każdy klip ścieżki ma własną zakładkę
[PR],[SS]lub[EU]w zależności od trybu.
Przełączanie między klipami nie wymaga klikania w aranżacji.
Narzędzie ołówek używa teraz
effective_slotdo prawidłowej selekcji klipów przy rozrysowywaniu w liniach (lanes) — eliminuje błędne przypisywanie nut do złych slotów.Generatory nut (
step_sequencer_to_notes,euclidean_to_notes) zostały przepisane tak, by dokładnie odwzorowywać silnik sesji: swing, prawdopodobieństwo, akordy, slide/tie, oktawy, velocity per linia.
🗂️ Przeglądarka plików z podglądem sampli
Nowa przeglądarka plików w dolnym panelu:
Drzewo katalogów z nawigacją po dysku.
Przeciągnij sample z przeglądarki bezpośrednio na sloty w Session Matrix.
Podgląd sampla: przycisk play/stop, regulacja głośności, pasek postępu odtwarzania — bez konieczności ładowania do projektu.
Przycisk przełączania przeglądarki widoczny zawsze w dolnym pasku, niezależnie od liczby ścieżek.
Naprawiono layout zakładki Samples — pełna wysokość obszaru przewijania, bez rozwijania panelu.

🔌 Przeglądarka pluginów — CLAP/VST3 i drag-drop
Właściwa kategoryzacja wtyczek CLAP i VST3 (instrumenty vs. efekty).
Przeciągnij efekt CLAP z przeglądarki bezpośrednio do łańcucha FX ścieżki.
🎛️ Bounce i eksport — udoskonalenia
Bounce per ścieżka (eksport audio i MIDI) dostępny dla wszystkich ścieżek instrumentalnych, nie tylko TOMiC. Przełącznik przy przycisku nagrywania, zapisywany w projekcie.
Wyjście hardware wyciszane podczas eksportu — bounce odbywa się w ciszy, bez przesyłania sygnału na kartę dźwiękową.
Wielosegmentowe klipy MIDI nagrywane z sesji trafiają teraz do aranżacji sekwencyjnie (w prawidłowej kolejności).
🎼 Splash screen przy starcie
Przy uruchomieniu Omni wyświetla teraz 3-sekundowy ekran powitalny z logiem projektu i płynnym fade-outem.
🔧 UI — panel boczny ścieżki (redesign)
Panel boczny każdej ścieżki przeszedł redesign:
Stała szerokość panelu — brak skakania layoutu przy różnych długościach nazw.
Przycisk instrumentu podświetlany gdy GUI pluginu jest otwarte.
Selektor sidechainu przeniesiony do okien FX (zamiast zajmować miejsce w panelu).
Nazwa instrumentu jest przycinana (
…) zamiast rozjeżdżać layout.
⚙️ Silnik audio — eliminacja RT violations (P0)
Pod maską odbyła się gruntowna praca nad jakością silnika audio:
Wyeliminowane naruszenia RT (real-time safety):
✅ Alokacje na wątku audio (heap) — wszystkie bufory pre-alokowane przed pierwszym callbackiem.
✅ Wszystkie
unwrap()w kodzie hosta i ścieżkach audio — zastąpione bezpiecznymi odpowiednikami.✅ Step-seq modulation: zakres parametru zapamiętywany w momencie nauki, denormalizacja przed emisją eventów.
Naprawy precyzji odtwarzania:
Klipy samplerowe w aranżacji live-linkowane do sesji — parametry filtra, obwiedni, strojenia aktualizują się w czasie rzeczywistym bez przestarzałych wartości.
Kliknięcie klipu narysowanego ołówkiem przełącza automatycznie slot samplerowy w dolnym panelu.
🏗️ Refaktoryzacja architektury (wewnętrzna)
Projekt przeszedł największą refaktoryzację w historii — kilkanaście plików-monolitów rozbito na moduły:
🐛 Pozostałe poprawki
Windows: ciemny motyw wymuszonyi niezależnie od ustawień systemowych (biały ekran na AMD/Intel).
Jednoczesne odtwarzanie wielu sampli w aranżacji — naprawiona izolacja torów.
Ikonka przełącznika lanes — poprawne renderowanie przez font proporcjonalny.
Modulator: listen mode działa z zewnętrznymi pluginami CLAP.
Nagrywanie piano rolla z sesji do aranżacji — ostatni akord nie był obcinany.
Modulacja samplerowa wpływa teraz faktycznie na wyjście audio.
Omni jest aktywnie rozwijany — kolejna aktualizacja już wkrótce. 🚀