58 Commits
Author SHA1 Message Date
McSchneidar cf2fa796e2 .NET10 Migration (#946)
Runtime and build
- Move all projects to .NET 10 with SDK-style project files and a shared
  Directory.Build.props (WIN/LINUX, x86/x64 defines)
- Load managed and unmanaged dependencies from libs/managed and
  libs/unmanaged through assembly and native library resolvers
- Compile party modes with Roslyn instead of CodeDom
- Update AppVeyor to the .NET 10 SDK and dotnet test
- Download the FFmpeg and gstreamer runtimes from the dependencies
  repository during the build
- Remove the VC++ 2015-2022 runtime check, no dependency needs it anymore

Graphics and windowing
- Replace the Direct3D 9 renderer with Direct3D 11 (Vortice)
- Pace Direct3D 11 frames with a frame latency waitable swap chain
- Move window, input and message boxes to SDL3
- Replace System.Drawing with SkiaSharp and WinForms with SDL3 and a
  software renderer

Video and audio
- Replace Acinerella with FFmpeg 8.1.3 (FFmpeg.AutoGen)
- Add hardware accelerated video decoding (D3D11VA, DXVA2, VideoToolbox,
  VAAPI, VDPAU) with software fallback
- Convert YUV video frames to RGB on the GPU in Direct3D 11 and OpenGL
- Add the video options HardwareDecoding, GpuColorConversion,
  DecoderThreads and VideoDownscaleResolution
- Update OpenAL to OpenTK 4 and NAudio recording to WasapiRecorder

Fixes
- Fix the song preview start and shorten the reporter buttons
- Fix a crash when opening the highscore without a selected song
- Use the options slide highlight in the party mode screens to avoid
  brightness flicker on VRR displays
- Disable GameInput in the x86 build, SDL3 crashes in GameInputCreate
  on 32-bit systems with the GameInput runtime installed
- Fix a truncation warning in PitchTracker
2026-11-02 08:11:20 +01:00
McSchneidarandFlorian Ostertag 336d08040e New Webserver and WebApp (#942)
* Replace the WCF webserver with an ASP.NET Core webserver (VocaluxeWeb)

- New project VocaluxeWeb: ASP.NET Core 2.3 (Kestrel) on .NET Framework 4.8.1, HTTP or HTTPS
  with a self-signed certificate, REST API (/api/v1) with Swagger, live events (Server-Sent Events)
- Access to the game only through IVocaluxeRemote; requests run on the main thread once per frame
- Sessions with roles (guest, player, admin) and configurable permissions, PINs hashed with PBKDF2
- Queue as a playlist with requesters and singers, fair order (one song per person and round)
- Admin: settings, server status, logged-in devices, activate/deactivate and delete profiles
- Profile pictures: own photo or one of the Vocaluxe avatars
- Game: WebApp queue screen (song options, playlist group) to start the next song with the chosen
  singers, return to it after singing, warning when the webserver is off, remote keyboard
- Old WCF server, WebserverInitalConfig and URL reservations removed; libraries moved to libs/managed
- Unit tests for PIN hashing, settings and permissions, queue order and device names
- AppVeyor: Visual Studio 2022 image and Node.js 24 (the build compiles the WebApp)
- Documentation in VocaluxeWeb/README.md

* New WebApp (Vue 3, TypeScript, Vite) replacing the old jQuery Mobile website

- Login with profile and PIN, create profiles
- Songs with search, filters, sorting and 30 second previews
- Queue: add songs with game mode, audio and singers, edit, reorder, start in the game
- Playlists: create, edit, add to the queue
- Now playing with live updates, remote control and keyboard
- Players: own profile with picture (photo or Vocaluxe avatar), roles for admins
- Admin settings: permissions, server status, devices, profiles
- Help page, responsive layout for phones, tablets and desktops, light and dark mode
- Texts in WebApp/src/locales/en.json, translated with Transifex
- Old website and PhoneGap config removed

---------

Co-authored-by: Florian Ostertag <flokuep@users.noreply.github.com>
2026-10-26 05:40:11 +01:00
McSchneidarandFlorian Ostertag 944022f30b Add knockout tournament party mode (#913)
A new party mode for 3 to 16 players who sing against each other in one-on-one duels. Whoever scores more points moves on, the loser is out, until only the champion is left.

- The bracket is shown mirrored: both halves lead towards the final in the center, where the champion is crowned
- Players are drawn randomly; if the number of players doesn't fill the bracket, some players get a bye in the first round
- Songs are picked randomly from all songs, a category or a playlist, sung as normal, short or medley version, and no song is played twice
- Each player has up to 3 jokers for the whole tournament to skip a song they don't like
- On a tie, the duel is sung again
- The winner of each duel visibly moves on to the next round, and the champion is celebrated at the end

Also fixes "Select random" in the player selection of party modes, which only filled half of the slots.

Co-authored-by: Florian Ostertag <flokuep@users.noreply.github.com>
2026-10-18 10:36:19 +02:00
McSchneidarandFlorian Ostertag d61f90e6fc Add rule roulette party mode (#916)
A new party mode for 2 to 12 players that only needs 2 microphones. Players sing duels against each other, and before every duel a wheel decides the rule for this round. Every player sings equally often, and the player with the most points wins.

- 20 rules: from short songs, medleys, double packs, duets and free song choice to rules that change what counts (golden notes, line bonus, target score, fewer points win, teamwork) or how many points there are (double points, all or nothing, point steal, lead counts, underdog bonus, jokers)
- The rules on the wheel are drawn randomly for each game, or chosen manually: every rule can be set to always, random or never
- Every rule on the wheel comes up once before any rule comes up again; rules already used are dimmed
- Rules that need special songs are only used if the song selection has enough of them
- The wheel spins with a running light that slows down, and the winner is celebrated at the end

Co-authored-by: Florian Ostertag <flokuep@users.noreply.github.com>
2026-10-18 08:30:04 +02:00
McSchneidarandFlorian Ostertag 3bdf22c870 New party mode: Partner Swap (#915)
* Add partner swap party mode

A new party mode for 3 to 12 players that only needs 2 microphones. Everyone plays for themselves, but always sings together with a partner. Both singers get the score of the pair, and the partners change every round.

- In each round every player sings once, with a partner they haven't sung with yet; with an odd number of players someone takes a break, in turns
- Ranking by the average score per song, so breaks are no disadvantage
- Optional harmony bonus of 500 points when both singers are no more than 500 points apart
- Duet songs are sung with both voices; duets can be mixed in, used exclusively or left out
- Up to 3 jokers per player to skip a song
- The best pair is shown all the time, and the winner and the best pair of the night are celebrated at the end

* Rename the harmony bonus points constant to avoid shadowing

---------

Co-authored-by: Florian Ostertag <flokuep@users.noreply.github.com>
2026-10-18 08:20:24 +02:00
McSchneidarandFlorian Ostertag 3810f75e04 New party mode: Team Survival (#914)
* Add team survival party mode

A new party mode for two teams that only needs 2 microphones. In every duel one player of each team sings against one of the other team. Whoever loses a duel loses a heart, players without hearts are out, and the team whose players are all out loses.

- Every player sings once per round before anyone sings again, the duels are drawn randomly
- Teams of different sizes are possible, in the smaller team some players sing a second time per round
- Hearts can be the same for everyone or set per player, to balance uneven teams or strong and weak singers
- Up to 3 jokers per player to skip a song
- On a tie, the duel is sung again
- A lost heart is animated, and the winning team is celebrated at the end

* Trigger CI rebuild

---------

Co-authored-by: Florian Ostertag <flokuep@users.noreply.github.com>
2026-10-18 07:49:44 +02:00
Florian Küpper b17b42a5d9 Fix #397 2018-09-17 10:45:23 +02:00
lukeIam 6ebedd81d7 Removed Vocaluxe.testsettings from solution 2018-03-29 14:37:46 +02:00
lukeIam cc6ee1c3db Split test build configuration in "x64" and "x86" (manual project file edit) 2018-03-26 17:29:16 +02:00
lukeIam 50c0e24e21 Removed unused build configurations 2018-03-23 14:15:07 +01:00
lukeIam 881b5a9d5e Added new test-project (with nunit3) and ported the CCombinations tests 2018-03-16 13:29:30 +01:00
lukeIam 3cb8df1241 Removed TestProject from sln (for some reason this was not done by VS) 2018-03-15 15:38:09 +01:00
Florian Küpper 6ba8eebb20 Removed ChallengeMedley, could be configured in Challenge now 2017-09-12 09:55:01 +02:00
Florian Küpper 92e8bcd9f7 Fix merge error 2015-12-09 00:24:36 +01:00
Florian Küpper 6e1ae9a17a Fix merge errors 2015-12-07 19:23:13 +01:00
Florian Küpper 4d19e4af2a Revert vs-version-change 2015-12-06 12:33:08 +01:00
Florian Küpper 5ad85ce3db Upgrade PitchTracker-Project to compile with newer VS and fix compiling 2015-09-09 19:51:47 +02:00
lukeIam 06452aacde Removed deleted files from project 2015-08-27 19:15:29 +02:00
Stephan Sundermann 13f72c3cad Merge pull request #141 from lukeIam/integratedServer
Integrated server
2015-02-26 18:58:56 +01:00
lukeIam 86a98e7bf8 - Integration of the server into the main project
- Made the webserver calls threadsafe (with Tasks)
- Removed some old and unused server classes
2015-02-21 18:23:21 +01:00
derivator 5049ba5895 Make Vocaluxe buildable and playable on GNU/Linux
Build with MonoDevelop or make.
Summary of the biggest changes:

* Correct for case differences between System.Data.SQLite and
  Mono.Data.Sqlite
* Exclude Direct3D and DirectSound from linux builds
* Provide linux versions of some windows-specific build events
* Exclude VocaluxeTests from linux builds so xbuild will work
* Add ability to build the native PitchTracker on linux
* Fix some problems with acinerella module
* Fix some windows-specific dependency checks that fail on linux
* Set OpenGL color format to 24-bit on linux
2015-02-13 03:15:19 +01:00
Flamefire f9e85d8168 Add unit test for serializer 2014-10-27 17:54:31 +01:00
Florian Küpper ed6a845168 Do some cleanup (remove unneeded, old client-server-stuff), another update of .gitignore 2014-08-03 14:56:07 +02:00
Flamefire dd6503c911 Removed Gst Wrapper 2014-05-07 19:56:57 +02:00
Flamefire 9fe9455eaf Merge branch 'RecordImprovements' into develop
Conflicts:
	Vocaluxe/Lib/Sound/CPortAudioHandle.cs
	Vocaluxe/Lib/Sound/Record/CBuffer.cs
2014-04-29 20:07:56 +02:00
Flamefire 0a59b250d3 Fix build configurations (use anycpu where it was used) 2014-03-24 02:19:47 +01:00
Flamefire 8eb42b5a5f Add a native version of the pitch detection algo as C# is to slow for exact real time detection(Speedup: 10) 2014-03-23 22:01:44 +01:00
Flamefire 154a06821a Make all projects build in correct configurations 2014-03-20 02:34:01 +01:00
lukeIam d0c41ff1fb -Fix: ServerLib has only Release and Debug configs(and no WIND/LINUX flags) 2013-12-31 12:38:23 +01:00
Stephan Sundermann abad5fca23 Added initial gstreamer-sharp audio backend (just a preview) 2013-12-22 01:02:30 +01:00
Stephan Sundermann 69fd0aff51 Build ServerLib and WebserverConfig in x86 2013-12-19 13:48:50 +01:00
lukeIam fc35885425 - Fixed rebase/merge errors 2013-12-13 18:26:47 +01:00
lukeIam 35657f8698 Webserver:
- Create/edit/delete playlists in the app
- Fixed projektconfiguration (some project builds were disabled)
- hide menue lines if the user has no right
2013-12-13 18:01:43 +01:00
lukeIam 1ac6d0c119 Corrected BuildDependencies (something went wrong here) 2013-12-13 17:58:20 +01:00
lukeIam a9902cf1ef Removed "Release" and "Debug" Configs 2013-12-13 17:56:11 +01:00
lukeIam c41af99536 ServerLib Cleanup: removed unused classes + rename 2013-12-13 17:43:12 +01:00
lukeIam 33252ab19c https stuff and cert generator for the webserver 2013-12-13 17:43:09 +01:00
lukeIam 28da5b776f WCF-Server inital commit (Wenserver without usermanagement and with some pages) 2013-12-13 17:34:07 +01:00
Flamefire 0a97a2e46d Fix renaming of Editions etc. 2013-10-12 14:50:10 +02:00
Florian Küpper e991010aa9 Change compile-options: Old behavior is Release/Debug; New behavior (save data to user-folde) is installer now. 2013-08-31 13:42:43 +02:00
flokuep 00f3a3aed2 First step of changing paths. Songs, screenshots, playlists, config and logs are now in %User%/Documents/Vocaluxe
You can compile with PortableWin to get a release-exe with old behavior.
2013-08-31 13:42:30 +02:00
Flamefire 9704a1aeb0 Fixed D3D 2013-05-20 19:10:49 +02:00
Alexander Eckart 9565956467 build GstreamerHelper.dll x86 2013-04-06 20:02:12 +02:00
Alexander Eckart f0a56b1aed switched to .Net 4.0, fixed some typos 2013-04-06 18:56:10 +02:00
Flamefire baaa26883a Removed unused usings 2013-03-20 00:45:40 +01:00
Stephan Sundermann e653ac87a2 Added initial gstreamer audio playback.
x86 might not work due to misconfiguration because I could not test it since acinerella is broken in x86 currenty. Gstreamer video support is yet to follow.
Please report back any bugs you experience. To compile you will need Visual C++, I hope all files are included
2013-02-09 23:32:02 +01:00
Florian Küpper 765323f93e Merge branch 'develop' of github.com:Vocaluxe/Vocaluxe into tic-tac-toe
Conflicts:
	Vocaluxe.sln
2012-12-31 00:29:31 +01:00
Alexander Eckart deb5e6d794 added party challenge medley mode 2012-12-30 20:02:00 +01:00
Florian Küpper 6308e0fc17 Merge remote-tracking branch 'remotes/Upstream/develop' into tic-tac-toe
Conflicts:
	Vocaluxe.sln
2012-12-30 18:46:45 +01:00
Florian Küpper f21c7f2478 Added tic-tac-toe-party-mode. Still something to do (joker, lang, winning) 2012-12-30 18:37:07 +01:00