A user-friendly desktop application for creating and managing your Beat Saber playlists for both PC and Quest!
- Playlist Management: Create, delete, and edit your playlists with ease.
- Customization: Personalize your playlists by changing their name and cover image.
- Song Library: Browse and search through your entire collection of custom songs.
- Drag & Drop: Intuitively add songs to a playlist by simply dragging them from your library.
- Song Ordering: Arrange the songs in your playlist exactly how you want them.
- Save & Refresh: Quickly save your changes or refresh your libraries to reflect the latest updates.
- Set Game Path: Launch the application and click the folder icon 📂 to select your Beat Saber installation directory.
- Manage Playlists:
- Select a playlist from the list on the left to start editing.
- Click the
➕button to create a new playlist. - Click the
🗑️button to delete the selected playlist.
- Add Songs: Drag songs from the "Available Songs" list on the right and drop them into the playlist content area.
- Arrange & Remove: Use the arrow buttons (
🔼,🔽) to reorder songs or the remove button (❌) to take them out of the playlist. - Save: Click the save icon
💾to write your changes to the playlist file.
This tool is designed to work with Beat Saber installations on PC (e.g., Steam, Oculus) and can manage playlists that are also used on Quest.
This project demonstrates a unique approach by applying the Model-View-ViewModel (MVVM) pattern to a Windows Forms application. While typically associated with newer frameworks like WPF and MAUI, this architectural choice brings several key benefits:
- Separation of Concerns: The UI (View) is decoupled from the application logic (ViewModel), leading to a cleaner and more organized codebase.
- Enhanced Testability: With the logic isolated in the ViewModel, it can be unit-tested independently of the UI, ensuring greater stability and reliability.
- Improved Maintainability: This separation makes the project easier to understand, debug, and extend over time.
It serves as an interesting case study for applying modern design patterns to classic UI frameworks.
This project is licensed under the LGPL-3.0 License. See the LICENSE file for more details.
