DanceGAI ist das Team hinter ManiaGAI, einem KI-Beatmap-Generator für osu! mania. DanceGAI baut KI-Infrastruktur, die Musik in spielbare Erlebnisse verwandelt, und ManiaGAI ist das erste Produkt: Du lädst einen Song hoch, und es generiert ein vollständiges, spielbares osu! mania-Mapset – Timing, Noten und eine Reihe von Schwierigkeiten –, verpackt als ganz normale .osz. Der Song kann eine hochgeladene Audiodatei sein oder der Song eines osu!-Beatmapsets, das du verlinkst; in beiden Fällen wird nur das Audio verwendet, nie die vorhandenen Charts. Version 2 des Systems läuft auf dieser Website. osu! mania ist das erste Ausgabeformat: Das System ist allgemein für Vertical Scrolling Rhythm Games (VSRG) gebaut.
Diese Seite erklärt, wie es funktioniert und warum es so konzipiert ist. Über die Architektur und die technischen Entscheidungen sprechen wir offen; die Details, die jemand zum Nachbauen bräuchte, veröffentlichen wir nicht. Wo eine Zahl noch nicht öffentlich ist, sagt die Seite das, statt zu raten.
Technische Übersicht
| Aufgabe | Audio → spielbares osu! mania-Mapset (.osz), eine komplette Reihe von Schwierigkeiten pro Durchlauf |
|---|---|
| Umfang | Vertical Scrolling Rhythm Games (VSRG) – zuerst osu! mania; weitere VSRG-Formate geplant |
| Timing | Aktivierungen von Beat This → proprietäres Grid-Fitting (variables Tempo). In unserem Benchmark wurden 97,1 % von 2.501 Ranked Songs mit konstantem Tempo auf 40 ms genau zum Timing des Mappers getimt |
| Musikrepräsentation | MERT-v1-95M, Beat für Beat am Timing-Raster ausgerichtet |
| Planer | Gauß’sche Diffusion über einen Gameplay-Zustand pro Abschnitt, ~6 Mio. Parameter |
| Notenmodell | Nicht-autoregressiver Transformer im MaskGIT-Stil über Pattern-Tokens, ~51 Mio. Parameter |
| Steuerung | 4K–9K · Zielwerte ★1–10 · 5 Style-Dimensionen (LN-Anteil, LN inverse, Jack, Mini-LN, Delay) |
| Trainingsdaten | 150.622 von Menschen erstellte Charts · 86.255 Songs · ~14.500 Mapper · 4.227 h Audio |
| Validierung | Prüfung des Timing-Rasters, Bereinigung ungültiger Noten, Stille-Schutz, Star-Rating-Messung nach osu!, Konsistenz des Mapsets |
| Training | Eine RTX 4070 Ti SUPER · ~580 protokollierte GPU-Stunden über die gesamte Entwicklungslinie der Produktivmodelle |
| Generierung | Die gewünschten Schwierigkeiten werden gemeinsam in einem gebündelten GPU-Durchgang generiert · ~20 s GPU-Rechenzeit für ein komplettes Mapset |
| Bereitstellung | Serverlose GPU-Worker, wiederhergestellt aus einem Speicher-Snapshot; Audio wird im Browser normalisiert |
Eine Beatmap ist keine Transkription
Der naheliegende Ansatz für automatische Beatmap-Generierung lautet „Audio rein, neuronales Netz, Noten raus“. In der Praxis entstehen so Charts, die der Musik technisch folgen und sich unangenehm spielen. Eine gute osu! mania-Map ist eher ein Arrangement als eine Transkription: Ein Mapper entscheidet, welche Sounds Noten verdienen, wie dicht sich ein Abschnitt anfühlen soll, wo ein Jack oder eine Long Note hingehört, wie Patterns zwischen den Händen fließen und wie sich all das zwischen einer Easy- und einer Expert-Schwierigkeit verändert.
Deshalb behandelt ManiaGAI Beatmap-Generierung als Abfolge eigenständiger Probleme – die Musik verstehen, das Gameplay planen, die Noten setzen und das Ergebnis prüfen:
- Musik
- Verständnis
- Planung
- Generierung
- Verfeinerung
- Beatmap
1. Musikverständnis
Alles Weitere hängt von einem präzisen Bild des Songs ab. Die erste Stufe macht aus dem rohen Audio zwei Dinge: ein Timing-Raster und eine hochauflösende musikalische Repräsentation jedes Moments des Songs.
Timing. Beat- und Downbeat-Aktivierungen kommen von Beat This, einem Open-Source-Modell für Beat-Tracking. Aus diesen Aktivierungen ein osu!-Timing-Raster zu machen – BPM und Offset, auch für Songs mit Tempowechseln –, ist unsere eigene Grid-Fitting-Methode, und sie erzeugt dieselbe Art von Rastern, auf der die Generierungsmodelle trainiert wurden. Timing ist das, was Spieler zuerst bemerken: Ein Chart, das ein paar Millisekunden neben dem Beat liegt, ist unspielbar, egal wie gut seine Patterns sind – deshalb wird es als eigenständiges Kernproblem behandelt, nicht als Vorverarbeitungsschritt.
Musikalische Merkmale. Das Audio wird mit MERT-v1-95M kodiert, einem selbstüberwacht trainierten Modell zur Musikrepräsentation, und am Timing-Raster ausgerichtet – so sehen die Modelle die Musik Beat für Beat: Onsets, Klangtextur, Intensität und wie sich all das im Verlauf des Songs verändert. Stille Passagen werden separat erkannt, damit darüber nichts gechartet wird.
2. Beatmap-Planung
Die zentrale Designentscheidung bei ManiaGAI ist, zu trennen, was passieren soll, und wie Noten gesetzt werden.
Ein eigenes Planungsmodell liest die musikalische Repräsentation und legt die Gameplay-Struktur des ganzen Songs fest, bevor es auch nur eine Note gibt: wie dicht jeder Abschnitt sein soll, welche Arten von Patterns wohin gehören, wie die Schwierigkeit steigt und fällt und wie all das zur gewünschten Schwierigkeit und zum gewünschten Style passt. Das Ergebnis ist ein Plan, der das Chart Abschnitt für Abschnitt beschreibt – lokale Schwierigkeit und die Mischung aus Long Notes, Jacks und anderen Pattern-Typen –, keine Noten.
Der Planer ist ein Gauß’sches Diffusionsmodell (etwa 6 Mio. Parameter). Er generiert den Plan für alle Abschnitte des Songs gemeinsam, konditioniert auf die Musik, die Tastenanzahl sowie die Zielschwierigkeit und den Style. Diffusion passt gut zu dieser Aufgabe: Ein Plan ist eine glatte, kontinuierliche Beschreibung eines Songs, und wenn er als Ganzes generiert wird, kann der Planer den gesamten Song auf einmal ausbalancieren.
Planung auf dieser Ebene gibt dem System etwas, das einem Modell, das Note für Note arbeitet, fehlt: den Blick auf den ganzen Song. Ein Refrain kann so geplant werden, dass er härter zuschlägt als die Strophe davor; ein Breakdown kann so geplant werden, dass er Luft zum Atmen lässt.
3. Notengenerierung
Ein zweites Modell setzt den Plan in tatsächliche Notenplatzierung um – welche Spalten, welche Noten Taps und welche Long Notes sind, wie Patterns ineinandergreifen. Die Planung bestimmt die Struktur; die Notengenerierung macht daraus spielbare Noten, die sowohl dem Plan als auch dem Audio folgen.
Das Notenmodell ist ein nicht-autoregressiver Transformer im MaskGIT-Stil (etwa 51 Mio. Parameter). Charts werden als diskrete Pattern-Tokens dargestellt, und statt sie einzeln von Anfang bis Ende zu schreiben, füllt das Modell das ganze Chart aus und verfeinert es dann in mehreren Durchgängen – es legt die Noten fest, bei denen es sich sicher ist, und überarbeitet den Rest. Jeder Durchgang sieht den Kontext auf beiden Seiten jedes Abschnitts, und genau das hält Patterns über einen Song hinweg konsistent. Wie diese Durchgänge über einen Song verteilt werden, ist unsere eigene Verfeinerungsmethode.
Warum ManiaGAI einen Planner + Noter nutzt (Englisch) →
4. Steuerbare Generierung
ManiaGAI ist kein System nach dem Motto „generieren und hoffen“. Derselbe Song kann mit expliziten Vorgaben generiert werden, und diese Vorgaben gehören zu dem, worauf die Modelle trainiert wurden:
- Tastenanzahl – 4K bis 9K.
- Schwierigkeit – eine beliebige Auswahl an Star Ratings von ★1 bis ★10. Ein Song ergibt in einem einzigen Durchlauf ein ganzes Mapset, von Easy bis Expert.
- Style – Gameplay-Eigenschaften wie der Anteil an Long Notes und wie viel Jack-, Inverse-LN-, Short-LN- und Delay-Patterning ein Chart enthält, jeweils im Generator einstellbar.
- Dichte – ergibt sich aus der Zielschwierigkeit und dem Plan, statt aus einer festen Regel.
Jede Schwierigkeit wird aus demselben Verständnis des Songs generiert, sodass sich ein Mapset wie eine zusammengehörige Familie von Charts liest statt wie unzusammenhängende Einzelstücke. Als Nächstes arbeiten wir an gelernten Style-Repräsentationen – einen Mapping-Style anhand von Beispielen beschreiben statt mit einer Handvoll Reglern.
5. Validierung und Qualitätskontrolle
Bevor ein Chart bei dir ankommt, prüft das System es:
- Timing – die geschriebenen Timing Points werden mit dem erkannten Raster abgeglichen.
- Ungültige und unspielbare Noten – überlappende Noten, kaputte Long Notes und Platzierungen, die das Spiel nicht darstellen kann, werden bereinigt, und über offensichtlich stilles Audio wird nichts gechartet.
- Gemessene Schwierigkeit – das Star Rating jedes Charts wird mit demselben Star-Rating-Algorithmus gemessen, den osu! verwendet, und die Schwierigkeit wird nach dem gemessenen Wert benannt, nicht nach dem angeforderten.
- Konsistenz über das Mapset – ein Chart, das leichter ausfällt als das, das darunter liegen soll, oder in der Schwierigkeit fast identisch mit einem Nachbarn ist, wird verworfen statt ausgeliefert. Im Generator siehst du, welche Sterne verworfen wurden und warum.
- Gültige Ausgabe – das Ergebnis wird als ganz normale .osz mit Audio, Hintergrund und Hitsounds verpackt, die sich direkt in osu! importieren lässt.
In Zahlen
- Songs im Trainingsdatensatz
- 86.255
- Trainings-Charts
- 150.622
- Mapper
- ~14.500
- Einzigartiges Audio
- 4.227 h
- Trainingsmerkmale auf der Festplatte
- ~0,7 TB
- Trainingsrechenzeit (protokolliert, Produktivlinie)
- ~580 GPU-Stunden
- Letzter Lauf des Notenmodells
- ~4 Tage
- Modellparameter
- ~57 Mio. (51 Mio. Noten + 6 Mio. Planer)
- Generierung eines kompletten Mapsets
- ~20 s
- Tastenmodi
- 4K–9K
- Schwierigkeitsbereich
- ★1–★10
- Schwierigkeiten pro Durchlauf
- bis zu 10 (weniger bei langen Songs)
Trainingsdaten
Die Produktivmodelle lernen aus 150.622 von Menschen erstellten osu! mania-Charts zu 86.255 Songs – 4.227 Stunden einzigartiges Audio – von rund 14.500 Mappern. Die meiste Arbeit in einem System wie diesem steckt nicht im Modell, sondern in den Daten: entscheiden, welche Charts es wert sind, daraus zu lernen, sicherstellen, dass das Timing jedes Trainingsbeispiels stimmt, und Charts in einer Form darstellen, die erfasst, was sie spielbar macht.
Den Trainingsdatensatz erkunden (Englisch) →
Evaluation: Timing-Genauigkeit
Wir haben unser Timing mit menschlichem Timing verglichen, und zwar bei jedem Ranked-osu! mania-Mapset mit einem einzigen, konstanten Tempo, das wir auswerten konnten – 2.501 Songs –, zusammen mit dem Timing-Modus des Open-Source-Tools Mapperatorinator und ManiaGAI v1, unserem vorherigen Detektor. Ein Song gilt als korrekt, wenn die BPM mit denen des Mappers übereinstimmen (halbes/doppeltes Tempo zugelassen) und die Beat-Phase innerhalb der jeweiligen Toleranz liegt.
| Methode | ≤10 ms | ≤20 ms | ≤40 ms | BPM korrekt | Eine Timing-Linie |
|---|---|---|---|---|---|
| ManiaGAI v2 | 71,4 % | 92,3 % | 97,1 % | 98,0 % | 100 % |
| Mapperatorinator | 78,0 % | 90,9 % | 91,7 % | 92,6 % | 11,0 % |
| ManiaGAI v1 | 74,8 % | 88,0 % | 90,7 % | 94,0 % | 92,8 % |
Nur Ranked Songs mit konstantem Tempo; „eine Timing-Linie“ = der Song wurde wie vom Mapper mit einer einzigen Linie getimt (eine zusätzliche Linie bei einem Song mit konstantem Tempo ist ein falscher Tempowechsel). Gemessen mit einer Konfiguration, die der ausgelieferten nahekommt, aber nicht mit ihr identisch ist.
Den vollständigen Timing-Benchmark lesen (Englisch) →
Training
Der Planer und das Notenmodell werden getrennt trainiert, jeweils auf der Repräsentation, mit der sie arbeiten – der Planer als Gauß’sches Diffusionsmodell über eine gaußisierte Beschreibung des Gameplays jedes Abschnitts, das Notenmodell per Masked-Token-Vorhersage über Pattern-Tokens. Die Trainingsbeispiele sind über Tastenanzahlen und Schwierigkeitsstufen ausbalanciert, damit 8K- und ★10-Charts nicht von 4K und ★4 übertönt werden, und das Notenmodell trainiert mit gemischter Präzision.
Jede Änderung wird an den generierten Charts selbst beurteilt – Timing-Genauigkeit, gemessene Schwierigkeit im Vergleich zum Ziel, Spielbarkeit –, nicht allein am Trainings-Loss.
Inferenz und Performance
Ein nützliches KI-System hängt nicht nur von der Modellqualität ab; es muss auch schnell genug sein, um es zu benutzen. Eine ManiaGAI-Anfrage läuft so ab:
- In deinem Browser: Der Song wird dekodiert, in der Lautheit normalisiert und neu kodiert, sobald du die Datei auswählst, während du noch die Einstellungen wählst – so wartet die GPU nie auf die Audioverarbeitung.
- Musikverständnis auf der GPU: Beat This und MERT, wobei das Grid-Fitting parallel zu MERT auf der CPU läuft.
- Planung und Notengenerierung für alle gewünschten Schwierigkeiten in einem gebündelten Durchgang.
- Validierung – Star-Rating-Messung, Konsistenzprüfungen.
- Verpacken als .osz, dann der Download.
GPU-Worker starten aus einem vorgeladenen Snapshot, sodass selbst ein kalter Worker in Sekunden bereit ist, statt diese Zeit mit dem Laden von Modellen zu verbringen. Ein komplettes Mapset braucht für einen typischen Song etwa 20 Sekunden GPU-Rechenzeit – ohne Upload, Warteschlange oder Download; ein gemessener Song von 2:50 Minuten mit fünf Schwierigkeiten brauchte auf einer NVIDIA T4 12,7 Sekunden – Timing und Musikmerkmale 3,8 s (parallel ausgeführt), Planung 1,0 s, Notengenerierung für alle fünf Schwierigkeiten 6,1 s.
Wie wir die Generierung schnell gemacht haben (Englisch) →
Was wir nicht veröffentlichen
Wir veröffentlichen die Architekturprinzipien, die technischen Entscheidungen dahinter und was das System kann und was nicht – einschließlich der offenen Modelle, auf denen wir aufbauen (Beat This, MERT), und der Modellfamilien, zu denen unsere eigenen Modelle gehören (Gauß’sche Diffusion, MaskGIT). Nicht veröffentlichen wir die Methoden, die wir selbst entwickelt haben, und die Details, mit denen jemand das System nachbauen könnte: wie das Timing-Raster angepasst und seine Tempo-Segmente zusammengeführt werden, wie die Verfeinerungsdurchgänge des Notenmodells über einen Song verteilt werden, wie die Modelle konditioniert werden, genaue Architekturen, Loss-Funktionen und Hyperparameter sowie wie die Trainingsdaten beschafft, gefiltert und aufgebaut werden. Das ist die Grenze zwischen Transparenz über das, was wir gebaut haben, und der Herausgabe des Rezepts. Wenn wir Aussagen über Qualität treffen, wollen wir sie mit veröffentlichten Benchmarks belegen – nicht mit Adjektiven.
Wie es weitergeht
Über osu! mania hinaus. ManiaGAI ist um eine Gameplay-Repräsentation herum entworfen, die nicht spezifisch für osu! mania ist: Noten und Long Notes in Spalten, auf einem Timing-Raster gesetzt und auf eine Zielschwierigkeit konditioniert. osu! mania ist das erste Ausgabeformat, nicht die Grenze des Systems.
Im Detail
Forschung und Engineering hinter ManiaGAI, ausführlich:
ManiaGAI ausprobieren
Generiere aus deinem Song ein vollständiges osu! mania-Mapset – kostenlos, in Sekunden.
Mapset erstellen →