TONWERK-AI

Einrichtung

Tonwerk-AI besteht aus zwei Teilen: dem Server auf einem Mac, der die Modelle rechnen lässt und die Songs speichert, und der App auf iPhone, iPad oder Mac, die ihn bedient. Der Server wird einmal eingerichtet und aktualisiert sich danach selbst. Wer erst schauen will, nimmt den Demo-Modus.

Was du brauchst

1. Server installieren

Auf dem Mac, der rechnen soll, im Terminal:

xcode-select --install
git clone https://github.com/Marcel-B/Tonwerk-AI.git ~/repos/Tonwerk-AI
~/repos/Tonwerk-AI/deploy/setup-mac.sh

Die erste Zeile installiert Apples Command Line Tools (git, Compiler), falls sie fehlen. Das Skript prüft dann den Mac und installiert, was fehlt: Homebrew, uv, ffmpeg, Node.js und das .NET 10 SDK. Danach holt es YuE2 als Checkout von YuE Studio in der geprüften Version, baut die Brücke zur Neural Engine, lädt die Modelle (etwa 7 GB) und startet den Server als Dienst, der mit der Anmeldung des Benutzers läuft. Am Ende rechnet es einmal zur Probe.

Das Skript darf beliebig oft laufen; was schon da ist, überspringt es. Ist die App YuE Studio schon installiert, nutzt der Server deren Modelle und Songordner (~/Music/YuE Studio) mit, beide sehen dieselbe Bibliothek.

Optionen

Weitere Werkzeuge kommen mit Optionen dazu, gleich beim ersten Lauf oder später:

--transcription
SheetSage2 für die Transkription (etwa 2 GB)
--voices
Stem-Trennung und Seed-VC für andere Stimmen
--speech
das Sprachlabor mit mlx-audio
--images
Bildmodelle für gemalte Cover: FLUX.2 Klein, Z-Image Turbo, Krea 2 Turbo und FLUX 3 Klein (die letzten beiden nur auf einem Mac mit 32 GB)
--midi
Basic Pitch für Audio zu MIDI
--whisper
Whisper für den mitlaufenden Songtext
--montage
Musikvideos aus eigenen Fotos und Clips
--ace
ACE-Step als zweites Songmodell
--singing
SoulX-Singer für die Seite Singen (etwa 3 GB)
--all
alles oben

Eine Option später nachrüsten, ohne die früheren zu verlieren:

~/repos/Tonwerk-AI/deploy/setup-mac.sh $(cat "$HOME/Library/Application Support/YuE UI/setup-options") --images

Modelle laden beim ersten Gebrauch, die Seite in der App zeigt so lange, dass sie lädt.

Updates

Das Skript schaltet automatische Updates ein: Alle fünf Minuten sieht der Mac nach neuen Versionen, wartet, bis nichts mehr rechnet, sichert Datenbank und Einstellungen nach ~/Backups/YueUI und installiert die neue Version. Wartende Aufträge überstehen den Neustart. deploy/update.sh status zeigt den Stand, deploy/update.sh off schaltet ab.

2. Server erreichbar machen

Der Server lauscht nur auf dem Mac selbst (127.0.0.1:5090) und hat kein eigenes Login. Erreichbar wird er über Tailscale, nur für die Geräte deines Tailnets und mit HTTPS-Zertifikat:

tailscale serve --bg --https=8443 5090

Danach heißt er https://<name-des-macs>.<tailnet>.ts.net:8443; den genauen Namen zeigt tailscale serve status. Im Browser öffnet diese Adresse mit /ui/ dahinter die Weboberfläche; die App braucht dieselbe Adresse. Den Server nie mit tailscale funnel ins offene Internet stellen: Jeder könnte dann Songs erzeugen und löschen.

3. App installieren

4. App verbinden

  1. Tailscale auf dem Gerät einschalten.
  2. Tonwerk-AI öffnen. Beim ersten Start fragt die App nach der Adresse des Servers: die aus Schritt 2, etwa mac-mini.tailnet.ts.net:8443. https:// ergänzt sie selbst; die Adresse der Weboberfläche mit /ui/… geht auch.
  3. Verbinden. Die App lädt Bibliothek, Playlists und Warteschlange und bleibt über einen Ereignisstrom live auf dem Stand.

Auf dem Server-Mac selbst geht auch http://127.0.0.1:5090, ohne Tailscale. Einen anderen Server wählst du in den Einstellungen der App unter Anderen Server verwenden. Die Adresse ist das einzige, was die App sich über den Server merkt.

Beim ersten Gebrauch fragt die App nach den Rechten, die eine Seite braucht: Lokales Netzwerk für einen Server im Heimnetz, Mikrofon für Stimmen im Sprachlabor und beim Singen, Bluetooth für MIDI-Instrumente über Bluetooth. Ohne sie geht der Rest weiter.

Ohne Server ausprobieren

Auf dem Startbildschirm führt Ohne Server ausprobieren in eine eingebaute Beispielbibliothek mit drei kurzen, eigens synthetisierten Songs, Playlists, Sternen, Notizen und einer Partitur. Sie liegt in der App, es geht nichts ins Netz, und Änderungen gelten nur, bis die App beendet wird. Was die Modelle braucht (neue Songs, Stimmen, die meisten Werkzeuge), sagt dort, dass es den eigenen Server braucht. Zurück geht es in den Einstellungen mit Eigenen Server verbinden.

Was der Server zusätzlich nutzen kann

LM Studio
Für Text entwerfen braucht der Mac LM Studio mit einem Sprachmodell, standardmäßig google/gemma-4-26b-a4b-qat (rund 15 GB; bei 16 GB Speicher besser google/gemma-4-e4b). LM Studio muss nicht offen sein, der Server startet und lädt es selbst und entlädt das Modell nach jedem Entwurf.
Claude
Die Ausarbeitung braucht, die Songtexte und die Übersetzung von Cover-Beschreibungen können einen eigenen API-Schlüssel von Anthropic nutzen (console.anthropic.com). Er gehört in ~/.config/tonwerk/anthropic.key (eine Zeile, chmod 600). Was dann an Anthropic geht, steht im Datenschutz; die Kosten rechnet Anthropic mit dir ab.
Nextcloud
Eine nächtliche Sicherung von Datenbank und Songs in die eigene Nextcloud (oder jeden WebDAV-Speicher): WebDAV-Adresse, Benutzer und App-Passwort in ~/.config/tonwerk/nextcloud.env als NEXTCLOUD_WEBDAV_URL, NEXTCLOUD_USERNAME und NEXTCLOUD_APP_PASSWORD.
Externe Platte
deploy/move-to-volume.sh zeigt, welche Teile (Modelle, Songs, Stems, …) wie groß sind; deploy/move-to-volume.sh /Volumes/<Platte> yue2 songs verlegt sie auf eine externe SSD und lässt einen Verweis zurück, --back holt einen Teil zurück. Damit der Dienst die Platte lesen darf, braucht sein dotnet in den Systemeinstellungen Festplattenvollzugriff.

Probleme

Keine Verbindung
Ist Tailscale auf dem Gerät eingeschaltet und im selben Tailnet? Läuft tailscale serve status auf dem Mac mit Port 8443? Öffnet die Adresse im Browser des Geräts die Weboberfläche? Ist der Mac wach und ein Benutzer angemeldet (der Dienst läuft in seiner Sitzung)?
Ein Werkzeug sagt, es fehle etwas
Dann ist die passende Option noch nicht eingerichtet. Mit den gespeicherten Optionen plus der neuen erneut setup-mac.sh laufen lassen.
Ein Auftrag wartet lange
Der Mac rechnet ein großes Modell zur Zeit; die Warteschlange zeigt oben, welches den Speicher hat und worauf jeder Auftrag wartet. Ist die App YuE Studio offen, läuft dort ein zweites Modell, das Speicher braucht: besser schließen.
Etwas geht schief
Werkzeuge → Protokoll zeigt die Meldungen des Servers und kopiert einen Bericht ohne Einstellungen, Schlüssel und Adressen, den du mir schicken kannst.