/kshoot-tools

Various tools related to KSH and KSON chart files of K-Shoot Mania, built upon kshoot.js

Primary LanguageTypeScriptMIT LicenseMIT

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.

Features

  • Chart stat
  • Chart renderer
  • Radar renderer
  • Sync (offset) calculator

How to use

Installation

Download npm first, then install kshoot-tools by executing the following command in a terminal.

npm i -g kshoot-tools

Basic usage

Example 1:

kshoot test/chart.ksh
1 chart from "test/"
- [Chart "Astar" (MXM 19) from "chart.ksh"]

Example 2:

kshoot test/chart.ksh --stat
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

kshoot test/chart.ksh render -m=10 -c=12 -o="."

The command above creates chart.ksh.png, which looks like this:

Rendered chart

Sync calculator

kshoot test/Astar/inf.ksh sync -v

The best offset for the chart will be found based on the music the chart is using.

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