6.1 KiB
tja2fumen is an tool that allows you to convert TJA charts (.tja
) to fumen charts (.bin
).
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
totja2bin.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.
Supported commands
✅ = Fully supported, 🔘 = Ignored, ⚠️ = Incorrect behavior, ❌ = Crashes the converter, ❔ = Unknown
Command | Description | tja2fumen | tja2bin |
---|---|---|---|
BPM: |
Song's beats per minute. | ✅ | ✅ |
OFFSET: |
Song's offset in seconds. | ✅ | ✅ |
TITLE: , SUBTITLE: ,WAVE: , DEMOSTART: , etc. |
Other song metadata fields. | 🔘 | 🔘 |
COURSE: |
Chart's difficulty category. | ✅ | ✅ |
LEVEL: |
Chart's number of stars (between 1 and 10). | ✅ | ✅ |
BALLOON: |
List of hits for each balloon in chart. | ✅ | ✅ |
SCOREINIT: |
Sets INIT value for the scoring method. | ✅ | ✅ |
SCOREDIFF |
Sets DIFF value for the scoring method. | ✅ | ✅ |
STYLE: {Single,Double} |
Assign chart to single/multiplayer. | ✅ | ❌ |
EXAM1: , GAUGEINCR: ,TOTAL: , etc. |
Other chart metadata fields. | 🔘 | 🔘 |
0 , 1 , 2 , 3 , 4 ,5 , 6 , 7 , 8 , 9 |
Main notes. | ✅ | ✅ |
A , B |
Multiplayer note with hands. | ❔ | ❔ |
F |
Hidden ADLIB note. | ❔ | ❔ |
9000, 9008, |
Double Kusudama note. | 🔘 | ❔ |
#START , #END |
Marks the beginning and end of a chart's notation. | ✅ | ✅ |
#START {P1, P2} |
Marks the chart as first or second player. | ✅ | ❔ |
#MEASURE |
Changes the time signature. | ✅ | ✅ |
#BPMCHANGE |
Changes the beats per minute. | ✅ | ⚠️ |
#DELAY |
Add offset in seconds. | ✅ | ❌ |
#SCROLL |
Multiplies the default scrolling speed by this value. | ✅ | ✅ |
#GOGOSTART, #GOGOEND |
Activate or deactivate go-go time. | ✅ | ✅ |
#BARLINEOFF , #BARLINEON |
Turn off/on visual measure lines. | ✅ | ✅ |
#BRANCHSTART |
Add condition for branching (diverge) paths. | ✅ | ✅ |
#BRANCHEND |
Starts normal chart notation without branching. | ✅ | ✅ |
#N, #E, #M |
Starts chart notation for a specific path. | ✅ | ✅ |
#SECTION |
Reset accuracy values for notes and drumrolls on the next measure. | ✅ | ✅ |
#LYRIC |
Shows song lyrics at the bottom of the screen. | 🔘 | ❌ |
#LEVELHOLD |
The current branch is forced until the end of the song. | ❔ | ❔ |
#BMSCROLL , #HBSCROLL , #DIRECTION , etc. |
Other chart commands. | 🔘 | ❌ |
If a command is not listed, you can assume that it is unsupported. If you would like support for a missing command, please make a request by opening an issue.
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:
- For non-Python projects, you can download
tja2fumen.exe
and call it via a system call. - 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 thefumen2osu.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'stja-tools
. - sakurada0291, DDDDDD, U-ros, and others in the Discord for helping to test tja2fumen. :)