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 Phr00t's Software (www.phr00t.com). You can get the whole built program under the "dist" folder.

It works on a common line with arguments, which are all optional. If you just run the Java program, it will scan & process all mp3s (and wavs) in the current directory, and spit out folders for each song in the same directory (90 seconds worth of steps).

The arguments are:

input=file/dir, default: current dir] output=[songs dir, default: current dir] duration=[seconds to process, default: song length] tap=[true/false] tapsync=[offset time in seconds for tap, default: -0.11] hard=[true/false] updatesm=[true/false] fftsize=[default: 512] stepgran=[default: 1] SM_HEADER=[VALUE]

Example:

java -jar AutoStepper.jar input="./songs/" duration=130 hard=true ARTIST="John Doe"

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).

Phr00t

** LICENSING: Modified MIT license to restrict commercial use & require attribution **

Copyright (c) 2018 Phr00t's Software

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 Phr00t's Software. You are free to to use, copy, modify, merge, publish, distribute this Software for private, personal & non-commercial uses as long as Phr00t's Software is 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.