Giter VIP home page Giter VIP logo

bmx2stems's Introduction

bmx2stems: BMS stem/multitrack extractor

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.

Usage

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 or ogg. Default wav.
  • -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. Default stems/ under the same directory as the .bms file.
  • --log: log level, error, warn, info, verbose. Default info.
  • -v, --verbose: equivalent to --log verbose.

Test suite

  • 立秋 - 竹
    • separator "\_\d\d\d\_|\_\d\."
    • bpm changes on channels 03 and 08
  • 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
  • DOT96 - MAKE IT FUNKY NOW
    • has mono channel samples

References

bmx2stems's People

Contributors

zokhoi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.