Skip to main content

Convert TJA chart files into fumen (.bin) chart files

Project description

 

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 Linting pylint Linting flake8 Linting mypy


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 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

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:

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tja2fumen-0.6.1.tar.gz (49.2 kB view details)

Uploaded Source

Built Distribution

tja2fumen-0.6.1-py3-none-any.whl (47.1 kB view details)

Uploaded Python 3

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

Hashes for tja2fumen-0.6.1.tar.gz
Algorithm Hash digest
SHA256 2eee60bfea1f7c320b3c8c991caee049088c17966804b91da63cc1091ac87873
MD5 9c5ae12d0fe4d0c0bc085ae728dd9f44
BLAKE2b-256 838da48ad6722b696132cd26d61ab7ddb7ce686be5a7b11f17493436b1c7c65b

See more details on using hashes here.

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

Hashes for tja2fumen-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1e57ae7c10b64d6bc34bd6decf68f01eb06b7191a8954e0a671f57b595d624a7
MD5 d62f1e00582750541bfe99c82e3f2aec
BLAKE2b-256 74fddd7bcdf83f4174b0115dd994f3d12fcfb8614fea93402cfda22fe3bcf399

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page