/beat-smash

A Unity-implemented rhythm game which generates beatmaps automatically through an algorithm.

Primary LanguageC#

Beat Smash

Beat Smash is an open-source rhythm game, for which beatmaps are automatically generated through an algorithm utility. Output files of the algorithm utility may be loaded and played in Beat Smash!

Beatmap Algorithm

The beatmap algorithm is a utility implemented in Python using the madmom library for music signal processing. The algorithm generates beatmaps using a combination of onset detection, BPM detection, and chord analysis.

Usage

The beatmap algorithm may be run as an executable script from the command line.

./bma [INPUT FILE] [OUTPUT FILE] [DIFFICULTY LEVEL]

INPUT FILE corresponds to the relative path to the music file which should be processed.

OUTPUT FILE corresponds to the name you wish for the output beatmap.

DIFFICULTY LEVEL can vary between easy, medium, hard, and impossible.

Rhythm Game

The rhythm game is implemented in C# with the Unity game engine. Users can load beatmaps generated by the algorithm by starting the game and advancing to the menu screen, wherein they will be given the option to add a song. There, the user may upload a audio file and its corresponding beatmap to add the song to the game.

Game Demo

Beat Smash Demo View demo here


Beat Smash was created by Miranda Ku, Michelle Tran, Ivy Wang, Sabrina Chiang, and Shannon Tom.