31 Commits
Author SHA1 Message Date
McSchneidarandFlorian Ostertag 4ee6689ff4 Seamless audio loops and own credits music (#945)
Loops
- Looping is now done by the playback backends instead of restarting
  the stream with Stop/Play. Loop can be toggled at runtime (SetLoop in
  ISound/IPlayback/IAudioStream), so the repeat button keeps working.
- GStreamer: gapless loops via playbin's about-to-finish signal.
- PortAudio/OpenAL: the decoder is reopened at the end of the file
  (Acinerella's seek does not reset FFmpeg after EOF) while the buffered
  data keeps playing, so the loop has no gap. The reported position wraps
  correctly.

Credits screen
- New event music player in CBackgroundMusic that replaces the current
  background music and resumes it afterwards.
- The credits screen loops Sounds/CreditsMusic.mp3
  ("Atmosphere Calm Background" by lvymusic, Pixabay Content License).
- As the credits screen was touched anyway, its content was updated as
  well.

Fixes for PortAudio/OpenAL playback found on the way
- Acinerella delivers 32 bit float samples for mp3, so every file was
  rejected with "Unsupported BitDepth". Float samples are converted to
  16 bit now.
- Acinerella reports a missing frame (EAGAIN) like the end of the file,
  so decoding is retried a few times before treating it as the end.
- OpenAL stopped after half a second because the decoder thread was
  never woken up to refill its buffer. A source that ran out of data is
  restarted as well.

Part of #677

Co-authored-by: Florian Ostertag <flokuep@users.noreply.github.com>
2026-10-27 09:43:02 +01:00
McSchneidar 522003a25f Add Jukebox Mode (#930)
* Add jukebox mode

Songs can now be played without singing, e.g. as a break filler at parties.

- New Jukebox button in the main menu next to Sing and Party, locked without a profile like both of them
- Choose all songs, a category or a playlist, random or in order, and optionally only a part of each song (medley part, 30, 60 or 90 seconds)
- Video in full screen, lyrics without notes and a short song info whenever a new song starts
- Control bar with previous, pause, next, skip intro, audio mode (normal or instrumental), shuffle, repeat, lyrics on/off, queue and "Sing now"
- Queue with search: Enter puts a song next, Enter again plays it right away, songs can also be removed and reordered
- The queue adapts its size to the free space above the lyrics or the control bar
- Control bar and queue fade out after a few seconds without input and come back with the next key press or mouse move
- Works with keyboard, mouse and gamepad
- Smooth transition between songs, the next song is loaded in advance
- "Sing now" starts the current song with the player selection and returns to the jukebox afterwards
- The logo in the main menu is now centered
- New LyricsIcon and QueueRow textures in all Vocaluxe 2024 skins

* Fix SonarCloud issues
2026-10-21 08:49:50 +02:00
McSchneidar e7fc959def Fix possible crashes and glitches when playing song previews (#898)
* Add AutoplayPending

* Add locks

* Add Base Update

* Add Base Update

* Add locks
2026-10-06 05:20:14 +02:00
Quentin Bray 1bba340cf8 Better handle multiple tags respecting US format (#878)
* Better handle multiple tags respecting US format

Based on unversioned, V1 & V2 of US formats : https://github.com/UltraStar-Deluxe/format
Should address #623
Creator now takes multiple values
Maintain backward compatibility

* Update file path properties to match US formats
2026-06-23 21:04:59 +02:00
Quentin Bray 6ffa63b923 Apply R# clean-up for reliability (#877)
* Apply R# clean-up for reliability

- Migrate to NUnit4 Assert.That
- Update dependencise versions
- Fix LangVersion to 9.0 (until net core migration)
- Reformat code
- Apply 'var' style (easier for refactoring)
- Remove redundant parentheses
- Add braces on every condition blocks (1 line)
- Uses new null checking patterns
- Uses AutoProperties when possible
- Uses string scalar type instead of class
- Clean usings
- Add .orig files in git ignore
- Rename some properties to respect defined conventions and US format definition
	- ID -> Id
	- BPM -> Bpm
	- Finish -> End

* Update R# settings according to the clean-up made
2026-06-22 19:52:06 +02:00
Stefan b3143bc908 Remove checking of CBase.Config.GetVideoPreview() 2020-01-15 22:30:43 +01:00
lukeIam 3bec24f4ff Fix: Config.Video.VideoPreview is ignored (fixes #391) 2018-06-30 11:10:09 +02:00
lukeIam b4bb001c51 Remove SerilogTimings and add a benchmark that fit our needs. 2018-01-16 22:31:16 +01:00
Florian Küpper 336376a1af Fixed starting next bg-music-track. 2015-02-05 19:57:12 +01:00
Florian Küpper b11e40b313 Fix video-preview in song-screen. 2015-01-03 14:53:38 +01:00
Flamefire df82690cd0 Refactor background music to fix some possible issues and smooth out transitions 2014-12-26 22:39:44 +01:00
Flamefire 6d494b64b3 Rewrite round generation and add unit test 2014-12-16 23:36:49 +01:00
Flamefire 1bb296c04d Add class for calculating combinations and a unitTest 2014-12-14 14:28:02 +01:00
Flamefire 4a78dd4b31 Fix missing song length and wrong volumes (int=0-100, float=0-1)
Also fade in preview music
2014-11-27 23:06:01 +01:00
Flamefire 26484ad137 Fix blank screen issue
Also fix some other bugs and improvements (easier party modes, volume fixes, new fields for screens to control volume and popups)
2014-11-27 21:47:02 +01:00
Flamefire d208f9d7b9 Reformatting
Also adds license headers
2014-10-19 18:51:14 +02:00
Flamefire 6a3bf7b2c0 Introduce CVideoStream for easier video handling (already includes a texture, important for common usage of streams) 2014-10-05 14:20:57 +02:00
Flamefire 7f8e974fe1 Rename CTexture to CTextureRef to reflect it is only a reference 2014-09-13 17:51:55 +02:00
Florian Küpper abe8987748 Fixed sing-button in bg-popup. 2014-08-24 20:22:38 +02:00
Florian Küpper 46544aee82 Fix repeating of bg-music. 2014-08-24 17:38:37 +02:00
Florian Küpper 6c4fe011bf Some improvements. 2014-08-24 12:42:05 +02:00
Florian Küpper b30efb1913 some fixes. 2014-08-22 21:01:24 +02:00
Florian Küpper f926263706 Fix video sync. 2014-08-22 18:05:50 +02:00
Florian Küpper eef988fcdb Some code-cleanup. 2014-08-20 19:14:20 +02:00
Florian Küpper 8e8fdc1277 Play song-preview instead of bg-music (if enabled) on names-, score- and highscore-screen. 2014-08-09 19:50:40 +02:00
Florian Küpper 04c2b85e2b Close stream when finished (*-player) 2014-08-09 17:16:51 +02:00
Florian Küpper 4c01396e46 Added preview-player which is used for playing preview in song-menu. 2014-08-09 17:12:27 +02:00
Florian Küpper 240f47090d Fix for background-music-files. 2014-08-05 11:41:20 +02:00
Florian Küpper 3612b9244b Added sound- and song-player to VocaluxeLib. Use it for Background-Music. 2014-08-05 10:54:34 +02:00
Flamefire 7c380f62f1 Add dywapitchtracker
Improvements for PtAKF (finer resolution at end)
Bugfix for WavFile
2014-04-11 22:59:01 +02:00
Flamefire d584206a7f Fix bugs in AKF detection
Add CWavFile.cs for reading wav files
Add more test cases
2014-04-09 18:28:35 +02:00