* Control score sounds from UpdateGame instead of the thread pool _PlayProgressBarSound started a Task that waited for the progress bar duration and then closed whatever stream was stored in _ProgressBarSoundStream. When switching rounds on the score screen before that time had passed, an old task closed the progress bar sound of the new round too early and played the applause of the previous round, while the applause of the new round never played. Remember when the progress bar sound was started and check it in UpdateGame on the main thread instead. Starting a new progress bar sound and leaving the screen now also stop a running applause. * Sync progress bar sound with the score bar animation The sound duration was computed from the points (10,000 points = 5 seconds), while the bar animation duration depends on the bar size in the theme and only starts when the bar is first drawn. Both only matched approximately and drifted apart with other themes. Add CProgressBar.AnimatesMovement and CProgressBar.IsAnimating. The score screen now stops the progress bar sound and starts the applause as soon as no visible score bar is animating anymore. If the theme has no movement animation, the previous duration is used. * Make stream id allocation in CPlaybackBase thread-safe Load assigned stream ids with _NextId++ outside of the lock. Load is also called from other threads, so two streams could get the same id and a later Close or Play could hit the wrong stream. Use Interlocked.Increment instead. Ids still start at 0. * Do not play the progress bar sound for 0 points With 0 points the score bars do not move, so the progress bar sound started and stopped again right away, which could be heard as a short click. Do not start it at all if the highest score is 0.
1. About 2. Download 3. Contributing 4. Help & Support
1. About
Vocaluxe is a free and open source singing game, inspired by the original UltraStar (developed by corvus5) and the great Ultrastar Deluxe project - yet it is an entirely new development in C#. It allows up to six players to sing along with music using microphones in order to score points, depending on the pitch of the voice and the rhythm of singing. It features mouse, keyboard, gamepad and Wiimote navigation, a multi-language interface, and singer profiles with avatars and supports songs in CP1250/52 and UTF8 encodings. Vocaluxe offers diversified party modes and can optionally be controlled via a browser (desktop and mobile supported).
Supported Operating Systems / Requirements:
- Windows 7, Windows 8, Windows 8.1, Windows 10 and Windows 11 with .NET 4.0
- Linux (no official support)
- 1 GHz CPU, 512 MB RAM, Graphics card with OpenGL 2.1 or DirectX 9.0 support
- Visual C++ Redistributable Package 2010 (Nightly builds additionally require VC++ 2015–2022)
2. Download
You can download precompiled Windows binaries at here: https://vocaluxe.org/#download
3. Contributing
You want to fix a bug or add a cool new feature to Vocaluxe? Awesome! Check out milestones or our Game Design Document!
Build Vocaluxe
Building Vocaluxe is easy: Just follow the guide on our wiki to clone the repository and create your own Vocaluxe build: Build Vocaluxe (Windows)
Submit your change
Upload your changes to your fork and open a new pull request.
The development of Vocaluxe uses this git branching model: http://nvie.com/posts/a-successful-git-branching-model/
Questions
You have a problem or a question implementing your change?
Just open an issue or mention @Vocaluxe in a comment on GitHub.
4. Help & Support
General FAQ: https://www.open-music-games.org/help/frequently-asked-questions Discord Help Desk: https://discord.gg/tNEXZw2QJX Homepage: https://vocaluxe.org/ GitHub Wiki: https://github.com/Vocaluxe/Vocaluxe/wiki GitHub Issues Tracker: https://github.com/Vocaluxe/Vocaluxe/issues Translations: https://www.transifex.com/projects/p/vocaluxe/ Song-Database (USDB): http://usdb.animux.de/
