This was a learning project, it has a mixture of different architectures for the purpose of learning. Example: I first made the game in full in OOP. As soon as I had a working game I then rewrote large portions with protocols, then I rewrote large sections again with ECS, etc.
It is also not well organized. It is what it is.
- Instruments
- Drums and Pro Drums (MIDI Support)
- Guitar
- Bass Guitar
- Piano (MIDI Support)
- Playmodes:
- All Difficulties
- Random Play
- 3D Selection Menu with sorting by:
- Artist
- Song
- Difficulty
- 2D Selection Menus with Filters by:
- Play History
- Recently Added
- All Songs by Selected Artist
- File Support
- Clone Hero and Phaseshift Folder structures (not clone hero charts
- OGG support through FFMPeg (i couldn't crack this one)
- M4a
- AAC
- MP3
- CoreData
- Files are parsed and stored in database (no parsing of folders on startup)
- All scores and preferences (no individual data files)
- Discord Reach Presence
- Display song playing with timestamps
- Display final score
- Shows other actions like browsing library
Song Selection
besides the 3d selection menu, there are list selection menus for 'more songs by selected artist', 'recently added' and 'play history'



