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.