Wiki · TJA & simulators
TJA Format Guide: Headers, Notes & Commands
The TJA Taiko chart format explained: headers like BPM, OFFSET and COURSE, note numbers 0–9, #BPMCHANGE, #GOGOSTART, branches, #LYRIC and text encoding.
TJA is the plain-text chart format used by Taiko simulators. This guide uses the real output of the demo song to explain the header fields, note numbers and commands, and what to watch for when you put a file into a simulator.
What a TJA file looks like
Below is the TJA the Neural engine actually produced for the demo song 〈demo_song〉, an original synthetic track made for this site, with a few middle measures omitted. Lines with a colon are headers; the chart body sits between #START and #END, and each comma ends a measure.
TITLE:demo_song
SUBTITLE:--AutoTaiko
BPM:150.0
WAVE:demo_song.ogg
OFFSET:-1.601
DEMOSTART:11.201
COURSE:Oni
LEVEL:8
BALLOON:
SCOREINIT:
SCOREDIFF:
#START
300000000000100000000000100000000000100000000000,
100000000000100000000000100000000000200000000000,
100000000000100000000000300000000000200000000000,
100000200200200000100000100000200200100000200000,
// …
#GOGOSTART
#SCROLL 1.1
100200100200100000200200100200100200100000200200,
100100100200100000200200100100100100100000200200,
// …
#GOGOEND
#SCROLL 1.0
100000200200100000100200100200100000200000100200,
// …
000000000000000000000000000000000000000000000000,
#END
This chart uses 48 characters per measure (4/4), so 12 characters make one beat: the opening 300000000000100000000000… is “Big Don, Don, Don, Don”, four quarter notes.
Header fields
TITLE, BPM, WAVE, OFFSET and DEMOSTART go at the top of the file and apply to every difficulty. LEVEL, BALLOON, SCOREINIT and SCOREDIFF after a COURSE line belong to that difficulty only, and each difficulty has its own #START…#END block.
| Field | Meaning | Example |
|---|---|---|
TITLE |
Song title. | TITLE:demo_song |
SUBTITLE |
Subtitle, often the original artist or source. A leading -- is a common convention; this site’s player hides it when displaying. | SUBTITLE:--AutoTaiko |
BPM |
The starting tempo in beats per minute; decimals are allowed. Tempo changes later in the song use #BPMCHANGE. | BPM:150.0 |
WAVE |
File name of the audio. Keep the audio in the same folder as the .tja; the name must match exactly, extension included. | WAVE:demo_song.ogg |
OFFSET |
The chart’s time offset from the audio, in seconds, with the sign reversed: the first measure starts at -OFFSET seconds into the audio. That is why it is usually negative — OFFSET:-1.601 means the first measure begins 1.601 seconds after the music starts. | OFFSET:-1.601 |
DEMOSTART |
Where (in seconds) the song-select preview starts. | DEMOSTART:11.201 |
COURSE |
Difficulty: Easy, Normal, Hard, Oni or Edit (Ura Oni); 0–4 also works. | COURSE:Oni |
LEVEL |
Star rating, usually 1–10. | LEVEL:8 |
BALLOON |
How many hits each balloon (7) and kusudama (9) needs, comma-separated in the order they appear. | BALLOON:10,15 |
SCOREINIT |
||
SCOREDIFF |
Scoring: the base score per note and the bonus that grows with combo. TaikoForge leaves them blank so each simulator scores by its own rules. | SCOREINIT: |
Note numbers
| Number | Notes | Meaning |
|---|---|---|
0 |
Blank | No note in this slot. |
1 |
Don | Red note: hit the drum face. |
2 |
Ka | Blue note: hit the rim. |
3 |
Big Don | A big red note. |
4 |
Big Ka | A big blue note. |
5 |
Drumroll | Start of a yellow drumroll: hit as many times as you can until the 8. |
6 |
Big drumroll | Start of a big drumroll, also ended by 8. |
7 |
Balloon | Hit it the number of times set in BALLOON before the 8. |
8 |
End | Ends the preceding drumroll or balloon. |
9 |
Kusudama (big balloon) | Like a balloon; its hit count also comes from BALLOON. |
A measure's length is set by its time signature; the number of characters only sets how fine the grid is, and the characters in a measure evenly share its time. In 4/4, 16 characters give 16th notes. With 48 characters, every 3 is a 16th note and every 4 is a triplet eighth (12th note), and both rhythms can share one measure. A line with only one comma is a full-measure rest.
A measure can span several lines; it only ends at a comma. Anything after // is a comment. Some simulators define extra characters such as A and B, with varying support; TaikoForge only writes 0–9.
Common commands
Commands start with # and sit on their own line between #START and #END; they take effect from where they appear.
| Command | What it does |
|---|---|
#START |
|
#END |
A difficulty’s chart starts at #START and ends at #END. |
#BPMCHANGE 180 |
Switches to a new BPM from this point. It can go mid-measure and only affects the notes after it; TaikoForge writes it when tempo-change detection is on and finds a change. |
#MEASURE 3/4 |
Changes the time signature; put it at the start of a measure and it applies from that measure on. |
#SCROLL 1.1 |
Changes the scroll speed (a multiplier) without changing note timing. With “Speed up scroll during GOGO sections” on, TaikoForge uses 1.1 in GOGO sections; it also uses #SCROLL to keep scrolling smooth across tempo changes. |
#DELAY 0.5 |
Shifts all following notes later by the given number of seconds. |
#GOGOSTART |
|
#GOGOEND |
Start and end of GOGO TIME (the climax section). |
#BARLINEOFF |
|
#BARLINEON |
Hides or shows the bar lines again; note timing is unaffected. |
#BRANCHSTART |
|
#N #E #M |
|
#BRANCHEND |
Branching charts: switch between Normal (#N), Expert (#E) and Master (#M) paths depending on how well you play. For example, #BRANCHSTART p, 65, 90 judges by accuracy (%) with thresholds of 65 and 90. Exact rules vary by simulator. |
#LYRIC |
Shows a lyric line until the next #LYRIC; an empty #LYRIC clears it. It is an extension command whose support depends on the simulator; TaikoForge’s lyrics tool writes it. |
When a song’s rhythm won’t line up with a normal grid, the Onset engine switches to a fixed high-resolution grid. In that case the BPM field is not the song’s real tempo, and the chart starts with an extra #SCROLL line (for example #SCROLL 0.5) so the scroll speed still looks normal.
This is how the demo song’s GOGO section is written (middle measures omitted):
#GOGOSTART
#SCROLL 1.1
100200100200100000200200100200100200100000200200,
// …
#GOGOEND
#SCROLL 1.0
A tempo change in the middle of a measure (illustration): the first half uses the original BPM, and the slots after #BPMCHANGE use 180.
1010101010101010
#BPMCHANGE 180
1010101010101010,
Text encoding: UTF-8 vs Shift-JIS
TaikoForge always writes .tja files as UTF-8 (without a BOM). Many Japanese charts shared online are Shift-JIS, and older simulators such as Taikojiro (太鼓さん次郎) generally expect Shift-JIS.
If the title or lyrics look garbled, check which encoding your simulator expects and re-save the file in that encoding with a text editor. Note that Shift-JIS cannot hold some Traditional Chinese characters, so keep such titles in UTF-8. This site’s player detects both encodings automatically.
Some simulators (for example, Taiko-web) only read files with a BOM as UTF-8. Without a BOM, the file may be read as Shift-JIS and show garbled text; in that case, save it again as “UTF-8 with BOM.”
Using TJA in simulators
- Taikojiro (太鼓さん次郎): A long-standing free simulator for Windows that many Japanese custom charts are made for. Put the .tja and its audio in one folder, then place it in the song folder as its documentation describes.
- TJAPlayer3 / OpenTaiko: Open-source TJA simulators; OpenTaiko is derived from TJAPlayer3. Put the whole song folder in the game’s song directory and reload the song list.
- Taiko-web: A Taiko simulator that runs in the browser. Some hosted instances let you load custom songs; whether that’s available depends on the site.
- Play TJA Charts Online: No install or sign-up: pick a .tja and its audio and play with the keyboard (DFJK). It currently plays only the first branch and doesn’t support complex scroll values (e.g. #SCROLL 1.2i).
For the folder layout and matching the WAVE field, see step 5 of the Chart-making guide.