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-24 17:28:04 -04:00
.github/workflows Update codebase to adhere to flake8 and add linting check (#51) 2023-07-21 22:57:18 -04:00
.vscode .vscode: Add files generated by Codespaces 2023-07-24 00:43:05 +00:00
src/tja2fumen Add double Kusudama test 2023-07-24 16:46:21 -04:00
testing Add test for 2P commands 2023-07-24 16:55:52 -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: Update sim-specific wording 2023-07-24 17:28:04 -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.

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.

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/).

TJA Support

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

Supported file formats

Legend: = Fully supported, = Not supported

File format tja2fumen tja2bin Comments
UTF-8 (with BOM)  
UTF-8 (without BOM) ✅️  
Shift-JIS  

Supported metadata

Legend: = Fully supported, ⚪️ = Ignored, ⚠️ = Incorrect behavior, = Not supported

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 currently ignored. 

Supported notes/commands

Legend: = Fully supported, ⚪️ = Ignored, ⚠️ = Incorrect behavior, = Not supported

Note/command tja2fumen tja2bin Comments
0, 1, 2, 3, 4 5, 6, 7, 8, 9
A, B
C, D, E, F, G, H, I ⚠️ Replaced by normal notes/rolls in tja2fumen.
9000,
9008,
⚪️ ⚠️ Double Kusudama note treated as 1 drumroll by tja2fumen, but 2 overlapping drumrolls by tja2bin.
#START, #END
#START P1, #START P2
#MEASURE
#BPMCHANGE ⚠️ See https://github.com/Fluto/TakoTako/issues/16
#DELAY
#SCROLL
#GOGOSTART, #GOGOEND
#BARLINEOFF, #BARLINEON
#BRANCHSTART
#SECTION ⚠️ See https://github.com/vivaria/tja2fumen/issues/52
#LEVELHOLD ⚠️ See https://github.com/vivaria/tja2fumen/issues/52
#N, #E, #M
#BRANCHEND
#BMSCROLL, #LYRIC,
#DIRECTION, etc.
⚪️ Other simulator-specific chart commands are currently ignored.

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. :)