1
0
mirror of synced 2024-11-27 22:40:49 +01:00
Convert TJA charts into fumen (.bin) files
Go to file
2023-07-23 09:15:41 -04:00
.github/workflows Update codebase to adhere to flake8 and add linting check (#51) 2023-07-21 22:57:18 -04:00
src/tja2fumen parsers.py: Rename read_fumen function 2023-07-21 23:18:09 -04:00
testing parsers.py: Rename read_fumen function 2023-07-21 23:18:09 -04:00
.gitignore Update codebase to adhere to flake8 and add linting check (#51) 2023-07-21 22:57:18 -04:00
LICENSE.txt Update codebase to adhere to flake8 and add linting check (#51) 2023-07-21 22:57:18 -04:00
MANIFEST.in Update codebase to adhere to flake8 and add linting check (#51) 2023-07-21 22:57:18 -04:00
pyproject.toml Update codebase to adhere to flake8 and add linting check (#51) 2023-07-21 22:57:18 -04:00
README.md README.md: Play with <br> 2023-07-23 09:15:41 -04:00
setup.py setup.py: Add newline 2023-06-26 19:54:51 -04:00

 

tja2fumen – TJA chart converter
tja2fumen is a tool that allows you to convert TJA charts (.tja) to fumen charts (.bin).

Test status (main branch) GitHub release (with filter) MIT License


Usage

tja2fumen is included as part of several existing projects. So, you may be using tja2fumen already!

  • XB1/TDMX: TakoTako converts both chart and audio files for XB1/TDMX.
  • Nijiro: TaikoSoundEditor converts both chart and audio files for NIjiro.

Note

: For older versions of TakoTako (3.2.0 and below), you can add tja2fumen by renaming tja2fumen.exe to tja2bin.exe and placing it inside TakoTako's plugin folder (BepInEx/plugins/com.fluto.takotako/).

You can also use tja2fumen directly on a .tja file by downloading tja2fumen.exe from the Releases page and running tja2fumen.exe file.tja in a command prompt.

TJA Support

If there is an unsupported command or metadata field that you would like support for, please make a request by opening a new issue.

Supported metadata

Legend: = Fully supported, 🔘 = Ignored, ⚠️ = Incorrect behavior, = Crashes the converter

Metadata tja2fumen tja2bin Comments
BPM:, OFFSET:  
TITLE:, SUBTITLE:, WAVE:,
DEMOSTART:, etc.
🔘 🔘 The only global metadata needed are BPM: and OFFSET:.  
COURSE:, LEVEL:, BALLOON: SCOREINIT:, SCOREDIFF:  
STYLE: Single, STYLE: Double  
EXAM1:, GAUGEINCR:, TOTAL:, etc. 🔘 🔘 Other simulator-specific metadata fields are not currently supported. 

Supported notes/commands

Legend: = Fully supported, 🔘 = Ignored, ⚠️ = Incorrect behavior, = Crashes the converter

Note/command tja2fumen tja2bin Comments
0, 1, 2, 3, 4 5, 6, 7, 8, 9
A, B Multiplayer note with hands.
F Hidden ADLIB note.
9000,
9008,
🔘 Double Kusudama note to reset accuracy.
#START, #END
#START P1, START P2
#MEASURE
#BPMCHANGE ⚠️ See https://github.com/Fluto/TakoTako/issues/16
#DELAY
#SCROLL
#GOGOSTART, #GOGOEND
#BARLINEOFF, #BARLINEON
#BRANCHSTART
#SECTION
#LEVELHOLD
#N, #E, #M
#BRANCHEND
#BMSCROLL, #LYRIC,
#DIRECTION, etc.
🔘 Other simulator-specific chart commands are not currently supported.

Reporting bugs

If you've found a .tja file that tja2fumen converts incorrectly, please open a new issue on the tja2fumen repo.

It is especially important that you attach the song files to the issue. You can do this by adding the song files to a .zip (Select files -> Right click -> "Send to" -> "Compressed (zipped) folder"), and then uploading the .zip to the issue. This greatly helps me to reproduce and fix any issues.

You can also message me directly on Discord (_vivaria) if you don't have a GitHub account, and I will take care of making an issue for you. :)

Building on top of tja2fumen

If you are a developer looking to add tja2fumen to your project, you have two options:

  1. For non-Python projects, you can download tja2fumen.exe and call it via a system call.
  2. For Python projects, you can install tja2fumen via pip install tja2fumen.

tja2fumen uses a very permissable license (MIT License). You are free to distribute and modify tja2fumen, but please include a copy of the MIT License alongside the tja2fumen.exe executable if you copy it into your project.

Attribution

  • The fumen-parsing code in this project is based off of a modified copy of the readFumen() function from the fumen2osu.py found in @KatieFrogs' fumen-tools project.
  • The TJA-parsing code in this project is a Python translation of the parseTJA.js file from @WHMHammer's tja-tools.
  • sakurada0291, DDDDDD, U-ros, and others in the Discord for helping to test tja2fumen. :)