You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Musubi/README.md

77 lines
3.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Musubi
**NDI rein. Bild, Ton und Stimme raus.**
Musubi (結び, japanisch: das Knüpfen, Verbinden) ist eine macOS-App von Zielke Studio für kleine Live-Übertragungen. Sie macht MacBook und Mac mini zu den fehlenden Bausteinen einer Regie:
- NDI-Quellen im Vollbild auf beliebige Bildschirme
- NDI-Ton (auch ohne Bild) gezielt auf einzelne Kanäle eines Audio-Interfaces
- Talkback per Sprechtaste
- Intercom, PGM-Vorschau und Tally fürs Handy im Browser
- Szenen, die Regie-Mac und Bühnen-Mac auf einen Klick einrichten
Erster Einsatz: OP-Liveübertragung (ATEM im OP, Regie im Saal, eine Netzwerkleitung dazwischen).
## Status
M0 abgenommen. M1 (Bild), M2 (Ton-Matrix) und M3 (Szenen und Fernsteuerung) umgesetzt, Langzeittests und Teile der Abnahmen offen. Siehe [docs/04-fahrplan.md](docs/04-fahrplan.md).
## Dokumente
| Datei | Inhalt |
|---|---|
| [CLAUDE.md](CLAUDE.md) | Arbeitsanweisungen für Claude Code |
| [START.md](START.md) | Startbefehl für Claude Code |
| [docs/01-konzept.md](docs/01-konzept.md) | Idee, Rollen, Funktionsumfang |
| [docs/02-architektur.md](docs/02-architektur.md) | Module, Frameworks, Datenflüsse |
| [docs/03-design.md](docs/03-design.md) | Designsystem, Farben, Typografie, Texte |
| [docs/04-fahrplan.md](docs/04-fahrplan.md) | Meilensteine mit Abnahmetests |
| [docs/05-testplan-hardware.md](docs/05-testplan-hardware.md) | Tests, sobald die Hardware da ist |
| [docs/06-netzwerk.md](docs/06-netzwerk.md) | IP-Plan, Schnittstellen, Relay als Plan B |
## Bauen
```bash
brew install xcodegen # einmalig
xcodegen # erzeugt Musubi.xcodeproj aus project.yml
open Musubi.xcodeproj
```
Das `.xcodeproj` ist generiert und nicht im Repo. Nach Änderungen an `project.yml` erneut `xcodegen` ausführen.
Signiert wird mit **Developer ID Application** (Team `XY4C2RG3L5`), Hardened Runtime an. Ohne dieses Zertifikat im Schlüsselbund `CODE_SIGN_IDENTITY`/`DEVELOPMENT_TEAM` in `project.yml` anpassen.
**Installieren immer nach `/Applications`** – in privaten Ordnern blockiert macOS Bonjour (Fernsteuerung).
### Startargumente (für Tests und Knoten ohne Bildschirm)
| Argument | Wirkung |
|---|---|
| `--route "<NDI-Name>=<Bildschirm-Index>"` | Quelle im Vollbild auf Bildschirm (0 = Hauptbildschirm) |
| `--audio-route "ndi:<NDI-Name>=<Gerät>:<Kanal>"` | NDI-Ton auf Ausgangskanal (Gerätename als Teilstring, Kanal ab 1) |
| `--audio-route "input:<Eingang>=<Gerät>:<Kanal>"` | Mikrofon (über die Sprechtaste) auf Ausgangskanal |
| `--load-scene "<Name>"` | gespeicherte Szene laden |
| `--login-item on\|off` | Beim Anmelden starten |
Rolle und Schnittstelle ohne Bildschirm: `defaults write studio.zielke.musubi role node` bzw. `interfaceName en7`.
Protokolle: Console.app, Subsystem `studio.zielke.musubi`. Minuten-Statistik: `~/Library/Logs/Musubi/stats-*.csv` (Bild), `audio-*.csv` (Ton).
Ohne NDI SDK in `Vendor/NDI/` bricht der Build mit einem Hinweis ab. Tests (Swift Testing, 44 Stück): im Schema `Musubi` (⌘U) oder `cd Packages/MusubiKit && swift test` – beides braucht das SDK, weil alle Module mitgebaut werden.
## Struktur
| Pfad | Inhalt |
|---|---|
| `App/` | App-Target: Einstieg, Koordinator (Rolle, Szenen, Live-Stand), Oberfläche, String Catalog |
| `Packages/MusubiKit/` | Module `MusubiCore`, `NDIKit` (+ `CNDI`-Modulemap), `VideoOutput`, `AudioMatrix` (+ `CAudioRing`), `Remote`, `DesignSystem` |
| `design/Theme.swift` | Design-Tokens; im Package als Symlink eingebunden |
| `project.yml` | XcodeGen-Projektdefinition |
## Voraussetzungen
- Xcode (aktuell), macOS auf Apple Silicon zum Entwickeln
- NDI SDK für macOS (nicht im Repo, siehe [Vendor/README.md](Vendor/README.md))
- Zielgeräte: MacBook (Apple Silicon) und Mac mini 2018 (Intel, macOS 15) → Universal Build
© Zielke Studio

Powered by TurnKey Linux.