77aa9598a0
The old method failed for files with no file extension. |
||
---|---|---|
tja2fumen | ||
.gitignore | ||
README.md |
tja2fumen
This repo a new attempt to write a tja2fumen chart converter to replace/complement the existing tja2bin.exe converter.
Goals
- Fix desyncronization issues due to BPMCHANGE commands. (See: https://github.com/Fluto/TakoTako/issues/16)
- Provide open source code, as opposed to distributing only a closed-source binary.
- Provide a highly-documented reference for parsing both the TJA and Fumen file formats.
- Stick to "pure Python", i.e. no external dependencies if possible.
- Provide support for Windows/Linux/macOS via
PyInstaller
or something similar.
Usage
The converter is in a messy/experimental state, and is not yet fit for use due to lack of support for important TJA commands.
Future work
Note
: Simulator-specific commands (such as those used for Dan-i Dojo charts) are unlikely to be supported, due to the lack of support from official console releases.
- Bugfixes
- Fix issue with BPMCHANGE + drumrolls. (Affected songs: Kokuryu, R.I.P. Hero, Challengers, etc.)
- Properly handle the offset at the beginning of the song (Affected songs: SUPERNOVA, etc.)
- Handle
areFilesGZipped=False
issue when combining charts withTakoTako
/tja2bin.exe
files (Affected songs: Aragami, MEGALOVANIA, exTora Trap!!).
- Missing command support
- Support for branch commands (
#BRANCHSTART
,#BRANCHEND
,#N
,#E
,#M
,#LEVELHOLD
, etc.) - Support for barline manipulation commands (
#BARLINEON
,#BARLINEOFF
) - Support for delay commands (
#DELAY
) - Support for P1/P2 charts (
#STYLE: Single
,#STYLE: Double
,#START P1
,START P2
)
- Support for branch commands (
- Project architecture
- Refactoring into a more Pythonic style (variable names (
camelCase
->under_score
), object-oriented note/branch/measure representations, etc.) - Argument parsing + proper i/o handling
- Packaging into an executable
- Refactoring into a more Pythonic style (variable names (
Once these features are added, I will create an initial release. Until then, the source code in this repo is presented as-is.
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
.
Note
: To be explicily clear, neither @KatieFrogs nor @WHMHammer have endorsed this project, are affiliated with this project, or have made any direct contributions to this project. I have just modified their existing work.