TJAPlayer3

TJA Format and on

Main maintainer of this article: @IepIweidieng

This is an unofficial compilation and commentation of the TJA format & its related formats.

This article aims at providing a comprehensive enough overview & possible etymologies and addressing undocumented corner cases.

This article is still in construction and will be updated at times. It’s recommended to check its change history regularly.

Also see TODO for known issues and planned changes of this article.

This article also contains unimplemented proposals, including tentative proposals by the main maintainer of this article and known proposals by simulator developers. These proposals are explicitly expressed to be Proposals and may be subject to changes. See Proposers for the list of proposers for proposals listed in this article.

See Terminologies for the explanation and conventions of some terminologies used in this article.

When there exist multiple equivalent usages accepted by the simulators, the conventional ones are represented in bold.

Formats

Notechart Formats

Known external-use notechart formats used in TaikonoTatsujin games and simulators:

The dates listed here are mostly in UTC+9.

Extension Full Name Content Supported by First Release Specification
.bin Binary (Fumen Notechart File Format) Notechart metadata + definition (binary file) Official games, taiko-web (plugin “Fumen File Format”) 2000 (official local test)
2001-02-21 (AC1)
Proprietary format, not explained in this article.
.tjf TaikonoTatsujinfumen
Taiko no Tatsujin Notechart (?)
Notechart metadata + definition Taikosan, TaikoJiro 1 2004-05-08 (TJF EDIT)
2006-03-30 (Taikosan nicover)
2007-07-06 (Taikosan’s public release)
2009-01-16 (Taikosan’s public re-release with TJF EDIT’s public release)
Re-released Taikosan’s Readme.txt
data.txt owatatsujin Notechart Data (?) Notechart set metadata + definition owatatsujin 2007-03-04 (owatatsujin v1.31; first release) See https://web.archive.org/web/20150527222157/http://www.geocities.jp/syun_k765/flash/owatatsu/seqhowto.html
Based on the notechart format of CIRRING-S by D4U: http://noia.g3.xrea.com/parastoic/crs/maker.html
and CarmBeat by D4U http://noia.g3.xrea.com/parastoic/carm/maker.html
Similar to the Simai notation, which is also based on D4U’s format: https://w.atwiki.jp/simai/pages/1003.html
.osu osu! Beatmap Notechart metadata + definition osu!, taiko-web, OutFox (Taiko mode planned) 2007-07-01 (UTC+?)
2008-05 (taiko mode)
Non-after 2008-05-23 (first known mentioning)
See https://osu.ppy.sh/wiki/en/Client/File_formats.
An .osu file with std or Taiko mode can be played as a Taiko chart.
.sm StepMania Chart (?) Notechart metadata + definition StepMania 3.0, OutFox v0.4.9.9 (taiko mode) (?) 2002-10-23 (StepMania 3.0 release)
2008-07-20 (unofficial taiko mode by toach, author of TaikoJiro)
2021-07-31 (taiko mode) (OutFox v0.4.9.9; first taiko mode release)
No known official full specification.
No official documentation for Taiko chart. For general chart, see https://outfox.wiki/en/dev/mode-support/sm-support
No known released charts for toach’s unofficial taiko mode, but see https://www.nicovideo.jp/user/460596/mylist/7250555
.tja TaikonoTatsujinfumen Another
Another Taiko no Tatsujin Notechart (?)
Notechart metadata + definition TaikoJiro, Malody, TJAPlayer2 for.PC, taiko-web ver.18.10.11, OutFox v0.4.9.9, TaikoManyGimmicks 2008-12-08 (TaikoJiro v0.80; first release) TaikoJiro’s readme.txt
Also see TaikoJiro 2’s readme.txt
Many extensions exist
.tjc TaikonoTatsujinfumen Course
Taiko no Tatsujin Course (?)
Notechart set metadata TaikoJiro v2.34, TaikoJiro 2 v0.98 2009-12-28 (TaikoJiro v2.34) TaikoJiro’s readme.txt
.tps taikopsp Score (?) Notechart definition TaikonoKurouto for PSP (taikopsp) 2009-06-12 (taikopsp demo version)
2009-06-18 (taikopsp v0.1.0)
Non-after 2009-08-29 (TPSConverter v0.31 already released)
taikopsp’s りどみ.html (“Readme.html”)
ot_data.txt OniTaiko DS data Notechart definition Gwai2Taai3gu2DS (OniTaiko DS) 2009-07-14 (onitaiko DS v0.8.2 test version)
Non-after 2010-03-05 (known first chart file)
See the 31-7-2010 entry of:
https://web.archive.org/web/20181012220107/http://www.owataiko.com/~aki/onitaiko_past.html
(zh_HK in UTF-8; need switching page character encoding to read)
.mc Malody Chart (?) Notechart metadata + definition (JSON) Malody Non-before 2014 (Malody)
Non-after 2017-06-24 (mc2tja)
No known official documentation.
See the non-official parser https://github.com/LuiCat/mc2tja.
An .mc file with Taiko mode can be played as a Taiko chart.
.dtx DTXMania Chart (?) Notechart metadata + definition TJAPlayer2 for.PC (early versions, deprecated (?)) Non-before 2000-01-17 (DTXMania v0.01; first release)
Non-after 2006-06-19 (DTXCreator v0.01; first release)
Non-before 2014-12-?? (taiko mode; TJAPlayer2 for.PC development begins)
Non-before 2015-05-15 (taiko mode; TaikosanAruファfa (early TJAPlayer2 for.PC) OSDN project registration)
First used in DTXMania, inherited by TJAPlayer2 for.PC.
No official documentation for Taiko chart. For general chart, see (English translation) https://web.archive.org/web/20240126144946/https://osdn.net/projects/dtxmania/wiki/DTX%20data%20format,
(Japanese original) https://web.archive.org/web/20240206040103/https://osdn.net/projects/dtxmania/wiki/DTX%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88
songtitles.txt Song Titles Notechart titles taiko-web 2019-04-04 (example)
2019-04-05 (taiko-web commit)
<blockquote>- A translation text file “songtitle.txt” can be imported
  - Titles and translated titles are each on their own line, if a line begins with a language code, it will translate the song title that is above
  - An example file can be found here: https://gist.github.com/LoveEevee/65fe66f0b54c0536f96fd2f4862984d4</blockquote> Example: https://web.archive.org/web/20200630184942/https://gist.github.com/LoveEevee/65fe66f0b54c0536f96fd2f4862984d4
.tci Open Taiko Chart Information Notechart metadata (JSON) Koioto (plugin “OpenTaikoChart”), TJAPlayer3-f v1.6.0.1 2019-08-17 (format rev.1)
2020-05-07 (plugin “OpenTaikoChart”)
See https://github.com/AioiLight/Open-Taiko-Chart
.tcc Open Taiko Chart Course Notechart definition (JSON with non-parsed strings) Koioto (plugin “OpenTaikoChart”), TJAPlayer3-f v1.6.0.1 2019-08-17 (format rev.1)
2020-05-07 (plugin “OpenTaikoChart”)
See https://github.com/AioiLight/Open-Taiko-Chart
.tcm Open Taiko Chart Medley Notechart set metadata (JSON) Koioto (plugin “OpenTaikoChart” v3.0), TJAPlayer3-f v1.6.0.1 2019-11-15 (format rev.2)
2020-05-07 (plugin “OpenTaikoChart”)
See https://github.com/AioiLight/Open-Taiko-Chart
.ssc StepMania 5 (the spinal shark collective) Chart (?) Notechart metadata + definition sm-ssc (early StepMania 5), OutFox v0.4.9.9 (taiko mode) (?) 2011-02-11 (format introduction)
2011-02-10 (sm-ssc v1.2.1)
2021-07-31 (taiko mode) (OutFox v0.4.9.9; first taiko mode release)
No known official full specification.
No official documentation for Taiko chart.
For general chart, see https://outfox.wiki/en/dev/mode-support/ssc-support
.tmg TaikoManyGimmicks Notechart metadata + definition TaikoManyGimmicks v0.6.1α 2022 (TaikoManyGimmicks)
2023-04-13 (v0.6.1α, TMG format support)
TaikoManyGimmicks’ Readme.txt.
The plaintext form is similar to .tja but has some syntax differences (explained right below).

.osu and .mc have corresponding compressed formats, which include multiple notecharts for each difficulty and additional resource files:

The TMG format (.tmg) has plaintext and binary form, where the plaintext form is similar to the TJA format (.tja) and has the following features:

Excluding .bin and the compressed formats, all the formats listed above are text-based and can be edited with any text editor.

Genre Formats

Known external-use genre formats used in TaikonoTatsujin games and simulators:

The dates listed here are mostly in UTC+9.

Filename/extension Content Supported by First Release Notes
genre.ini Genre definition for notecharts in the (sub)directory/ies. INI config file. TaikoJiro, taiko-web 2009-06-17 (TaikoJiro v1.90)  
musiclist.txt List of file paths to notecharts TJAPlayer (for PSP) Non-after 2010-02-10 (musiclistGenerator v6)
Non-after 2010-02-24 (TJAPlayer Ver ?×7 already released)
Similar to the later .t3u8, but in native encoding (assumedly Shift-JIS)
and with the first occurrence of a line being #END (if exist) and all subsequent line ignored.
song.txt Number of notechart directories + List of directory name of notechart directories Gwai2Taai3gu2DS (OniTaiko DS) Non-after 2010-06-27 (OniTaiko DS F C v.1.2.1X fat) See https://web.archive.org/web/20100726082352/http://www.owataiko.com/~aki/_onitaikods/readme.txt
box.def Genre definition for notecharts in the (sub)directory/ies. .dtx-syntax headers. TJAPlayer2 for.PC, taiko-web Non-before 2000-01-17 (DTXMania v0.01; first release)
Non-before 2015-05-15 (taiko mode; TaikosanAruファfa (early TJAPlayer2 for.PC) OSDN project registration)
First used in DTXMania, inherited by TJAPlayer2 for.PC
folder.json Genre definition for notecharts in the (sub)directory/ies. (JSON) 2021-02-18 (bundled sample)
2021-03-09 (Koioto Ver.0.39; first release)
Koioto  
.t3u8 List of file paths to notecharts TJAPlayer3 v4.7.0 2019-07-18 (TJAPlayer3 commit 9261ee0271)
2020-02-03 (TJAPlayer3 v4.7.0)
See https://github.com/twopointzero/TJAPlayer3/blob/develop/docs/song-list-files.md.
Based on and having identical syntax with .m3u8.
.m3u8 is a UTF-8–encoded variant of .m3u (MP3 URL).

About TJA

The TJA format (.tja, first used in TaikoJiro) was modified and gradually extended from the much simpler TJF format (.tjf, first used in Taikosan), both share similarities with the .bms (Be-Music Script, not BeatMania Score) format and its derivations. See Notechart Formats Inspiring TJA.

Naming of TJA

The etymology of both .tjf & .tja were unexplained.

Thus, .tja possibly means “TaikonoTatsujin (simulator) fumen (format) Another” “Another Taiko no Tatsujin (simulator) Notechart (format)”.

Notechart Formats Inspiring TJA

The honorific title is omitted.

Property formats from the official games are not listed here.

     #GOMUSIC     この命令が指定された地点から、音楽を再生開始する。
            GAPの概念が無いので、ズレはこれとBPM変更で調整してください。

     #GOMUSIC     From where this command is specified, the music starts playing.
            There is no concept of GAP, so for offset please adjust this [command] and BPM changes.

</small>

○tjaフォーマット
tjfを元にbmsっぽい感じも取り入れてみたフォーマットです。
拡張子は「.tja」。

○ tja Format
A format based on tjf which [tja] also attempts to incorporate a bms-like feel.
The file extension is “.tja”.

</small>

A possible derivation/inspiration route non-after TJA:

Other Dance simulator references:

After the creation of the TJA format, other notechart formats still continue to inspire the TJA format, such as the DTX format due to TJAPlayer2 for.PC. The new inspirations are mainly new headers and commands.

Standardizations of TJA

The specification and behavior of TJA in TaikoJiro (active in 2008–2013) was often considered the standard for many years.

However, many extensions after are developed and adopted after TaikoJiro, especially since TJAPlayer2 for.PC, and there lacked a cross-simulator standard.

Since around 2022, OpenTaiko (0auBSQ) and Project OutFox have started to collaborate on a new cross-simulator standardization, which is referred to as “OpenTaiko-OutFox standard” in this article.

For OpenTaiko (0auBSQ) and Project OutFox, the per-simulator behaviors are documented, but their behaviors will be unified through their development. Any new-found discrepancies of these simulators from the OpenTaiko-OutFox standard will be soon consolidated and reported to the relevant project.

TJA File Encoding

The mostly used character encoding for legacy TJA files is Shift-JIS.

However, the actual encoding depended on the system setting and can potentially be any non–UTF-8 encoding, including:

UTF-8 (with BOM or not) is often used for modern TJA files.

Compatibility Issues

TJA Lexical Rules

Newlines

Lines are separated (may be unterminated) by either LF (\n) or CR+LF (\r\n) (see Terminologies for further explanation).

Lines containing only whitespaces or nothing at all are ignored.

Comment & Whitespaces

Except when preceded by a text value, // starts a comment which ends at the end of the line and is ignored along with the //.

Except when preceded by a text value, line-final whitespaces (after ignoring comments) are ignored.

Line-initial whitespaces are allowed and ignored only within the notechart definition enclosed between #START & #END (excluding themselves).

Except when within a string value and around a text value, consecutive whitespaces within a line is treated as a single space.

Comma

For multiple values separated by comma (,), except for text-valued fields, optional whitespaces can occur before and/or after the comma.

Value Type

TJA Header

Header Overview

Header Format

TJA header are written in the format of HEADER:values.

Each header MUST be placed on its own line.

The HEADER: part MUST be written in an all-upper-case manner and MUST NOT contain whitespaces in-between. No leading non-newline whitespaces are allowed.

Headers with an unrecognized HEADER: name are ignored.

If the values part is omitted, the default value is used, which can be used for resetting previously used headers from other difficulties or player sides to their default value.

For non-string values, whitespaces can immediately occur after :, e.g., LEVEL: 8.

Post-#START Header Position

Most headers are expected to be placed outside the notechart definition enclosed between #START & #END. However, some commands are allowed to be placed within the notechart definition, or “post-#START position”.

Headers allowed in post-#START position will be explicitly denoted.

Header Scope

For headers not in post-#START position, the effect of each header continues until the next occurrence of the same header or the end of the file.

Headers in post-#START position (e.g., the EXAM headers) are effectively commands.

Header Scope Fineness

See scope fineness.

For headers, the coarsest fineness is per-file. The finest fineness other than sequential is per–player-side.

sequential > per–player-side > per-file

Compatibility Issues

TITLE Headers

OpenTaiko-OutFox standard version: 1.0 (including any <enum-str-lang> forms)
Impact level: metadata ★・・・・
First seen in: TaikoJiro v0.80 (initial release)
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, Malody, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope fineness: per-file
Inspired by: TJF format
  (likely) from DWI and earlier MSD format #TITLE:<str-title>;
  from BMS format #TITLE <str-title>

Specify the title of the song.

SUBTITLE Headers

OpenTaiko-OutFox standard version: 1.0 (including any <enum-str-lang> forms)
Impact level: metadata ★・・・・
First seen in: TaikoJiro v2.64
Supported by: (assumedly universally supported, including TaikoJiro v0.80, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope fineness: per-file
Inspired by: (likely) SM format #SUBTITLE:<str-displayed-subtitle>;

Specify the subtitle (not of the meaning of caption) of the song (could be artist, game series, etc.), or alternatively as the second line (“sub”) of the title.

If the artist of the song should be specified while the subtitle is already used as the second line of the title, the ARTIST: header can be used to specifying the artist of the song.

The display details are unspecified.

ARTIST:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: metadata ★・・・・
First seen in: Malody
Scope fineness: per-file
Inspired by: (likely) .osu format Artist:<str-artist>

Specify the artist of the song.

Similar to the -- prefix usage of the SUBTITLE: header, but excluding extra information such as game series, anime series, etc.

The display details are unspecified.

MAKER:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: metadata ★・・・・
First seen in: taiko-web ver.19.11.25
Supported by: OpenTaiko (0auBSQ) v0.6.0
Scope fineness: per-file

Specify the creator (“maker”) of the notechart.

The display details are unspecified.

NOTESDESIGNER Headers

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible) (including both forms of <enum-int-difficulty-course> being 04 and being omitted)
Impact level: metadata ★・・・・
First seen in: (Better)TaikoCatsCaffe (?)
Supported by: OpenTaiko (0auBSQ) v0.6.0
Scope fineness: per–player-side (?)

Specify the creator (“designer”) of the notechart (“notes”).

The display details are unspecified.

AUTHOR:

OpenTaiko-OutFox standard version: (non-standard)
Impact level: metadata ★・・・・
First seen in: Malody
Scope fineness: per-file (?)

Specify the creator (“author”) of the notechart.

In Malody, it can be the Malody account name of the creator, but it is not enforced.

The display details are unspecified.

GENRE:

OpenTaiko-OutFox standard version: 1.0 (including any <str-genre> value (?))
Impact level: metadata ★・・・・
First seen in: TJAPlayer2 for.PC
Supported by: taiko-web ver.19.01.06
Scope fineness: per-file

Specify the genre of the song.

The display details are unspecified.

SIDE:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible) (per-file usage);
  1.2 (per–player-side usage for COURSE:Tower)
Impact level: metadata ★・・・・
First seen in: TaikoJiro v2.49
Supported by: TaikoJiro 2, OpenTaiko (0auBSQ) v0.6.0
Scope fineness: per-file

Specify whether the corresponding song entry is displayed, regarding the urafumenjoutai “inner notechart state/mode” (“ura inner or omote outer side”) of the song selection screen.

This allows the chart creators to specify the inner chart of every difficulty together or with different audio as a separate song entry, as in official AC11–AC14.

For specifying the inner chart of solely the Oni difficulty with the same audio as in official AC15 and later official games (except only HareHareYukai inner Hard in AC15), COURSE:Edit is commonly used instead.

betsufumen “another notechart(s)” was a tentative name used during the development of AC11. The now-official name urafumen “inner notechart” originated from pop’n music 11 (2004), developed by Konami.

Unspecified: Whether and how inner mode is implemented.

Proposal (IID): Make the scope per–player-side.

Compatibility Issues

SIDEREV:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: metadata ★・・・・
First seen in: TaikoJiro 2 v0.70
Scope fineness: per-file

Specify the filename of the urafumen “inner notechart” or omotefumen “outer notechart” version (“the reverse side”) of this notechart file.

WAVE:

OpenTaiko-OutFox standard version: 1.0
Impact level: timing ★★★★・
First seen in: TaikoJiro v0.80 (initial release)
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope fineness: per-file
Inspired by: TJF format

Specify the audio file (“waveform audio file”) of the song.

Unspecified: The exact list of supported file extensions.

Unspecified: Whether the notechart ends at the end of the audio file playback (if the audio file exist).

Compatibility Issues

DEMOSTART:

OpenTaiko-OutFox standard version: 1.0
Impact level: decorative ・・・・・
First seen in: TaikoJiro v2.37
Supported by: (assumedly universally supported, including TaikoJiro v0.80, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope fineness: per-file
Inspired by: (likely) SM format #SAMPLESTART:<non-negative-float-seconds-preview-audio-offset>; (?)
  from DWI format #SAMPLESTART:<float-with-decimal-places-seconds-preview-audio-offset>; (among other forms)

Specify the amount of seconds into the song audio for starting playing the preview (“demonstration”) audio in the song selection screen.

OFFSET:

OpenTaiko-OutFox standard version: 1.0
Impact level: timing ★★★★・
First seen in: TaikoJiro v0.80 (initial release)
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope fineness: per–player-side (?)
Inspired by: (likely) SM format #OFFSET:<float-seconds-music-offset>; (with same signness)
  from DWI format #GAP:<float-seconds-chart-offset>; (with opposite signness)
  from MSD format #GAP:<number-1/192nd-chart-offset>;

Specify the amount of seconds past (“offsetted”) from the time position of #START of the notechart which the song audio should start playing from the beginning.

Replaced the TJF command #GOMUSIC (starting (“go”) playing the song audio (“music”) from this point).

Equation: music-offset = time-point-of-audio-beginningtime-point-of-chart-start (Unit: Seconds)

SONGVOL:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: decorative ・・・・・
First seen in: TaikoJiro v1.66
Supported by: TaikoJiro 2, TJAPlayer3 v1.5.2
Scope fineness: per-file
Inspired by: BMS format #VOLWAV <non-negative-number-percent-amplitude-gain> (?)

Specify the relative amplitude percentage (%) of the desired volume gain of the song audio.

Compatibility Issues

SEVOL:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: decorative ・・・・・
First seen in: TaikoJiro v1.66
Supported by: TaikoJiro 2
Scope fineness: per–player-side (?)
Inspired by: BMS format #VOLWAV <non-negative-number-percent-amplitude-gain> (?)

Specify the relative amplitude percentage (%) of the desired volume gain of the taiko sound (“sound effect”).

Unspecified: Whether the volume of system voice is affected.

Compatibility Issues

BPM:

OpenTaiko-OutFox standard version: 1.0 (minimum, see each form)
Impact level: timing ★★★★・
FIrst seen in: TaikoJiro v0.80 (initial release)
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope fineness: per–player-side
Inspired by: TJF format BPM:<positive-int-initial-bpm>
  (likely) from DWI format #BPM:<positive-number-initial-bpm>;
  from MSD format #BPM:<positive-float-bpm>;   from BMS format #BPM <positive-int-bpm>

Specify the initial BPM (beat per minute) of the notechart.

Compatibility Issues

HEADSCROLL:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible) (minimum; unless stated otherwise)
Impact level: gimmicky ★★・・・
First seen in: TJAPlayer2 for.PC
Scope fineness: per–player-side

Specify the initial scrolling velocity (before and non-after the beginning (“head”) of the notechart), relative to the base scrolling velocity.

Can be reset by the #SCROLL command non-before the beginning of the notechart. If every player-side for every difficulty has #SCROLL defined at the beginning of the chart, HEADSCROLL: has no effects.

PREIMAGE:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: decorative ・・・・・
First seen in: OpenTaiko (0auBSQ) v0.5.4
Scope fineness: per–player-side (?)
Inspired by: DTX format #PREIMAGE: <string-filepath-preview-image>

Specify the jacket (“preview”) image of the song.

COVER:

OpenTaiko-OutFox standard version: (non-standard)
Impact level: decorative ・・・・・
First seen in: Malody
Scope fineness: per-file

Specify the jacket (“cover”) image of the song.

TAIKOWEBSKIN:

OpenTaiko-OutFox standard version: (non-standard)
Impact level: decorative ・・・・・
First seen in: taiko-web ver.19.02.03
Scope fineness: per-file

Specify the skin in the gameplay screen for taiko-web.

Unspecified: The behavior in other simulators.

Each element of <comma-separated-list-string-key-value> can be one of:

SCENEPRESET:

OpenTaiko-OutFox standard version: (non-standard)
Impact level: decorative ・・・・・
First seen in: OpenTaiko (0auBSQ) v0.6.0
Scope fineness: per–player-side (?)

Specify the pre-defined (“preset”) skin (“scene”) in the gameplay screen.

TOWERTYPE:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible) (with <non-negative-int-tower-skin> being 09 (?) or omitted, as in the WakuwakuBoukenRando “Wakuwaku (Exciting) Adventure land” mode from the 7th PS2 console game)
  (non-standard) (otherwise)
Impact level: decorative ・・・・・
First seen in: OpenTaiko (0auBSQ) v0.5.0
Scope fineness: per–player-side (?)

Specify the dedicated tower skin (“type”) to use.

Used in conjunction with COURSE:Tower.

DANTICK:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compat) (with <enum-int-dan-tick-skin> being 05 or omitted, as in AC15.8 (レッReddoVer. “Red Ver.”) and onward);
  (non-standard) (otherwise)
Impact level: decorative ・・・・・
First seen in: OpenTaiko (0auBSQ) v0.5.1
Scope fineness: per-file

Specify the dedicated DanininteiモーMoodo “Rank Certification Mode” skin (kosumeチッchikku “cosmetic” (?)) to use in the certification challenge selection screen.

Dan’ininteiモーMoodo “Rank Certification Mode” resembles Dan’iDoujou “Rank Dojo”/Dan-i Dojo in the official games.

Used in conjunction with COURSE:Dan.

DANTICKCOLOR:

OpenTaiko-OutFox standard version: (non-standard)
Impact level: decorative ・・・・・
First seen in: OpenTaiko (0auBSQ) v0.5.1
Scope fineness: per-file

Specify the color filter to apply to the DanininteiモーMoodo “Rank Certification Mode” skin (kosumeチッchikku “cosmetic” (?)) objects in the certification challenge selection screen.

Dan’ininteiモーMoodo “Rank Certification Mode” resembles Dan’iDoujou “Rank Dojo”/Dan-i Dojo in the official games.

Used in conjunction with COURSE:Dan.

SELECTBG:

OpenTaiko-OutFox standard version: (non-standard)
Impact level: decorative ・・・・・
First seen in: OpenTaiko (0auBSQ) v0.6.0
Scope fineness: per–player-side (?)

Specify the background image of the song selection screen. Override the skin settings.

BGIMAGE:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: decorative ・・・・・
First seen in: TJAPlayer2 for.PC ver.2016021300
Scope fineness: per–player-side (?)
Inspired by: DTX format #BACKGROUND <string-filepath-background-image>

Specify the background image of the gameplay screen. Override the skin settings.

Unspecified: Whether the image is scaled or stretched to fill the gameplay screen.

BGOFFSET:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: decorative ・・・・・
First seen in: ?
Reference: TJA Format Support (vscode extension)
Scope fineness: per–player-side (?)

Specify the amount of seconds past (“offsetted”) from the time position specified by the OFFSET: header which the background image (“image”) should start displaying.

Equation: bgoffset = time-point-of-image-displayingtime-point-of-audio-beginning (Unit: Seconds)

BGMOVIE:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: decorative ・・・・・
First seen in: TJAPlayer2 for.PC ver.2016021300
Scope fineness: per–player-side (?)

Specify the background video (“movie”) of the gameplay screen. Override the skin settings.

Unspecified: Whether the video is scaled or stretched to fill the gameplay screen.

MOVIEOFFSET:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: decorative ・・・・・
First seen in: TJAPlayer2 for.PC ver.2015081100
Scope fineness: per–player-side (?)

Specify the amount of seconds past (“offsetted”) from the time position specified by the OFFSET: header which the background video (“movie”) should start playing from the beginning.

Equation: movieoffset = time-point-of-video-beginningtime-point-of-audio-beginning (Unit: Seconds)

Compatibility Issues

BGA:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: decorative ・・・・・
First seen in: C-Taiko
Supported by: OpenTaiko (0auBSQ) v0.6.0
Scope fineness: per–player-side (?)

Specify a background video (“animation”) to be used in the gameplay screen by the #BGAON and #BGAOFF commands.

Unspecified: Whether the video is scaled or stretched to fill the gameplay screen.

Not reset by BGA: itself.

Compatibility Issues

LYRICS: / LYRICFILE:

OpenTaiko-OutFox standard version: 1.2
Impact level: decorative ・・・・・
First seen in: taiko-web ver.20.03.31, TJAPlayer3-Develop-ReWrite (parse-only)
Supported by: TJAPlayer3-f v1.6.0.0, OpenTaiko (0auBSQ) v0.6.0
Scope fineness: per-file

Specify the lyric file(s) for the song to display lyrics in the playback screen.

Unspecified: The effective lyric file(s) when both the LYRICS: & LYRICFILE: headers are used.

Unspecified: Whether #LYRIC commands are ignored if the lyric file is used.

Compatibility Issues

EXPLICIT:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: metadata ★・・・・
First seen in: OpenTaiko (0auBSQ) v0.6.0
Scope fineness: per-file

If enabled, specify that the song has explicit (of the meaning of not safe for work (NSFW)) lyrics.

The display details are unspecified.

GAME:

OpenTaiko-OutFox standard version: 1.2 (Taiko and Konga modes)
Impact level: note ★★★★★
First seen in: TaikoJiro v2.13
Supported by: taiko-web (plugin “Donkey Konga Mode”)
Scope fineness: per–player-side (?)

Specify the game mode. The meaning of the symbols used in the notechart definition is changed accordingly; see TJA Notechart Definition.

Unspecified: The implemented game modes other than Taiko mode.

See the #GAMETYPE command for specifying the game mode for specific notechart sections.

Compatibility Issues

COURSE:

OpenTaiko-OutFox standard version: 1.0 (minimum, unless stated otherwise)
Impact level: note ★★★★★
First seen in: TaikoJiro v1.76
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, Malody, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope fineness: per–player-side

Specify the コーkoosu “course”/muzukashii “difficulty”/nan’ido “difficulty (or easiness) level” difficulty/difficulty level (“course”).

Not to be confused with the difficulty star specified by the LEVEL: header.

“Course” in other rhythm games usually refers to playing multiple songs in a row. In early arcade console versions of the official game series, the player could only play a fixed difficulty during the kure(ジッjetto) “credit”/game session. “<difficulty>コーkoosu” (“<difficulty> course”) was displayed in those official games.

Depending on the simulator, the COURSE: header may affect the judgment window, default scoring, the default increasing rate of the tamashiiゲーgeeji spirit gauge/soul gauge, etc.

Compatibility Issues

LEVEL:

OpenTaiko-OutFox standard version: 1.0 (minimum, see each form)
Impact level: scoring ★★★・・
First seen in: TaikoJiro v0.80 (initial release)
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, Malody, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope fineness: per–player-side
Inspired by: TJF format LEVEL:<positive-int-difficulty-star>

Specify the nan’ido “difficulty (or easiness) level“/difficulty star/? (“level”).

Since the Japanese terminology is easily confused with the fore-mentioned “difficulty” specified by the COURSE: header, the difficulty star is often referred as hoshinokazu/hoshinokazu “amount of stars” and is displayed as “hoshi×n” in the official PC-generation arcade games.

Depending on the simulator and/or user settings, the LEVEL: header may affect the default scoring, the default increasing rate of the tamashiiゲーgeeji spirit gauge/soul gauge, etc.

Compatibility Issues

STYLE:

OpenTaiko-OutFox standard version: 1.0 (up to 2 player-sides);
  1.2 (up to 5 player-sides) (?)
Impact level: note ★★★★★
First seen in: TaikoJiro v1.99
Supported by: TaikoJiro 2, TJAPlayer2 for.PC
Scope fineness: per–player-side
Inspired by: (likely) DWI and earlier MSD format #<enum-str-style>:<enum-str-difficulty-type>:<positive-int-difficulty-stars>:<colon-separated-list-str-notechart-definitions>; where <enum-str-style> is one of SINGLE, DOUBLE, COUPLE, & (DWI) SOLO.

Specify the total amount of player-sides of the notechart(s).

The multiple-player-side notecharts of the difficulty is chosen if enough amount of players have chosen the same difficulty.

In the official games, some difficulties may have only 2-player-side notecharts but are still playable in single player mode, where the notechart for one of the player-side is chosen (always the 1st player-side in PC-generation games).

Unspecified: Whether such notecharts are chosen when some players have chosen different difficulties.

If the specified amount of player-sides is not 1, #START <enum-str-player-side> should be used for specifying the player-side of the notechart.

Reference: ダブルプレイ (“Double Play”; “Two-player Charts”). 太鼓の達人 譜面とか Wiki* (“Taiko no Tatsujin - Wiki* about Notecharts and so on”). https://wikiwiki.jp/taiko-fumen/収録曲/ダブルプレイ

BALLOON Headers

OpenTaiko-OutFox standard version: 1.0 (minimum, see each form)
Impact level: note ★★★★★
First seen in: TaikoJiro
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope fineness: per–player-side

Specify the required amount of hits of gekirenda/gekirenda “fierce drumroll” burst note / fuusen/fuusen balloon–type notes (denoted by 7, 9, or D in the notechart definition), in the order of their definition, NOT the hit order during playing.

Each balloon-type note with unassigned hit amount requires an unspecified default amount of hits.

Proposal (IID): The #BALLOON command can be used in the notechart definition for the same purpose instead.

For each element of <comma-separated-list-non-negative-int-amount-of-hits>, if the amount of hits is 0, the per-note behavior is unspecified.

Compatibility Issues

LIFE:

OpenTaiko-OutFox standard version: 1.2 (for COURSE:Tower, except the 0 form)
Impact level: scoring ★★★・・
First seen in: TaikoJiro v2.19
Supported by: OpenTaiko (0auBSQ) v0.4.3
Scope fineness: per–player-side
Inspired by: StepMania and earlier Dance With Intensity CRS format #LIVES:<positive-int-life-count>; (?)

Specify the initial life count of the life count gauge (if used).

A Fuka BAD judgment decreases the life count by 1 (missing). When the life count decreased to 0, the player is immediately judged to be failed and the notechart ends.

Unspecified: Whether there is invincible time after missing and how long is its time duration.

Unspecified: The behavior when a non-zero value is used not in conjunction with COURSE:Tower.

Compatibility issues

In TaikoJiro 1 (the header is not supported in TaikoJiro 2), the maximum possible value is 65535 (2¹⁶ − 1).

TOTAL:

OpenTaiko-OutFox standard version: 1.0 (despite ignored in TJAPlayer3)
Impact level: scoring ★★★・・
First seen in: TaikoJiro v2.92 & TaikoJiro 2 v0.93
Scope fineness: per–player-side
Inspired by: BMS format #TOTAL <non-negative-number-total-gauge-increment>

Specify the total tamashiiゲーgeeji spirit gauge/soul gauge increment of the notechart when all hit-type notes are hit with Ryou GREAT/GOOD judgment, i.e., Dondafurukonbo Donderful Combo.

GAUGEINCR:

OpenTaiko-OutFox standard version: 1.0
Impact level: scoring ★★★・・
First seen in: TJAPlayer3 v1.5.4
Scope fineness: per–player-side

Specify the rounding mode of the increment of the tamashiiゲーgeeji spirit gauge/soul gauge.

EXAM Headers

OpenTaiko-OutFox standard version: 1.0 (minimum, unless stated otherwise)
Impact level: scoring ★★★・・
First seen in: TJAPlayer3 v1.5.0
Post-#START position: forbidden;
  allowed (Supported by: TJAPlayer3-Develop-ReWrite)
Scope fineness: per–player-side (?) (or per-song (begins with a #NEXTSONG command and ends with another #NEXTSONG command))

Specify a requirement for passing the notechart in Dan’ininteiモーMoodo “Rank Certification Mode” (“examination”).

Dan’ininteiモーMoodo “Rank Certification Mode” resembles Dan’iDoujou “Rank Dojo”/Dan-i Dojo in the official games.

Used in conjunction with COURSE:Dan.

SCOREMODE:

OpenTaiko-OutFox standard version: 1.0
Impact level: scoring ★★★・・
First seen in: TaikoJiro v2.85
Supported by: TaikoJiro 2 v0.72, TJAPlayer2 for.PC
Scope fineness: per–player-side

Specify the scoring mode.

Affects combo bonus, combo milestone bonus, ゴーGooゴーGooTaimu Go-Go Time bonus, & big note bonus.

The main scoring formula has two int variables: init & diff.

The “basic score” below refers to the score awarded per Ryou GREAT/GOOD judgment on non-big notes outside Go-Go Time sections.

When either the Shin’uchi “true percussion (performance)”/”true performance” option is enabled or SCOREMODE:3 is used, the basic score is fixed to init points and the SCOREDIFF: header is ignored.

Unspecified: Scoring details other than the basic score in each mode; usually one of the official games is followed.

Reference: 配点 (“Scoring”). 太鼓の達人 譜面とか Wiki* (“Taiko no Tatsujin - Wiki* about Notecharts and so on”). https://wikiwiki.jp/taiko-fumen/システム/配点

Compatibility Issues

SCOREINIT:

OpenTaiko-OutFox standard version: 1.0
Impact level: scoring ★★★・・
First seen in: TaikoJiro v1.67
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC)
Scope fineness: per–player-side

Specify the shokou initial term (refers to an arithmetic progression) (init) used for calculate the basic score. See the explanation for the SCOREMODE: header.

SCOREDIFF:

OpenTaiko-OutFox standard version: 1.0
Impact level: scoring ★★★・・
First seen in: TaikoJiro v1.67
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC)
Scope fineness: per–player-side

Specify the kousa common difference (refers to an arithmetic progression) (diff) used for calculate the basic score. See the explanation for the SCOREMODE: header.

HIDDENBRANCH:

OpenTaiko-OutFox standard version: 1.0 (except 0 or omitted forms)
Impact level: metadata ★・・・・
First seen in: TJAPlayer2 for.PC
Scope fineness: per–player-side

If enabled, make the fumenbunki “notechart branch“/forked path indicator hidden in the song selection screen; hide the “branch”/path mark on the note field from the beginning of the notechart until time point when the “branch”/path–switching effects should play for the first “branch”/path section in the gameplay screen.

Proposal (IID) TJACOMPAT:

OpenTaiko-OutFox standard version: 1.3
Impact level: note ★★★★★ (maximum, depends on the compatibility flags)
Scope fineness: per–player-side

Specify the intended compatibility mode of the chart.

The supported set of headers & commands and allowed argument forms is not affected. However, the arguments might be interpreted differently dependent on the compatibility mode and flags.

<enum-str-compat-mode> can be one of:

<enum-str-compat-flag> is in the format of <enum-str-compat-item>=<enum-str-compat-option>.

Preset Compatibility Flags

These compatibility flags are in the form of <enum-str-compat-item>=<enum-str-compat-mode>. Charters should only use these flags if necessary.

See Comparison of Compatibility Modes for the value of internal flags for each compatibility mode.

Internal Compatiblity Flags

These compatibility flags are considered for internal uses by the simulator and may be unimplemented. Charters should never specify these flags.

Comparison of Compatibility Modes

Each proposed compatibility-mode behavior is enclosed in parentheses (()) for:

Flag \ Mode (Official game) jiro1 jiro2 tmg tjap3 oos
balloon-popcount N/A common common common n n
(common)
balloonnem-popcount-nonbranch N/A N/A
(1n-or-end-1nem)
N/A
(1n-or-end-1nem)
N/A
(1n-or-end-1nem)
1n-or-end-3last 1nem
end-at music music music music (?) end end
(music-and-end)
timing-precision ? ms-bpm ms (?) any (?) ms ms
timing-effect-order def time time time (?) flat-time-or-def flat-time-or-def
hbscroll-past N/A nmscroll hbscroll hbscroll hbscroll hbscroll
hbscroll-delay N/A freeze freeze freeze (?) offset offset
roll-pos N/A N/A
(complex)
complex complex real complex
roll-nodes head tips tips tips head head
scroll-i N/A N/A
(down)
down down up up
jposscroll-i N/A N/A
(down)
N/A
(down)
up up up
jposscroll-interrupt N/A N/A
(trunc)
N/A
(trunc)
trunc trunc trunc
sudden-directions N/A N/A
(all)
N/A
(all)
all x N/A
(x)
sudden-precision N/A N/A
(ms)
N/A
(ms)
any (?) ms ms
stack-order appear-time (PS1/2-gen)
def (PS3/PC-gen)
def def time (?) time def
angle-barline N/A angle-mirror (?) angle-mirror (?) angle-mirror (?) im none
(angle-mirror)
angle-note N/A angle-mirror angle-mirror angle-mirror none none
(angle-mirror)
angle-roll-bar N/A angle-mirror angle-mirror angle-mirror N/A
(angle-mirror)
angle
(angle-mirror)

Proposal (Komi) VERSION:

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: note ★★★★★ (restrictive usage) / metadata ★・・・・ (non-mandatory usage)
Scope fineness: per-file

Specification by Komi: https://docs.google.com/document/d/17GKK9U5S_eT97oTwgB6tMMNQsQm2uhp-OIhBMv2Mgso

Specify the version-numbered set of the OpenTaiko-OutFox standard TJA features required by the TJA file.

Simulators may choose to keep the enabled set of TJA features unchanged. If the specified feature set isn’t supported by the simulator, a warning should be emitted, and the simulator may choose the accept or reject such TJA files.

If the TJA file uses any features outside the specified feature set, a warning should be emitted, and the simulator may choose to accept the usage, ignored the usage (treated as a comment for headers and commands, treated as blank 0 for uppercase notechart symbols), or reject such TJA files.

TJC Header

OpenTaiko-OutFox standard version: (non-standard)

TJC Header Overview

The descriptions of Header Overview for TJA mostly applies.

Some TJA headers can be used as TJC headers and have similar or even identical effects. Unspecified: Which TJA headers can be used as TJC header aside from TITLE:, COURSE:, & TOTAL:. Only non-TJA headers are listed in this section.

See the #NEXTSONG command for the TJA command version of TJC headers.

SONG:

OpenTaiko-OutFox standard version: (non-standard)
Impact level: note ★★★★★
First seen in: TaikoJiro v2.34
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope fineness: sequential
Inspired by: StepMania and earlier Dance With Intensity CRS format #SONG:<string-no-extension-filepath-notechart-file-from-root-song-directory>:<optional-enum-str-difficulty-type>; (among other forms)

Specify a notechart (“song”) of the notechart set.

TJA Command

Command Overview

Command Format

TJA commands are written in the format of #COMMAND values.

Each commands MUST be placed on its own line.

No leading non-newline whitespaces are allowed for the #START and #END commands & other commands placed outside of the notechart definition enclosed between #START & #END.

However, leading non-newline whitespaces are allowed and ignored in the notechart definition enclosed between #START & #END.

The #COMMAND part MUST be written in an all-upper-case manner and MUST NOT contain whitespaces in-between.

Commands with an unrecognized #COMMAND name are ignored.

Unspecified: The behavior when the whitespaces before the values part is omitted for all-letter commands with numeric values (occurs in some legacy charts).

The arguments for commands introduced in TaikoJiro are comma-separated. However, the arguments for commands introduced in TJAPlayer2 for.PC are instead whitespace-separated as in the .bms format (which is modified and extended into the .dtx format for DTXMania).

Unspecified: The behavior when a comma (,) is used as the decimal point (normally a full-stop (.)).

Pre-#START Command Position

Most commands are expected to be placed within the notechart definition enclosed between #START & #END. However, some commands are expected to be placed before the notechart definition, or “pre-#START position”.

Commands allowed in pre-#START position will be explicitly denoted.

Proposal (IID): If a command with command-time effects is placed in the pre-#START position, its command-time effects apply as if these effects were static effects.

Unspecified: The behavior when any commands are placed before any headers outside the notechart definition.

Command Scope

Commands with per–player-side scope are similar to headers but the effects of these commands reset at the end of their scope.

Except for one-shot commands, the effect of each command continues until the next occurrence of any command from the same command group or #END.

Command Scope Fineness

See scope fineness.

For commands, the coarsest fineness is per–player-side. The finest fineness other than sequential is non-before

sequential > non-before > measure & (other) > per–player-side

Some branch-scoped commands have non-before scope fineness, i.e., they can be arranged freely within the same beat position without causing any behavior changes, as long as both their relative order to the sequential commands and the relative order among commands which override each other are not changed.

All commands with other type of scope implicitly have sequential scope fineness.

Command Effect Time

A command may have each part of its effects applied at different time position.

Each part of the effects can be classified into the following effect time types according to the effect-applying time position (listed in the order of descending static-ness):

Effect time Applying time
static Theoretically negative infinity (−∞) measures (presumely −∞ seconds) before the first measure, practically before the notechart is started.
command-time A specific time position relative to the time position of the command.
object-time A specific time position relative to the time position of notechart objects (including notes and bar lines).

An object-time effect can be enabled or disabled at either static time or command-time. Static-enabled object-time effects are a sub-type of static effects. Command-time–enabled object-time effects are a sub-type of command-time effects.

If an effect can be interpreted as different effect time types, the effect is classified as the most static-ness type interpreted.

As a special case, for an effect affecting the scrolling path of notechart objects, the effect is classified as object-time only if the path is a direct or indirect function of the time position of notechart objects.

Non-static Effect Scope

The non-static effect scope is defined by the targeted game objects which are affected by the non-static effects.

Proposal (IID): Allow the scope of non-static effects to be overridden for branch-scoped commands targeting notes & bar lines, see Proposal (IID): Command Modifier.

Command Effect Target

Commands only affect their targeting game objects. The target of each command can be any (including none) of:

Command Effect Branches

If commands are defined in branched section, some commands affect all branches, while some commands only affects the branch where it is defined.

Due to the incoherent behaviors, many commands introduced in TJAPlayer2 for.PC and descendants have Unspecified effect branches.

#BMSCROLL / #HBSCROLL / #NMSCROLL

OpenTaiko-OutFox standard version: 1.1 (except #NMSCROLL; pre-#START position);
  1.2 (post-#START position)
Impact level: gimmicky ★★・・・
First seen in: TaikoJiro v1.91
Supported by: TaikoJiro 2, TJAPlayer2 for.PC
Pre-#START position: required;
  allowed (Supported by: OpenTaiko (0auBSQ) v0.6.0)
Scope: per–player-side (or branch)
Scope fineness: per–player-side (or non-before)
Effect time: static
Effect target: notes, bar lines
Effect branches: Unspecified

Use a scrolling mode similar to the scrolling method used in either BEMANI-series or the official Taiko (“normal”) game series for the non-before notes and bar lines, unless overridden by user settings.

Scrolling mode comparison: Consider BPM changes occur during notes and bar lines traveling through the whole note field (including the part past the judgment mark).

Scrolling mode Taiko-like BEMANI-like
XMod
IGS-like
CMod
Command or TaikoJiro setting (Default)
#NMSCROLL
#BMSCROLL
#HBSCROLL
User option
User option: REGUL-SPEED
Position Formula px_per_beat × (bpm_at_note ÷ 60 (s/min)) × (second_time_of_notesecond_time_played) × scroll × modifier px_per_beat × (visual_beat_of_notevisual_beat_played) × scroll × modifier px_per_beat × (bpm_displayed ÷ 60 (s/min)) × (second_time_of_notesecond_time_played) × scroll × modifier
Primary Speed Factor bpm_at_note bpm_visual
(0 during effective positive delays)
(Infinity during visual beat jumps)
bpm_displayed
Constant Factor on BPM Changes Notes’ and bar lines’ individual drawn velocity Ratios of notes’ and bar lines’ drawn distance to their beat distance Ratios of drawn distances between Notes’ and bar lines’
Default scrolling changes of #BPMCHANGE command Set the per-note or per–bar-line base BPM of non-preceding notes and bar lines Suddenly change the apparent base BPM of all notes & all bar lines (No changes)
Default scrolling changes of #DELAY command (No changes) Pause the scrolling if positive and effective;
(no changes) if negative
(No changes)
Mode-invariant velocity-changing command #SCROLL <value> #HISPEED(<value>) (TMG format) (Proposal (IID)) #SPEED <value>; *:*; <changing-duration>
Analogous Timing Segment in SSC Format (None) #SCROLLS:; #SPEEDS:;

In OutFox, the Taiko-like scrolling mode can be achieved by using CAMod (AMod/”Average BPM Scroll Mode” with constant per-note or per–bar-line scrolling speed) with the BPM parameter set to 4 × the average BPM of the notechart.

See Sign of Timing Commands for the behavior of timing commands with different sign of values.

Proposal (IID): See Proposal (IID): Command Modifier for the syntax for mode-invariant commands.

Compatibility Issues

#PAPAMAMA

OpenTaiko-OutFox standard version: (non-standard, but seen in official games)
Impact level: note ★★★★★
First seen in: TJAPlayer3-f v1.7.2.0
Pre-#START position: required
Scope: per–player-side
Scope fineness: per–player-side
Effect target: notes
Effect branches: Unspecified

Use the PapaMamaSaポーpooto “Parent Support Mode”/Helping Hand Mode gameplay rules from the official arcade games for certain song in the Kantan/Kantan Easy difficulty, where the amount of players is fixed to 1 and the inputs from all players are combined to play the song.

Reference: https://taiko.namco-ch.net/taiko/en/howto/papamama.php#papamama

Unspecified: The behavior when the amount of player-sides specified by the STYLE: header is not 1.

#START / #END

OpenTaiko-OutFox standard version: 1.0 (except proposed forms)
Impact level: note ★★★★★
First seen in: TaikoJiro v0.80 (initial release)
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Pre-#START position: forbidden (enclosing the notechart definition)
Scope: per–player-side (or notechart)
Scope fineness: per–player-side (or non-before)
Effect time: static notechart definition + command-time show ending animation (for #END in some simulators)
Non-static effect scope: all
Effect target: notes, bar lines, notefield(s), gameplay screen
Effect branches: all
Inspired by: TJF format

Respectively start / end the region of notechart definition.

Unspecified: The behavior when any of the followings are violated when defining each difficulty:

Compatibility Issues

#BPMCHANGE

OpenTaiko-OutFox standard version: 1.0 (positive value)
  1.1 (non-zero real value, and resulting time of measure division interval is non-negative or normal Taiko scrolling mode is used)
  2.0 (non-zero real value) (?; to be discussed)
Impact level: timing ★★★★・
First seen in: TaikoJiro v0.80 (initial release)
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope: branch
Scope fineness: non-before
Effect time: static objects’ distance + command-time objects’ velocity
Non-static effect scope: all (BMS scrolling modes); (none) (otherwise)
Effect target: notes, bar lines
Effect branches: all
Inspired by: TJF format #BPMCHANGE <positive-int-bpm>
  (likely) from DWI format #CHANGEBPM:<comma-separated-list-bpmchanges>;, where each element is <number-beat-position>=<positive-number-bpm> (?)

Change the BPM.

Compatibility Issues

#MEASURE

OpenTaiko-OutFox standard version: 1.0 (resulting beats of measure is positive);
  1.1 (resulting beats of measure is any non-zero real value, and resulting time of measure division interval is non-negative or normal Taiko scrolling mode is used);
  2.0 (resulting beats of measure is any real value except division by 0) (?; to be discussed)
Impact level: timing ★★★★・
First seen in: TaikoJiro
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope: branch
Scope fineness: measure
Effect time: static
Effect target: notes, bar lines
Effect branches: Unspecified (with Unspecified behaviors)

Change the time signature / meter signature / measure signature.

Replaced the TJF command #ONESYOSETU (adjust the duration of this one shousetsu “measure” to fit all note symbols on the following line if placed after the previous measure (if any) and before the first note symbol (if any) of this measure in the notechart definition).

Compatibility Issues

#DELAY

OpenTaiko-OutFox standard version: 1.0
Impact level: timing ★★★★・
First seen in: TaikoJiro v1.60
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC)
Scope: branch
Scope fineness: sequential
Effect time: static objects’ timing + command-time freeze scrolling
Non-static effect scope: all (BMS scrolling modes, positive value); (none) (otherwise)
Effect target: notes, bar lines
Effect branches: Unspecified (with Unspecified behaviors)

Adjust (delay) the time position of all notechart object (including commands) non-preceding the #DELAY command by the specified time duration.

The decorative visual/audio effects are unspecified.

For the timing of notechart object, multiple #DELAY commands placed at the same beat position act as a single #DELAY with the value of the sum of their duration, even when negative delay durations are used.

Unspecified: The visual note positioning behavior in BMS scrolling modes when note objects are placed into the time interval of positive delays.

Compatibility Issues

#GOGOSTART / #GOGOEND

OpenTaiko-OutFox standard version: 1.0
Impact level: scoring ★★★・・
First seen in: TaikoJiro
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope: branch
Scope fineness: sequential
Effect time: static per-note scoring + command-time visual
Non-static effect scope: notes: (none), gameplay screen: all
Effect target: notes, gameplay screen
Effect branches: current

Respectively start / end a ゴーGooゴーGooTaimu Go-Go Time section if not already respectively started / ended.

Unspecified: The behavior if #GOGOSTART occurs when a Go-Go Time section has already started.

For playing the Go-Go Time entering effects during an existing Go-Go Time section, a pair of #GOGOEND and #GOGOSTART can be placed together.

#DUMMYSTART / #DUMMYEND

OpenTaiko-OutFox standard version: (non-standard)
Impact level: note ★★★★★
First seen in: TaikoManyGimmicks
Scope: branch
Scope fineness: sequential
Effect time: static
Effect target: notes
Effect branches: current

Respectively start / end a fake/dummy section if not already respectively started / ended.

#SCROLL

OpenTaiko-OutFox standard version: 1.0 (minimum, except TMG forms, see each form)
Impact level: gimmicky ★★・・・
First seen in: TaikoJiro
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC, OutFox v0.4.9.9)
Scope: branch
Scope fineness: non-before
Effect time: static
Effect target: notes, bar lines
Effect branches: current

Change the scrolling speed of notes & bar lines, relative to the normal scrolling velocity and direction.

Unspecified: Whether the notes & the bar lines are rotated around their center accordingly when a complex number value is used.

For specifying the same initial scrolling speed for multiple player-sides or difficulties, the HEADSCROLL: header can be used instead.

Reset by #RESETCOMMAND.

Compatibility Issues

#BARLINESCROLL

OpenTaiko-OutFox standard version: (non-standard)
Impact level: gimmicky ★★・・・
First seen in: taiko-web (plugin “Custom Barlines”)
Scope: branch
Scope fineness: non-before
Effect time: static
Effect target: bar lines
Effect branches: current (?)

Change the scrolling speed of only bar lines, relative to the normal scrolling velocity and direction and prevent this speed from being overridden by further #SCROLL.

#HISPEED

OpenTaiko-OutFox standard version: (non-standard)
Impact level: gimmicky ★★・・・
First seen in: TaikoManyGimmicks v0.6.1α
Scope: branch
Scope fineness: non-before
Effect time: static objects’ distance + command-time objects’ velocity
Non-static effect scope: all (BMS scrolling modes); (none) (otherwise)
Effect target: notes, bar lines
Effect branches: all (?)

Suddenly change the scrolling speed (HiSpeed / high-speed) of notes & bar lines in BMS scrolling modes, as if the BPM were changed accordingly.

Reset by #RESETCOMMAND.

Proposal (IID): #SPEED

OpenTaiko-OutFox standard version: (non-standard)
Impact level: gimmicky ★★・・・
Scope: branch
Scope fineness: non-before
Effect time: command-time
Non-static effect scope: all
Effect target: notes, bar lines
Effect branches: current
Inspired by: SSC format #SPEEDS:<comma-separated-list-speed-changes>;, where each element is <float-beat-position>=<float-base-speed>=<float-beat-or-second-approach-length>=<enum-int-bool-use-second-length>

Suddenly change the base scrolling speed of notes & bar lines. In other words, suddenly change the normal scrolling velocity and direction.

Targeted notes & bar lines have their distance and/or direction to the visual judgment position scaled and/or rotated. The <approach-specifier> from the proposal (IID) Command Modifier is intended to be used in conjunction.

If the notes & the bar lines are rotated around their center accordingly when a #SCROLL command with complex number value is used, they are also rotated accordingly when a #SPEED command with complex number value is used.

#DIRECTION

OpenTaiko-OutFox standard version: 1.1 (except proposed forms)
Impact level: gimmicky ★★・・・
First seen in: TJAPlayer2 for.PC
Scope: branch
Scope fineness: non-before
Effect time: static
Effect target: notes, bar lines
Effect branches: Unspecified

Change the scrolling direction of notes & bar lines.

Unspecified: Whether the notes & the bar lines are rotated around their center accordingly.

Unspecified: The behavior when a #SCROLL command with complex value is active.

Proposal (IID): The direction is relative to the scrolling direction specified by the #SCROLL command.

Compatibility Issues

#BARLINEOFF / #BARLINEON

OpenTaiko-OutFox standard version: 1.0
Impact level: gimmicky ★★・・・
First seen in: TaikoJiro v2.69
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC)
Scope: branch
Scope fineness: non-before
Effect time: static
Effect target: bar lines
Effect branches: Unspecified (?)

Respectively disable (“turn off”) / enable (“turn on”) the display of all bar lines (including the special yellow bar lines indicating the beginning of a fumenbunki “notechart branch“/forked path section) from the definition position and on.

Compatibility Issues

#BARLINE

OpenTaiko-OutFox standard version: 1.2
Impact level: gimmicky ★★・・・
First seen in: taiko-web (plugin “Custom Barlines”)
Supported by: OpenTaiko (0auBSQ) v0.6.0
Scope: branch, instant one-shot
Scope fineness: sequential
Effect time: static
Effect target: bar lines
Effect branches: current

Insert a fake/dummy normal bar line displayed at the head of the current beat position.

#JPOSSCROLL

OpenTaiko-OutFox standard version: 1.1 (except TMG forms)
Impact level: gimmicky ★★・・・
First seen in: TJAPlayer2 for.PC
Supported by: TaikoManyGimmicks v0.6α
Scope: branch
Scope fineness: sequential
Effect time: command-time
Non-static effect scope: all
Effect target: notes, bar lines, judgment mark, note field
Effect branches: Unspecified

Move (“scroll”) the position of the judgment circle from the current position.

Unspecified: The behavior when another #JPOSSCROLL command is placed within the moving duration interval of the current #JPOSSCROLL command.

Reset by #RESETCOMMAND.

The arguments are whitespace-separated.

Compatibility Issues

#JUDGEDELAY

OpenTaiko-OutFox standard version: (non-standard)
Impact level: gimmicky ★★・・・
First seen in: TaikoManyGimmicks
Scope: branch
Scope fineness: non-before
Effect time: static
Effect target: notes, bar lines
Effect branches: Unspecified (?)

Specify the per–note/bar line visual judgment point to be offset (“delay”) from the judgment mark.

Reset by #RESETCOMMAND.

The arguments are whitespace-separated.

SUDDEN / HIDDEN Commands

OpenTaiko-OutFox standard version: 1.1 (except proposed forms)
Impact level: gimmicky ★★・・・
First seen in: TJAPlayer2 for.PC
Supported by: TaikoManyGimmicks v0.6α
Scope: branch
Scope fineness: non-before
Effect time: static-enabled object-time
Non-static effect scope: non-before
Effect target: notes
Effect branches: Unspecified

Specify non-preceding notes and their KuchiShouga “Note phoneticization” to respectively appear and move suddenly / disappear (“hidden”) and stop moving suddenly for once as they move through the notefield.

Reset by #RESETCOMMAND.

Unspecified (?): The behavior when both #NOTESPAWN command(s) and the #SUDDEN and/or (proposal (IID)) #HIDDEN command(s) are in effect.

The arguments are whitespace-separated.

<float-seconds-*-duration> specifies the time durations before the time point of judgment of each note is reached; if its absolute value equals to 0, the time duration is positive infinity (+∞) for the #SUDDEN command and is negative infinity (−∞) for the #HIDDEN command.

Proposal (IID): <enum-str-afftect-type> can be one of:

Compatibility Issues

#NOTESPAWN

OpenTaiko-OutFox standard version: (non-standard)
Impact level: gimmicky ★★・・・
First seen in: TaikoManyGimmicks
Scope: branch
Scope fineness: non-before
Effect time: command-time
Non-static effect scope: non-before
Effect target: notes
Effect branches: current (?)

Specify non-preceding notes and their KuchiShouga “Note phoneticization” to respectively appear / disappear (“hidden”) suddenly when the specified time point before the command is reached.

If multiple #NOTESPAWN commands are placed at the same measure position, the first #NOTESPAWN resets the previous #NOTESPAWN effects to the default, and then all the appear and disappear points specified by the #NOTESPAWNs at the same measure position are set simultaneously for non-preceding notes.

Reset by #RESETCOMMAND.

Unspecified (?): The behavior when both #NOTESPAWN command(s) and #SUDDEN and/or (proposal (IID)) #HIDDEN command(s) are in effect.

The arguments are whitespace-separated.

<float-seconds-*-duration> specifies the time durations before the time point of the command is reached.

#ENABLEDORON / #DISABLEDORON

OpenTaiko-OutFox standard version: 2.0
Impact level: gimmicky ★★・・・
First seen in: TJAPlayer3-Extended
Supported by: OpenTaiko (0auBSQ) v0.6.0
Scope: branch
Scope fineness: non-before
Effect time: command-time
Non-static effect scope: all
Effect target: notes
Effect branches: Unspecified

Respectively enable / disable the Doron “note-wise stealth” game modifier. The KuchiShouga “Note phoneticization” is not hidden by this game modifier.

#LYRIC

OpenTaiko-OutFox standard version: 1.0
Impact level: decorative ・・・・・
First seen in: TJAPlayer2 for.PC
Supported by: taiko-web ver.20.03.31, TaikoManyGimmicks v0.6α
Scope: branch
Scope fineness: non-before
Effect time: command-time
Non-static effect scope: all
Effect target: gameplay screen
Effect branches: Unspecified

Display the specified lyric.

Unspecified: Whether #LYRIC commands are ignored if the lyric file specified by the LYRICS: or LYRICFILE: header is used.

Unspecified: The behavior when #LYRIC commands are not consistent among any of the following:

Compatibility Issues

#SENOTECHANGE

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: gimmicky ★★・・・
First seen in: TJAPlayer3 v1.4.0
Scope: branch, note one-shot
Scope fineness: non-before
Effect time: static
Effect target: notes
Effect branches: Unspecified

Override (“change”) the automatically assigned KuchiShougaNote phoneticization” (“sound effect of a note” or “Hatsusei vocalization of a note” (?)) of the nearest note(s) placed non-before the command.

Similar to the #NOTESCHANGE command, but with a different range of argument.

In the official games, the note phoneticization is assigned per-note and does not follow a definite pattern, especially in earlier games.

The general pattern in recent Taiko games seems to be:

However, in the official Konga games, the general pattern is less consistent and “chain-final” is defined less strictly:

#NOTESCHANGE

OpenTaiko-OutFox standard version: (non-standard)
Impact level: gimmicky ★★・・・
First seen in: C-Taiko
Scope: branch, note one-shot (?)
Scope fineness: non-before
Effect time: static
Effect target: notes
Effect branches: current (?)

Override (“change”) the automatically assigned KuchiShougaNote phoneticization” (“sound effect of a note” or “Hatsusei vocalization of a note” (?)) of the nearest note(s) (?) placed non-before the command.

Similar to the #SENOTECHANGE command, but with a different range of argument.

Proposal (IID): #BALLOON (Command)

OpenTaiko-OutFox standard version: (non-standard)
Impact level: note ★★★★★
Scope: branch, note one-shot
Scope fineness: non-before
Effect time: static
Effect target: balloon-type notes
Effect branches: current

Basically the same as the BALLOON: header, except that the #BALLOON command only applies to non-preceding notes in the note definition.

Override the assigned hit amount specified by the one of the BALLOON headers if applies to an already assigned balloon-type note.

The semantics are otherwise the same as the BALLOON headers.

Proposal (Komi): #PARTNERNOTE

OpenTaiko-OutFox standard version: 1.3
Impact level: note ★★★★★
Scope: branch, note one-shot
Scope fineness: non-before
Effect time: static
Effect target: notes
Effect branches: current

Specify the next note to be hand-holding (“partner”), like note symbols A and B.

proposal (IID): A hand-holding bomb/mine gives extra gauge penalty if all players hit the hand-held notes within a certain time duration.

Unspecified: Whether an originally non–hand-holding note with #PARTNERNOTE applied awards extra score bonus (except in PC-generation scoring) on successful hand-holding judgement.

If the next note is already a hand-holding note or (proposal (IID)) is not a hit-type note, the command has no effects.

Proposal (IID): If the hand-holding note has no hand-holding notes to hand-hold at any of the other player-sides, it becomes a non–hand-holding note, regardless of whether it is specified to be hand-holding by the note symbol or the #PARTNERNOTE command.

Unspecified: In Taiko mode, whether big notes 3 and 4 with #PARTNERNOTE applied are equivalent to the hand-holding notes A & B.

Can be conditionally enabled or disabled by the (proposal (Komi)) #COMMANDIF or (proposal (IID)) #COMMANDIFF command.

Proposal (Komi): #GIANTNOTE

OpenTaiko-OutFox standard version: 1.3
Impact level: note ★★★★★
Scope: branch, note one-shot
Scope fineness: non-before
Effect time: static
Effect target: notes
Effect branches: current

Specify the next note to be giant, as in the official Wii games. A giant notes receive input and reward points the same as a regular note, but sets certain specified (proposal (Komi)) triggers to true based on its received judgement.

Proposal (IID): If the next note is already a giant note or is not a hit-type note, the command has no effects. If the next note is a big note, it is converted to a regular note and then becomes a giant note.

Can be conditionally enabled or disabled by the (proposal (Komi)) #COMMANDIF or (proposal (IID)) #COMMANDIFF command.

Proposal (Komi): NOTEIF Commands

OpenTaiko-OutFox standard version: 1.3
Impact level: note ★★★★★
Scope: branch, note one-shot
Scope fineness: non-before
Effect time: static
Effect target: notes
Effect branches: current

Conditionally (“if”) enable the next note.

Proposal (IID): If the next note is not a hit-type note, the command has no effects.

Proposal (Komi): COMMANDIF Commands

OpenTaiko-OutFox standard version: 1.3
Impact level: note ★★★★★ (maximum, depends on the usage)
Scope: branch, command one-shot
Scope fineness: sequential
Effect time: static
Effect target: notes
Effect branches: current

Conditionally (“if”) enable the next command.

Proposal (IID): If the next command is a #COMMANDIF or #COMMANDIFF command, is not a supported command, or is placed after any note symbols, the current #COMMANDIF or #COMMANDIFF command has no effects.

Commands supporting the #COMMANDIF and (proposal (IID)) #COMMANDIFF command:

#SECTION

OpenTaiko-OutFox standard version: 1.0 (except proposed forms)
Impact level: note ★★★★★
First seen in: TaikoJiro v1.63
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC)
Scope: branch, instant one-shot
Scope fineness: non-before
Effect time: static determine in-section objects + command-time switch sections
Non-static effect scope: last and current section (across branches)
Effect target: (none)
Effect branches: all

Start a fumenbunki “notechart branch”/forked path–determining section by resetting the value of the conditions for determining the next not-yet-determined “branch(es)”/path(s) at the beginning of the section. See the explanation for the #BRANCHSTART command.

When the #SECTION command & a “branch”/path–determining point occur at the same beat position, the effect of the #SECTION command should take place after the “notechart branch”/forked path is determined.

The effects of #SECTION applie regardless the current branch and on which branch the command is defined.

An implicit #SECTION is placed at the beginning of every notechart definition.

The value of the condition for determining the “branch”/path by score (the s condition) is not reset.

Compatibility Issues

#LEVELHOLD

OpenTaiko-OutFox standard version: 1.0
Impact level: note ★★★★★
First seen in: TaikoJiro v1.63
Supported by: TaikoJiro 2, TJAPlayer2 for.PC
Scope: branch
Scope fineness: measure
Effect time: static
Effect target: (none)
Effect branches: current (only the routes reaching the command)

Override the result of all fumenbunki “notechart branch“/forked path (“level”) determination from the definition of this measure and on with the current branch/path (“hold”).

Proposal (IID): Its effects end at either the next another #LEVELHOLD or a #LEVELREDIR command.

Compatibility Issues

Proposal (IID): #LEVELREDIR

OpenTaiko-OutFox standard version: 1.3
Impact level: note ★★★★★
Scope: branch
Scope fineness: measure
Effect time: static
Effect target: (none)
Effect branches: current (only the routes reaching the command)

Override the result of all fumenbunki “notechart branch“/forked path (“level”) determination from the definition of this measure and on with specified branches/paths (redirect).

Its effects end at either the next #LEVELHOLD or another #LEVELREDIR command.

Examples

The “branch”/path behavior of the Oni Oni/Extreme difficulty of “ShoudokuTaikonoHiIzurumade飛鳥Asuka” can be achieved as:

// Measure 15 - 16

#BRANCHSTART r, 5, 6
#N
    #LEVELHOLD
#M
    #LEVELREDIR N, N, M
#BRANCHEND
#SECTION
// Measure 17 - 18

#BRANCHSTART r, 7, 8
#N
    #LEVELHOLD
#M
    #LEVELREDIR N, N, M
#BRANCHEND
#SECTION
// Measure 19 - 20

#BRANCHSTART r, 4, 5
#N
  // Measure 21 - 25
#E
  // Measure 21 - 25
#M
  // Measure 21 - 25

#BRANCHSTART p, 101, 101
#BRANCHEND
// Measure 26 -

#BRANCHSTART / #BRANCHEND

OpenTaiko-OutFox standard version: 1.0 (except proposed forms; except d condition)
Impact level: note ★★★★★
First seen in: TaikoJiro v1.63
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC)
Scope: notechart
Scope fineness: measure
Effect time: static objects’ measure position + command-time objects’ enabling status & visual
Non-static effect scope: notes, bar lines, & judgment mark(s): non-before, note field(s): non-before the previous measure (#BRANCHSTART) or (none) (#BRANCHEND)
Effect target: notes, bar lines, judgment mark(s), note field(s)
Effect branches: all

Respectively start / end the definition of a fumenbunki “notechart branch“/forked path section.

The determining point of this “branch”/path section is defaulted to be placed at the beginning of the previous measure from the #BRANCHSTART command.

At the determining point, the “branch”/path–switching effects are played and the targeted branch is updated, but only the notes and bar lines whose definition position is non-before the actual beginning of the “branch”/path section have their pattern changed.

Conditions

The possible conditions includes <enum-str-condition>, lc:<str-local-value-counter-read-value>, lcf:<str-local-value-counter-read-value>, lt, ltf, & (none). Conditions other than <enum-str-condition> are explained above.

<enum-str-condition> specifies the condition value for determining the “branch”/path can be one of the following:

The variables in the above formulae are (proposal (Komi)) pre-defined store expression variables. See there for the explanation about calculating the condition value regarding big notes.

For roll count conditions (r, R, rb, & RB), if a counted drumroll note is defined as beginning non-after but ending after the default beat position of the determining point, the actual determining point is postponed until the earlier of the definition positions of the ending of that note and an unspecified duration before the #BRANCHSTART command:

The accumulated roll count calculated during the determining section is used.

If a roll count condition is replaced by a charter-defined variable condition (lc:<str-local-value-counter-read-value>, lcf:<str-local-value-counter-read-value>, lt, ltf), the actual determining point is not postponed.

For the score condition (s), the final value at the determining point is used.

For other conditions, the percentage or amount calculated during the determining section is used.

Unspecified: The following behaviors regarding the actual hit timing:

Condition Judgement

For number conditions (<enum-str-condition>, lc:<str-local-value-counter-read-value>, & lcf:<str-local-value-counter-read-value>), the condition value will be compared with the specified requirement value.
For Boolean conditions (lt & ltf), the condition values for Expert condition and Master condition will be compared with 1 (true).

If <enum-str-range> is (empty) or m, the requirement is fulfilled if the value is more than or equal to (“≥”) the given requirement (for a Boolean condition, when the value is 1 (true)).
If <enum-str-range> is l, the requirement is fulfilled if the value is less than (“<”) the given requirement (for a Boolean condition, when the value is 0 (false)).

Usage

They are conventionally used as follow:

#BRANCHSTART r,1,2 // Exemplar branch/path condition similar to the opening section of the "画竜点睛 (Garyoutensei)" series
#N
    // 0 hits: "普通 (Futsuu)" Normal branch/path
    // Normal branch/path section

#E
    // 1 hit: "玄人 (Kurouto)"/Advanced branch/path
    // Advanced branch/path section

#M
    // 2+ hits: "達人 (Tatsujin)"/Master branch/path
    // Master branch/path section

#BRANCHEND // Sometimes optional, see below

// Some commands or notechart section

#BRANCHSTART p,0,101 // Exemplar condition which forces the "玄人 (Kurouto)"/Advanced branch/path to be chosen
// ...

An implicit #BRANCHEND is placed before #BRANCHSTART and #END commands. If no commands & notechart symbols occur after the explicit defined #BRANCHEND and before such commands, the #BRANCHEND can be omitted.

Unspecified: The behavior when any of the followings are violated:

Examples

Following are known special conditions (beyond r & p) used in official games.

Reference: 譜面分岐条件 (“Notechart branch conditions”). 太鼓の達人 譜面とか Wiki* (“Taiko no Tatsujin - Wiki* about Notecharts and so on”). https://wikiwiki.jp/taiko-fumen/収録曲/譜面分岐条件

s can be used for simulating older official games (including AC6 and earlier games), but is also useful for simulating the “getting Fuka BAD on anything and hitting no rolls to take certain branch” condition in current official games.

Single condition:

Compound condition:

Branch-dependent condition:

Compatibility Issues

Proposal (IID) #FROMNOR / #FROMEXP / #FROMMAS

OpenTaiko-OutFox standard version: 1.3
Impact level: note ★★★★★
Scope: notechart
Scope fineness: measure
Effect time: static
Effect target: The last defined #BRANCHSTART or #BRANCHEND.
Effect branches: all

Specify or override the branch condition and requirements for when the Futsuu Normal / Kurouto “Professional”/Advanced (“Expert”) / Tatsujin Master fumen (bunki) “notechart branch”/forked path is currently targeted (“from”).

The branch determining point for different currently targeted branch may vary.

Examples

The example of #LEVELREDIR for Oni Oni/Extreme difficulty of “ShoudokuTaikonoHiIzurumade飛鳥Asuka can be alternatively achieved as:

// Measure 15 - 16

#BRANCHSTART r, 5, 6
#BRANCHEND
#SECTION
// Measure 17 - 18

#BRANCHSTART
#FROMEXP r, 7, 8
#FROMMAS r, 8, 8
#BRANCHEND
#SECTION
// Measure 19 - 20

#BRANCHSTART
#FROMEXP r, 4, 5
#FROMMAS r, 5, 5
#N
  // Measure 21 - 25
#E
  // Measure 21 - 25
#M
  // Measure 21 - 25

#BRANCHSTART p, 101, 101
#BRANCHEND
// Measure 26 -

#N / #E / #M

OpenTaiko-OutFox standard version: 1.0
Impact level: note ★★★★★
First seen in: TaikoJiro v1.63
Supported by: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC)
Scope: notechart
Scope fineness: measure
Effect time: static
Effect target: notes, bar lines, judgment mark(s), note field(s)
Effect branches: all

Start the definition of respectively the Futsuu Normal / Kurouto “Professional”/Advanced (“Expert”) / Tatsujin Master fumen (bunki) “notechart branch”/forked path section.

The definition of unused “branches”/paths due to forced “branch”/path determination can be omitted.

Unspecified: The behavior when any of the followings are violated:

Compatibility Issues

Proposal (barrier): #GROUP

OpenTaiko-OutFox standard version: (non-standard)
Impact level: gimmicky ★★・・・
Scope: branch (?)
Scope fineness: non-before
Effect time: static
Effect target: notes, bar lines, judgment mark(s), note field(s)
Effect branches: current (?)

Start the definition of a timing group. (?)

(TMG syntax, but no known argument)

Proposal (barrier): Conditional SPAWN Commands

OpenTaiko-OutFox standard version: (non-standard)
Impact level: note ★★★★★
Scope: branch (?)
Scope fineness: sequential
Effect time: command-time
Non-static effect scope: non-before
Effect target: notes, bar lines, judgment mark(s), note field(s)
Effect branches: current (?)

Define conditionally enabled notechart sections which appear / disappear with the effects of #NOTESPAWN (“spawn”), when the specified time point before the command is reached.

All <bool-condition> within a conditional spawn definition section are (re-)evaluated at each specified <float-seconds-duration> seconds before the #*SPAWN() command. (?)

Within a conditional spawn definition section, after each (re-)evaluation, the conditional notechart definition section of the first defined #*SPAWN() command with <bool-condition-enable> being true, <bool-condition-disable> being false, or without specifiable <bool-condition-*> is enabled, while all the other sections are disabled.

<enum-str-spawntype> must be one of:

Example usages (adapted from barrier15300):

// Evaluated at 0 seconds before the `#IFSPAWN()`
#IFSPAWN(CD.Good == 100, Spawn, 0)
  // Initially disabled and invisible
  // If enabled, appears 0 seconds before the command
  2010201011102010,
#ELSESPAWN(Vanish, 0)
  // Initially enabled and visible
  // If disabled, disappears 0 seconds before the command
  1011201020101120,
#IFSPAWNEND()
// Evaluated at 0.5, 0, & -1 second before the `#UNLESSSPAWN()`
#UNLESSSPAWN(CD.Good < 100, Spawn, 0)
  // Initially disabled and invisible
  // If enabled, appears 0 seconds before the command
  2222102222102222,
#ELSEIFSPAWN(CD.Bad > 0, Vanish, -1)
  // Initially enabled and visible
  // If disabled, disappears -1 second before (i.e., 1 second after) the command
  1111221110102211,
#ELSESPAWN(Spawn, 0.5)
  // Initially disabled and invisible
  // If enabled, appears 0.5 seconds before the command
  1110111011102220,
#IFSPAWNEND()

#NEXTSONG

OpenTaiko-OutFox standard version: 1.0 (minimum, unless stated otherwise)
Impact level: timing ★★★★・
First seen in: TJAPlayer3 v1.5.0
Scope: notechart
Scope fineness: non-before
Effect time: command-time
Non-static effect scope: all
Effect target: all
Effect branches: all

Switch to the next song in the Dan’ininteiモーMoodo “Rank Certification Mode”.

Dan’ininteiモーMoodo “Rank Certification Mode” resembles Dan’iDoujou “Rank Dojo”/Dan-i Dojo in the official games.

Used in conjunction with COURSE:Dan.

See TJC Header for the header version of the #NEXTSONG command.

Proposal (Komi): #SONGJUMP

OpenTaiko-OutFox standard version: 1.3
Impact level: note ★★★★★
Scope: notechart
Scope fineness: non-before
Effect time: command-time
Non-static effect scope: all
Effect target: all
Effect branches: current

Immediately jump to the loading screen of the specified song. The results (including (proposal (Komi)) local counters and local triggers) of the current gameplay is discarded.

Can be conditionally enabled or disabled by the (proposal (Komi)) #COMMANDIF or (proposal (IID)) #COMMANDIFF command.

#GAMETYPE

OpenTaiko-OutFox standard version: 1.2
Impact level: note ★★★★★
First seen in: OpenTaiko (0auBSQ) v0.6.0, OutFox v0.4.18
Scope: branch
Scope fineness: non-before
Effect time: static
Effect target: notes, bar lines
Effect branches: Unspecified

Specify the game mode (“type”) for the notes non-before the current beat position. The meaning of the note symbols non-before the current beat position is changed accordingly; see TJA Notechart Definition.

Unspecified: The implemented game modes other than Taiko mode and Konga mode.

See the GAME: header for specifying the initial game mode for the notechart.

Compatibility Issues

NOTE / BARLINE Commands

OpenTaiko-OutFox standard version: (non-standard)
Impact level: gimmicky ★★・・・
First seen in: TaikoManyGimmicks
Scope: branch
Scope fineness: non-before
Effect time: static
Effect target: notes, bar lines
Effect branches: branch (?)

Manipulate the display properties of notes & bar lines.

The arguments are whitespace-separated.

Resetters:

Setters:

#GRADATION

OpenTaiko-OutFox standard version: (non-standard)
Impact level: gimmicky ★★・・・
First seen in: TaikoManyGimmicks v0.6α
Scope: branch
Scope fineness: gradation group
Effect time: command-time
Non-static effect scope: gradation group
Effect target: notes, bar lines
Effect branches: current (?)

Control the commands apply to the starting/ending of the per–note/bar line approaching phase (“gradation”).

Reset by #RESETCOMMAND.

The arguments are whitespace-separated.

They are conventionally used as follow:

If a static effect of a command is specified to be interpolated, the static effect will be overridden by the command-time version of the same effect with the time position relative to the beginning of the gradation group.

Unspecified: Which commands are supported by the #GRADATION command.

Commands supporting the #GRADATION command in TaikoManyGimmicks:

#INCLUDE

OpenTaiko-OutFox standard version: (non-standard)
Impact level: note ★★★★★ (depending on included notechart definition content)
First seen in: TaikoManyGimmicks v0.6.1α
Scope: (depending on included notechart definition content)
Scope fineness: sequential
Effect time: (depending on included notechart definition content)
Effect target: (depending on included notechart definition content)
Effect branches: (depending on included notechart definition content)
Inspired by: C(++) programming language #include <<filepath-standard-header>> or #include "<filepath-custom-header>"

Append (“include”) the notechart definition content defined the included file to the current definition. The included file can include any headers and commands in the TMG format.

#SPLITLANE / #MERGELANE

OpenTaiko-OutFox standard version: (non-standard)
Impact level: gimmicky ★★・・・
First seen in: OpenTaiko (0auBSQ) v0.6.0
Scope: branch
Scope fineness: non-before
Effect time: command-time
Non-static effect scope: all
Effect target: notes, bar lines, judgment mark(s), note field(s)
Effect branches: Unspecified

Split/merge the note field (“lane”) into/from top and bottom note field, with Don notes on the top note field, Katsu notes on the bottom note field, and other notes on the middle of these 2 note fields.

OBJ / CAM Commands

OpenTaiko-OutFox standard version: 2.0
Impact level: gimmicky ★★・・・
First seen in: TJAPlayer3-Extended
Supported by: OpenTaiko (0auBSQ) v0.6.0
Scope: branch
Scope fineness: non-before (some are sequential)
Effect time: command-time
Non-static effect scope: all
Effect target: gameplay screen
Effect branches: Unspecified

Manipulate texture objects & the game screen camara.

Loader & unloader, reset by each other:

Display property setters:

Frame-based animation:

CAM commands:

The #<property>START and #<property>END commands are sequential.

The approach phase of a #<property>START command starts at its definition position and is ended by the nearest non-preceding corresponding #<property>END in notechart definition. Unspecified: The behavior when a #<property>START command either has no such corresponding #<property>END or has such #<property>END with an earlier time position than the #<property>START command itself.

<enum-str-easing-points> can be one of:

<enum-str-easing-function> can be one of:

#BORDERCOLOR

OpenTaiko-OutFox standard version: 2.0
Impact level: decorative ・・・・・
First seen in: TJAPlayer3-Extended
Supported by: OpenTaiko (0auBSQ) v0.6.0
Scope: branch
Scope fineness: non-before
Effect time: command-time
Non-static effect scope: all
Effect target: gameplay screen
Effect branches: Unspecified

Set the color of the displayed region outside the border of the gameplay screen (when the gameplay screen camera is manipulated).

#CHANGETEXTURE / #RESETTEXTURE

OpenTaiko-OutFox standard version: 2.0
Impact level: gimmicky ★★・・・
First seen in: TJAPlayer3-Extended
Supported by: OpenTaiko (0auBSQ) v0.6.0
Scope: branch
Scope fineness: non-before
Effect time: command-time
Non-static effect scope: all
Effect target: gameplay screen
Effect branches: Unspecified

Respectively change / restore (“reset”) the texture used in the current skin.

Reset by each other.

#SETCONFIG

OpenTaiko-OutFox standard version: 2.0
Impact level: gimmicky ★★・・・
First seen in: TJAPlayer3-Extended
Supported by: OpenTaiko (0auBSQ) v0.6.0
Scope: branch
Scope fineness: non-before
Effect time: command-time
Non-static effect scope: all
Effect target: gameplay screen
Effect branches: Unspecified

Override (“set”) the config value read from the SkinConfig.ini of the currently used skin.

Unspecified: The exact list of valid configs, allowed values, and the behaviors.

#BGAON / #BGAOFF

OpenTaiko-OutFox standard version: (non-mandatory; 1.0-compatible)
Impact level: decorative ・・・・・
First seen in: OpenTaiko (0auBSQ) v0.6.0
Scope: branch
Scope fineness: non-before
Effect time: command-time
Non-static effect scope: all
Effect target: gameplay screen
Effect branches: Unspecified

Start (“on”)/stop (“off”) playing the specified background video (“animation”) defined by the BGA: header on the gameplay screen.

The arguments are whitespace-separated.

Compatibility Issues

Proposal (Komi): COUNTER / TRIGGER Commands

OpenTaiko-OutFox standard version: 1.3
Impact level: note ★★★★★ (depending on usage)
Scope: branch
Scope fineness: sequential
Effect time: command-time
Non-static effect scope: specified target counter or trigger
Effect target: (none)
Effect branches: current

Specification by Komi: https://docs.google.com/document/d/1PZXLStZs8RQGbB62jnf7FKxbDEdjuKO482yatI6oXyA/edit?usp=sharing

Manipulate the value of counters & triggers (collectively called charter-defined variables).

Value types:

Persistence:

The accessible set of global or local charter-defined variables is independent for each song and for each player, regardless of difficulty and player-side.

Evaluation method:

Unspecified: The behavior when a specified charter-defined variable is defined but has unmatched persistence, value type, or evaluation method to those expected by a command or variable accessing tag.

Local charter-defined variable setters:

Global charter-defined variable setters:

Recommendation for charters: Global charter-defined variable setters should be used only when necessary and are preferredly used as late (by time position) as possible in the notechart, such as before #END or (proposal (Komi)) the #SONGJUMP command.

If the global charter-defined variables are disabled by user option or unimplemented by the simulator, the global charter-defined variable setters have no effects.

For each charter-defined variable setter, if <str-*-*-*-written> contains one of the <>, characters, the command has no effects.

Store Expression Syntax

Examplar evaluator implementation in C#: https://dotnetfiddle.net/LtjtCQ

Operations (in descending precedence):

Syntax Functionality Precedence Level Example Meaning
< <str-tag> : <str-arg0> : <str-arg1> : ... > Variable access
(see below)
(preprocess) <jp>
<gc:acc_oni_p1>
• The current number of Ryou GREAT/GOOD judgement.
• The value of the global counter with key acc_oni_p1.
<unsigned-float> Unsigned float literal primary 42 / .1 / 3. 42 / 0.1 / 3.0
( <expr-or> ) Grouping primary (2+2)/2 4 / 22
Proposal (IID):
<expr-funcioncall-func> ( <expr-or-arg0> : <expr-or-arg1> : ... )
Function call funcioncall <math:min>(<lc:acc>:<a>) The minimum of the value of local counter with key acc and the current accuracy.
- <expr-unary> Number negation unary --42 -(-42)42
! <expr-bool-unary> Boolean NOT unary !!42 !(!42)!(!1) (emits warning) → !01
<expr-muldiv> * <expr-unary> Multiplication muldiv 2*2*2 (2 * 2) * 28
<expr-muldiv> / <expr-unary> Division muldiv 9/4/2 (9 / 4) / 21.125
<expr-muldiv> + <expr-unary> Addition addsub 1+2+3 (1 + 2) + 36
<expr-muldiv> - <expr-unary> Substraction addsub 1-2-3 (1 - 2) - 3-4
<expr-comparison> > <expr-addsub> Greater-than
Results in 0 (false) or 1 (true)
comparison <foo>><bar>><baz> (<foo> > <bar>) > <baz>
<expr-comparison> >= <expr-addsub> Greater-than-or-equal-to comparison 4>=3>=2 (4 >= 3) >= 21 >= 20
<expr-comparison> <= <expr-addsub> Less-than-or-equal-to comparison -4<=-3<=-2 (-4 <= -3) <= -21<=-20
<expr-comparison> < <expr-addsub> Less-than comparison <foo><<bar><<baz> (<foo> < <bar>) < <baz>
<expr-equality> == <expr-comparison> Equal-to equality 0==0==0
<a>>=.5==<lc:acc>>=.5
• → (0 == 0) == 01 == 00
• → (<a> >= 0.5) == (<lc:acc> >= 0.5)
<expr-equality> != <expr-comparison> Not-equal-to equality 1!=1!=1
<foo>!=<foo>
• → (1 != 1) != 10 != 11 • 1 (true) if <foo> is NaN, 0 (false) otherwise
<expr-bool-and> & <expr-bool-equality> Boolean AND and 0&1&2 (0 & 1) & 20 & 20 & 1 (emits warning) → 0
<expr-bool-xor> ^ <expr-bool-and> Boolean XOR xor 1^0&1^1 1 ^ (0 & 1) ^ 11 ^ 0 ^ 1(1 ^ 0) ^ 11 ^ 10
<expr-bool-or> | <expr-bool-xor> Boolean OR or 0&1|1&0^1|1^1 (0 & 1) | ((1 & 0) ^ 1) | (1 ^ 1)0 | 1 | 0(0 | 1) | 01 | 01

For Boolean operators, if the resulting value of <expr-bool-*> is equal to neither 0 (false) or 1 (true), it is converted to 1 (true) (i.e., <expr-bool-*> != 0) and a warning is emitted.

The result of comparison and equality operators is 0 (false) or 1 (true).

Store Expression Variable Access

The variable access operation < <str-tag> : <str-arg0> : <str-arg1> : ... > is replaced with the float literal of the resolved value before the whole expression is parsed.

If the lookup fails, a warning is emitted and the result is 0.

Proposal (IID): If any of the following are violated, the opening < is instead parsed as (part of) a comparison operator:

Pre-defined variable tags:

The list of (Proposal (IID)) pre-defined constants and functions are separately listed below.

Excessive arguments are ignored. Lacking arguments cause the lookup to fail and cause the result to be 0.

Proposal (IID): For calculating the pre-defined variables regarding big note statistics:

Tag Arguments Value
cl (none) The LEVEL: value of the current player-side.
cd (none) The COURSE: (“difficulty”) value (integer form) of the current player-side.
pc (none) Amount (“count”) of player-sides in this gameplay.
ss (none) Current value of song speed multiplier modifier.
sc (none) Current value of scrolling rate multiplier modifier.
jp • (none)
l
Current amount of Ryou GREAT/GOOD (“perfect”) judgements.
l — Only counts successful hand-holding (“l“inked) judgements.
jg • (none)
l
Current amount of Ka GOOD/OK judgements.
l — Only counts successful hand-holding (“l“inked) judgements.
jb • (none)
l
Current amount of Fuka BAD judgements on missable notes.
l — Only counts hand-holding (“l“inked) notes.
Proposal (IID): jbt (none) Current amount of combo-break judgements, including (“total”) Fuka BAD (both for notes and for empty hits) and BOOM.
Proposal (IID):
JP
• (none)
d
l
Current amount of Ryou GREAT/GOOD (“perfect”) judgements on big notes (not including note symbol G).
d — Only counts Toku “special”/strong/”double-hit” judgements and successful hand-holding judgements.
l — Only counts successful hand-holding (“l“inked) judgements.
Proposal (IID):
JG
• (none)
d
l
Current amount of Ka GOOD/OK judgements on big notes (not including note symbol G).
d — Only counts Toku “special”/strong/”double-hit” judgements and successful hand-holding judgements.
l — Only counts successful hand-holding (“l“inked) judgements.
Proposal (IID):
JB
• (none) or d
l
Current amount of Fuka BAD judgements on big notes.
l — Only counts hand-holding (“l“inked) big notes.
ja • (none)
l
Current amount of caught Ad libitum (AD-LIB) notes.
l — Only counts successful hand-holding (“l“inked) judgements.
jm • (none) Current amount of caught BOOM (“mine caught”) judgements.
Proposal (IID):
jmb
• (none)
l
Current amount of caught bomb/mine.
l — Only counts successful hand-holding (“l“inked) judgements.
Proposal (IID):
jrb
(none) Current amount of popped balloon-type drumroll-type notes.
Proposal (IID):
JRB
• (none)
d
Current amount of popped special/”bigballoon-type drumroll-type notes (note symbol 9).
d — Only counts pops with full bonus.
tn (in any order)
(• (none) or j
Proposal (IID): t) :
(• (none)
Proposal (IID): l)
Total amount of encountered missable notes (Proposal (IID)) (for j) judged or (for t) whose critical judgement timing has been reached before now.
l — Only count hand-holding notes.
Proposal (IID): TN (in any order)
(• (none) or j
Proposal (IID): t) :
(• (none) or d
Proposal (IID): l)
Total amount of encountered missable big notes (Proposal (IID)) (for j) judged or (for t) whose critical judgement timing has been reached before now.
l — Only count hand-holding notes.
ta (same as tn) Total amount of encountered Ad libitum (AD-LIB) notes (Proposal (IID)) (for j) judged or (for t) whose critical judgement timing has been reached before now.
l — Only count hand-holding notes.
tm • (none) or j
Proposal (IID): t
Total amount of encountered notes which can give a BOOM (“mine caught”) judgement (Proposal (IID)) (for j) judged (hit, popped, or failed to pop) or (for t) whose critical judgement timing or beginning or ending timing has been reached before now.
Proposal (IID):
tmb
(same as tn) Total amount of encountered bomb/mine notes (Proposal (IID)) (for j) judged or (for t) whose critical judgement timing has been reached before now.
l — Only count hand-holding notes.
Proposal (IID):
trb
• (none) or j
t
Total amount of encountered balloon-type drumroll-type notes (for j) popped or failed to pop or (for t) whose beginning or ending timing has been reached before now.
Proposal (IID):
TRB
• (none) or j
t
Total amount of encountered special/”bigballoon-type drumroll-type notes (note symbol 9) (for j) popped or failed to pop or (for t) whose beginning or ending timing has been reached before now.
Proposal (IID):
trbh
• (none) or j
t
Total required amount of hits of all encountered balloon-type drumroll-type notes (for j) popped or failed to pop or (for t) whose beginning or ending timing has been reached before now.
Proposal (IID):
TRBH
• (none) or j
t
Total required amount of hits of all encountered special/”bigballoon-type drumroll-type notes (note symbol 9) (for j) popped or failed to pop or (for t) whose beginning or ending timing has been reached before now.
Proposal (IID): rt (none) Current amount of hits on all (total) drumroll-type notes.
Proposal (IID): RT • (none)
d
Current amount of hits on all (total) big (including special balloons (note symbol 9)) drumroll-type notes.
d — Only counts strong/”double-hit” hits on big bar drumrolls.
Proposal (IID): rb (none) Current amount of hits on balloon-type drumroll-type notes.
Proposal (IID): RB (none) Current amount of hits on special/”bigballoon-type drumroll-type notes (note symbol 9).
Proposal (IID): sect (One of above tags from jp to RB) :
(One of (none), d, & l)
The current judgement statistic counted since the last #SECTION (if any) or the start of the chart.
The d or l option is applied to the tag if applicable.
Proposal (IID): sect (One of p, P, pp, PP, r, R) : (One of (none), d, & l) The current value calculated using the formula of the corresponding <enum-str-condition> of the #BRANCHSTART command since the last #SECTION (if any) or the start of the chart.
The d or l option is applied to the <sect:*> variables in the formula if applicable.
a
p
• (none) or j
Proposal (IID): t
Current percentage (%) of seidoprecision/perfect rate”/accuracy of all missable notes, based on (Proposal (IID)) (for j) amount of actual judgements or (for t) amount of notes whose critical judgement timing has been reached before now.
Proposal (IID): s (none) Current score.
cc (none) Current combo earned.
g (none) Percentage (%) of tamashiiゲーgeeji spirit gauge/soul gauge.
Proposal (IID): For LIFE: life count, the initial life count is defined as 100%.
Proposal (IID):
cs
(none) 0 for failed, 1 for assisted passed, 2 for non-assisted passed, 3 for passed and full combo (<jb:t> == 0), 4 for passed and perfect (<jg> + <jb:t> == 0).
mc
c
(none) Maximum/longest combo ever earned.
cb (none) Current displayed target branch (0 for Normal, 1 for Expert, 2 for Master)
cg (none) Current game mode
Non-negative for 1-digit note symbol game modes: 0 for Taiko, 1 for Konga (Bongo), 2 for proposal (Komi) Beatz.
Negative for multi-digit note symbol modes (reserved, non-standard): -1 for Jube, -2 for Bm.
lc <str-local-value-counter-read> Current value of local value counter (0 if undefined)
lt <str-local-value-trigger-read> Current value of local value trigger (false if undefined) (0 for false, 1 for true)
Proposal (IID):
lcf
<str-local-formula-counter-read> Current cached value of local counter formula (0 if undefined)
Proposal (IID):
ltf
<str-local-formula-trigger-read> Current cached value of local trigger formula (false if undefined) (0 for false, 1 for true)
gc <str-global-value-counter-read> Current value of global value counter (0 if undefined)
gt <str-global-value-trigger-read> Current value of global value trigger (false if undefined) (0 for false, 1 for true)
Proposal (IID):
func
<str-function-name> Utility functions
Proposal (IID):
math
<str-constant-or-function-name> Mathematical constants and functions

Proposal (IID): Pre-defined constants:

Variable Value
<math:e> Base of natural logarithm; e ≈ 2.718
<math:nan> An unspecified fixed NaN value
<math:inf> Positive infinity; +∞

Proposal (IID): Pre-defined functions:

A pre-defined function is a pre-defined variable but with a fixed unspecified value. Each distinct function is represented by a certain floating-number value.

Recommendation for charters: The function to call should never be specified directly with a float literal. The value of the pre-defined functions should be considered varying each time the store expression is evaluated.

Excessive argument are ignored without warnings. Lacking arguments default to 0 and cause a warning to be emitted.

If a <bool-*> argument evaluates to neither 0 (false) or 1 (true), it is converted to 1 (true) (i.e., <bool-*> != 0) and a warning is emitted.

Variable Arguments Function
<func:index> <bool-cond0> : <bool-cond1> : … Returns the index (counted from 0) of the first condition evaluating to 1 (true) (if exist) or returns -1; the least n such that <bool-condn> = 1, or -1 if all <bool-condn> = 0
<func:select> <i> : <opt0> : <opt1> : … Returns the ith option (counted from 0) (if exist) or returns 0; <optn> with n = ⌊i⌋ if 0 ≤ ⌊i⌋ < Amount of <opt*>, 0 otherwise
<func:cond> <bool-cond0> : <opt0> : <bool-cond1> : <opt1> : … Returns the first option with the condition evaluating to 1 (true) (if any) or returns 0; <optn> with the least n such that <bool-condn> = 1, or 0 if all <bool-condn> = 0
<math:rand> <min> : <max> Random integer between <min> & <max> with uniform distribution.
<math:abs> <x> Absolute value; &vert;x&vert;, <x> for NaN
<math:sign> <x> Sign; -1 for negative, 0 for zero, 1 for positive, <x> for NaN
<math:min> <x> : <y> The minimum of <x> and <y>.
<math:max> <x> : <y> The maximum of <x> and <y>.
<math:exp> <p> Exponentiation with the base of natural logarithm; ep
<math:pow> <b> : <p> Exponentiation with given base; bp
<math:log> <x> Natural logarithm; loge(x), NaN for negative
<math:log10> <x> Common logarithm (with base 10); log10(x), NaN for negative
<math:sqrt> <x> Square root; √(x), NaN for negative
<math:cbrt> <x> Cubic root; ∛(x)
<math:ceil> <x> Ceiling; ⌈x⌉; the least integer ≥ x
<math:round> <x> Rounding; sign(x) × ⌈abs(x) − 0.5⌉; the nearest integer with magnitute ≥ that of x
<math:trunc> <x> Truncate; trunc(x); sign(x) × ⌊abs(x)⌋; the nearest integer with magnitute ≤ that of x
<math:floor> <x> Floor; ⌊x⌋; the greatest integer ≤ x
<math:fmod> <x> : <y> Floating-number remainder; xtrunc(x / y) × y

Store Expression Evaluation

Reading point: The value of a charter-defined variable is read when:

Writing point of values: The value of a charter-defined value variable is written only when:

Proposal (IID): Writing point of formulae: The cached value of a charter-defined formula variable is invalidated when:

When a store expression of a charter-defined formula variable is (re-)evaluated, the cached value of all accessed charter-defined formula variables is always used regardless whether the cached value is invalidated.

Proposal (IID): Evaluation stages in each game update frame:

  1. Update pre-defined variables: The gameplay state variables except <t*:t> (total amount of encountered certain notes whose critical judgement timing has been reached before now) are updated.
    (Proposal (Komi)) #GIANTNOTE commands have the triggers updated in this stage.
  2. Update charter-defined variables: After stage 1, the to-be-executed reading or writing of charter-defined variables have their reading and writing executed in their definition order (for the #BRANCHSTART command, assumed to be right before the first note symbol (if any) at the previous measure).
    For each reading or writing which requires evaluating any store expressions (including re-evaluating charter-defined formula variables), the <t*:t> variables are increased to include uncounted notes whose both definition position and time position is before the reading or writing point, and then the store expressions (if any) are evaluated.
    For reading a formula variable with invalidated cached value, all invalidated formula variables which is (directly or indirectly) accessed by store expression of the current formula variable are re-evaluated in the definition order of the last #STORECF or #STORETF command setting them.
  3. Update conditional command states: Commands which have read the charter-defined values in stage 2 have their states updated immediately, including the branch determining point for the #BRANCHSTART command.
  4. (For order reference) After stage 2 and 3, the to-be-executed #SECTION commands are executed.

Evaluation Behavior Examples:

Notation Meaning
x<lcf:foo> <lcf:foo> has been invalidated
<lcf:foo>' <lcf:foo> has been re-evaluated and has updated cached value
<lcf:foo>x <lcf:foo> will be invalidated

Self-reference example:

#STORECF foo, <lcf:foo> + 1
#STORETF odd, <math:fmod>(<lcf:foo> : 2) != 0
0 // ...
// ...
#NOTEIFF odd, True
1,

Value updating anology in the C programing language:

double foo = 0;
bool odd = false;

void update(void)
{
    foo = foo + 1;
    odd = fmod(foo, 2) != 0;
}
Evaluation by frame * Frame 0 (counted from the note symbol `0`): * `#STORECF` — `x`, `#STORETF` — `x` * `#NOTEIFF` — * `x'x` = \[`x` → 0] + 1 → 1 \[`x`] * `x'x` = ``(\[`x'` → 1] : 2) != 0 → 1 != 0 → 1 (true) → enabled * Frame 1: `#NOTEIFF` — * `x'x` = \[`x` → 1] + 1 → 2 \[`x`] * `x'x` = ``(\[`x'` → 2] : 2) != 0 → 0 != 0 → 0 (false) → disabled * Frame 2: `#NOTEIFF` — * `x'x` = \[`x` → 2] + 1 → 3 \[`x`] * `x'x` = ``(\[`x'` → 3] : 2) != 0 → 1 != 0 → 1 (true) → enabled * ... </details>

`` becomes a frame counter. The note symbol `1` will only visible and hittable every odd frame. Notice that if `#NOTEIFF odd, True` appeared twice in the notechart, `` increases by 2 instead. Circular self-reference example: ```txt #STORECF foo, #STORECF bar, #STORECF baz, ( == 0) + + #STORETF odd, ( : 2) != 0 0 // ... // ... #NOTEIFF odd, True 1, ``` Value updating anology in the C programing language: ```c double foo = 0, bar = 0, baz = 0; bool odd = false; void update(void) { foo = bar; bar = baz; baz = (bar == 0) + foo + bar; odd = fmod(bar, 2) != 0; } ```
Evaluation by frame * Frame 0 (counted from the note symbol `0`): * `#STORECF` — `x`, `x`, `x`; `#STORETF` — `x` * `#NOTEIFF` — * `x'` = \[`x` → 0] → 0 * `x'` = \[`x` → 0] → 0 * `x'x` = (\[`x'` → 0] == 0) + `x'` + \[`x'` → 0] → 1 \[`'`, ``, `x`] * `x'` → ``(\[`x'` → 0] : 2) != 0 → 0 (false) → disabled * Frame 1: `#NOTEIFF` — * `x'` = \[`x` → 0] → 0 * `x'x` = \[`x` → 1] → 1 \[`x`, `x`, `x`] * `x'` = (\[`x'` → 1] == 0) + `x'` + \[`x'` → 0] → 1 * `x'` → ``(\[`x'` → 1] : 2) != 0 → 1 (true) → enabled * Frame 2: `#NOTEIFF` — * `x'x` = \[`x` → 1] → 1 \[`x`, `x`, `x`] * `x'` = \[`x` → 1] → 1 * `x'x` = (\[`x'` → 1] == 0) + `x'` + \[`x'` → 1] → 2 \[`x`, ``, `'`] * `x'` → ``(\[`x'` → 1] : 2) != 0 → 1 (true) → enabled * Frame 3: `#NOTEIFF` — * `x'` = \[`x` → 1] → 1 * `x'x` = \[`x` → 2] → 2 \[`x`, `x`, `x`] * `x'x` = (\[`x'` → 2] == 0) + `x'` + \[`x'` → 1] → 3 \[`x`, ``, `x`] * `x'` → ``(\[`x'` → 2] : 2) != 0 → 0 (false) → disabled * Frame 4: `#NOTEIFF` — * `x'` = \[`x` → 2] → 2 \[`x`, `x`, `x`] * `x'x` = \[`x` → 3] → 3 \[`x`, `x`, `x`] * `x'x` = (\[`x'` → 3] == 0) + `x'` + \[`x'` → 2] → 5 \[`x`, ``, `x`] * `x'` → ``(\[`x'` → 3] : 2) != 1 → 1 (true) → enabled * Frame 5: `#NOTEIFF` — * `x'` = \[`x` → 3] → 3 \[`x`, `x`, `x`] * `x'x` = \[`x` → 5] → 5 \[`x`, `x`, `x`] * `x'x` = (\[`x'` → 5] == 0) + `x'` + \[`x'` → 3] → 8 \[`x`, ``, `x`] * `x'` → ``(\[`x'` → 5] : 2) != 1 → 1 (true) → enabled * Frame 6: `#NOTEIFF` — * `x'` = \[`x` → 5] → 5 \[`x`, `x`, `x`] * `x'x` = \[`x` → 8] → 8 \[`x`, `x`, `x`] * `x'x` = (\[`x'` → 8] == 0) + `x'` + \[`x'` → 5] → 13 \[`x`, ``, `x`] * `x'` → ``(\[`x'` → 8] : 2) != 0 → 0 (false) → disabled * ... </details>

`` becomes the *n*th element of the Fibonacci sequence at the *n*th frame since the note symbol `0`. The note symbol `1` will be visible and hittable except every 3 × *n* frame. ### *Proposal* (IID): #LUAMOD [***OpenTaiko-OutFox standard version***](#proposal-komi-version): (non-standard) \ ***Impact level***: note ★★★★★ (intended; depending on usage) \ ***Scope***: branch \ ***Scope fineness***: sequential \ ***Effect time***: static \ ***Effect target***: notes, bar lines (intended; depending on usage) \ ***Effect branches***: current \ ***Inspired by***: StepMania (Lua interpretation functionality) Execute the given **Lua** code with predefined variables describing the current beat position, the loaded notechart, *etc.*, after the notechart is loaded. Intended for **mod**ifying the content of loaded notechart, including adjusting the notechart timing, calculating relative note distance, *etc.* The exact behavior is *unspecified*. * `#LUAMOD ` ### *Proposal* (IID): #LUAFX [***OpenTaiko-OutFox standard version***](#proposal-komi-version): (non-standard) \ ***Impact level***: gimmicky ★★・・・ (intended; depending on usage) \ ***Scope***: branch \ ***Scope fineness***: sequential \ ***Effect time***: command-time + (optional) command-time–enabled object-time note-path effects \ ***Non-static effect scope***: (Depending on usage) \ ***Effect target***: notes, bar lines, judgment mark(s), note field(s) (intended; depending on usage) \ ***Effect branches***: current \ ***Inspired by***: StepMania (Lua interpretation functionality) Execute the given **Lua** code with predefined variables describing the current beat position, the loaded notechart, *etc.*, when the beginning of the approach phase of the command is reached during gameplay. Intended for adding decorative visual/audio **effect**s ("**FX**s"), including changing the moving path of notes, (dis)play extra images and sounds, *etc.* Intended to be used in conjunction with [**Proposed** (IID) command modifiers](#proposal-iid-command-modifier). The exact behavior is *unspecified*. * `#LUAFX ` ### *Proposal* (IID): Command Modifier [***OpenTaiko-OutFox standard version***](#proposal-komi-version): (non-standard) \ ***Impact level***: gimmicky ★★・・・ \ ***Scope***: (Part of a command) \ ***Scope fineness***: (Part of a command) \ ***Effect time***: command-time + (optional) command-time–enabled object-time note-path effects \ ***Non-static effect scope***: (As specified) \ ***Effect target***: notes, bar lines, note field(s) \ ***Effect branches***: (Part of a command) \ ***Inspired by***: StepMania modifier string syntax A command modifier can be specified to certain branch-scoped commands using the following form: * `#COMMAND values; ; ` * The last semicolon-separated element(s) and trailing semicolon(s) (`;`) can be omitted: * `` defaults to `0:Linear, 0:Linear` * `` defaults to (empty). The whitespace rule of the [comma (`,`)](#comma) also applies to the semicolon (`;`). The characters after the first semicolon (`;`) are ignored in TaikoJiro 1 but cause crashes in TaikoJiro 2 when loaded. `` specifies the non-static effect scope of the command. * Format: `, ` * The last comma-separated element(s) can be omitted. * `` can be one of: * (Empty) — the default. * `:` — (None): Affect no notechart objects. * `:` — Non-before: Affect notechart objects non-before the point. * `:` \ / `:0` — Before: Affect notechart objects before the point. * `:` — Both: Affect notechart objects near to the point. * `` & `` can be one of: * `*` — the range is unlimited. * `n` specifies the maximum amount of affected notes. * `<range-duration-*>` specifies the time/beat range of affected notechart objects (see below). * *Proposal* (IID): `` * (Empty) — override the effect of the whole scrolling path of affected notechart objects. * `:` — Override the effect of the part of scrolling path of affected notechart objects from `` (inclusive) before the judgment time to `` (inclusive) before the judgment time of each notechart object. * `` & `` can be one of: * `*` — the range is unlimited. * `<range-duration-*>` specifies the time/beat duration (inclusive) before the judgment time of each notechart object (see below). `` specifies the time or beat interval and easing method of the approach phase. * Can be one of: * `, ` — Start approaching for the specified time duration before the beat position of the command and end approaching at the beat position of the command non-after the specified duration interval. * `` — Both `` & `` are `` * (Empty) / `0` / `0:Linear` / `0:0` / `0:Linear, 0:Linear` * `` & `` can be one of: * `<range-duration-*>` — (see below). * `<range-duration-*>:` * `` specifies the easing functions for the begin or end point of approaching. `<range-duration-*>` specifies the time/beat duration interval of the approach phase and can be one of: * `` specifies the time duration. ## TJA Notechart Definition The notechart definition is enclosed between `#START` & `#END`. Most headers are not allowed in notechart definition. *Unspecified*: The behavior when a header not allowed in notechart definition is placed in a notechart definition. * In TaikoJiro, such a header is interpreted as note symbols with unrecognized characters ignored and removed. * In TJAPlayer2 for.PC, such a header behavior the same as if the header were placed before `#START` and all commands for the current player-side. A notechart definition line can be one of: * Command line — a line starting with an optionally indented command or header. * Non-command line — a line not starting with any optionally indented commands or headers. ### Whitespaces in Notechart Definition In non-command lines, all whitespaces are ignored. (TaikoJiro-only?) * In TJF format, such whitespaces are not ignored as are treated as unknown characters (handled as `0`). ### Notechart Symbols Including the measure delimiter symbol (comma; `,`) & note symbols (``). A measure consists of at least 1 notechart symbol (except for the last measure of the chart) and any number of commands and headers. The measure delimiter symbol `,` must be the last element if present. *Unspecified*: The behavior if the last measure of the chart is not ended with the measure delimiter symbol `,`. *Unspecified*: Whether unrecognized note symbols are ignored (removed) or treated as `0` (blank). * In TaikoJiro, unrecognized note symbols are ignored and removed. ### The Measure Delimiter Symbol and Timing The definition of each measure is separated with a comma (`,`) in a non-command line. *Unspecified*: The behavior when there are non-whitespaces, non-comment trailing characters after the first comma (`,`) of a non-command line Within a measure, there can be any amount of note symbols as long as the *unspecified* maximum allowed amount is not exceeded. * In TaikoJiro, a measure contains > 511 note symbols crashes the program when the chart is being loaded (in the gameplay screen). Each note symbol has the division weight of 1. The measure delimiter symbol `,` at the end of a measure (if any) has the division weight of 0 if there is at least 1 note symbol in this measure, otherwise this delimiter `,` has the division weight of 1. The total beat duration of the measure is divided equally by the total division weight of the notechart symbols of this measure (including the note symbols and the measure delimiter symbol `,` at the end of this measure (if any)). Each unit of division weight occupies the same amount of beats — a closed-head, open-end interval "measure division interval". The beat and time position of the note, note head, or note end for the notechart symbol (if any) is at the beginning of the first division interval for this notechart symbol. The time duration of every division interval can vary and even become negative. * In TJF format, `,` did not exist and every note symbol occupies the amount of beats of a 1/16th note. * The `,` syntax is (likely) inspired by the SM format. However, in the SM format, the minimum of measure division weight is 4, and `,` is placed on its own line and is not used before the end of the notechart definition. Equation: `beat_duration_of_division` (scope: a measure) * = `measure_beat_duration` / `measure_total_division_weight` * = 4 (beats) × `measure_upper_numeral` / `measure_lower_numeral` / `measure_total_division_weight` Equation: `time_duration_of_division` (unit: seconds) * = 60 (s) × `beat_duration_of_division` / `defined_bpm_at_division_head` #### Compatibility issues: * In TaikoJiro 1, if `#BPMCHANGE` is encountered, the time of the definition cursor is rounded to the nearest 0.001 second toward 0. See the [`timing-precision=ms-bpm`](#proposal-iid-tjacompat) behavior. * In TaikoJiro 2, notes are placed at the end of division interval if the time duration of the division is negative. * In TJAP2fPC until ver.2018040600, each measure with no note symbols has 0 beat duration and 0 time duration. * In TJAP2fPC since ver.2018040600, TJAPlayer3, but not OpenTaiko (0auBSQ) since v0.6.0.12, each `,` has the division weight of 1 at the beginning of unindented non-command line, and has the division weight of 0 (0 beat duration and 0 time duration) at the beginning of indented non-command line, regardless whether there are any note symbols in this measure. Commands with non-before scope fineness have their effects fired when all the measure division intervals of the nearest preceding notechart symbol ends. If the measure delimiter symbol `,` has the division weight of 0, placing such commands before or after this `,` symbol has the same effects. ### Sign of Timing Commands The time duration of different measure division intervals are possible to overlap by using [`#BPMCHANGE`](#bpmchange), [`#MEASURE`](#measure), or [`#DELAY`](#delay) commands with non-positive value. *Unspecified*: The input judgment behavior when the time duration intervals of any non-blank note symbols overlap. * In TaikoJiro, regardless of whether any multiple notechart sections overlap in time, the later defined notes do not accept any inputs until all the earlier defined notes in currently determined branch(es) (?) are judged. This is different from the official games, where a later Don (or Katsu) hit-type note may be hit before an earlier Katsu (or Don) hit-type note is judged. Each sign combination of BPM & beat duration is as follow: Sign of BPM | Sign of Beat Duration | Notes on Behavior | Beat-time Diagram --- | --- | --- | --- Positive | Positive | | ![b-t diagram for positive BPM & positive beat duration](/TJAPlayer3/tja-assets/b-t_pos-bpm_pos-beatdur.svg) Positive | Negative | The time position of notes are *unspecified* if notes are defined within. | ![b-t diagram for positive BPM & negative beat duration](/TJAPlayer3/tja-assets/b-t_pos-bpm_neg-beatdur.svg) Zero | Any | In TaikoJiro 1 and 2, the time duration is 0 instead of infinity. | ![b-t diagram for zero BPM & positive beat duration](/TJAPlayer3/tja-assets/b-t_zero-bpm_pos-beatdur.svg)
![b-t diagram for zero BPM & negative beat duration](/TJAPlayer3/tja-assets/b-t_zero-bpm_neg-beatdur.svg) Negative | Positive | The time position of notes are *unspecified* if notes are defined within. | ![b-t diagram for negative BPM & positive beat duration](/TJAPlayer3/tja-assets/b-t_neg-bpm_pos-beatdur.svg) Negative | Negative | | ![b-t diagram for negative BPM & negative beat duration](/TJAPlayer3/tja-assets/b-t_neg-bpm_neg-beatdur.svg) * The definition vector (*d*) on the beat-time (*b*-*t*) diagram has the following properties: * The direction in *b*-axis is related to the sign of beat duration. * The direction in *t*-axis is related to the sign of beat duration ÷ BPM. * The slope is proportional to 1 ÷ BPM. * Zero beat duration with non-zero BPM can be used for defining individual overlapping notes and is a point (zero vector) on the beat-time diagram. * Zero BPM with non-zero beat duration causes *unspecified* behavior but would theoretically be a vertical vector of infinite length on the beat-time diagram. * Infinite BPM with non-zero beat duration cannot be specified directly but would theoretically be a horizontal vector on the beat-time diagram. Their common combinations and usages are as follow: Usage | Examplar Combination | Beat-time Diagram --- | --- | --- Forward scrolling in [BMS scrolling modes](#bmscroll--hbscroll--nmscroll). (Assume `#SCROLL 1`) | *d*: Positive BPM & positive beat duration | ![Beat-time diagram for forward scrolling](/TJAPlayer3/tja-assets/b-t_forward-scroll.svg) Backward scrolling in [BMS scrolling modes](#bmscroll--hbscroll--nmscroll). (Assume `#SCROLL 1`) | *d*: Negative BPM & negative beat duration | ![Beat-time diagram for backward scrolling](/TJAPlayer3/tja-assets/b-t_backward-scroll.svg) Forward warp in [BMS scrolling modes](#bmscroll--hbscroll--nmscroll). (Assume `#SCROLL 1`) | *d*0: Positive BPM & positive beat duration
+ *d*1: Negative BPM & positive beat duration
+ (*d*2): Beat duration ÷ BPM is positive (determines the note spacing) | ![Beat-time diagram for a forward warp](/TJAPlayer3/tja-assets/b-t_forward-warp.svg) Backward warp in [BMS scrolling modes](#bmscroll--hbscroll--nmscroll). (Assume `#SCROLL 1`) | *d*0: Negative BPM & negative beat duration
+ *d*1: Positive BPM & negative beat duration
+ (*d*2): Beat duration ÷ BPM is positive (determines the note spacing) | ![Beat-time diagram for a backward warp](/TJAPlayer3/tja-assets/b-t_backward-warp.svg) Overlapped notes in forward scrolling sections.
A special case of a warp.
(Can also be done with a negative `#DELAY`) | *d*0: Positive BPM & positive beat duration (with notes)
+ *d*1: Positive BPM & negative beat duration
+ *d*2: Positive BPM & positive beat duration (with notes) | ![Beat-time diagram for a overlapping forward scrolling section](/TJAPlayer3/tja-assets/b-t_forward-overlap.svg) Overlapped notes in backward scrolling sections.
A special case of a warp.
(Can also be done with a negative `#DELAY`) | *d*0: Negative BPM & negative beat duration (with notes)
+ *d*1: Negative BPM & positive beat duration
+ *d*2: Negative BPM & negative beat duration (with notes) | ![Beat-time diagram for a overlapping backward scrolling section](/TJAPlayer3/tja-assets/b-t_backward-overlap.svg) * Notechart sections with beat duration ÷ BPM being negative can be used for making a warp over a notechart section in [BMS scrolling modes](#bmscroll--hbscroll--nmscroll). The time position works similar to StepMania, but unlike StepMania uses the maximum beat position ever reached, the beat position of overlapped sections is instead determined by the last defined section. Also see the explanation for StepMania, <https://twitter.com/TaroNuke/status/1250177428783280128> by @TaroNuke * If notes (and bar lines (?)) are defined in a section which overlaps with other sections in time, their beat position and per-note BPM are recalculated from their time position according to the latest defined section. Each sign combination of [`#DELAY`](#delay) duration & BPM is as follow: Sign of Delay Duration | Sign of BPM | Musical ("Actual") Beat-time Diagram | Visual Beat-time Diagram --- | --- | --- | --- Positive | Non-zero | ![Musical beat-time diagram for positive delay duration](/TJAPlayer3/tja-assets/ba-t_pos-delay.svg) | ![Visual beat-time diagram for positive delay duration, non-zero BPM](/TJAPlayer3/tja-assets/bv-t_pos-delay.svg) Negative | Positive | ![Musical beat-time diagram for negative delay duration](/TJAPlayer3/tja-assets/ba-t_neg-delay.svg) | ![Visual beat-time diagram for negative delay duration, positive BPM](/TJAPlayer3/tja-assets/bv-t_neg-delay_pos-bpm.svg) Negative | Negative | ![Musical beat-time diagram for negative delay duration](/TJAPlayer3/tja-assets/ba-t_neg-delay.svg) | ![Visual beat-time diagram for negative delay duration, negative BPM](/TJAPlayer3/tja-assets/bv-t_neg-delay_neg-bpm.svg) * The definition vector (*d*) on the beat-time (*b*-*t*) diagram has the following properties: * The direction and length in *t*-axis is determined by the delay duration. * Negative delays behavior as if an extra beat duration (can also be negative) were inserted, which causes the musical beat duration (*ba*) and visual beat duration (*bv*) to differ. In these conditions, the definition vector has the slope determined by the current BPM on the visual beat-time diagram. * Zero delay duration has no effects and is a point (zero vector) on the beat-time diagram. * In TaikoJiro 1 and 2, the destination beat and time of a delay with negative duration is not considered for calculating the played beat by time, so a positive delay cannot be canceled by negative delays, but can be canceled by measures with negative time duration. If a positive delay beat-time segment is the last-defined beat-time segment at a given time during gameplay, the first defined positive delay beat-time segment takes effect. The visual beat duration behavior between positive and negative delay is not symmetrical, so the visual effects of positive delays and negative delays with total delay duration being zero do not cancel out. The behavior is as follows: Examplar Combination | Musical Beat-time Diagram | Visual Beat-time Diagram --- | --- | --- *d*0: Positive delay
+ *d*1: Negative delay & positive BPM
+ *d*2: Positive BPM & positive beat duration (with notes) | ![Musical beat-time diagram for positive delay and then negative delay](/TJAPlayer3/tja-assets/ba-t_pos-delay-then-neg-delay.svg) | ![Visual beat-time diagram for positive delay and then negative delay, positive BPM](/TJAPlayer3/tja-assets/bv-t_pos-delay-then-neg-delay_pos-bpm.svg) * In any [BMS scrolling mode](#bmscroll--hbscroll--nmscroll): The notes and bar lines initially scroll as if only the negative [`#DELAY`](#delay)(s) were used before the command-time effects of any positive [`#DELAY`](#delay)(s) are applied, which is the normal behavior of negative [`#DELAY`](#delay)s. The notes and bar lines are displayed to be scrolled ahead of their timing by the total remaining time duration of the command-time effects of positive [`#DELAY`](#delay)(s) defined before their definition, which is the normal behavior of positive [`#DELAY`](#delay)s. #### Compatibility Issues * In TaikoJiro 1, notes but not bar lines which are made earlier than [the `#START` command](#start--end) has their time position and beat position fixed to the `#START` command. * In TaikoJiro 1, if the chart ends with the measure division interval having negative time duration, the chart teleports to the beat position of the `#START` command, and then beat progresses as if `#MEASURE -4/4` were active. The gameplay ends if [the `WAVE:` header](#wave) is not specified or the specified file is missing or unsupported. * In TaikoJiro 2, if notes and bar lines are defined in a section which overlaps with other sections in time, the notes' and bar lines' time position is also affected by the latest defined section. * In TaikoJiro 2, if the time position of the definition cursor is rewound by measure division intervals with negative time durations, the next measure division segments (consecutive measure division interval without timing changes in middle) until the next measure and the bar lines and notes on it are shifted, so that the beginning of the next measure division segment starts at the end of the internal measure division with the maximum time position ever reached during definition. The internal time position of the definition cursor is unaffected by the shift and the next measure onward are not affected. * To work around this issue, some gimmick charts targeting TaikoJiro 2 split the measure at each negative delay into two, and place the negative delay right before the measure delimiter `,` of the first half measure. * In TJAPlayer2 for PC, beat duration ÷ BPM being negative causes incorrect lookup of the played beat position and might make notes not aligned to the judgement mark on their judgement timing in [HBScroll or BMScroll mode](#bmscroll--hbscroll--nmscroll). * In TJAPlayer2 for PC, a positive delay does not stop the visual beat position from progressing. ### Note Symbols in Taiko Mode [***OpenTaiko-OutFox standard version***](#proposal-komi-version): 1.0 (minimum, unless stated otherwise) \ ***First seen in***: TaikoJiro v0.80 (initial release) \ ***Supported by***: (assumedly universally supported, including TaikoJiro 1 & 2, TJAPlayer2 for.PC, OutFox v0.4.9.9) \ ***Inspired by***: TJF format (`0` to `7`) \   (likely) from DWI and earlier MSD format (`0` for blank and single digits (`1` to `9` except `5` for direction) for non-blanks) Effective when [`GAME:Taiko`](#game) or [`#GAMETYPE Taiko`](#gametype) is in effect. See <https://taiko.namco-ch.net/taiko/en/howto/onpu.php> for the appearance of notes in the official PC-generation arcade games. See [#SENOTECHANGE](#senotechange) for the general patterns of how the alternative forms of *KuchiShouga*
"Note phoneticizations" are used. | | Note Type | Note Appearance | *KuchiShouga*
"Note phoneticizations" in PC-generation arcade games | Explanations on Clear | Explanations on Fail | Notes --- | --- | --- | --- | --- | --- | --- `0` | (blank) | (none) | (none) | Nothing needs to be done. Consume no input. | (impossible to fail) | `1` | Regular Don | Small orange-ish red circle | *Do* Do / Ko / *Don* Don | Hit the drum surface within the *Ka* GOOD/OK timing window, consumes a surface input.
Awards *Ryou* GREAT/GOOD or *Ka* GOOD/OK judgment according to the timing and increases combo.
Increases *tamashiiゲーgeeji* spirit gauge/soul gauge, & score according to awarded judgment. | Hit too off but within *Fuka* BAD judgment window (consumes a surface input) or not hit within the *Fuka* BAD judgment window (consumes no inputs).
Gives a *Fuka* BAD judgment & combo break and decreases *tamashiiゲーgeeji* spirit gauge/soul gauge. | `2` | Regular Katsu | Small sky-blue circle | Ka / *カッKa'* Ka | Hit the drum rim within the *Ka* GOOD/OK timing window, consumes a rim input.
Awards the same as `1`. | Hit too off but within *Fuka* BAD judgment window (consumes a surface input) or not hit within the *Fuka* BAD judgment window (consumes no inputs).
Gives the same penalty as `1`. | `3` | Big Don | Big orange-ish red circle | *DonOokii)* DON | Hit the drum surface within the *Ka* GOOD/OK timing window, consumes a surface input.
Awards the same as `1` but extra score bonus† if with certain or greater force (AC)
if the other left or right side is hit within a certain time duration (consumes two surface inputs in total) (CS) | (same as `1`) | `4` | Big Katsu | Big sky-blue circle | *カッKa'Ookii)* KA | Hit the drum rim within the *Ka* GOOD/OK timing window, consumes a rim input.
Awards the same as `2` but extra score bonus† if with certain or greater force (AC)
if the other left or right side is hit within a certain time duration (consumes two rim inputs in total) (CS) | (same as `2`) | `5` | Head of regular (bar) *Renda* drumroll
Examples: `5008`, `5558`, `5001` | Small yellow circle with bar attached behind
Turns red if hit rapidly while gradually fading out to its original color in AC games | *Rendaー* Roll– | Roll on the drum surface or rim during its duration, consumes each hit with unlimited speed, reacts to each hit up to 1 hit per 60fps frame (official games).
Increases score per reacted hit. | (impossible to fail) | `I` | (same as `5`) (OpenTaiko (0auBSQ))
Head of regular Katsu (bar) *Renda* drumroll (OutFox's OpenTaiko-OutFox standard draft (?))
Examples: `I008`, `III8`, `I001` | (see `5`)
Small sky-blue circle with bar attached behind (OutFox, expected (?)) | (see `5`) | (same as `5`) (OpenTaiko (0auBSQ))
Similar to `5` but only consumes (?) and reacts to rim inputs. (OutFox's OpenTaiko-OutFox standard draft)
Awards the same as `5`. | (impossible to fail) | [***OpenTaiko-OutFox standard version***](#proposal-komi-version): 1.2
***First seen in***: OpenTaiko-OutFox standard 1.2 (first proposed from OutFox), OpenTaiko (0auBSQ) v0.5.4
By analogy with Konga mode `6` | Head of big (bar) *Renda* drumroll
Examples: `6008`, `6668`, `6001` | Big yellow circle with bar attached behind
Turns red if hit rapidly while gradually fading out to its original color in AC games | *RendaOokii)ー* ROLL– | Roll on the drum surface or rim during its duration, consumes each hit with unlimited speed, reacts to each hit up to 1 hit per 60fps frame (official games).
Increases score per reacted hit.
Extra score bonus† for each reacted hit if with certain or greater force (?) (earlier AC), and/or with at least 2 hits in a 60fps frame (?) (earlier AC & earlier CS), or always (?) (AC & CS) | (impossible to fail) | `H` | (same as `6`) (OpenTaiko (0auBSQ))
Head of regular Don (bar) *Renda* drumroll (OutFox's OpenTaiko-OutFox standard draft (?))
Examples: `H008`, `HHH8`, `H001` | (see `6`)
Small orange-ish red circle with bar attached behind (OutFox) | (see `6`) | (same as `5`) (OpenTaiko (0auBSQ))
Similar to `5` but only consumes (?) and reacts to surface inputs. (OutFox's OpenTaiko-OutFox standard draft)
Awards the same as `5`. | (impossible to fail) | [***OpenTaiko-OutFox standard version***](#proposal-komi-version): 1.2
***First seen in***: (first proposed from OutFox), OpenTaiko (0auBSQ) v0.5.4
By analogy with Konga mode `7` | Head of regular *Gekirenda/Gekirenda* "fierce drumroll" burst note / *Fuusen/Fuusen* balloon
Examples: `7008`, `7778`, `7001` | Small orange circle (slightly brighter than `1`) with orange-ish red balloon attached behind | *Fuusen* Balloon | Roll on the drum surface with exactly certain amount of reacted hits during its duration, consumes each surface or rim (?) hit with unlimited speed, reacts to each surface hit up to 1 hit per 60fps frame (official games).
Each reacted hit increases score (except for CS4–5, TDM, & PSP1–2).
Awards extra score bonus† when cleared. | Fail to input enough amount of reacted hits.
Does not give penalties except that notes (except bombs/mines (?)) placed within the duration of the balloon are impossible to hit while the balloon is not cleared. | `8` | Explicit end of a drumroll-type note (if any), otherwise (blank) | (round end of a bar) (end of bar drumrolls)
(none) (otherwise) | (っ!!) (end of bar drumrolls)
(none) (otherwise) | Nothing needs to be done. Consumes no input. | (impossible to fail) | Stopping rolling the drum non-after the point (end of drumrolls)
Introduced to replaced the TJF syntax for specifying drumroll duration (`5555` / `7777`) (explained below). `9` | Head of special burst note/balloon
(Differ from game to game)
Examples: `9008`, `9998`, `9001` | (Vary)
Big yellow circle with potato attached (PS2-generation)
Big yellow circle in the shape of a confetti ball 🎊 (PS3- and PC-generation)
Has particle decorative visual effects in AC. | *Kusudama* Party Popper
(Strictly speaking, *Kusudama/Kusudama* "Confetti Ball" 🎊 & party popper 🎉 only resemble each other and are not the same thing) | (Vary)
In AC, roll on the drum surface with exactly certain amount (summed and shared among players) of reacted hits during its duration, consumes each surface or rim (?) hit with unlimited speed, reacts to each surface hit up to 1 hit per 60fps frame (official games).
Each reacted hit increases score.
Awards vary extra score bonus† to all players when cleared, according to the timing of an additional final hit (consumed) hinted by the player character's face (AC7) or whether the note is cleared quickly enough (later AC)
| (same as `7`) | ***First seen in***: TaikoJiro v2.75
In the official games, becomes `7` when not all players encounter `9` with the note head, the full bonus time point, & the note end respectively at the same time position for each player. `A` | Hand-holding big Don | Big orange-ish red circle with hands holding with other note(s) for other player(s)
Its face resembles `1` rather than `3` until being hit. | *DonTe)* "DON (Hand)" | Similar to `1` or `3` (strong or double-hit not required in some official games (?)) but awards extra score bonus† if all players hit within a certain time duration. | (same as `1`) | [***OpenTaiko-OutFox standard version***](#proposal-komi-version): 1.0
***First seen in***: TJAPlayer2 for.PC ver.2018040100
***Supported by***: OutFox v0.4.9.9
In the official games, becomes `3` when no hand-holding notes exist at the same time position for any of the other players. `B` | Hand-holding big Katsu | Big sky-blue circle with hands holding with other note(s) for other player(s)
Its face resembles `2` rather than `4` until being hit. | *カッKa'Te)* "KA (Hand)" | Similar to `2` or `4` (strong or double-hit not required in some official games (?)) but awards extra score bonus† if all players hit within a certain time duration. | (same as `2`) | [***OpenTaiko-OutFox standard version***](#proposal-komi-version): 1.0
***First seen in***: TJAPlayer2 for.PC ver.2018040100
***Supported by***: OutFox v0.4.9.9
In the official games, becomes `4` when no hand-holding notes exist at the same time position for any of the other players. `C` | Bomb/mine | Small dark-blue cherry bomb with ignited fuze 💣 | (none) | All hits are too off or not hit (both consumes no inputs).
Awards a "bomb/mine-pass" judgment. | Hit the drum surface or rim within the *Ka* GOOD/OK (?) timing window, consumes an input.
Gives a BOOM ("bomb/mine-miss") judgment & a combo-break and decreases *tamashiiゲーgeeji* spirit gauge/soul gauge. | [***OpenTaiko-OutFox standard version***](#proposal-komi-version): 1.2
***First seen in***: OpenTaiko-OutFox standard 1.2 (proposed from OutFox)
***Supported by***: OpenTaiko (0auBSQ) v0.5.4 `D` | Fuze/fuse drumroll
Examples: `D008`, `DDD8`, `D001` | ?
(Big circular clock with blue-ish purple edge and with bar attached behind in OpenTaiko (0auBSQ)) | (Jibakudan "Time bomb"/Fuseroll) | Similar to `7` but awards a "bomb/mine-pass" judgment. | Similar to `7` but gives a BOOM ("bomb/mine-miss") judgment & a combo-break and decreases *tamashiiゲーgeeji* spirit gauge/soul gauge. | [***OpenTaiko-OutFox standard version***](#proposal-komi-version): 1.2
***First seen in***: (first proposed from OutFox), OpenTaiko (0auBSQ) v0.6.0
Not in the official games. `F` | *Ad libitum* note (AD-LIB) | (invisible by default) | (none) | Hit the drum surface or rim within the *Ka* GOOD/OK timing window, consumes an input.
Awards an AD-LIB judgment but keep combo unchanged. | Not hit within the *Ka* GOOD/OK timing window (consumes no inputs).
Gives no penalties. | [***OpenTaiko-OutFox standard version***](#proposal-komi-version): 1.1
***First seen in***: TJAPlayer2 for.PC ver.2016081500
Not in the official games.
Inspired by another rhythm game *GROOVE COASTER*, developed by TAITO `G` | Swap note | (Vary)
Big green circle in taiko-web (plugin "Green Notes")
Big purple circle in OpenTaiko (0auBSQ) | (*Guリーriin* Green)
(*Kadon* KADON) | Hit the drum surface (or rim) on left or right side within the *Ka* GOOD/OK timing window **&** the drum rim (or surface) on the other left or right side within a certain time duration (consumes a surface input & a rim input in total)
Awards the same as `1` according to the timing of the first input. | Hit too off but within *Fuka* BAD judgment window (consumes the first input), or not hit within the *Fuka* BAD judgment window (consumes no inputs), or the second input is not given in a certain time duration after the first input (consumes only the first input).
Gives the same penalty as `1`. | [***OpenTaiko-OutFox standard version***](#proposal-komi-version): 1.2
***First seen in***: taiko-web (plugin "Green Notes")
***Supported by***: OpenTaiko (0auBSQ) v0.5.4
Not in the official games. †: No score bonuses if the PC-generation scoring rule is followed. * In TJAPlayer2 for.PC & OpenTaiko (0auBSQ) until v0.6.0, `9` is treated the same as `7`. * In OutFox, as for v0.5.0 pre043, `A` is treated the same as `3` and `B` is treated the same as `4` (subjects to changes according to demands). * In OutFox, `0` to `9`, `A` to `D`, & `F` to `J` are all parsed, where `C` and `H` have work-in-progress gamepad/keyboard input and `D` to `G` & `I` have work-in-progress gamepad/keyboard input and noteskin support as for v0.5.0 pre043 a17. #### Note type category * Hit-type notes: Notes with no duration and involving a single or double hit, *e.g.*, `1`, `2`, `3`, `4`, `A`, `B`. * Missable hit-type notes: Notes which give a *Fuka* BAD judgment if missed. * This category does not include `C` & `F`. * Drumroll-type notes: Notes with duration and involving multiple hits, *e.g.*, `5`, `6`, `7`, `9`. * Bar balloon-type notes: Notes with visual bar body, *e.g.*, `5`, `6`, `D`. * Balloon-type notes: Notes which require specified amount of hits to clear, *e.g.*, `7`, `9`, `D`. #### Duration of drumroll-type notes The head and end of drumroll-type notes have no timing window. In the official arcade game, drumroll inputs are allowed non-before/non-after the containing frame of the judgment timing of the head/end of the drumroll-type note. During the defined duration interval within a drumroll-type note, either `0` or the symbol of the note head may appear. *E.g.*: `5008` / `5558` / `5058` are all equivalent. *Unspecified*: Whether other drumroll-type notes can be used in place of the repeated symbol of the note head. * In TaikoJiro, all drumroll-type note head symbols can be used in place of the repeated symbol. *Proposal* (IID): Each symbol of the note head inside a bar drumroll note denotes a middle point of the bar which can scroll independently to the head, end, and other middle points of the note. For special balloons (`9`), the last occurrence of repeated note head symbol (if any) defines the full bonus time point. If the note is cleared, full bonus is awarded only by clearing the note non-after that point and partial bonus is awarded otherwise. The full bonus time point is *unspecified* when no repeated note head symbols ever occur. * In TaikoJiro, the full bonus time point defaults to the position 0.6 times of the note duration after the note head. By default, drumroll-type notes are ended non-after one of: * The definition position of an `8`. * *Proposal* (IID): The ending position can be earlier than the `8` by an *unspecified* duration. * An *unspecified* duration before a hit-type note symbol. * In TaikoJiro, the duration is one of: * In notecharts without any "branch"/path sections: 50ms. * Otherwise, in the *Futsuu* Normal "branch"/path state: 8/53 s (≈ 150.94ms) (tentatically determined). * Otherwise, in other "branch"/path states: 0ms. * *Unspecified*: The behavior of the hit-type note which ends a balloon-type note. * In TaikoJiro v2.36+, the hit-type note become impossible to hit if the balloon-type note is not cleared. * This behavior is in reference to the *Muzukashii* Hard and *Oni* Oni/Extreme difficulties of "FuunBachioSensei" in AC3–6, where the duration interval of balloon-type notes overlaps with the following hit-type note. The overlap has been canceled since AC7. * See <https://wikiwiki.jp/taiko-fumen/収録曲/おに/風雲!バチお先生> * This behavior later appeared in *TaikoTaワーwaa3Sankarakuchi)* ("Taiko Tower 3 (hard)") and a few RPG-mode charts in other games. * See <https://wikiwiki.jp/taiko-fumen/収録曲/その他/太鼓タワー3%28辛口%29> * However, this can be achieved alternatively by using `#DELAY`s with negative duration to place the hit-type note. * *Proposal* (IID): Restrict this behavior to `COURSE:Tower`. * In TaikoJiro, the definition position of the last note symbol of the notechart, except when the note head is in the definition of a "branch"/path other than the *Futsuu* Normal "branch"/path. In the official games, drumroll-type notes are usually intentionally made to end earlier than the designed ending beat position by the amount of beats of a 1/48th note. * Reference: *連打秒数表* ("List of seconds of drumrolls"). 太鼓の達人 譜面とか Wiki\* ("Taiko no Tatsujin - Wiki\* about Notecharts and so on"). <https://wikiwiki.jp/taiko-fumen/収録曲/連打秒数表> *Unspecified*: Whether other drumroll-type note symbols can appear during a drumroll-type note. * In TJF format, `8` did not exist and the duration interval is specified by repeat the note head symbol consecutively, where the last repeated symbol corresponds to TJA `8`, *e.g.*, TJF `5555` = TJA `5558`. * The explicit roll end note symbol `8` is (likely) inspired by the roll/hold end note symbol `3` in SM format. *Unspecified*: The behavior when a drumroll-type note with non-positive time duration is formed, possibly from a drumroll-type note ended by a hit-type note (*e.g.*, `51` / `56` / `65`, where the time duration of the drumroll may be shortened as mentioned above) or by using timing settings. * In Taikosan, bar drumroll notes with zero time duration can be created by using an isolated drumroll-type note symbol. However, such notes are not accepted and an error message is displayed, although balloon notes with zero time duration are allowed. \ ![Taikosan's Error Message for Zero-duration Bar Drumroll Note](/TJAPlayer3/tja-assets/Taikosan_zero-duration-roll-error.png) * In TaikoJiro, drumroll-type notes with zero time duration are allowed and may receive inputs in occasion, while drumroll-type notes with negative time duration never receive inputs. Bar-less balloon-type notes with negative time duration teleport to the judgment mark when the time position of the note end is reached. #### Compatibility Issues * In TJAPlayer2 for.PC, drumroll-type notes must be ended with `8`. * In TJAPlayer2 for.PC, The head of balloon-type notes has a timing window of the time duration of 1 frame under 60fps. ### Note Symbols in Konga Mode [***OpenTaiko-OutFox standard version***](#proposal-komi-version): 1.2 (unless stated otherwise) \ ***First seen in***: OpenTaiko (0auBSQ) v0.5.4 \ ***Supported by***: taiko-web (plugin "Donkey Konga Mode"), OutFox Effective when [`GAME:Konga`](#game) or [`#GAMETYPE Konga`](#gametype) is in effect. See the exemplar actual gameplays: * <https://www.youtube.com/watch?v=G70HoWO1umc>
* <https://www.youtube.com/watch?v=myci706YXss>
See [#SENOTECHANGE](#senotechange) for the general patterns of how the alternative forms of *KuchiShouga*
"Note phoneticizations" are used. | | Note Type | Note Appearance | *KuchiShouga*
"Note phoneticizations" in *Donkey Konga 3* | Explanations on Clear | Explanations on Fail | Notes --- | --- | --- | --- | --- | --- | --- `0` | (blank) | (none) | (none) | Nothing needs to be done. Consume no input. | (impossible to fail) | `1` | Right drum beat | Red circle with its right half filled | Pa / パッPa' / パンPan | Hit the right bongo drum within the OK timing window, consumes a right input.
Awards GREAT or OK judgment according to the timing and increases combo.
Increases healthy gauge, & score according to awarded judgment. | Hit too off but within BAD judgment window (consumes a right input) or not hit within the BAD judgment window (consumes no inputs).
Gives a BAD (if hit) or MISS‡ (if not hit) judgment & combo break and decreases healthy gauge. | `2` | Left drum beat | Yellow circle with its left half filled | Po / ポッPo' / ポンPon | Hit the left bongo drum within the OK timing window, consumes a left input.
Awards the same as `1`. | Hit too off but within BAD judgment window (consumes a left input) or not hit within the BAD judgment window (consumes no inputs).
Gives the same penalty as `1`. | `3` | Both drum beats | Pink circle | D | Hit the left or right bongo drum within the OK timing window **&** the other left or right bongo drum within a certain time duration (consumes a left input & a right input in total)
Awards the same as `1` according to the timing of the first input. | Hit too off but within BAD judgment window (consumes the first input), or not hit within the BAD judgment window (consumes no inputs), or the second input is not given in a certain time duration after the first input (consumes only the first input).
Gives the same penalty as `1`. | `G` | (same as `3`) | (see `3`) | (see `3`) | (see `3`) | (see `3`) | ***First seen in***: OpenTaiko-OutFox standard 1.2, OpenTaiko (0auBSQ) v0.5.4, OutFox v0.4.18
By analogy with Taiko mode. `4` | Clap | Sky-blue circle with star-ish edge | チャCha / チャッCha' / チャンChan | Clap hands above the bongo drums within the OK timing window, consumes a clap input.
Awards the same as `1`. | Hit too off but within BAD judgment window (consumes a clap input) or not hit within the BAD judgment window (consumes no inputs).
Gives the same penalty as `1`. | `J` | (same as `4`) | (see `4`) | (see `4`) | (see `4`) | (see `4`) | [***OpenTaiko-OutFox standard version***](#proposal-komi-version): (non-standard)
***First seen in***: OutFox v0.4.18 (?) `5` | Head of right bar drumroll
Examples: `5008`, `5558`, `5001` | Red circle with its right half filled and with bar attached behind | *Renda~* "Roll~" | Similar to `6` but only consumes (?) and reacts to right inputs.
Awards the same as `6`. | (impossible to fail) | `I` | Head of left bar drumroll
Examples: `I008`, `III8`, `I001` | Yellow circle with its left half filled and with bar attached behind | *Renda~* "Roll~" | Similar to `6` but only consumes (?) and reacts to left inputs.
Awards the same as `6`.| (impossible to fail) | `6` | Head of both bar drumroll
Examples: `6008`, `6668`, `6001` | Pink circle with bar attached behind | *Renda~* "Roll~" | Roll on either bongo drum during its duration, consumes each left, right, or clap (?) hit with unlimited speed, reacts to each left or right hit up to 1 hit per 60fps frame (official games).
Increases score per reacted hit. | (impossible to fail) | `H` | Head of clap bar applause
Examples: `H008`, `HHH8`, `H001` | Sky-blue circle with star-ish edge and with bar attached behind | *Hakushu~* "Applaud~" | Applaud above the bongo drums during its duration, consumes each left (?), right (?), or clap hit with unlimited speed, reacts to each clap hit up to 1 hit per 60fps frame (official games).
Increases score per reacted hit. | (impossible to fail) | `7` | Head of regular *Gekirenda/Gekirenda* "fierce drumroll" burst note / *Fuusen/Fuusen* balloon
Examples: `7008`, `7778`, `7001` | Small orange circle (slightly brighter than `1`) with orange-ish red balloon attached behind | (*Fuusen* Balloon) | Roll on either bongo drum with exactly certain amount of reacted hits during its duration, consumes each left, right, and clap (?) hit with unlimited speed, reacts to each left or right hit up to 1 hit per 60fps frame (official games).
Each reacted hit increases score.
Awards extra score bonus† when cleared. | Fail to input enough amount of reacted hits.
Does not give penalties except that notes (except bombs/mines (?)) placed within the duration of the balloon are impossible to hit while the balloon is not cleared. | ***First seen in***: OpenTaiko-OutFox standard 1.2
By analogy with Taiko mode. `8` | Explicit end of a drumroll-type or applause note (if any), otherwise (blank) | (round end of a bar) (end of a bar drumroll or applause)
(none) (otherwise) | (none) | Nothing needs to be done. Consumes no input. | (impossible to fail) | Stop rolling both the bongo drums or clapping non-after the point (end of drumrolls) `9` | Head of special burst note/balloon
Examples: `9008`, `9998`, `9001` | (Vary) | (*Kusudama* Party Popper) | (Vary)
Roll on either bongo drum with exactly certain amount (summed and shared among players) of reacted hits during its duration, consumes each left, right, or clap (?) hit with unlimited speed, reacts to each left or right hit up to 1 hit per 60fps frame (official games).
Each reacted hit increases score.
Awards vary extra score bonus† to all players when cleared, according to whether the note is cleared quickly enough. | (same as `7`) | ***First seen in***: OpenTaiko-OutFox standard 1.2
Might become `7` when not all players encounter `9` with the note head, the full bonus time point, & the note end respectively at the same time position for each player.
Not in the official games.
By analogy with Taiko mode. `A` | Hand-holding both drum beats | (Pink circle with hands holding with other note(s) for other player(s)) | ? | Similar to `3` but awards extra score bonus† if all players hit within a certain time duration
| (same as `3`) | ***First seen in***: OpenTaiko-OutFox standard 1.2, OpenTaiko (0auBSQ), OutFox
Might becomes `3` when no hand-holding notes exist at the same time position for any of the other players.
Not in the official games.
By analogy with `GAME:Taiko`. `B` | Hand-holding clap beat | (Sky-blue circle with star-ish edge and with hands holding with other note(s) for other player(s)) | ? | Similar to `4` but awards extra score bonus† if all players hit within a certain time duration. | (same as `4`) | ***First seen in***: OpenTaiko-OutFox standard 1.2, OpenTaiko (0auBSQ), OutFox
Might becomes `4` when no hand-holding notes exist at the same time position for any of the other players.
Not in the official games.
By analogy with Taiko mode. `C` | Bomb/mine | (Small dark-blue cherry bomb with ignited fuze 💣) | (none) | All hits are too off or not hit (both consumes no inputs).
Awards a "bomb/mine-pass" judgment. | Hit either bongo drum or clap within the OK (?) timing window, consumes an input.
Gives a BOOM ("bomb/mine-miss") judgment & a combo-break and decreases healty gauge. | ***First seen in***: OpenTaiko-OutFox standard 1.2, OpenTaiko (0auBSQ)
Not in the official games.
By analogy with Taiko mode. `D` | Fuze/fuse drumroll
Examples: `D008`, `DDD8`, `D001` | (Big circular clock with blue-ish purple edge and with bar attached behind in OpenTaiko (0auBSQ)) | (Jibakudan "Time bomb"/Fuseroll) | Similar to `7` but awards a "bomb/mine-pass" judgment. | Similar to `7` but gives a BOOM ("bomb/mine-miss") judgment & a combo-break and decreases healthy gauge. | ***First seen in***: OpenTaiko-OutFox standard 1.2 (first proposed from OutFox), OpenTaiko (0auBSQ) v0.6.0
Not in the official games.
By analogy with Taiko mode. `F` | *Ad libitum* note (AD-LIB) | (invisible by default) | (none) | Hit either bongo drum or clap within the OK timing window, consumes an input.
Awards an AD-LIB judgment but keep combo unchanged. | Not hit within the OK timing window (consumes no inputs).
Gives no penalties. | ***First seen in***: OpenTaiko-OutFox standard 1.2, OpenTaiko (0auBSQ)
Not in the official games.
By analogy with Taiko mode. †: No score bonuses if the PC-generation scoring rule is followed. \ ‡: A BAD judgment in Konga games corresponds to a hit *Fuka* BAD judgment in Taiko games, while a MISS judgment in Konga games corresponds to a unhit *Fuka* BAD judgment in Taiko games. * In OutFox, as for v0.5.0 pre043, `A` is treated the same as `3` and `B` is treated the same as `4` (subjects to changes according to demands). * In OutFox, `0` to `9`, `A` to `D`, & `F` to `J` are all parsed, where `C` have work-in-progress gamepad/keyboard input and `D` have work-in-progress gamepad/keyboard input and noteskin support as for v0.5.0 pre043 a17. #### Note type category * Beat-type notes & the clap note correspond to hit-type notes in Taiko mode. * Drumroll-type notes & the applause note correspond to drumroll-type notes in Taiko mode. The note handling details of the Taiko mode apply. See the explanation in [Note Symbols in Taiko Mode](#note-symbols-in-taiko-mode). ### *Proposal* (Komi): Note Symbols in Beatz Mode [***OpenTaiko-OutFox standard version***](#proposal-komi-version): 2.0 The Beatz mode is based on Squid Beatz 2, a mini game in Splatoon 2, developed by Nintendo. Squid Beatz 2 is the sequel of Squid Beatz (a mini game in Splatoon, developed by Nintendo). However, Squid Beatz only has 2 note type: left and right notes (similar to Konga mode), while Squid Beatz 2 has more note types but based on instead bottom and top notes (similar to Taiko mode). Input type | Buttons --- | --- Top-left | Any left shoulder button Top-right | Any right shoulder button Bottom-left | Any D-pad button Bottom-right | Any face (X/Y/B/A) button | | Note Type | Note Appearance | Explanations on Clear | Explanations on Fail | Notes --- | --- | --- | --- | --- | --- `0` | (blank) | (none) | Nothing needs to be done. Consume no input. | (impossible to fail) | `1` | Bottom single note | Red circle on the bottom lane | Press a bottom button within the GOOD‡ timing window, consumes a bottom input.
Awards FRESH or GOOD‡ judgment according to the timing. | Press a top button within the GOOD‡ judgment window (consumes a top input), press too off but within the MISS judgment window (?) (consumes an input), or not press within the MISS judgment window (consumes no inputs).
Gives a MISS judgment & combo break. | `2` | Top single note | Green or blue circle on the top lane | Press a top button within the GOOD‡ timing window, consumes a top input.
Awards the same as `1`. | Press a bottom button within the GOOD‡ judgment window (consumes a bottom input), press too off but within the MISS judgment window (consumes an input), or not press within the MISS judgment window (consumes no inputs).
Gives the same penalty as `1`. | `3` | Bottom double note | Red square on the bottom lane | Press bottom-left or bottom-right within the GOOD‡ timing window **&** the other bottom-left or bottom-right within a certain time duration (consumes a bottom-left and a bottom-right input in total)
Awards the same as `1` according to the timing of the first input. | Press top within the GOOD‡ judgment window (consumes a top input), press too off but within the MISS judgment window (consumes the first input), not press within the MISS judgment window (consumes no inputs), the second input is not given in a certain time duration after the first input (consumes only the first input), or the second input is top or repeated-side bottom (consumes 2 inputs in total).
Gives the same penalty as `1`. | `A` | (same as `3`) | (see `3`) | (see `3`) | (see `3`) | By analogy with `GAME:Taiko`. `4` | Top double note | Green or blue square on the top lane | Press top-left or top-right within the GOOD‡ timing window **&** the other top-left or top-right within a certain time duration (consumes a top-left and a top-right input in total).
Awards the same as `1` according to the timing of the first input. | Press bottom within the GOOD‡ judgment window (consumes a botton input), press too off but within MISS judgment window (consumes the first input), not press within the MISS judgment window (consumes no inputs), the second input is not given in a certain time duration after the first input (consumes only the first input), or the second input is bottom or repeated-side top (consumes 2 inputs in total).
Gives the same penalty as `1`. | `B` | (same as `4`) | (see `4`) | (see `4`) | (see `4`) | By analogy with `GAME:Taiko`. `E` | Top-single bottom-single note | Green or blue circle on the top lane and red circle on the bottom lane, joined by grey background | Press bottom or top within the GOOD‡ timing window **&** the other bottom or top within a certain time duration (consumes a bottom and a top input in total).
Awards the same as `1` according to the timing of the first input. | Press too off but within MISS judgment window (consumes the first input), not press within the MISS judgment window (consumes no inputs), the second input is not given in a certain time duration after the first input (consumes only the first input), or the second input is repeated bottom or top (consumes 2 bottom or 2 top inputs in total).
Gives the same penalty as `1`. | ? | Top-single bottom-double note | Green or blue circle on the top lane and red square on the bottom lane, joined by grey background | Press bottom-left/right or top within the GOOD‡ timing window **&** all the other bottom-left/right or top, all within a certain time duration (consumes a bottom-left, a bottom-right, and a top input in total).
Awards the same as `1` according to the timing of the first input. | Press too off but within MISS judgment window (consumes the first input), not press within the MISS judgment window (consumes no inputs), the *n*th input is not given in a certain time duration after the first input (consumes up to the *n*−1-st input), or the *n*th input is repeated-side bottom or repeated top (consumes up to the *n*th input).
Gives the same penalty as `1`. | No note symbols have been assigned. ? | Top-double bottom-single note | Green or blue square on the top lane and red circle on the bottom lane, joined by grey background | Press bottom or top-left/right within the GOOD‡ timing window **&** all the other bottom or top-left/right, all within a certain time duration (consumes a bottom, a top-left, and a top-right input in total).
Awards the same as `1` according to the timing of the first input. | Press too off but within MISS judgment window (consumes the first input), not press within the MISS judgment window (consumes no inputs), the *n*th input is not given in a certain time duration after the first input (consumes up to the *n*−1-st input), or the *n*th input is repeated bottom or repeated-side top (consumes up to the *n*th input).
Gives the same penalty as `1`. | No note symbols have been assigned. `G` | Top-double bottom-double note | Green or blue square on the top lane and red square on the bottom lane, joined by grey background | Press bottom-left/right or top-left/right within the GOOD‡ timing window **&** all other bottom-left/right or top-left/right, all within a certain time duration (consumes a bottom-left, a bottom-right, a top-left, and a top-right input in total).
Awards the same as `1` according to the timing of the first input. | Press too off but within MISS judgment window (consumes the first input), not press within the MISS judgment window (consumes no inputs), the *n*th input is not given in a certain time duration after the first input (consumes up to the *n*−1-st input), or the *n*th input is repeated-side buttom or repeated-side top (consumes up to the *n*th input).
Gives the same penalty as `1`. | `C` | Bomb/mine | (Small dark-blue cherry bomb with ignited fuze 💣) | All presses are too off or not press (both consumes no inputs).
Awards a "bomb/mine-pass" judgment. | Press any button within the GOOD‡ (?) timing window, consumes an input.
Gives a BOOM ("bomb/mine-miss") judgment & a combo-break and decreases healty gauge. | Not in the official games.
By analogy with Taiko mode. `F` | *Ad libitum* note (AD-LIB) | (invisible by default) | Press any button within the GOOD‡ timing window, consumes an input.
Awards an AD-LIB judgment. | Not press within the GOOD‡ timing window (consumes no inputs).
Gives no penalties. | Not in the official games.
By analogy with Taiko mode. `5` | Head of bottom bar drumroll
Examples: `5008`, `5558`, `5001` | Red circle with bar attached behind on the bottom lane | Similar to `6` but only consumes (?) and reacts to bottom inputs.
Awards the same as `6`. | (impossible to fail) | By analogy with `GAME:Konga`. `I` | Head of top bar drumroll
Examples: `I008`, `III8`, `I001` | Green or blue circle with bar attached behind on the top lane | Similar to `6` but only consumes (?) and reacts to top inputs.
Awards the same as `6`. | (impossible to fail) | By analogy with `GAME:Konga`. `6` | Head of both bar drumroll
Examples: `6008`, `6668`, `6001` | Red circle on the bottom lane and green circle on the top lane, each with bar attached behind on the respective lane, joined by grey background | Rapidly press any buttons during its duration, consumes each press with unlimited speed, reacts to each press up to 1 press per 60fps frame. | (impossible to fail) | By analogy with `GAME:Konga`. `H` | (same as `6`)
Examples: `H008`, `HHH8`, `H001` | (see `6`) | (see `6`) | (see `6`) | By analogy with `GAME:Konga`. | `7` | Head of regular *Gekirenda/Gekirenda* "fierce drumroll" burst note / *Fuusen/Fuusen* balloon
Examples: `7008`, `7778`, `7001` | Small orange circle (slightly brighter than `1`) with orange-ish red balloon attached behind | Rapidly press bottom buttons with exactly certain amount of reacted presses during its duration, consumes each bottom or top press with unlimited speed, reacts to each bottom press up to 1 press per 60fps frame. | Fail to input enough amount of reacted presses.
Does not give penalties except that notes (except bombs/mines (?)) placed within the duration of the balloon are impossible to press while the balloon is not cleared. | By analogy with Taiko mode. `9` | Head of special burst note/balloon
Examples: `9008`, `9998`, `9001` | (Vary) | (Vary)
Rapldly press bottom buttons with exactly certain amount (summed and shared among players) of reacted presses during its duration, consumes each bottom or top press with unlimited speed, reacts to each bottom press up to 1 press per 60fps frame. | (same as `7`) | Might become `7` when not all players encounter `9` with the note head, the full bonus time point, & the note end respectively at the same time position for each player.
Not in the official games.
By analogy with Taiko mode. `D` | Fuze/fuse drumroll
Examples: `D008`, `DDD8`, `D001` | (Big circular clock with blue-ish purple edge and with bar attached behind in OpenTaiko (0auBSQ)) | Similar to `7` but awards a "bomb/mine-pass" judgment. | Similar to `7` but gives a BOOM ("bomb/mine-miss") judgment & a combo-break and decreases healthy gauge. | Not in the official games.
By analogy with Taiko mode. `8` | Explicit end of a drumroll-type note (if any), otherwise (blank) | (round end of a bar) (end of a bar drumroll)
(none) (otherwise) | Nothing needs to be done. Consumes no input. | (impossible to fail) | Stop repeately pressing buttons non-after the point (end of drumrolls) ‡: The GOOD judgment in Beatz games corresponds to the *ka* OK judgment in Taiko games. The note handling details of the Taiko mode apply. See the explanation in [Note Symbols in Taiko Mode](#note-symbols-in-taiko-mode). ### Note Symbols in Jube Mode [***OpenTaiko-OutFox standard version***](#proposal-komi-version): (non-standard) \ ***First seen in***: TaikoJiro v2.13 Effective when [`GAME:Jube`](#game) is in effect. Unlike the above game modes, every 4 hexadecimal digits are grouped together to represent a note combination and occupy the same beat duration interval. In TJA files, within non-command lines, all whitespaces are ignored by TaikoJiro. In this game mode, every 4 digits are conventionally separated with a space for readability. #### Example (This example is adapted from the [`readme.txt`](/TJAPlayer3/taiko-sim-readmes/taikojiro/utf-8/readme-v2.92.txt) distributed along with TaikoJiro) ```txt Note Layout → 0/1 Notation → Note Symbol (Hexadecimal Digit) ■■□■ → 1101 → D □■■□ → 0110 → 6 □□□■ → 0001 → 1 □□□□ → 0000 → 0 ``` * `■` — Tap note * `□` — Blank * Hold notes were not supported. The above note combination is written `D610`. ![GAME:Jube Example](/TJAPlayer3/tja-assets/GAME_Jube_Example.gif) ### Note Symbols in Bm Mode [***OpenTaiko-OutFox standard version***](#proposal-komi-version): (non-standard) \ ***First seen in***: TaikoJiro 1 (unknown version) Effective when [`GAME:Bm`](#game) is in effect. The game mode was never documented nor mentioned by toach, author of TaikoJiro. No bundled graphics are provided for this mode. Similar to `GAME:Jube`, every 4 hexadecimal digits are grouped together to represent a note combination and occupy the same beat duration interval. ```txt Note Layout → 0/1 Notation → Note Symbol (Hexadecimal Digit) ■ ■□■□■■□ □□□□□□□ □ → 1_101 0110 0000 000_0 → D600 (P1 scratch) (P1 keys) (P2 keys?) (P2 scratch?) ``` * `■` — Tap/scratch note * `□` — Blank * Hold notes were not supported. * Key sounds were not supported. #### Example (This example is adopted from the first measures of *DIAVOLO* Single-player ANOTHER, by DokyouKyoudai (arrangement of *Grandes études de Paganini No.6 (Theme and Variations)* by Franz Liszt, arrangement of *Caprice No. 24* by Niccolo Paganini), from game *beatmania IIDX*, developed by Konami) See [GAME_Bm_Example.tja](/TJAPlayer3/tja-assets/GAME_Bm_Example.tja) ![GAME:Bm Example](/TJAPlayer3/tja-assets/GAME_Bm_Example.gif) Behaviors in TaikoJiro 1: * The P1 scratch is displayed at the right of P1 keys. P2 keys are displayed left-aligned to the left of P1 scratch lane. The P2 scratch (?) is displayed off-screen, so it is unclear whether it is a regular key lane or an actuall scratch lane. * In [HBScroll or BMScroll mode](#bmscroll--hbscroll--nmscroll), [`#BPMCHANGE`](#bpmchange) causes the notes to be scrolled abnormally. * The autoplay always misses the first note of the chart (but not counted as a miss in the result screen). Also, the first note of the chart is the only note expectedly aligned to the bar line on with note's bottom. * The autoplay is unable to play branched sections of the chart. ## Terminologies ### Word Usage of this Article #### General Word `&` is used only for conjoining independent nouns with similar grammar structure and `and` is used otherwise. The ***ITALIC BOLD ALL-UPPER-CASE*** keywords ***MUST***, ***MUST NOT***, ***SHOULD***, ***SHOULD NOT***, & ***MAY*** are to be interpreted as described in RFC 2119: <https://www.rfc-editor.org/rfc/rfc2119> The time relation is denoted as follow: Word | Before | Non-after | At | Non-before | After --- | --- | --- | --- | --- | --- Time relation | \< | ≤ | = | ≥ | > The fraction (for beat duration, *etc*.) is denoted as follow: Word | whole | half | 1/3rd | quarter
1/4th | 1/8th | 1/16th | ... --- | --- | --- | --- | --- | --- | --- | --- Fraction | 1/1 | 1/2 | 1/3 | 1/4 | 1/8 | 1/16 | ... Other
spellings | whole | half | third | quarter
fourth | eighth | sixteenth | ... #### *Unspecified* If a usage causes *unspecified* behavior or the behavior itself is *unspecified*, the actual or intended behavior may vary from simulator to simulator and/or dependent on user settings. When portability is concerned, such a usage and the behavior ***SHOULD*** be avoid and the actual behavior ***SHOULD NOT*** be depended upon. Because this article is still *in construction* and the TJA format is still evolving, this is possible that some usages or behaviors are stated as *unspecified* but the actual or intended behaviors are/have become consistent among most simulators. ### Scope Fineness Includes [header scope fineness](#header-scope-fineness) and [command scope fineness](#command-scope-fineness). The scope fineness is how often the header or command value changes can be handled by the simulator. The coarsest possible fineness is per–file. The finest possible fineness is sequential. * *Unspecified*: For scope finenesses other than non-before and sequential, the behavior when the same header or command occur multiple times within its scope fineness in its scope. * In TaikoJiro 1 and 2: Only the last occuring valid header or command in the scope fineness takes effect. The scope fineness listed in this article is the coarsest of usually supported fineness. For simulator developers: A simulator ***MAY*** implement a finer scope fineness but ***SHOULD NOT*** implement a coarser scope fineness. For chart creators: If compatibility is concerned, the chart ***SHOULD NOT*** relies on a finer scope fineness than the scope fineness listed in this article. ### Level of Impact > note ★★★★★ \ > timing ★★★★・ \ > scoring ★★★・・ \ > gimmicky ★★・・・ \ > metadata ★・・・・ \ > decorative ・・・・・ The maximum level of impact of the headers and commands are listed in the description of their scope. The use of [notechart symbols](#notechart-symbols) has the impact level of "note". Only those whose impact level ≥ note may affect the required types of the gameplay input. Only those whose impact level ≥ timing may affect the required timing of the gameplay input. Only those whose impact level ≥ scoring may affect the clear or fail conditions and scoring. A gimmicky header or command may affect the difficulty for reading the notechart during gameplay, while a metadata or decorative header or command usually does not. A metadata header or command may affect the sorting order and searching results of songs, while a decorative header or command usually does not. ### Whitespace character * (Halfwidth) Space (U+0020; " ") * Character Tabulation / Tab (U+0009; `\t`) * Carriage Return / CR (U+000D; `\r`) * Line Feed / LF / Newline (U+000A; `\n`) * ***NOT***: Ideographic Space / Fullwidth Space (U+3000; " ") * It is *unspecified* (but unlikely) whether other space-like characters are accepted. ### Translations Japanese terminologies of the game: <https://wikiwiki.jp/taiko-fumen/用語集> Japanese terminologies are provided with their pronunciation annotated using a KunreiShikiローRoomaji-like romanization system. If a Japanese terminology can be written in *kanji* "Chinese Character" form, both are listed. Some of the *kanji* "Chinese Character" form of the Japanese terminologies are literally taken as the Chinese translation. For some terminologies of the game, there exist multiple English translations. Their are expressed as `"LIT"/TDM/TKT/PC (ALTs)` when necessary in this article: * `"LIT"` — A rather literal translation * `TDM` — The earlier English translation from the official PS2 console game *Taiko: Drum Master* * `TKT` — <https://taikotime.blogspot.com/2010/12/glossary.html> * `PC` — The official English translation from the official PC-generation games and the official English website: <https://taiko.namco-ch.net/taiko/en> * `ALTs` — Alternative translation(s) usually used in the code & the notechart format Fields with unknown (not existing or simply not investigated by the maintainer of this article) translation are denoted with `?`. Translations which are simply romanization transliterations are omitted. Some corresponding terminologies from other rhythm games are taken as one of the translations instead: See individual entries of <https://github.com/stepmania/stepmania/wiki> ### Mentioned PC-Compatible Simulators with TJA Format Support Reference: *太鼓シミュレーター一覧* ("List of Taiko Simulators"). (2022, July 26). 太鼓の達人 Wiki ("Taiko no Tatsujin Wiki"). <https://wikiwiki.jp/taiko/太鼓シミュレーター一覧> Unless stated otherwise, a simulator mentioned in this article also refers to its derivations. The honorific title is omitted. * TaikosanJirou (*TaikoJiro*): By touch. * The TJF format was modified and extended into the TJA format for this simulator. * Inspired by TaikosanTarou (*Taikosan*): By VIL. * The TJF format was developed and used for this simulator. * Malody: By Mugzone (multiple developers) <https://m.mugzone.net/index> * TJAPlayer2 for.PC (aka. TaikosanAruファfa (*TaikosanAlpha*)): By J.MIR (kairera0467) <https://github.com/kairera0467/TJAP2fPC> * Inspired by TJAPlayer2 (for PSP): (Unknown author) * ← Derived from DTXManiaXG (Ver.K): By J.MIR (kairera0467) <https://osdn.net/projects/dtxmaniaxg-verk/>, <https://github.com/kairera0467/DTXManiaXG_VerK_Old> \ In comparison, TJAPlayer2 for.PC introduces the originally lacking TJA format parsing and Taiko gameplay, while the original BMS-derived format (specifically DTX, GDA, G2D, BMS, & BME) parsing and GITADORA-style gameplay are either removed or not fully functional. * ← Derived from DTXMania: By FROM (DTXMania), Yagi (yyagi), *et al.* <https://osdn.net/projects/dtxmania/> * Reference: Yagi (2020, September 14). *Derivatives of DTXMania*. DTXMania Wiki - DTXMania. OSDN. <https://web.archive.org/web/20240206041603/https://osdn.net/projects/dtxmania/wiki/derivatives> * Derivatives \ ver.2017072200, non-after 2017, December 15 → TJAPlayer3 (AioiLight): By AioiLight *et al.* <https://github.com/AioiLight/TJAPlayer3> * ver-1.6.x, non-after 2019, October 27 → TJAPlayer3 (twopointzero): By Jeremy Gray (twopointzero) <https://github.com/twopointzero/TJAPlayer3> * v5.2.4, non-after 2020, May 19, – v5.2.9 → TJAPlayer3 (KabanFriends): By KabanFriends <https://github.com/KabanFriends/TJAPlayer3> * Non-after 2021, May 26 → TJAPlayer3-Extended: By KabanFriends <https://github.com/KabanFriends/TJAPlayer3-Extended> * master (v1.5.7), non-after 2020, March 25 → TJAPlayer3-f: By Mr-Ojii <https://github.com/Mr-Ojii/TJAPlayer3-f> * master (v1.5.7), non-after 2020, August 28 → TJAPlayer3-Develop: By touhou-renren *et al.*, later mainly maintained by brian218 *et al.* <https://github.com/TJAPlayer3-Develop/TJAPlayer3-Develop> * master (v1.5.7), non-after 2020, Nov 8 → TJAPlayer3-Develop-ReWrite: By touhourenren *et al.* <https://github.com/touhourenren/TJAPlayer3-Develop-ReWrite> * Non-after 2021, Sep 21 → OpenTaiko (aka. TJAPlayer3-Develop-BSQ) (0auBSQ): By 0auBSQ *et al.* <https://github.com/0auBSQ/OpenTaiko> * Actively developed; last referenced version for behavior verification: v0.6.0 b3+, at commit [e6aa17cdc6](https://github.com/0auBSQ/OpenTaiko/commit/e6aa17cdc677c0c6ec1c13ff431c7a96a533e074) * taiko-web: By Clemaister, later mainly maintained by bui <https://github.com/bui/taiko-web> (no longer unavailable, see <https://github.com/github/dmca/blob/master/2023/02/2023-02-21-bandai.md>) * Project OutFox: Mainly maintained by Team Rizu <https://projectoutfox.com/> * Actively developed; last referenced version for behavior verification: v0.5.0 pre043 a17c * ← Derived from StepMania 5.1: Mainly maintained by The Spinal Shark Collective <https://github.com/stepmania/stepmania> \ In comparison, Project OutFox introduces the originally lacking TJA format parsing and Taiko gameplay (as "taitai" mode), among with many new game modes, theming and gameplay gimmick support, and other improvements. * ← Derived from StepMania 3.9: By Chris Danford *et al.* * TaikoManyGimmicks (aka. taikosimu(NN)): By barrier15300 <https://twitter.com/barrier15300/with_replies> ### Proposers The honorific title is omitted. Listed in alphabetic dictionary order. Screen name used for *proposal* | Other screen names | Notes --- | --- | --- barrier | barrier15300 | Main maintainer of TaikoManyGimmicks IID | Iweidieng Iep | Main maintainer of this article Komi | 0auBSQ, moushikomi | Main maintainer of OpenTaiko (0auBSQ) ## References * *太鼓の達人 譜面とか Wiki\** ("Taiko no Tatsujin - Wiki\* about Notecharts and so on"). <https://wikiwiki.jp/taiko-fumen/> * tjfフォーマット ("tjf Format"). (2009, January 16). *太鼓さん太郎 nicover* ("Taikosan Nico(nico) ver.") plusedit. [`Readme.txt`](/TJAPlayer3/taiko-sim-readmes/utf-8/Readme-taikosan-plusedit.txt) * This file is distributed along with Taikosan. * touch (2013, September 12). tjaフォーマット ("tja Format"). *太鼓さん次郎 Ver. 2.92くらい* ("TaikoJiro Ver. 2.92 or so"). * This section of the documentation can be retrieved from both the files [`readme.txt`](/TJAPlayer3/taiko-sim-readmes/taikojiro/utf-8/readme-v2.92.txt) & [`readme.html`](/TJAPlayer3/taiko-sim-readmes/taikojiro/utf-8/readme-v2.92.html) distributed along with TaikoJiro. * Some of its paragraphs are cited in other web pages: * dispconf (2014, January 1). *4-2.譜面追加 自分で作る* ("4-2 - Add Notecharts: Make You Own"). 太鼓さん次郎解説!! ("TaikoJiro Explanation!!"). <https://taikosanjiro.hatenablog.com/entry/譜面-2> * 仕様 ("Specifications"). (2021, August 28). *太鼓さん次郎* ("TaikoJiro"). 太鼓さん次郎交流 Wiki ("TaikoJiro Communication Wiki"). <https://wikiwiki.jp/jiro/太鼓さん次郎#specifications> * *How to upload tja_tjaのアップロード方法*. (n.d., before 2025, April 23). Malody. <https://m.mugzone.net/wiki/1964> * kairera0467 (2021, April 30). *TJAPlayer2 for.PC(仮) by.kairera0467*. kairera0467/TJAP2fPC. GitHub. <https://github.com/kairera0467/TJAP2fPC/blob/work-s/実行時フォルダ/readme.txt> * *TJAPlayer3/CDTX.cs at ver-1.6.x*. (2019, Mar 2). AioiLight/TJAPlayer3. GitHub. <https://github.com/AioiLight/TJAPlayer3/blob/ver-1.6.x/TJAPlayer3/Songs/CDTX.cs> * AioiLight (2019, April 17). *.tja フォーマット* (".tja Format"). AioiLight.space. <https://web.archive.org/web/20190914085205/https://aioilight.space/taiko/tjap3/doc/tja/> * Browsable archive on GitHub Pages by Iweidieng Iep: [TJAPlayer3-AioiLight-docs/doc/tja](<https://iepiweidieng.github.io/TJAPlayer3/TJAPlayer3-AioiLight-docs/doc/tja.html>) * KabanFriends (2021, May 29). *New TJA Commands in TJAPlayer3-Extended*. KabanFriends/TJAPlayer3-Extended. GitHub. <https://github.com/KabanFriends/TJAPlayer3-Extended/blob/master/Test/COMMANDS.txt> * *TJA format*. (2021, September 28). bui/taiko-web Wiki. GitHub. <https://web.archive.org/web/20230103093826/https://github.com/bui/taiko-web/wiki/TJA-format> * Archive on GitHub Gist by Katie Frogs: <https://gist.github.com/KatieFrogs/e000f406bbc70a12f3c34a07303eec8b> * Katie Frogs (2023, Feburary 12). *taiko-web-plugins/README.md at main*. KatieFrogs/taiko-web-plugins. GitHub. <https://github.com/KatieFrogs/taiko-web-plugins/blob/main/README.md> * Mr-Ojii (2023, Mar 28). *TJAPlayer3-f/AdditionalFeatures.md at v2*. Mr-Ojii/TJAPlayer3-f. GitHub. <https://github.com/Mr-Ojii/TJAPlayer3-f/blob/v2/TJAPlayer3-f/Docs/AdditionalFeatures.md> * 0auBSQ (2023, September 18). *New Commands*. 0auBSQ/OpenTaiko. GitHub. <https://github.com/0auBSQ/OpenTaiko/blob/main/OpenTaiko/Documentation/Tja/NewCommands.md> * *OpenTaiko/CDTX.cs at main*. (2024, May 3). 0auBSQ/OpenTaiko. GitHub. <https://github.com/0auBSQ/OpenTaiko/blob/main/OpenTaiko/src/Songs/CDTX.cs> * *OpenTaiko/NotesManager.cs at main*. (2024, April 15). 0auBSQ/OpenTaiko. GitHub. <https://github.com/0auBSQ/OpenTaiko/blob/main/OpenTaiko/src/Stages/07.Game/Taiko/NotesManager.cs> * Squirrel (2023, November 4). *TJA Compatibility*. Project OutFox Wiki. <https://outfox.wiki/dev/mode-support/tja-support/> * barrier (2023, June 19). [*readme.txt*](/TJAPlayer3/taiko-sim-readmes/TaikoManyGimmicks/utf-8/readme-v0.6.6%CE%B1-revised.txt). *TaikoManyGimmicks ver0.6.6α*. * This version is not bundled with TaikoManyGimmicks but is published in the *TaikoManyGimmicks配布鯖* "TaikoManyGimmicks Release Server" Discord Server. * nyoro (2023, November 11). *TJA Format Support*. Visual Studio Marketplace. <https://marketplace.visualstudio.com/items?itemName=nyoro.tja-format-support> * This vscode extension provides short explanations for TJA headers/commands, including headers/commands introduced by TaikoManyGimmicks. ## TODO * Reorder headers & commands by their categories & popularity and possibility of being supported: Pending. * List & explain known gimmicks, especially the gimmicks which have appeared in multiple charts by different chart creators and received terminologies: Planned. * Add (unimplemented) *proposal*s from simulator developers. * Add separated recommendation for respectively simulator behavior and chart creators and editors. Currently, the relevant paragraphs have ambiguous phrasing. * Add standardization information, especially the OpenTaiko-OutFox standardization and the direction toward behavior unification. Currently, the relevant paragraphs lack clarifications and are misleading. * Fix missing and/or unverified information about Project OutFox. * Add a dedicated section for explaining gameplay mechanics. * GitHub page file managements * Add test TJA files and references for mentioned behaviors for easy re-verification. * Host image resources on GitHub page locally. * Update the GitHub page site to add the table-of-content navigation static/popup window