AutoStepper is a Java console program designed to automatically create StepMania SM files with these features:
Generate all difficulty levels
Generate holds & jumps
Obtain banner & background art
Run locally without interaction
Process multiple music files at once
Multiple beat detection methods
Cross-platform support
So, here it is -- AutoStepper by cociweb (www.github.com/cociweb/AutoStepper). You can build AutoStepper.jar from source using either Maven or javac. The output JAR and compiled classes will be placed in the build/ directory.
Ensure you have Java 25 (OpenJDK 25) and Maven installed.
mvn clean packageThe output JAR will be at:
build/AutoStepper.jar
Ensure you have Java 25 (OpenJDK 25) installed. Run:
javac -d build -cp "lib/*" $(find src -name '*.java')This compiles all sources into the build/ directory. To create a runnable JAR (optional):
jar cfe build/AutoStepper.jar autostepper.AutoStepper -C build . -C lib .To run the program after building:
java -jar build/AutoStepper.jar [arguments]Replace [arguments] with your desired command-line options (see below).
The arguments are:
input=[file/dir] output=[songs dir] duration=[seconds to process] tap=[true/false] tapsync=[offset time in seconds for tap, default: -0.11] clearence=[seconds to keep clear] hard=[true/false] updatesm=[true/false]
Example:
java -jar ./dist/AutoStepper.jar input="./songs/" output="./SM/" duration=-1 hard=false clearence=10 tap=false
If you set tap=true, AutoStepper won't try and automatically calculate the BPM or offset, and will instead prompt you to hit ENTER along with 30 consecutive beats. AutoStepper will then do the rest.
It is best to let AutoStepper run through a whole bunch of music, and ones that it might not get exactly right -- to then pull out & use tap=true on them.
updatesm=true will look for existing .sm stepfiles using the same filenames generated by AutoStepper. If found, it will take the offset & BPM from those files & just update the steps. This is useful for updating steps generated with old versions of AutoStepper, or changing the "hard" argument without having to recaculate BPM/offset times.
You can also use the output as a base to further edit & perfect songs, with AutoStepper doing most of the dirty work.
I will add it is optimized for pad use, not keyboard use (e.g. difficulty isn't high enough).
cociweb, phr00t
** LICENSING: Modified MIT license to restrict commercial use & require attribution **
Copyright (c) 2026 cociweb, phr00t
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 with only commercial use restrictions & a requirement to attribute cociweb and phr00t. You are free to to use, copy, modify, merge, publish, distribute this Software for private, personal & non-commercial uses as long as cociweb and phr00t are attributed.
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.