All Projects → edward-ly → stepmania-song-manager

edward-ly / stepmania-song-manager

Licence: MIT license
Download and update song packs for StepMania with ease.

Programming Languages

Vue
7211 projects
javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
HTML
75241 projects

Projects that are alternatives of or similar to stepmania-song-manager

Tana
Bringing the Picture-in-Picture experience to the desktop.
Stars: ✭ 109 (+373.91%)
Mutual labels:  electron-app, electronjs
Space
A real time chat app for developers built using React, Redux, Electron and Firebase
Stars: ✭ 161 (+600%)
Mutual labels:  electron-app, electronjs
Manta
🎉 Flexible invoicing desktop app with beautiful & customizable templates.
Stars: ✭ 5,160 (+22334.78%)
Mutual labels:  electron-app, electronjs
memento-svelte-electron-typescript
Template to create a desktop app with Svelte, TailwindCSS, Electron and TypeScript (with electron-updater, electron-reload and electron-builder)
Stars: ✭ 27 (+17.39%)
Mutual labels:  electron-app, electronjs
Interactive Data Editor
A Software to interactively edit data in a graphical manner
Stars: ✭ 35 (+52.17%)
Mutual labels:  electron-app, electronjs
electron-react-parcel-boilerplate
Boilerplate code to create basic, production ready Electron app using React, Parcel application bundler.
Stars: ✭ 48 (+108.7%)
Mutual labels:  electron-app, electronjs
Thismypc
ThisMyPC provides a neat web interface that can be used for browsing your desktop drives from any device in your browser itself. With the help of NodeJs, the file details are displayed in JSON format that can then we easily displayed in web browsers.
Stars: ✭ 128 (+456.52%)
Mutual labels:  electron-app, electronjs
electron-application
Example implementation of electronjs.
Stars: ✭ 11 (-52.17%)
Mutual labels:  electron-app, electronjs
simfile
A modern simfile parsing & editing library for Python 3
Stars: ✭ 26 (+13.04%)
Mutual labels:  stepmania, simfile
Revolut Emergency
👨‍🚀 Unofficial Revolut PC app – Freeze cards, list transactions, get notifications, contact support
Stars: ✭ 252 (+995.65%)
Mutual labels:  electron-app, electronjs
Darkorbit-client
Open source darkorbit client (cross-platform and with better performance)
Stars: ✭ 59 (+156.52%)
Mutual labels:  electron-app, electronjs
Api-Doc
A Technology for Rest API Documentation 💻 📜 "Dockerized"
Stars: ✭ 14 (-39.13%)
Mutual labels:  quasar-framework, quasar
albumArtCreator
A simple tool to make it easy to create good looking album art
Stars: ✭ 26 (+13.04%)
Mutual labels:  electron-app, electronjs
svelte-electron-boilerplate
🧬 Create a desktop app with this user-friendly Svelte boilerplate for electron
Stars: ✭ 70 (+204.35%)
Mutual labels:  electron-app, electronjs
DropPoint
Make drag-and-drop easier using DropPoint. Drag content without having to open side-by-side windows
Stars: ✭ 303 (+1217.39%)
Mutual labels:  electron-app, electronjs
Electron Playground
This is a project to quickly experiment and learn electron related APIs
Stars: ✭ 938 (+3978.26%)
Mutual labels:  electron-app, electronjs
The-Wall
The Wall automatically changes desktop wallpaper based on the tags selected by the user
Stars: ✭ 48 (+108.7%)
Mutual labels:  electron-app, electronjs
electron-admin-element-vue
Electron Vue3.x Element-UI Admin
Stars: ✭ 37 (+60.87%)
Mutual labels:  electron-app, vue3
Altus
Desktop client for WhatsApp Web with themes, notifications and multiple account support
Stars: ✭ 203 (+782.61%)
Mutual labels:  electron-app, electronjs
block-photos
A photos app built with Ionic and Blockstack as backend.
Stars: ✭ 24 (+4.35%)
Mutual labels:  electron-app, electronjs

StepMania Song Manager

build code style: prettier Liberapay

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.

Available Songs

Current list of downloadable packs (officially supported and maintained by me):

  • DanceDanceRevolution (Arcade) - Aims to replicate the DDR arcade experience with a song list that mirrors that of the DDR A20 PLUS song list (meaning that future updates will include both song additions and song removals).
  • The Complete led_light Collection - A continuously growing collection of DDR-style simfiles made by me! Recommended for beginners with a wide variety of popular songs!
  • led_light's Tech Experiments - A small, separate collection of ITG-style simfiles made by me. For advanced players only.

Donate

This is a one-man job, so if you like the app, please consider donating, which will help pay for the costs of hosting and downloading simfiles online.

Liberapay Liberapay
Ko-fi Ko-fi
PayPal PayPal

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

If using git-flow, disable automatic tagging to the production branch:

git config gitflow.hotfix.finish.notag true
git config gitflow.release.finish.notag true

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 (most likely ~/.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: /<pack-name>/<song-name>/<song-files>. 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 <bucket-name> 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:::<bucket-name>",
                "arn:aws:s3:::<bucket-name>/*"
            ]
        }
    ]
}
  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>

License

See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].