kshoot-tools
Version:
A collection of tools related to KSH and KSON chart files of K-Shoot Mania
105 lines (78 loc) • 2.15 kB
Markdown
# kshoot-tools
This is a collection of tools related to KSH and KSON chart files of K-Shoot Mania. This tool is created with [kshoot.js](https://github.com/123jimin/kshoot.js).
## Features
- Chart stat
- Chart renderer
- Radar renderer
- Sync (offset) calculator
## How to use
### Installation
Download [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) first, then install `kshoot-tools` by executing the following command in a terminal.
```text
npm i -g kshoot-tools
```
### Basic usage
Example 1:
```text
kshoot test/chart.ksh
```
```text
1 chart from "test/"
- [Chart "Astar" (MXM 19) from "chart.ksh"]
```
Example 2:
```text
kshoot test/chart.ksh --stat
```
```text
1 chart from "test/"
- [Chart "Astar" (MXM 19) from "chart.ksh"]
== Stats ==
[Chart "Astar" (MXM 19) from "chart.ksh"]
- Duration: 122.500 s
- BPM: 96-448 (median: 192)
- notes: 1104 (991 chips + 113 holds)
- max density: 64
- lasers: 225 (76 moving lasers + 149 slams)
- one hand: 371
- hand trip: 288
- jacks: 21 (BC: 9, ADLR: 12)
- sofulan: 1184.0 (8 BPM changes)
```
### Chart rendering
```text
kshoot test/chart.ksh render -m=10 -c=12 -o="."
```
The command above creates `chart.ksh.png`, which looks like this:

### Sync calculator
```text
kshoot test/Astar/inf.ksh sync -v
```
The best offset for the chart will be found based on the music the chart is using.
```text
1 chart from "test/Astar"
- [Chart "Astar" (MXM 19) from "inf.ksh"]
[Chart "Astar" (MXM 19) from "inf.ksh"]: 100 => 151 (+51 ms)
* -885 ms : 9.417
* -730 ms : 6.344
* -574 ms : 18.530
* -418 ms : 11.789
* -262 ms : 30.081
* -260 ms : 30.488
* -105 ms : 19.400
* -27 ms : 6.796
* 51 ms : 41.703
* 207 ms : 16.609
* 363 ms : 25.055
* 365 ms : 24.781
* 520 ms : 9.344
* 676 ms : 15.106
* 832 ms : 5.400
* 989 ms : 8.115
```
Note that it will not automatically modify the offset of the chart.
## Planned tools
- [ ] Converter (KSH <-> KSON)
- [ ] Linter
- [ ] Curved laser generator