No description
- Rust 96.4%
- Slint 3.6%
| .zed | ||
| docs | ||
| linux_workspace | ||
| ngenAudioCaptureLinux | ||
| ngenAudioCaptureWinStandard | ||
| ngenAudioCoreBase | ||
| ngenAudioCoreLinux | ||
| ngenAudioCoreWin | ||
| ngenAudioRecord | ||
| ngenAudioWinAlternative | ||
| test_shm | ||
| .gitignore | ||
| ARCHITECTURE.md | ||
| Cargo.toml | ||
| LICENSE | ||
| PLAN.md | ||
| README.md | ||
| WINDOWS_BUILD_TODO.md | ||
ngenAudio
Audio-Recording und -Visualisierung für Linux und Windows.
Projekte
| Projekt | Beschreibung | OS |
|---|---|---|
| ngenAudioRecord/ | Haupt-App: Desktop-Audiorekorder mit Slint-UI | Linux + Windows |
| ngenAudioCaptureLinux/ | Capture GUI (Slint-basiert, eigenständige App) | Linux |
| ngenAudioCaptureWinStandard/ | Capture GUI (Slint-basiert, eigenständige App) | Windows |
| ngenAudioCaptureWinAlternative/ | ASIO GUI (Slint-basiert, eigenständige App) | Windows |
| ngenAudioCoreBase/ | Plattform-unabhängige Bibliothek | Alle |
| ngenAudioCoreLinux/ | Linux: Unix Sockets + Shared Memory | Linux |
| ngenAudioCoreWin/ | Windows: Named Pipes + Shared Memory | Windows |
Architektur
Unabhängige GUI-Anwendungen
Alle ngenAudioCapture* Projekte sind eigenständige GUI-Anwendungen mit eigener Slint-Benutzeroberfläche:
┌─────────────────────────────────────────────────────────────────────┐
│ ngenAudioRecord │
│ (Haupt-App mit Slint UI) │
│ Linux + Windows │
└─────────────────────────────┬───────────────────────────────────────┘
│ Steuerbefehle via IPC
│ (Unix Socket / Named Pipe)
▼
┌─────────────────────────────────────────────────────────────────────┐
│ ngenAudioCapture* (Eigenständige GUI Apps) │
│ │
│ ┌────────────────┐ ┌────────────────────┐ ┌────────────────────┐ │
│ │ Linux Capture │ │ Win Standard │ │ Win ASIO │ │
│ │ (Slint UI) │ │ (Slint UI) │ │ (Slint UI) │ │
│ │ │ │ │ │ │ │
│ │ • cpal/ALSA │ │ • cpal │ │ • ASIO SDK │ │
│ │ • Läuft │ │ • Läuft │ │ • Input + Output │ │
│ │ unabhängig │ │ unabhängig │ │ • Läuft unabhängig │ │
│ └────────────────┘ └────────────────────┘ └────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
Wichtige Eigenschaften
Eigenständig:
- Jede
ngenAudioCapture*App hat ihre eigene Slint-GUI - Sie läuft vollständig unabhängig von
ngenAudioRecord - Wenn
ngenAudioRecordabstürzt, laufen alle Capture-Apps weiter
Kommunikation:
ngenAudioRecordkann Capture-Apps starten- Befehle werden via Unix Socket (Linux) oder Named Pipe (Windows) gesendet
- Typische Befehle: StartCapture, StopCapture, GetStatus, ListDevices
Build:
- Jede App wird separat gebaut und gestartet
- Sie haben keine Abhängigkeit zu
ngenAudioRecord - Sie können parallel zu
ngenAudioRecordlaufen
Bibliotheken
ngenAudioCoreBase (Alle Plattformen)
commands.rs- ControlCommand, StatusMessageconfig.rs- AudioHubConfig, BufferStatusring_buffer.rs- RingBuffer Implementierung- Keine OS-Abhängigkeiten
ngenAudioCoreLinux (Linux)
- Unix Domain Socket client/server
- System V Shared Memory (
libc::sysv) - Wird von
ngenAudioRecord(Linux) undngenAudioCaptureLinuxverwendet
ngenAudioCoreWin (Windows)
- Named Pipe client/server
- Windows Shared Memory
- Wird von
ngenAudioRecord(Windows),ngenAudioCaptureWinStandardundngenAudioCaptureWinAlternativeverwendet
Datenfluss
Mikrofon ──► ngenAudioCapture* (GUI App)
│
│ Eigenständige Aufnahme
▼
Shared Memory
│
│ Optional: Waveform-Daten
▼
ngenAudioRecord (kann verbinden)
Steuerung
Benutzer ──► ngenAudioRecord ──► Unix Socket (Linux) ──► ngenAudioCaptureLinux
│ oder
│ Named Pipe (Windows) ──► ngenAudioCaptureWin*
│
◄────── Status ────────────────────────►
Build
# Alle Windows-Apps bauen
cargo build -p ngenAudioRecord
cargo build -p ngenAudioCaptureWinStandard
# Apps starten
cargo run -p ngenAudioRecord
cargo run -p ngenAudioCaptureWinStandard
# Workspace testen
cargo test --workspace
Lizenz
GNU General Public License v3.0 (GPL-3.0)