.github/workflows | ||
src/tja2fumen | ||
testing | ||
.gitignore | ||
LICENSE.txt | ||
MANIFEST.in | ||
pyproject.toml | ||
README.md | ||
setup.py |
tja2fumen is a 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.
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:
- 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. :)