- VocaluxeSongServer: ASP.NET Core server that scans an UltraStar library and
serves the song list (ETag), single files (Range) and zip bundles; optional
API key; Dockerfile and Gitea workflow for git.disi.dev/projects/vocaluxe-song-server
- Game: config section SongServer (Url, ApiKey). At song loading, the song text
files are mirrored into a local cache that is loaded like a song folder;
without connection the last library is used
- VocaluxeLib: CSongFiles hook for all song file access; media are downloaded on
demand (covers in the background, preview audio, everything before singing
with progress in the sing screen)
- Tests for scanner, API and downloads (incl. resume); AGENTS.md for the fork
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Instrumental (5) and Vocals (6) overlapped with Title|MP3 and
Artist|MP3 in the [Flags] enum. A song file with #INSTRUMENTAL or
#VOCALS therefore passed the mandatory-tag checks even when #TITLE,
#ARTIST or #MP3 were missing, leaving Audio empty.
Give each flag its own bit (Instrumental = 64, Vocals = 128).
Co-authored-by: Florian Ostertag <flokuep@users.noreply.github.com>
* 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
Seems to not be usefull since song is cloned is others game mode
Improve performance by stop reloading TXT file
Didn't see any difference with and without instead of just song load perfs imrpovement
Maybe that I miss a point ?
* 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
NO functional changes. If you have problems merging your changes, merge/rebase on previous commit then merge this. Conflicts can easily be resolved (take yours if in doubt)
After that merge next commits