Warum Grit nativ ist
Grit hat als Electron-App angefangen. Heute ist es eine Rust-Anwendung mit einer harten Echtzeit-Audio-Engine. Hier steht, warum – und was das auf der Bühne ändert.
Die erste Version von Grit war eine Web-App in einer Desktop-Hülle: Electron für das Fenster, Svelte für die Oberfläche, Tone.js für den Sound. Damit ließ sich gut herausfinden, was das Instrument sein soll. Multi-Deck-Wiedergabe, taktquantisierte Starts, Stem-Umschaltung, EQ, Filter und ein Crossfader funktionierten alle, und eine vereinfachte Version dieses Prototyps skizziert heute das Prinzip im Playground auf der Startseite.
Ein Set damit zu spielen, war dagegen keine gute Idee. Also wurde Grit als native Anwendung neu geschrieben.
Was eine Performance braucht
Ein DJ-Tool hat eine Aufgabe, die über allem anderen steht: Der Sound darf nicht abreißen. Nicht beim Laden eines Tracks, nicht beim Scrollen durch die Bibliothek, nicht wenn sich eine Datei als kaputt herausstellt, nicht wenn die Oberfläche gerade acht Wellenformen zeichnet.
In einer Browser-Engine teilt sich das Audio einen Prozess mit Layout, Garbage Collection, JavaScript und allem anderen, was die Seite gerade tut. Für eine Demo kann man das umgehen. Ausschließen kann man es nicht.
Wie Grit heute gebaut ist
Grit ist in Rust geschrieben. Die Oberfläche nutzt GPUI, ein GPU-beschleunigtes UI-Framework, und alles andere liegt hinter einem von der Oberfläche unabhängigen Anwendungskern.
Ein harter Echtzeit-Audio-Callback
Der Audio-Callback ist der Code, der den Puffer deiner Soundkarte füllt, viele Male pro Sekunde. In Grit gilt für ihn ein strenger Vertrag. Er holt Audio ab, das vorab vorbereitet wurde, mischt es, lässt die Uhr weiterlaufen und wendet DSP mit festen Kosten an. Niemals darf er:
- Speicher allozieren,
- einen Lock nehmen oder auf einen anderen Thread warten,
- eine Datei dekodieren,
- auf die Festplatte zugreifen
- oder eine unbegrenzte Schleife ausführen.
Dekodieren, Analyse und Dateiarbeit laufen auf anderen Threads und übergeben fertiges Audio über vorab allozierte, lock-freie Queues an den Callback. Ist etwas weiter vorn in der Kette langsam, hält der Callback trotzdem seine Deadline ein.
Von vornherein begrenzt
Speicher- und CPU-Verbrauch haben feste Obergrenzen, statt nur nach Möglichkeit sparsam zu sein. Tracks werden von der Festplatte gestreamt, statt im Speicher zu liegen, Queues haben feste Kapazitäten, und Hintergrundarbeit bekommt nur eine begrenzte Zahl von Slots. Eine große Bibliothek oder eine lange Session sollte nicht schleichend verändern, wie sich die App verhält.
Das ist gemessen, nicht angenommen. Ein Headless-Release-Gate in der Entwicklung lässt acht Streams mit Keylock und Phase-Bending plus einen Preview-Stream laufen. Am 12. September 2026 hat ein 30-Sekunden-Lauf bestanden: null Decoder-Underruns oder verpasste Callback-Deadlines, 6,40 % CPU-Last im Callback (p99) und ein Spitzenwert von 34,83 MiB residentem Speicher. Das ist eine Headless-Messung aus der Entwicklung, kein Test auf echter Audio-Hardware. Die Qualifizierung auf echter Hardware steht noch aus und gehört zur Arbeit vor dem Launch.
Kaputte Dateien bleiben isoliert
Audiodateien kommen von überall her, und manche davon sind fehlerhaft. Grit parst fremde Medien niemals innerhalb der App. Importiertes Audio und Cover-Bilder laufen durch einen separaten Import-Hilfsprozess, eine Datei pro Durchlauf, mit Zeit- und Speicherlimits. Bringt eine Datei den Hilfsprozess zum Absturz, schlägt nur dieser eine Import fehl. Die App und alles, was gerade spielt, laufen weiter.
Nach dem Import liegt ein Track als verwaltete FLAC-Datei vor, die Grit selbst geschrieben hat, sodass die Wiedergabe immer nur Audio liest, das sie kennt.
Stems auf deinem Mac
Stem-Trennung und Analyse laufen lokal mit Apples MLX auf Metal. In der App stecken kein mitgelieferter Python-Interpreter, keine Node.js-Runtime und keine Browser-Engine. Deine Musik wird nicht zur Verarbeitung hochgeladen, und das Vorbereiten eines Tracks hängt nicht davon ab, dass ein Dienst online ist.
Kein Server auf der Bühne
Nichts an einer Performance hängt von einer Netzwerkverbindung ab. Es gibt keine Cloud-Bibliothek und keinen Streaming-Schritt zwischen deinen Dateien und den Decks.
Die Lizenzierung folgt derselben Regel. Sie ist auf Offline-Aktivierungsnachweise ausgelegt: Ist ein Mac einmal aktiviert, wird der signierte Nachweis lokal gespeichert und ohne Kontakt zu einem Server geprüft. Ein Ausfall auf unserer Seite darf niemals deinen Sound unterbrechen.
Was du davon hast
Das meiste davon ist unsichtbar, solange es funktioniert – und genau darum geht es. Bemerken solltest du, was nicht passiert: Das Laden eines Tracks unterbricht die laufenden Decks nicht, eine kaputte Datei lässt nur ihren eigenen Import scheitern statt die ganze App, und ein langes Set verändert nicht schleichend, wie sich Grit verhält.
Grit braucht einen Mac mit Apple Silicon und macOS 14 oder neuer. Es ist in der finalen Testphase und noch nicht erhältlich. Das Changelog begleitet die restliche Arbeit, und auf der Download-Seite stehen die Systemanforderungen.