From 94d91cdf727a58b3ab719430aa22481e105268e4 Mon Sep 17 00:00:00 2001 From: 3godzinyL <111498764+3godzinyL@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:58:37 +0200 Subject: [PATCH] Revise Polish README for clarity and detail Updated the Polish README to improve clarity and detail about MicDeck's features and functionalities. --- README.pl.md | 407 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 297 insertions(+), 110 deletions(-) diff --git a/README.pl.md b/README.pl.md index eb8e977..50e0ba8 100644 --- a/README.pl.md +++ b/README.pl.md @@ -5,9 +5,9 @@

MicDeck

- Natywny soundboard i router dźwięku systemowego dla Windows. + Natywny soundboard, procesor głosu i router audio dla Windows.
- Odpalaj klipy, udostępniaj to, co gra na komputerze, i wysyłaj cały miks przez jeden wirtualny mikrofon. + Odpalaj klipy, udostępniaj dźwięk pulpitu, obrabiaj mikrofon i wysyłaj kompletny miks przez jeden zarządzany wirtualny mikrofon.

@@ -15,9 +15,9 @@ · Pobierz · - Jak to działa + Ścieżka sygnału · - Obecny zakres + MicDeck VAD · Changelog

@@ -26,196 +26,383 @@ Status CI Najnowsze wydanie Windows 10 i 11 x64 - Licencja MIT + Rust, C++, C i CMake + Licencja MIT

--- -MicDeck łączy soundboard, przechwytywanie dźwięku systemu i routing do komunikatorów w jednej aplikacji. Prosty interfejs działa na Tauri i Rust, a krytyczną ścieżkę audio obsługuje osobny silnik C++/WASAPI. - -- **Konsola streamera:** mikrofon i dźwięk pulpitu są dopasowywane do jednego ustawianego zakresu dBFS przed wysłaniem miksu do OBS. -- **Prywatne poziomy aplikacji:** przeglądarkę, Spotify lub grę można ściszyć tylko w kopii wysyłanej na wirtualny kabel, bez zmiany odsłuchu i głośności Windows. -- **Produkcyjny tor głosu:** WebRTC AEC3, RNNoise, smart gate, adaptacyjne wyrównanie/kompresja i limiter działają w natywnym procesie audio. -- **Szybki soundboard:** MP3, WAV, FLAC, OGG, AAC i M4A na czytelnym live decku. -- **Globalny bind dla każdego dźwięku:** ustaw np. `Alt+P` i odpal klip nawet wtedy, gdy MicDeck jest schowany w trayu. -- **Quick Capture:** wklej YouTube, Shorts albo TikTok i dodaj audio do biblioteki. -- **Płynny import w tle:** pobieranie, dekodowanie i analiza waveformu nie blokują interfejsu. -- **Jeden miks:** mikrofon, klipy i dźwięk pulpitu wychodzą jako `MicDeck Virtual Mic`. -- **Adaptacyjne low latency:** `IAudioClient3` negocjuje okres dla konkretnego sprzętu zamiast stałego bufora 70 ms. -- **Integracja z Windows:** autostart, uruchamianie w tle i stała ikona w zasobniku systemowym. -- **Dwa języki:** cały interfejs przełącza się między polskim i angielskim z prawego górnego rogu. -- **Local-first:** bez konta, telemetrii, chmury, wstrzykiwania DLL i hooków procesów. - -### Tryb Streamer i obróbka głosu - -Osobna zakładka **Streamer** zmienia MicDeck w kontrolowany front-end -transmisji, a nie tylko przełącznik dźwięku systemowego: - -- ustawiasz środek oraz tolerancję docelowego zakresu dBFS dla głosu i pulpitu; -- porównujesz na żywo poziomy mikrofonu i system audio przed oraz po obróbce; -- kalibrujesz normalną mowę z regulowanym odsłuchem lokalnym w słuchawkach; -- AEC3 i RNNoise działają przed gate'em, adaptacyjnym levelerem/kompresorem i limiterem; -- poziomy pojedynczych aplikacji zmieniają tylko kopię dla OBS/wirtualnego kabla, - bez naruszania odsłuchu Windows; -- pełny miks pulpitu pozostaje bezpiecznym fallbackiem, gdy prywatny loopback - procesu nie może wystartować. - -> [!NOTE] -> MicDeck jest obecnie publiczną wersją preview dla Windows 10/11 x64. Binariów jeszcze nie podpisano certyfikatem, dlatego Windows SmartScreen może pokazać ostrzeżenie. Pobieraj aplikację wyłącznie z tego repozytorium i sprawdzaj plik `SHA256SUMS.txt`. +MicDeck zastępuje typowy zestaw złożony z osobnego soundboardu, loopback recordera, procesora głosu i skomplikowanego wirtualnego miksera. Rust/Tauri obsługuje interfejs i cykl życia aplikacji, a osobny natywny proces C++/WASAPI przejmuje całą ścieżkę audio czasu rzeczywistego. + +MicDeck obsługuje dwa backendy wirtualnego audio: + +- **MicDeck VAD** — własny sterownik WaveRT/PortCls rozwijany razem z projektem; +- **VB-CABLE** — kompatybilnościowy backend korzystający z oficjalnej paczki VB-Audio. + +Backend wybiera się w Ustawieniach. Mikser i DSP nie mają osobnej logiki dla sterownika: ten sam gotowy miks 48 kHz jest renderowany do aktualnie wybranego wirtualnego endpointu. + +Bez konta. Bez telemetrii. Bez miksera w chmurze. Bez wstrzykiwania DLL i hooków procesów. + +## W skrócie + +| Obszar | Implementacja | +| --- | --- | +| Platforma | Windows 10/11 x64 | +| Źródła | Fizyczny mikrofon, pady, zbiorczy dźwięk pulpitu, prywatne loopbacki procesów | +| Wyjście | Jeden zarządzany wirtualny mikrofon | +| Backend wirtualnego audio | MicDeck VAD albo VB-CABLE | +| Rdzeń audio | C++20, event-driven WASAPI shared mode, MMCSS | +| Obróbka głosu | WebRTC AEC3, RNNoise, smart gate, adaptacyjne wyrównanie/kompresja, limiter | +| Warstwa sterująca | Rust + Tauri 2 | +| Rdzeń sterownika | C/C++, PortCls/WaveRT, ograniczony nonpaged audio pipeline | +| Strumień wewnętrzny | 48 kHz, stereo, 32-bit float | +| Interfejs | Polski i angielski | +| Sieć dla live audio | Brak | + +## Funkcje + +- **Soundboard** — import i odtwarzanie MP3, WAV, FLAC, OGG, AAC oraz M4A. +- **Globalny bind dla każdego dźwięku** — odpalanie klipów także po schowaniu aplikacji do traya. +- **Udostępnianie dźwięku systemu** — YouTube, Spotify, gra albo pełny miks renderowany przez Windows. +- **Prywatne poziomy aplikacji** — ściszanie wybranych programów wyłącznie w miksie wychodzącym z MicDecka. +- **Produkcyjny tor głosu** — AEC3, RNNoise, gate, adaptacyjne wyrównanie, kompresja i limiter. +- **Konsola Streamer** — porównanie mikrofonu oraz pulpitu przed i po obróbce względem jednego zakresu dBFS. +- **Quick Capture** — import audio z obsługiwanych linków YouTube, Shorts i TikTok. +- **Diagnostyka live** — poziomy sygnału, wynegocjowana latencja, stan engine'u, PID, underruny i utrata ramek. +- **Dwa backendy wirtualnego audio** — przełączanie MicDeck VAD / VB-CABLE bez przebudowy miksera i DSP. +- **Automatyczny reconnect** — ponowne otwarcie wybranej trasy po unieważnieniu endpointu lub restarcie Windows Audio. +- **Integracja z Windows** — autostart, close-to-tray i routing działający w tle. +- **Local-first** — mikrofon i dźwięk pulpitu pozostają na komputerze. ## Wygląd aplikacji - - + + - - + + - + - + - + - +
Biblioteka i Quick Capture w MicDeckStudio live i routing dźwięku w MicDeck + Biblioteka MicDeck z padami, globalnymi bindami i Quick Capture + + Studio live MicDeck z routingiem dźwięku systemu i diagnostyką +
Biblioteka
Pady, wyszukiwarka, sterowanie odtwarzaniem i pobieranie z URL.
Studio live
Mikrofon, system audio, mierniki, monitoring i status trasy.
Biblioteka
Pady, globalne bindy, wyszukiwarka, odtwarzanie i import w tle.
Studio live
Mikrofon, dźwięk pulpitu, mierniki, monitoring i stan trasy.
Konsola Streamer w MicDeck z miernikami dBFS głosu i pulpitu, adaptacyjnym wyrównaniem, kalibracją live oraz sterowaniem wyjściem OBS + Konsola Streamer z miernikami dBFS głosu i pulpitu, adaptacyjnym wyrównaniem, kalibracją oraz sterowaniem wyjściem OBS +
Konsola Streamer
Mierniki przed i po DSP, zakres docelowy, kalibracja słuchawkowa, filtry mikrofonu oraz gain magistrali streamu.
Konsola Streamer
Mierniki przed i po DSP, zakres docelowy, kalibracja słuchawkowa, filtry mikrofonu i gain magistrali streamu.
Ustawienia filtrów audio MicDeck z AEC3, RNNoise, smart gate, kompresorem, limiterem i schematem kolejności obróbki + Filtry audio MicDeck: AEC3, RNNoise, smart gate, kompresor, limiter i kolejność obróbki +
Ustawienia filtrów audio
Trwałe ustawienia oczyszczania głosu, dynamiki, limitera bezpieczeństwa i jawna kolejność obróbki realtime.
Obróbka audio
Trwałe ustawienia oczyszczania, dynamiki, limitera bezpieczeństwa i jawna kolejność realtime.
## Pobieranie -Pobierz najnowsze pliki z [GitHub Releases](https://github.com/3godzinyL/MicDeck/releases/latest): +Najnowsze pliki są dostępne w [GitHub Releases](https://github.com/3godzinyL/MicDeck/releases/latest): | Plik | Zastosowanie | | --- | --- | -| `MicDeck-Setup.exe` | Wersja zalecana, instalowana dla aktualnego użytkownika. | -| `MicDeck-portable.exe` | Aplikacja bez instalacji; sterownik audio nadal może wymagać konfiguracji. | -| `SHA256SUMS.txt` | Sumy SHA-256 obu plików wykonywalnych. | +| `MicDeck-Setup.exe` | Zalecany instalator dla aktualnego użytkownika Windows. | +| `MicDeck-portable.exe` | Wersja przenośna aplikacji. Sterownik kernelowy nadal wymaga instalacji. | +| `SHA256SUMS.txt` | Sumy SHA-256 plików wydania. | -Sprawdzenie pobranego instalatora: +Sprawdzenie instalatora: ```powershell Get-FileHash .\MicDeck-Setup.exe -Algorithm SHA256 ``` -Porównaj wynik z odpowiednią linią w `SHA256SUMS.txt`. - ### Pierwsze uruchomienie 1. Uruchom MicDeck. -2. Otwórz **Ustawienia** i zainstaluj oficjalny sterownik VB-CABLE, jeśli aplikacja nie wykryła zgodnego wirtualnego urządzenia. -3. Wybierz swój prawdziwy mikrofon. -4. W Discordzie lub grze ustaw wejście **MicDeck Virtual Mic**. -5. Dodaj klip albo przejdź do **Studio live** i włącz udostępnianie dźwięku systemu. -6. Opcjonalnie ustaw globalne bindy i włącz **Uruchamiaj przy logowaniu**. - -Zamknięcie okna ukrywa MicDeck w zasobniku systemowym obok zegara i nie przerywa routingu. Pełne wyjście jest dostępne w menu ikony jako **Quit / Zakończ**. +2. Otwórz **Ustawienia → Backend wirtualnego audio**. +3. Wybierz **MicDeck VAD** albo kompatybilnościowy **VB-CABLE**. +4. Zainstaluj wybrany sterownik po pokazaniu przez Windows okna UAC. +5. Wybierz swój prawdziwy mikrofon. +6. W Discordzie, OBS, grze albo komunikatorze wybierz odpowiedni mikrofon: + - `MicDeck Virtual Microphone` dla MicDeck VAD; + - zarządzany capture endpoint VB-CABLE dla backendu VB-CABLE. +7. Dodaj dźwięk albo włącz udostępnianie pulpitu w Studio live. -## Quick Capture +Zamknięcie głównego okna ukrywa MicDeck w zasobniku systemowym i nie przerywa routingu. Pełne wyjście jest dostępne jako **Quit / Zakończ** w menu traya. -Obsługiwane są adresy YouTube, YouTube Shorts, `youtu.be` i TikTok. Import wymaga `yt-dlp` oraz `ffmpeg` w `PATH`; skrypt `scripts\install-tools.bat` instaluje oba narzędzia lokalnie. +> [!TIP] +> Redukcja szumu, echo cancellation i automatyczna regulacja gainu w komunikatorach są projektowane pod mowę. Gdy wycinają muzykę albo efekty, zmniejsz je lub wyłącz dla wirtualnego mikrofonu MicDeck. -Pobieraj i udostępniaj wyłącznie materiały, do których masz prawa. MicDeck nie omija zabezpieczeń platform i nie nadaje licencji do cudzych treści. +## Ścieżka sygnału -## Jak to działa +Graf aplikacji jest taki sam dla obu backendów. Zmienia się wyłącznie końcowy render endpoint. ```mermaid flowchart LR - mic["Fizyczny mikrofon"] --> capture["WASAPI capture"] - desktop["Dźwięk systemu"] --> loopback["Zbiorczy loopback / referencja AEC"] - apps["Aktywne aplikacje"] --> process["Prywatne loopbacki procesów"] - pads["Pady dźwiękowe"] --> ipc["Lock-free IPC"] - loopback --> dsp["AEC3 → RNNoise → gate → leveler"] - capture --> dsp - dsp --> mixer["Mikser C++ real-time + limiter"] - loopback --> desktopbus["Adaptacyjne wyrównanie pulpitu"] + mic["Fizyczny mikrofon"] --> capture["Event-driven WASAPI capture"] + desktop["Domyślne wyjście Windows"] --> loopback["Zbiorczy loopback / referencja AEC"] + apps["Aplikacje renderujące"] --> process["Prywatne loopbacki procesów"] + pads["Pady dźwiękowe"] --> ipc["Wersjonowane shared-memory IPC"] + + capture --> voice["AEC3 → RNNoise → gate → leveler"] + loopback --> voice + loopback --> desktopbus["Adaptacyjny leveler pulpitu"] process --> desktopbus + + voice --> mixer["Natywny mikser C++"] desktopbus --> mixer ipc --> mixer - mixer --> cable["Zarządzany wirtualny kabel"] - cable --> chat["Discord · gry · OBS · rozmowy"] + mixer --> limiter["Końcowy limiter"] + + limiter --> backend{"Wybrany backend wirtualnego audio"} + + backend --> mdinput["MicDeck Driver Input"] + mdinput --> mdvad["MicDeckVad.sys"] + mdvad --> mdmic["MicDeck Virtual Microphone"] + + backend --> vbinput["Render endpoint VB-CABLE"] + vbinput --> vbcable["Sterownik VB-CABLE"] + vbcable --> vbmic["Zarządzany capture endpoint VB-CABLE"] + + mdmic --> clients["Discord · OBS · gry · rozmowy"] + vbmic --> clients ``` -Warstwa Rust/Tauri odpowiada za UI, bibliotekę, zapis ustawień, pobieranie i cykl życia sterownika. Pobieranie, dekodowanie i analiza plików są wykonywane na workerach blokujących poza wątkiem UI, a biblioteka odświeża się dopiero po przygotowaniu metadanych. Osobny silnik C++20 realizuje event-driven capture, loopback, miksowanie, monitoring i render. Wersjonowany most pamięci współdzielonej trzyma pracę interfejsu z dala od wątku real-time. +Engine C++ pozostaje niezależny od backendu. Rust znajduje identyfikatory render/capture wybranego urządzenia, przekazuje jeden atomowy snapshot konfiguracji przez natywny bridge i uruchamia nową trasę dopiero po zwolnieniu poprzedniego endpointu. -MicDeck pyta urządzenia o obsługiwane okresy shared mode i dobiera niski, stabilny okres blisko minimum sprzętu. Gdy `IAudioClient3` nie jest dostępne, używa bezpiecznego okresu domyślnego. Capture i render są sterowane zdarzeniami WASAPI, a wątki audio korzystają z MMCSS. Studio pokazuje wynegocjowaną konfigurację, szacowane opóźnienie i underruny zamiast obiecywać jedną wartość poprawną dla każdego sprzętu. +## MicDeck VAD — własny sterownik -## Obecny zakres +MicDeck VAD jest własnym wirtualnym kablem audio projektu dla Windows. Działa jako osobny pakiet sterownika kernelowego, a nie kod wstrzykiwany do DLL aplikacji. -Ta sekcja celowo opisuje granice wersji preview: +### Sieć wewnątrz sterownika -| Obszar | Stan w v0.1 | -| --- | --- | -| Przechwytywanie systemu | Zbiorczy loopback Windows pozostaje aktywny jako referencja AEC i bezpieczny fallback. Po zmianie poziomu aplikacji MicDeck tworzy prywatną magistralę loopbacków procesów i reguluje wyłącznie kopię wysyłaną na kabel. Głośność odsłuchu Windows nie jest zmieniana. | -| Tryb WASAPI | Adaptacyjny shared mode; projekt nie deklaruje exclusive mode. | -| Monitoring | Przy aktywnym udostępnianiu systemu lokalny odsłuch padów jest wyciszany, aby uniknąć pętli. Pady nadal trafiają do miksu wyjściowego. | -| Zmiana urządzeń | Studio i Ustawienia pokazują stan oraz błędy silnika. Po zmianie konfiguracji dostępny jest ręczny restart silnika audio. | -| Domyślny mikrofon | MicDeck nie nadpisuje już automatycznie domyślnego wejścia Windows. Ustawienia zawierają ręczną naprawę, która przywraca wybrany fizyczny mikrofon dla ról Console, Multimedia i Communications. | -| DSP | Tor mikrofonu zawiera AEC3, RNNoise, opcjonalny smart gate, adaptacyjne dopasowanie zakresu/kompresję oraz limiter przy 48 kHz. Stan filtrów jest trwały, a przełączanie ma 150 ms crossfade. Brak hosta VST. | -| Zgodność loopbacku procesów | Poziomy pojedynczych aplikacji wymagają Windows 10 build 20348 lub nowszego. Na starszym systemie albo po błędzie przechwytywania MicDeck zachowuje pełny miks zbiorczy, zamiast zgubić źródło. | -| Dystrybucja | Buildy mają sumy kontrolne, ale nie mają jeszcze podpisu Authenticode ani automatycznych aktualizacji. | -| Platformy | Windows x64. Brak deklarowanego wsparcia macOS, Linux, ARM64, Stream Deck i MIDI. | +```mermaid +flowchart LR + engine["soundboard_audio_engine.exe"] -->|WASAPI render| render["MicDeck Driver Input"] + render --> waveout["WaveRT render miniport"] + waveout --> decode["Konwersja PCM/float na granicy endpointu"] + decode --> pipeline["MdCablePipeline\n48 kHz stereo float"] + pipeline --> encode["Konwersja formatu capture"] + encode --> wavein["WaveRT capture miniport"] + wavein --> mic["MicDeck Virtual Microphone"] + mic --> client["Discord · OBS · przeglądarka · gra"] +``` + +### Jak sterownik działa + +1. **Normalne urządzenia Windows** + System widzi render endpoint `MicDeck Driver Input` oraz capture endpoint `MicDeck Virtual Microphone`. + +2. **Standardowe połączenie WASAPI** + Istniejący natywny engine renderuje do sterownika przez zwykłe event-driven WASAPI. Dźwięk nie jest przesyłany niestandardowym IOCTL-em. + +3. **Miniporty WaveRT / PortCls** + Oddzielny miniport render i capture tworzą dwie strony kabla i współdzielą jeden wewnętrzny transport. + +4. **Wewnętrzny format kanoniczny** + Transport pracuje w 48 kHz, stereo, 32-bit float. PCM16, PCM24, PCM32, mono i stereo są konwertowane na granicy endpointu. + +5. **Ograniczony nonpaged pipeline** + Audio przechodzi przez prealokowany ring single-producer/single-consumer w pamięci nonpaged. Ścieżka realtime nie wykonuje dostępu do plików, pracy UI ani nieograniczonych alokacji. + +6. **Kontrola opóźnienia pod rozmowy** + Pipeline ma profile Ultra Low, Balanced i Resilient. Capture jest primowany przed odtwarzaniem, stary dźwięk po skoku schedulera jest przycinany, a sterownik wraca do aktualnej mowy zamiast odtwarzać długą opóźnioną kolejkę. + +7. **Bezklikowe zachowanie po błędzie** + Underflow daje zainicjalizowaną ciszę. Utrata producenta i discontinuity schodzą łagodnie do zera, a ponownie uruchomiona trasa zaczyna od czystej kolejki. + +8. **Diagnostyka** + Wersjonowane statystyki obejmują aktywne streamy, głębokość kolejki, watermarki, ramki zapisane/odczytane/upuszczone/odrzucone, ciszę, discontinuity, tryb latencji i generację resetu. + +9. **Kontrolowana instalacja** + Pakiet zawiera: + - `MicDeckVad.sys` + - `MicDeckVad.inf` + - `MicDeckVad.cat` + + MicDeck weryfikuje pliki pakietu i używa wąskiego helpera uruchamianego z UAC do operacji status/install/repair/uninstall. Helper nie jest ogólnym wykonawcą komend. + +10. **Odzyskiwanie trasy** + Po restarcie Windows Audio albo unieważnieniu endpointu engine zwalnia martwe klienty WASAPI, ponownie enumeruje wybrany backend i otwiera tę samą trasę z ograniczonym backoffem. + +### Tożsamość pakietu + +```text +Hardware ID: ROOT\MICDECKVAD +Render endpoint: MicDeck Driver Input +Capture endpoint: MicDeck Virtual Microphone +Strumień kanoniczny: 48 000 Hz · stereo · float32 +Model sterownika: WDM PortCls / WaveRT +``` + +## Rdzeń audio czasu rzeczywistego + +- `IAudioClient3` negocjuje niski okres shared mode obsługiwany przez konkretny endpoint. +- Klasyczna inicjalizacja WASAPI jest fallbackiem, gdy `IAudioClient3` nie jest dostępne. +- Capture i render korzystają z `AUDCLNT_STREAMFLAGS_EVENTCALLBACK`, a nie timerów UI/JavaScript. +- Wątki audio dołączają do Windows MMCSS w klasie `Audio` / `Pro Audio`. +- Ring buffery o stałej pojemności korzystają z atomików acquire/release. +- Hot path miksera używa stałych buforów i nie wykonuje pracy webview. +- Zmiany filtrów przechodzą crossfade, zamiast wymieniać graf w jednej próbce. +- Poziomy prywatnych loopbacków zmieniają tylko miks MicDecka, nigdy odsłuch użytkownika w Windows. + +Rzeczywista latencja zależy od fizycznego urządzenia, Windows Audio Engine, wybranego backendu i programu odbierającego. MicDeck pokazuje wartości wynegocjowane oraz mierzone zamiast jednej zmyślonej liczby. + +## Warstwa aplikacji i workerów + +Rust/Tauri obsługuje: + +- cykl życia okna i traya; +- ustawienia oraz zapis backendu; +- bibliotekę dźwięków i metadane; +- globalne bindy; +- zarządzanie pakietem sterownika; +- wykrywanie endpointów; +- nadzorowanie natywnego engine'u; +- importy i pobieranie w tle. + +Native bridge i engine audio są kompilowane podczas buildu Rust i osadzane w aplikacji. Przy uruchomieniu trafiają do katalogu content-addressed pod `%LOCALAPPDATA%\micdeck\native\` i są sprawdzane przed ponownym użyciem. + +## Quick Capture + +Obsługiwane źródła: + +- `youtube.com/watch/...` +- `youtube.com/shorts/...` +- `youtu.be/...` +- `tiktok.com/...` + +Import z URL wymaga [`yt-dlp`](https://github.com/yt-dlp/yt-dlp) oraz [FFmpeg](https://ffmpeg.org/) w `PATH`. Skrypt `scripts\install-tools.bat` instaluje oba narzędzia lokalnie. + +Pobieraj i udostępniaj wyłącznie materiały, do których masz prawa. MicDeck nie omija uprawnień platform, DRM ani praw autorskich. + +## Prywatność i bezpieczeństwo + +- Mikrofon, pady i dźwięk pulpitu są przetwarzane lokalnie. +- Brak konta, analytics SDK, telemetrii i chmurowego serwisu audio. +- Brak wstrzykiwania DLL, hookowania procesów i czytania pamięci aplikacji. +- Webview ma wąską listę capability Tauri. +- Native IPC używa wersjonowanego mappingu w lokalnej sesji Windows. +- Pakiety sterowników i osadzone komponenty są sprawdzane przed operacjami uprzywilejowanymi. +- Elevated helper akceptuje wyłącznie ustalone operacje, a nie dowolne polecenia. +- Certyfikaty, klucze prywatne, wygenerowane SYS/CAT i lokalny output WDK są wykluczone z repozytorium. + +Podatności zgłaszaj prywatnie zgodnie z [SECURITY.md](SECURITY.md). + +## Backendy i oprogramowanie zewnętrzne + +### MicDeck VAD + +MicDeck VAD jest rozwijany jako część MicDecka. Repozytorium obejmuje integrację aplikacyjną, źródła sterownika, przenośne testy rdzenia audio, narzędzia pakowania i skrypty walidacji Windows. + +### VB-CABLE + +MicDeck zachowuje oficjalną, niemodyfikowaną paczkę **VB-CABLE Driver Pack 45** jako backend kompatybilnościowy. VB-CABLE pozostaje osobnym produktem VB-Audio z własnym modelem donationware i licencjami komercyjnymi. + +- [Strona VB-CABLE](https://vb-audio.com/Cable/) +- [Warunki licencji VB-Audio](https://vb-audio.com/Services/licensing.htm) +- [Pełne informacje o komponentach zewnętrznych](THIRD_PARTY_NOTICES.md) + +`yt-dlp` i FFmpeg są opcjonalnymi zewnętrznymi narzędziami i zachowują własne licencje. ## Build ze źródeł -Wymagania: Windows 10/11 x64, Node.js 24+, Rust stable MSVC, Visual Studio 2022 Build Tools z **Desktop development with C++** oraz WebView2 Runtime. +### Wymagania aplikacji + +- Windows 10/11 x64 +- Node.js 24+ +- Rust stable z toolchainem MSVC +- Visual Studio 2022 z **Desktop development with C++** +- Microsoft Edge WebView2 Runtime +- Opcjonalnie `yt-dlp` i FFmpeg + +### Development aplikacji ```powershell npm ci npm run tauri dev ``` -Build produkcyjny: +### Buildy produkcyjne aplikacji ```powershell npm run build:portable npm run build:installer +npm run build:all ``` -Testy: +Normalny build Tauri automatycznie kompiluje i osadza engine C++, shared-memory bridge, bibliotekę DSP Rust oraz fixed-operation driver helper. + +### Development MicDeck VAD + +Kompilacja sterownika kernelowego wymaga dodatkowo: + +- Windows Driver Kit zgodnego z Windows SDK; +- CMake; +- jednorazowej maszyny albo VM do testów sterownika; +- testowego albo produkcyjnego procesu podpisywania sterowników. + +Projekt sterownika, testy przenośnego rdzenia, skrypty pakowania i certyfikator end-to-end znajdują się w drzewie źródeł MicDeck VAD. Wygenerowany podpisany pakiet `SYS/INF/CAT` jest stage'owany do zasobów aplikacji przed wydaniem obsługującym własny sterownik. + +### Walidacja ```powershell +npm audit --audit-level=high npm run build +cargo fmt --manifest-path src-tauri\Cargo.toml --all -- --check cargo test --manifest-path src-tauri\Cargo.toml --locked +cargo clippy --manifest-path src-tauri\Cargo.toml --all-targets --locked -- -D warnings ``` -## Roadmap +Walidacja sterownika obejmuje dodatkowo testy ring/pipeline, build WDK, weryfikację INF, generowanie katalogu CAT, podpis pakietu, instalację endpointów, test audio render→capture i Driver Verifier na systemie testowym. -- [ ] Przechwytywanie dźwięku z wybranej aplikacji -- [ ] Normalizacja, limiter i lekki EQ -- [ ] Wiele decków i profili -- [ ] Stream Deck i MIDI -- [ ] Podpisane buildy i automatyczne aktualizacje -- [ ] Kolejne tłumaczenia społeczności +## Struktura projektu -## Prywatność i bezpieczeństwo +```text +src/ Web UI Tauri, tłumaczenia i warstwa interakcji +src-tauri/ Stan Rust, zapis ustawień, workery, lifecycle i integracja sterownika +native-audio/engine/ C++20 WASAPI capture, loopback, DSP, mikser, monitoring i render +native-audio/bridge/ Wersjonowany bridge shared-memory IPC +native-audio/selftest/ Niezależne od sprzętu testy natywnego audio +drivers/micdeck-vad/ Własny sterownik WaveRT/PortCls, pakiet, testy, narzędzia i dokumentacja +scripts/ Build, staging, release, zależności i diagnostyka +docs/ Screenshoty, opisy architektury i materiały wydania +.github/ CI, source-policy checks, formularze issue i szablony +``` -- Mikrofon, pady i dźwięk systemu są przetwarzane lokalnie. -- MicDeck nie ma kont, telemetrii, analytics ani chmurowej usługi audio. -- Aplikacja nie wstrzykuje DLL i nie hookuje procesów innych programów. -- Archiwum oficjalnego VB-CABLE jest przed rozpakowaniem porównywane z sumą SHA-256 zapisaną w kodzie. -- Tymczasowe pliki instalatora sterownika są usuwane po jego zakończeniu. +## Roadmapa + +- [x] Soundboard, desktop loopback, natywny mikser i obróbka głosu +- [x] Prywatne poziomy pojedynczych aplikacji +- [x] Architektura przełączanych backendów VB-CABLE / MicDeck VAD +- [x] Źródła własnego sterownika render→capture i integracja z aplikacją +- [ ] Produkcyjny podpis sterownika i pełna macierz certyfikacji Windows +- [ ] Wiele decków i profile +- [ ] Sterowanie Stream Deck i MIDI +- [ ] Podpisane Authenticode buildy aplikacji i automatyczne aktualizacje +- [ ] Kolejne tłumaczenia społeczności -Aktualne pliki wykonywalne nie są podpisane. To jawne ograniczenie wersji preview i najważniejszy pozostały element utwardzenia dystrybucji. +## Współtworzenie -Podejrzenia podatności zgłaszaj prywatnie według [SECURITY.md](SECURITY.md). +Mile widziane są zgłoszenia błędów, powtarzalne przypadki urządzeń audio, poprawki dostępności i dokumentacji, wyniki walidacji sterownika oraz skupione pull requesty. -## VB-CABLE, wkład i licencja +Przed PR-em przeczytaj [CONTRIBUTING.md](CONTRIBUTING.md). W zgłoszeniach audio podaj wersję Windows, nazwy urządzeń fizycznych, wybrany backend, stan engine'u, wynegocjowaną latencję oraz liczniki underrun/discontinuity. -MicDeck zawiera oficjalny, niezmodyfikowany pakiet **VB-CABLE Driver Pack 45**. Jest to oddzielny produkt VB-Audio udostępniany w modelu donationware. Szczegóły atrybucji i warunków dystrybucji znajdują się w [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). +## Licencja -Zasady zgłaszania zmian opisuje [CONTRIBUTING.md](CONTRIBUTING.md). Kod MicDeck jest dostępny na [licencji MIT](LICENSE), a zewnętrzne komponenty zachowują własne warunki. +Kod źródłowy MicDecka jest dostępny na [licencji MIT](LICENSE). Osadzone i opcjonalne komponenty zewnętrzne zachowują własne licencje oraz warunki dystrybucji. ---

- Jeśli MicDeck upraszcza Ci audio na Discordzie, zostaw gwiazdkę. + Jeśli MicDeck upraszcza ci konfigurację audio, zostaw gwiazdkę repozytorium.
- Dzięki temu projekt ma większą szansę dotrzeć do kolejnych osób. + Gwiazdki pomagają innym użytkownikom Windows znaleźć projekt.