Convert TJA chart files into fumen (.bin) chart files
Project description
tja2fumen is a tool that allows you to convert TJA charts (.tja
) to fumen charts (.bin
).
Features
- Parse
.tja
chart files. - Convert parsed TJA song data into fumen chart data.
- Write fumen chart data to
.bin
files. - Decode official fumen
.bin
files.
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
totja2bin.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
tja 2 fumen | tja 2 bin | Comment | |
---|---|---|---|
UTF-8 (with BOM) | ✅ |
❌ |
|
UTF-8 (without BOM) | ✅️ |
✅ |
|
Shift-JIS | ✅ |
✅ |
Supported metadata
Legend:
✅
= Fully supported,⚪️
= Ignored,⚠️
= Incorrect behavior,❌
= Not supported
tja 2 fumen | tja 2 bin | Comment | |
---|---|---|---|
BPM: , OFFSET: |
✅ |
✅ |
|
TITLE: , SUBTITLE: , WAVE: ,DEMOSTART: , etc. |
⚪️ |
⚪️ |
The only global metadata needed are BPM: and OFFSET: . |
COURSE: , LEVEL: , BALLOON: ,SCOREINIT: , SCOREDIFF: |
✅ |
✅ |
|
STYLE: (Single , Double ) |
✅ |
❌ |
|
EXAM1: , GAUGEINCR: , TOTAL: , etc. |
⚪️ |
⚪️ |
Other simulator-specific metadata fields are currently ignored. |
Supported notes/commands
Legend:
✅
= Fully supported,⚪️
= Ignored,⚠️
= Incorrect behavior,❌
= Not supported
tja 2 fumen | tja 2 bin | Comment | |
---|---|---|---|
0 , 1 , 2 , 3 , 4 |
✅ |
✅ |
|
5008, , 6008, , 7008, |
✅ |
✅ |
|
9008, |
✅ |
⚠️ |
|
9000, 9008, |
⚪️ |
⚠️ |
Double Kusudama note treated as 1 drumroll by tja2fumen, but 2 overlapping drumrolls by tja2bin. |
A , B |
✅ |
❌ |
Multiplayer "hands" notes are valid in fumens, but unrecognized by tja2bin. |
C , D , E , F , G , H , I |
⚠️ |
❌ |
Replaced by normal notes/rolls in tja2fumen. |
#START , #END |
✅ |
✅ |
|
#START P1 , #START P2 |
✅ |
❌ |
|
#BPMCHANGE |
✅ |
⚠️ |
See #16 |
#MEASURE |
✅ |
✅ |
|
#SCROLL |
✅ |
✅ |
|
#GOGOSTART , #GOGOEND |
✅ |
✅ |
|
#BARLINEOFF , #BARLINEON |
✅ |
✅ |
|
#DELAY |
✅ |
❌ |
See #27 |
#BRANCHSTART , #BRANCHEND |
✅ |
✅ |
|
#N , #E , #M |
✅ |
✅ |
|
#SECTION |
⚠️ |
❌ |
See #53, #27 |
#LEVELHOLD |
✅ |
❌ |
|
#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:
- 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. :)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file tja2fumen-0.6.1.tar.gz
.
File metadata
- Download URL: tja2fumen-0.6.1.tar.gz
- Upload date:
- Size: 49.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2eee60bfea1f7c320b3c8c991caee049088c17966804b91da63cc1091ac87873 |
|
MD5 | 9c5ae12d0fe4d0c0bc085ae728dd9f44 |
|
BLAKE2b-256 | 838da48ad6722b696132cd26d61ab7ddb7ce686be5a7b11f17493436b1c7c65b |
File details
Details for the file tja2fumen-0.6.1-py3-none-any.whl
.
File metadata
- Download URL: tja2fumen-0.6.1-py3-none-any.whl
- Upload date:
- Size: 47.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e57ae7c10b64d6bc34bd6decf68f01eb06b7191a8954e0a671f57b595d624a7 |
|
MD5 | d62f1e00582750541bfe99c82e3f2aec |
|
BLAKE2b-256 | 74fddd7bcdf83f4174b0115dd994f3d12fcfb8614fea93402cfda22fe3bcf399 |