A Python prototype for semi-automatic step creation (Dance-Single mode) for StepMania, Project OutFox, and similar programs.
demo.mp4
This software is a prototype. The author is not responsible for any damage resulting from use of the game.
By downloading and using this tool, you agree to the following:
- The system automatically generates movement patterns. Some steps may be physically uncomfortable or dangerous if performed without caution.
- The author is not responsible for physical damage or injuries (sprains, falls, etc.) that occur while playing the game.
- The author is not responsible for hardware damage (Dance Pad, peripherals, PC) resulting from use of the software.
Always play with caution.
I wanted to create this system because all the generators I've found online have never satisfied me, generating steps that, in my opinion, have nothing to do with the songs I tested.
The system is semi-automatic and is divided into two parts:
- Detection of the song's BPM/Downbeat (Manual).
- Generation of steps for the Easy, Medium, and Hard difficulty levels (Automatic).
The biggest obstacle encountered during development was finding an efficient algorithm capable of detecting the exact BPM and, above all, automatically recognizing the Downbeat (the first quarter in 4/4 time, i.e., the loudest beat in each measure).
Currently, nothing exists that gives 100% correct results. Algorithms often fail, especially with songs that have variable BPMs, pauses, or slowdowns. If you get this first step wrong, everything that follows becomes unplayable and unfun.
To address this problem, the only truly efficient solution was to integrate ArrowVortex into the process.
Using ArrowVortex, we can find the exact BPM (including variations and rests) and indicate the correct tempo of the song.
Only after saving the initial .sm file with the correct tempo can we launch automatic arrow generation.
These actions need to be performed only the first time.
First install arrowvortex and ffmpeg (by adding it to your Windows Environment Variables/PATH), then do the following:
- Clone the project.
- Run the
setup_venv.batfile to install the virtual environment with all necessary dependencies. - Open the
path_arrowvortex.txtfile in the project folder. - Save the path to the ArrowVortex executable installed on your PC.
- *Example: *
C:\ArrowVortex\ArrowVortex.exe
Note: The software does not currently support English, but operation is very simple.
You have two ways to provide the song:
Option A: Local MP3 File
Place your .mp3 file inside the project's songs folder.
Important: Rename the file strictly following this format: SongTitle - ArtistName.mp3
Option B: YouTube URL Alternatively, you can paste a YouTube video URL directly into the tool. The software will then ask you to manually type the Song Title and Artist Name.
', accented letters à,è, emojis, etc.). Keep the text simple.
Correct Examples:
- Local File:
The Fate of Ophelia - Taylor Swift.mp3 - YouTube Input: Nome canzone:
The Fate of Ophelia/ Nome artista:Taylor Swift
Run the menu.bat file located in the project root. Then, press 1 to select a local file, or paste a YouTube URL (as described above).
ArrowVortex will open automatically, already configured with the "Beat tick" feature enabled and the ADJUST TEMPO and ADJUST SYNC windows open.
Proceed as follows:
- Find the BPM: In the "ADJUST SYNC" window, press the Find BPM button and then Apply BPM.
- Verify: Play the song by pressing the Spacebar. Listen for the detected BPM "beep" to make sure it is synchronized with the music.
- Align the Downbeat: Using the Move first beat function, position the correct Downbeat (the first strong beat of the measure). This action is very useful for creating even more fun and rhythmically sensible graphs.
- Variable BPM Management (Optional): For complex songs (tempo changes, pauses, etc.), you can use the "ADJUST TEMPO" window (for details on how to do this, see the official ArrowVortex guide).
- Save: Once you've found the correct tempo, press Ctrl+S (or go to File -> Save) to save the .sm file in the
songsfolder, exactly where you placed the MP3.
Note: Once you've saved the file with the correct tempo, you're done. There's no need to create the arrows manually; just save the blank file with the correct timing.
Return to the menu.bat window (which you opened in step 2) and press ENTER.
The system will automatically generate the steps for the difficulty levels (currently the most tested is Medium).
The graphics/backgrounds will also be automatically searched for.
You will find the complete song folder in songs.
Place this folder in the Songs directory of your game (StepMania or Project OutFox).
Have fun!
Other options can be accessed from the menu.bat.
This option regenerates only the steps, bypassing the ArrowVortex part.
- When to use it: It is useful only when changes have been made to the code logic (for example, following project updates).
- If there are no code updates, it makes little sense to use it because it would regenerate exactly the same arrows as before.
Allows you to change the density of a specific level.
- Place the entire song folder (already generated) inside the project's
songsfolder. - The system will automatically detect the folder(s).
- Choose the song you want to edit.
- Choose the difficulty level you want to adjust.
- Decide whether to increase or decrease the difficulty (the algorithm will add or remove 20% of the arrows).
I have many ideas in mind to make the algorithm even smarter and generate charts that are increasingly dynamic and fun to play.
However, implementing these advanced features is complex and requires significant development time. Therefore, the future roadmap will depend heavily on the interest the community shows in the project.
If you like the tool and want to see it grow: use it, leave a star ⭐ on the repository, or share your feedback! In the meantime, I hope you find this first version useful and fun.
For your convenience, the songs folder includes an example simfile: "Walk On Water - Southby, Emily J.sm", along with its audio and graphics.
This song is from NoCopyrightSounds (NCS), a great source for royalty-free music perfect for testing.
You can immediately see how the generated charts look and play.
This project is developed entirely in my spare time with the goal of making chart creation accessible to everyone. It is and will always remain free and open source.
If the tool has saved you time and you're enjoying the songs you've created, consider buying me a (virtual) coffee to support the development of future updates!