This script renders bms chart formatted songs into a stem pack, with each instrument in their own audio track.
It relies on the samples that come with the chart being named with their instruments. Therefore charts like B.B.K.K.B.K.K. wouldn't work with this script without extensive renaming of the samples.
Currently songs with bpm change are supported, and those with randomness more than 1 are not supported.
First install the dependencies by
npm install
Use this script by having .bms file and their supporting audio files in the same directory, then providing the .bms file path to the script with:
node main.js [options] [--] /path/to/chart.bms
Available options:
-f
,--format
: output format,wav
orogg
. Defaultwav
.-s
,--separator
: regular expression for separating instrument name from numbering in the audio file names. Default"_"
.
all that comes before the regexp is regarded as instrument name, and the remaining string is unused, therefore no need to worry about not matching the numbering.
e.g."_"
for Chronostasis, and"\s\#|\s?\(|\s[A-G]\#?\d"
for GOODTEK.-o
,--outDir
: output directory. Defaultstems/
under the same directory as the .bms file.--log
: log level,error
,warn
,info
,verbose
. Defaultinfo
.-v
,--verbose
: equivalent to--log verbose
.
- 立秋 - 竹
- separator
"\_\d\d\d\_|\_\d\."
- bpm changes on channels 03 and 08
- separator
- LeaF - Aleph-0
- separator
"\_\d\d\d\_|\_\d\."
- bpm changes on channels 03 and 08
- has stops on channel 09
- if-else blocks with randomness 1
- separator
- DOT96 - MAKE IT FUNKY NOW
- has mono channel samples