McSchneidar d48426b04d Fixes for progress bar and applause sounds (#906)
* 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.
2026-10-16 05:21:34 +02:00
2024-11-01 11:23:51 +01:00
2024-10-13 12:52:36 +02:00
2024-01-08 20:53:06 +01:00
2012-02-24 07:54:24 +01:00
2015-03-05 03:13:53 +01:00
2020-02-10 19:06:47 +01:00
2023-12-28 20:58:13 +01:00
2018-09-17 10:45:23 +02:00

Vocaluxe Logo

Build status Nightly build Latest stable release Known bugs Feature requests License

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/

S
Description
Vocaluxe is an open source singing game inspired by SingStar™ and Ultrastar Deluxe.
https://vocaluxe.org Readme
761 MiB
0 Stars 2 Watchers 0 Forks
Languages
C# 97.3%
Vue 1.1%
C++ 1%
TypeScript 0.3%
PowerShell 0.1%