Download and update song packs for StepMania with ease.

Overview

StepMania Song Manager

build code style: prettier

A cross-platform utility app for StepMania that downloads and automatically updates song ("simfile") packs hosted in Amazon S3 buckets (or any bucket that can interact with the S3 API).

Made with Electron and Vue.js via the Quasar framework.

Development

# Install dependencies
yarn

# Start app in development mode (hot-code reloading, error reporting, etc.)
yarn dev

# Lint files
yarn lint

# Build app for production
yarn build

Contributing

Want to help make the app better? Feel free to fork the repository, make changes, and create a pull request! Just make sure that your pull requests target the develop branch only.

Using the App

Adding Song Packs

Simply click on the + Add Songs button and select a bucket from the list. You can also add a new S3 bucket that is not already in the list, in which case the name of the S3 bucket is required. For buckets hosted outside of Amazon, the endpoint URL of the bucket is required as well.

Once selected, the chosen bucket will then be displayed on the main page where you can view the songs in the bucket, download all files in the bucket, or remove the bucket from the app.

Note: Removing a bucket from the app will only hide the songs from StepMania, and not delete any local files from your computer. This is to prevent re-downloading any files unnecessarily should you decide to re-add the bucket. If you want to completely remove the downloaded packs from your computer, you can manually delete the files and folders yourself.

Updating Song Packs

Once downloaded, all song packs will automatically be detected and playable in StepMania the next time you run the game (as the download path for each bucket is automatically added to the AdditionalSongFolders variable in StepMania's Preferences.ini file).

The packs will also be updated automatically as long as the app is open or running in the background. The app itself will check for and download updates periodically, or you can perform a manual update by clicking on the Update button for each bucket.

Settings

The settings page includes the following parameters, which are set to their default values when the app is launched for the first time. Any changes made to these settings will be saved automatically.

Name Default Value Description
Download Path (See below.) The directory in which song packs will be downloaded. Only applies to newly added packs.
Preferences.ini Path Paths to all Preferences.ini files automatically found/detected. The full path to the Preferences.ini file used by StepMania (or paths if multiple copies of StepMania are installed).
Update Frequency 1 hour How often the app will check for and download updates.
Auto-Launch on Login false Whether or not to open the app when the computer starts.
Language English (United States) Language of the app's user interface.

Default download paths:

  • Windows: %APPDATA%/StepMania Song Manager/Songs
  • macOS: ~/Library/Application Support/StepMania Song Manager/Songs
  • Linux:
    • $XDG_CONFIG_HOME/StepMania Song Manager/Songs, or
    • ~/.config/StepMania Song Manager/Songs

Adding New Packs

If you want to upload your own simfile packs for others to freely download with the app, you can follow the steps for each cloud storage provider below.

Note: Regardless of the server to which you want to upload your packs, the files in the bucket must follow this directory structure: ///. Otherwise, StepMania will not be able to recognize the simfiles from the app.

Amazon S3

  1. Create an AWS account if you haven't already. Creating an IAM admin user is also recommended for interacting with AWS.
  2. Create a new bucket from the Amazon S3 web console. The name of the bucket must contain only lowercase letters, numbers, and hyphens.
  3. Configure the bucket to allow public access. From the Amazon S3 console, uncheck "Block all public access" and (optionally) re-check "Block public access to buckets and objects granted through [new & any] access control lists (ACLs)".
  4. Add the following JSON to the bucket policy, replacing with the bucket name. After this step, your bucket should now be public and ready for download from the app!
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicRead",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::",
                "arn:aws:s3:::/*"
            ]
        }
    ]
}
  1. Install and configure AWS CLI if you haven't already, using the Access Key ID and Secret Access Key of your IAM admin user account.
aws configure --profile <any-profile-name>
  1. Configure AWS CLI to prevent uploading large files in multiple parts.
aws configure set s3.multipart_threshold 128MB --profile <any-profile-name>

Feel free to change 128MB to whatever size you want, but make sure it is larger than the size of the largest file you intend to upload.

  1. Upload your files to the bucket:
aws s3 sync </path/to/packs> s3://<bucket-name> --delete --profile <any-profile-name>

Donate

Like the app? Please consider donating, which will help pay for the costs of hosting and downloading simfiles online.

PayPal

Ko-fi

License

See LICENSE for details.

You might also like...
Task Tracker that Add , Update , Delete Tasks

Project setup npm install Run the JSON-Server backend (http://localhost:5000) npm run backend Run the Vue dev server (http://localhost:8080) npm run

Cross-platform mobile App developed with Ionic, Capacitor and Vue3 to manage and share vegetarian meals, recipes and products, using device's internal storage, camera, geolocation, share and network functionalities.
Cross-platform mobile App developed with Ionic, Capacitor and Vue3 to manage and share vegetarian meals, recipes and products, using device's internal storage, camera, geolocation, share and network functionalities.

Cross-platform mobile App developed with Ionic, Capacitor and Vue3 to manage and share vegetarian meals, recipes and products, using device's internal storage, camera, geolocation, share and network functionalities.

The open-source frontend for any eCommerce. Built with a PWA and headless approach, using a modern JS stack. We have custom integrations with Magento, commercetools, Shopware and Shopify and total coverage is just a matter of time. The API approach also allows you to merge VSF with any third-party tool like CMS, payment gateways or analytics. Newest updates: https://blog.vuestorefront.io. Always Open Source, MIT license.
Nuxt Headless CMS is a template for personal websites and blogs. The project was made with Nuxt.js and Contentful as a headless CMS and Vuetify as a UI framework.

Nuxt Headless CMS Nuxt Headless CMS is a template for personal websites and blogs. The project was made with Nuxt.js and Contentful as a headless CMS

Taranis NG is an OSINT gathering and analysis tool for CSIRT teams and organisations. It allows team-to-team collaboration, and contains a user portal for simple self asset management. Taranis NG was developed by SK-CERT with a help from wide CSIRT community.
Catus Notebook is an effective and elegant “note as todos” software that allows you to schedule your life and work easily and safely

Catus Notebook The Catus Notebook combines the defination for both a note and a todo to enable you to easily create, edit and schedule your notes effe

This website is implemented with Nuxt.js as a server-side and PWA, and fully communicates with API, and Vuetify.js is used in the design.
This website is implemented with Nuxt.js as a server-side and PWA, and fully communicates with API, and Vuetify.js is used in the design.

Diamond book store This website is implemented with Nuxt.js as a server-side and PWA, and fully communicates with API, and Vuetify.js is used in the d

An app that you can search for stock symbols and check daily, weekly and monthly open, high, low, close and volume data belongs to the searched company stock.

Vue Stock Market App This is the solution for Reengen Full Stack Bootcamp with Vuejs and Nodejs Week-3 Project. It is built with Vuejs by using Vue CL

Rick-and-morty-vue - Rick And Morty WebSite Using Vue And API

Rick And Morty Vue The vue.js project I made using the Rick and Morty API servic

Comments
  • Portable package without install

    Portable package without install

    Can you release full package without setup (into %appdata% and/or %localappdata%) file? Just extract and launch freely without append in program and features (even it's just installed for current user)

    enhancement 
    opened by kowith337 5
  • Clicking

    Clicking "View Song List" causes blank white window

    On version 0.1.2, when clicking "View Song List" on the "DanceDanceRevolution (Arcade)" pack, after about 3 seconds of the busy spinning icon on the button, a blank white window appears.

    Computer is running Windows 10 20H2 (64 bit).

    bug 
    opened by Subrosian 3
  • Editing the download path setting doesn't update already-downloaded packs

    Editing the download path setting doesn't update already-downloaded packs

    I'm reorganizing my folder structures and wished to move where I'm saving the songs that this downloads into a slightly different path than before. After changing the setting and clicking Update, it proceeds to redownload everything from the pack into the previous area, re-creating any non-existent folders in the process.

    I would suggest to prevent this from happening:

    • Allow the individual pack's path to be moved, or
    • Show a message when editing the download path setting to state that any existing packs will stay where they are

    Thank you very much, this has been super useful to me!

    enhancement 
    opened by NoiTheCat 1
Releases(v0.4.0)
Owner
Edward Ly
Software developer with a passion for AI, rhythm games, and electronic music.
Edward Ly
A single-page web-app made to browse and download your Netlify deploys. Built with Vue.js and Vite, deployed on Netlify.

A single-page web-app made to browse and download your Netlify deploys. Built with Vue.js and Vite, deployed on Netlify.

Hrishikesh Kokate 0 Aug 30, 2022
🚕 Simple automation desktop app to download and organize your receipts from Uber/Lyft. Try out our new Ride Receipts PRO !

Simple automation desktop app to download and organize your receipts from Uber and Lyft. Download To download Ride Receipts or purchase Ride Receipts

Hello Efficiency 138 Nov 21, 2022
fendThorne - a decentralised cloud storage system built for army personnel to securely upload, download and share files

fendThorne is a decentralised cloud storage system built for army personnel to securely upload, download and share files. It uses Arcana SDK and Google OAuth under the hood for storage of files and authentication of users respectively.

shourya 5 Apr 5, 2022
A platform where staff of Bamidele Olumilua Universtiy Bouestif staff can register login and update profile

A platform where staff of Bamidele Olumilua Universtiy Bouestif staff can register login and update profile, also enables the admin to carry out CRUD operations on the system

Ikwegbu George 2 Feb 10, 2022
A Single-Page Application CRUD (create, read, update, delete) project built on vuejs, vuetify frontend components, and json-server api mock

todovue Versão 3 do aplicativo todovue, feito inteiramente em componentes Vuejs Essa aplicação está sendo criada com base no desafio proposto em sala

Marcelo Silva 2 Oct 11, 2022
Organize Your GitHub Stars With Ease

Astral An open source application that allows you to organize your GitHub Stars with ease. Use the hosted version free, or self-host your own instance

Astral 2.9k Jan 4, 2023
Buka is a modern software that helps you manage your ebook at ease.

Buka - EBook Management About Buka Buka is a modern software that helps you manage your ebook at ease. With a simple, clean and straight-forward user

Oguzhan Inan 1k Jan 1, 2023
Download file Block for Kirby block editor

Download file Block for Kirby block editor How to dev Install parcel globaly npm install -g parcel-bundler Start watch process npm run dev Start buil

baptiste lhopitault 4 Dec 6, 2022
Display & customize video formatted files with ease on Laravel Nova

Video Field for Laravel Nova Upload and display videos in laravel nova This package is an extended version of built-in nova file field that helps you

Mostafa Zeinivand 12 Nov 8, 2022
The Spotify to YouTube Music downloader that doesn't download all kinds of bullshit from YouTube

Daunroda The Spotify to YouTube Music downloader that doesn't download all kinds of bullshit from YouTube (karaoke/instrumental versions, music video

Daunroda 4 Oct 28, 2022