Automapper with fully adjustable difficulty (inpsired by star difficulty) ranging from easy maps (1) to Expert++ maps (10+)
New: Get maps from the discord bot (if online): https://discord.gg/cdV6HhpufY
Recommendation: Generate BeatSaber maps using AI with the convenience of Google Drive storage.
Use the Google Colab template included in the repository without the need of hardware.
Alternative: Install the project locally with anaconda (not recommended)
Already Finished:
Publish InfernoSaber
Add obstacles in unused spaces
Simple cardio obstacle model
Mid of 2023:
Create InfernoSaber website/independent server (?)
Rework AI model to create "impossible" note speeds
End of 2023:
Create Cardio Obstacle AI Model
Check out Reinforcement Models
Add bombs in unused spaces (?)
Extract maps from Beatsaber/Bsaber to feed them into AI models. Map versions with custom modded data (values out of normal boundaries) are excluded, so that the data is as smooth as possible.
Automapper is trained on expert+ maps for average 6 notes-per-second in prediction
The automapper consists of 4 consecutive AI models:
- Deep convolutional autoencoder - to encode the music/simplify all other models
- Temporal Convolutional Network (TCN) - to generate the beat
- Deep Neural Network (Classification) - mapping the notes/bombs
- Deep Neural Network (Classification) - mapping the events/lights
An overview over the current status of map generation (and past ones) can be found at: https://youtu.be/2uK22jXeNLw
anaconda_environment.yaml
[Outdated] Download models from GDrive link in model_data/Data/model/link_to_model.txt
[Currently] Create Colab notebook and download model data from the created GDrive repository.
run main.py
tools/config/paths.py
tools/config/config.py
especially max_speed, change the rest with caution!
can be automatically created with: tools/config/check_folder_structure.py
01/preprocessing/shift.py (whole preprocessing)
see end of main.py file for more information on training order
tools/PowerBeats_extension/PowerBeats_shift.py
The beatsaber path is taken from the paths.py file, the destination folder needs to be set inside the file
The song name detection is quite simple, for better naming extract the files from the preprocessing algorithm (not implemented)