Metadata-Version: 2.1
Name: tja2fumen
Version: 0.5.4
Summary: Convert TJA chart files into fumen (.bin) chart files
License: MIT License
        
        Copyright (c) 2023 Vivaria
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
Project-URL: Homepage, https://github.com/vivaria/tja2fumen/
Project-URL: Bug Reports, https://github.com/vivaria/tja2fumen/issues/
Project-URL: Source, https://github.com/vivaria/tja2fumen/
Keywords: taiko,tatsujin,fumen,TJA
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Provides-Extra: dev
License-File: LICENSE.txt

# tja2fumen

`tja2fumen` is a tool for Taiko no Tatsujin that allows you to convert TJA charts (`.tja`) to fumen charts (`.bin`).

### Goals

- Provide open source code to act as a reference for parsing and writing both the TJA and Fumen file formats.
- Fix the existing issues with `tja2bin.exe`:
  - Desync due to `#BPMCHANGE` commands. (https://github.com/Fluto/TakoTako/issues/16)
  - Crashes due to `#SECTION`, `#NEXTSONG`, `#LYRIC`, etc. commands.

# Usage

tja2fumen is included as part of several existing projects. So, you may be using tja2fumen already!

- **XB1/TDMX**: [TakoTako](https://github.com/fluto/takotako) converts both chart and audio files for XB1/TDMX.
- **Nijiro**: [TaikoSoundEditor](https://github.com/NotImplementedLife/TaikoSoundEditor) converts both chart and audio files for NIjiro.

## → Adding `tja2fumen.exe` to older TakoTako versions (3.2.0 and below)

> **Note**: Before adding `tja2fumen` to TakoTako, you may want to back up the original `tja2bin.exe` file, to make sure you can switch back to the old converter if necessary. The easiest way to do this is by renaming the existing file to `tja2bin.exe.bak`.

To use this converter with TakoTako, head to the [Releases](https://github.com/vivaria/tja2fumen/releases) page and download the `tja2fumen.exe` file attached to the release. Then, rename `tja2fumen.exe` to `tja2bin.exe`, and place the file in the TakoTako plugin folder.

TakoTako's plugin folder is inside of the BepInEx folder, which will typically look something like:

```
C:\XboxGames\T Tablet\Content\BepInEx\plugins\com.fluto.takotako
```

## → Using `tja2fumen` directly

If you'd like to build a project on top of `tja2fumen`, you have several options:

### 1. Using the executable file (`tja2fumen.exe`)

Head to the [Releases](https://github.com/vivaria/tja2fumen/releases) page, and download the `tja2fumen.exe` file attached to the release.

Then, you can convert a TJA file on the command line by running:

```
tja2fumen.exe file.tja
```

### 2. Using the `tja2fumen` Python package

If you're familiar with Python, you can install `tja2fumen` by running:

```
pip install tja2fumen
```

Then, you can convert a TJA file on the command line by running:

```
tja2fumen file.tja
```

Or, you can import the `main` function in your Python code, and convert TJA files this way instead:

```python
from tja2fumen import main
main(argv=["file.tja"])
```

# Reporting bugs

If you've found a .TJA file that `tja2fumen` converts incorrectly, please [open a new issue](https://github.com/vivaria/tja2fumen/issues/new) 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.

# Attribution

- The fumen-parsing code in this project is based off of a modified copy of the [`readFumen()`](https://github.com/KatieFrogs/fumen-tools/blob/6ff3a2f7f53687f3dd49c5c57fcfc5ccbe3e5a10/fumen2osu/fumen2osu.py#L7-L152) function from the [`fumen2osu.py`](https://github.com/KatieFrogs/fumen-tools/blob/main/fumen2osu/fumen2osu.py) found in @KatieFrogs' [`fumen-tools`](https://github.com/KatieFrogs/fumen-tools) project.
- The TJA-parsing code in this project is a Python translation of the [`parseTJA.js`](https://github.com/WHMHammer/tja-tools/blob/master/src/js/parseTJA.js) file from @WHMHammer's [`tja-tools`](https://github.com/WHMHammer/tja-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.
