e1d562f5ef
Fixes #43. |
||
---|---|---|
.github/workflows | ||
src/tja2fumen | ||
testing | ||
.gitignore | ||
LICENSE.txt | ||
MANIFEST.in | ||
pyproject.toml | ||
README.md | ||
setup.py |
tja2fumen is an open-source 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.
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.
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. :)