SoftChart V1.8 Hierarchical Scratch
SoftChart V1.8 generates Taiko no Tatsujin-style charts directly from log-mel audio. This release is a compact hierarchical encoder-decoder trained from scratch on JacobLinCool/taiko-1000-parsed-clean; it does not use an external pretrained model or an external song planner.
The model combines a whole-song section encoder, a local rhythmic-skeleton auxiliary head, dual time/slot generation, and a beat/downbeat head. The public Space uses time-mode generation for arbitrary uploads, then uses the beat head only to estimate BPM and quantize the exported TJA. Exact slot generation is reserved for inputs with a complete, trusted rational meter grid including a terminal edge.
Architecture
| Item | Value |
|---|---|
| Parameters | 8,985,091 |
| Audio encoder / chart decoder | 4 / 4 layers |
| Hidden size / attention heads | 256 / 8 |
| Feed-forward size | 960 |
| Hierarchical section encoder | 2 layers, FFN 512 |
| Vocabulary | 1,810 tokens |
| Audio input | 22,050 Hz, 128-bin log-mel |
Enabled capabilities are hierarchical_ctx, aux, dual, beat_head, and clean_phase. Legacy external plan conditioning is disabled.
Frozen evaluation
The locked test split contains 120 songs and 503 authored/time charts. Exact-slot results cover only the 127 charts whose parsed authored meter has a fully bounded-safe prefix.
| Metric | Locked test |
|---|---|
| Exact-slot micro F1 (bounded-safe prefix) | 0.6810 |
| Full-song time F1 @ 25 ms | 0.4715 |
| Full-song time F1 @ 50 ms | 0.5972 |
| Mean per-chart median timing offset | 9.39 ms |
| Don/ka accuracy on 50 ms matches | 0.6551 |
These metrics compare against one authored chart even though chart design permits multiple valid answers. They do not establish human-rated groove, fun, or playability. The release has one training seed and no fair same-split V1.6/V1.7 retraining baseline.
Known limitations include weak note-type decisions relative to onset placement, under-generation of rolls/balloons, repetitive slot-mode motifs, and beat-grid ambiguity outside stable 4/4 material.
Use
The easiest supported interface is the JacobLinCool/softchart Space. Programmatic loading uses the softchart package from the source repository:
from softchart.generate import load_hf, generate_song
model = load_hf("JacobLinCool/softchart-v18", device="cuda")
chart = generate_song(
model,
log_mel,
course="oni",
level=9,
device="cuda",
greedy=True,
)
Audio preprocessing is part of the model contract in preprocessor_config.json: FFmpeg decodes stereo float32 at 22,050 Hz, channels are averaged arithmetically, and a periodic-Hann STFT (n_fft=2048, hop_length=256) is projected to 128 mel bins before natural-log compression.
Artifact provenance
- Source checkpoint SHA-256:
2a7a75f720369db03e5c114eff065de90ccc864259495463287509682c6352db model.safetensorsSHA-256:68d924542033c1ad234ed23329e469cd5caaea4aa72dcfb83dec3a0d76f1295f- Preprocessing contract SHA-256:
2d8c542f628decc16b0fdd37befa9eff71b1734da29cf4556943260c2c8c2636 - HF export round-trip verification: passed
Released under the MIT license.
- Downloads last month
- 42