Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add song update functionality #185

Merged
merged 1 commit into from
Apr 24, 2023

Conversation

rjkiv
Copy link
Contributor

@rjkiv rjkiv commented Apr 24, 2023

-FYI, update mids aren't actually parsed in-game - you'll have to edit your midi parsing code slightly so that they are
some good logic for that:

  • if a track is in the update mid and not in the base mid, use it
  • if a track is in the base mid and not in the update mid, use it
  • if a track is in both the base AND update mid, go with the track in the update mid

@EliteAsian123 EliteAsian123 changed the base branch from master to con-updates April 24, 2023 01:57
@EliteAsian123 EliteAsian123 merged commit 9edc951 into YARC-Official:con-updates Apr 24, 2023
EliteAsian123 added a commit that referenced this pull request Apr 30, 2023
Co-authored-by: rjkiv <76180273+rjkiv@users.noreply.github.com>
RileyTheFox pushed a commit to RileyTheFox/YARG that referenced this pull request May 1, 2023
Co-authored-by: rjkiv <76180273+rjkiv@users.noreply.github.com>
EliteAsian123 added a commit that referenced this pull request May 1, 2023
* Add UniTask and EasySharpIni

* Start new song scanning

* Read song cache

* New settings (#220)

* Started new settings

* Started to add settings back

* Added localizations

* Tabs

* Text input texture

* Almost there!

* Added Buttons

* Fixed some bugs

* Fixed merge issue

* Updated button texture

* Icons and headers

* Abstraction

* Started track preview in settings

* Track camera settings!

* Simplified camera positioning

* Song folder manager

* Fixed render texture issue

* Fixed scene merge

* Fixed prefab merge

* add song update functionality (#185) (#221)

Co-authored-by: rjkiv <76180273+rjkiv@users.noreply.github.com>

* "Fixed" errors

* note count hit, solo reset*, slightly easier tap recovery (#222)

* Fix StarDisplay gold progress pulse call not resetting the pulse animation (#226)

* fixed anim warnings triggering after gold stars achieved

* Move ScoreDisplay if MicPlayer isn't present

* fix star display pulse call not resetting the pulse animation

* remove accidentally left-in log

* Sustain animation update (#225)

* Sustain Lines thicker and emission fixed

* Update sustain animations

---------

Co-authored-by: Mia Berth <miaberthrage@gmail.com>

* Don't do anything on debounce override if disabled or timer isn't running (#224)

* Start new song scanning

* Read song cache

---------

Co-authored-by: EliteAsian <lavasnakegaming@gmail.com>
Co-authored-by: rjkiv <76180273+rjkiv@users.noreply.github.com>
Co-authored-by: Raphael Goulart <contact@raphaelgoul.art>
Co-authored-by: muskit <15199219+muskit@users.noreply.github.com>
Co-authored-by: Narrik Synthfox <80410683+NarrikSynthfox@users.noreply.github.com>
Co-authored-by: Mia Berth <miaberthrage@gmail.com>
Co-authored-by: Nathan <nathanhurst03@gmail.com>
EliteAsian123 added a commit that referenced this pull request May 4, 2023
* Add UniTask and EasySharpIni

* Start new song scanning

* Read song cache

* Fix StarDisplay gold progress pulse call not resetting the pulse animation (#226)

* fixed anim warnings triggering after gold stars achieved

* Move ScoreDisplay if MicPlayer isn't present

* fix star display pulse call not resetting the pulse animation

* remove accidentally left-in log

* Sustain animation update (#225)

* Sustain Lines thicker and emission fixed

* Update sustain animations

---------

Co-authored-by: Mia Berth <miaberthrage@gmail.com>

* Don't do anything on debounce override if disabled or timer isn't running (#224)

* New settings (#220)

* Started new settings

* Started to add settings back

* Added localizations

* Tabs

* Text input texture

* Almost there!

* Added Buttons

* Fixed some bugs

* Fixed merge issue

* Updated button texture

* Icons and headers

* Abstraction

* Started track preview in settings

* Track camera settings!

* Simplified camera positioning

* Song folder manager

* Fixed render texture issue

* Fixed scene merge

* Fixed prefab merge

* add song update functionality (#185) (#221)

Co-authored-by: rjkiv <76180273+rjkiv@users.noreply.github.com>

* "Fixed" errors

* note count hit, solo reset*, slightly easier tap recovery (#222)

* Fix StarDisplay gold progress pulse call not resetting the pulse animation (#226)

* fixed anim warnings triggering after gold stars achieved

* Move ScoreDisplay if MicPlayer isn't present

* fix star display pulse call not resetting the pulse animation

* remove accidentally left-in log

* Sustain animation update (#225)

* Sustain Lines thicker and emission fixed

* Update sustain animations

---------

Co-authored-by: Mia Berth <miaberthrage@gmail.com>

* Don't do anything on debounce override if disabled or timer isn't running (#224)

* Start new song scanning

* Read song cache

* Update README.md

* Slide reverb volume up and down (#229)

* GOT HER DONE

(Temporary fix)

* Fixed particle group issue

* Add notes file and song type to SongEntry

* minor overstrum-related fix (#239)

* small RB song fixes (#238)

* add hopo_threshold support to please jnack

* fix DXT3 image byte parsing

* DXT3 loop cleanup

* hopo threshold fix

* actually reference hopo_threshold this time

* small RB fixes

* fix solo bonus minimum to be at 60% instead of 50% (#234)

* Change semitone shift calculation to linear functions (#231)

* Fix Discord Unpause Timer (#230)

- Using Play.Instance.SongTime to calculate the time left of the song;
- Removed unused variables;
- Add code for a future implementation

* Updated credits

* New song select (#245)

* New Music Library

+ Added base design for the new library
+ Source Icons added (78 Icons for now, will implement more in the future, for now mainly base games)
- Still need to add scrollbar to the list
- Need to rework the whole Filter/Search bar

* Music Library Update

+ Added default icon for songs that don't have a source
- Removed extra folders in the Sources folder (also EA need to fix this to use the right path, I'm just dumb)

* Fix song select being active by default

* Updated Library

+ Added search function to the tags (Album, Source Name and Icon, Charter, Genre and Year)
+ Added new filters for album: charter: genre: and year:
- Instrument Difficulty display needs rework with the new visual
- Need help adding the search function to the artist name, not sure how since we're using just one component for now (help pls)
- Still need to adjust the Subheader (Working on Figma first)

* Source Icons

UPDATED:
+ Rock Band
+ Rock Band 2
+ Rock Band 3
+ Rock Band 4
+ Guitar Hero Aerosmith
NEW:
+ Band Hero DS
+ Guitar Hero: On Tour Decades
+ Guitar Hero: On Tour Modern Hits
+ Guitar Hero TV
+ Goulart
+ Hugh
+ Power Gig
+ Rock Revolution
+ Phase Shift

* Music Library Update + Source Icons (#236)

* New Music Library

+ Added base design for the new library
+ Source Icons added (78 Icons for now, will implement more in the future, for now mainly base games)
- Still need to add scrollbar to the list
- Need to rework the whole Filter/Search bar

* Music Library Update

+ Added default icon for songs that don't have a source
- Removed extra folders in the Sources folder (also EA need to fix this to use the right path, I'm just dumb)

* Fix song select being active by default

* Updated Library

+ Added search function to the tags (Album, Source Name and Icon, Charter, Genre and Year)
+ Added new filters for album: charter: genre: and year:
- Instrument Difficulty display needs rework with the new visual
- Need help adding the search function to the artist name, not sure how since we're using just one component for now (help pls)
- Still need to adjust the Subheader (Working on Figma first)

* Source Icons

UPDATED:
+ Rock Band
+ Rock Band 2
+ Rock Band 3
+ Rock Band 4
+ Guitar Hero Aerosmith
NEW:
+ Band Hero DS
+ Guitar Hero: On Tour Decades
+ Guitar Hero: On Tour Modern Hits
+ Guitar Hero TV
+ Goulart
+ Hugh
+ Power Gig
+ Rock Revolution
+ Phase Shift

---------

Co-authored-by: Nathan <nathanhurst03@gmail.com>

* Small changes

* Music Library Update

+ Added new Source Icons
+ Fixed category header text (1 Song, X Songs)

* Difficulty rings + scroll bar

* Fixed search

---------

Co-authored-by: Kadu Waengertner <87105274+kaduwaengertner@users.noreply.github.com>
Co-authored-by: Nathan <nathanhurst03@gmail.com>

* Parallel scanning if folders are on different drives

* Migrate everything to use SongEntry, quite non functional right now

---------

Co-authored-by: muskit <15199219+muskit@users.noreply.github.com>
Co-authored-by: Narrik Synthfox <80410683+NarrikSynthfox@users.noreply.github.com>
Co-authored-by: Mia Berth <miaberthrage@gmail.com>
Co-authored-by: Nathan <nathanhurst03@gmail.com>
Co-authored-by: EliteAsian <lavasnakegaming@gmail.com>
Co-authored-by: rjkiv <76180273+rjkiv@users.noreply.github.com>
Co-authored-by: Raphael Goulart <contact@raphaelgoul.art>
Co-authored-by: Paulo Cardoso <50218490+nevespt@users.noreply.github.com>
Co-authored-by: Kadu Waengertner <87105274+kaduwaengertner@users.noreply.github.com>
EliteAsian123 added a commit that referenced this pull request May 6, 2023
* Start of new song scanning (#223)

* Add UniTask and EasySharpIni

* Start new song scanning

* Read song cache

* New settings (#220)

* Started new settings

* Started to add settings back

* Added localizations

* Tabs

* Text input texture

* Almost there!

* Added Buttons

* Fixed some bugs

* Fixed merge issue

* Updated button texture

* Icons and headers

* Abstraction

* Started track preview in settings

* Track camera settings!

* Simplified camera positioning

* Song folder manager

* Fixed render texture issue

* Fixed scene merge

* Fixed prefab merge

* add song update functionality (#185) (#221)

Co-authored-by: rjkiv <76180273+rjkiv@users.noreply.github.com>

* "Fixed" errors

* note count hit, solo reset*, slightly easier tap recovery (#222)

* Fix StarDisplay gold progress pulse call not resetting the pulse animation (#226)

* fixed anim warnings triggering after gold stars achieved

* Move ScoreDisplay if MicPlayer isn't present

* fix star display pulse call not resetting the pulse animation

* remove accidentally left-in log

* Sustain animation update (#225)

* Sustain Lines thicker and emission fixed

* Update sustain animations

---------

Co-authored-by: Mia Berth <miaberthrage@gmail.com>

* Don't do anything on debounce override if disabled or timer isn't running (#224)

* Start new song scanning

* Read song cache

---------

Co-authored-by: EliteAsian <lavasnakegaming@gmail.com>
Co-authored-by: rjkiv <76180273+rjkiv@users.noreply.github.com>
Co-authored-by: Raphael Goulart <contact@raphaelgoul.art>
Co-authored-by: muskit <15199219+muskit@users.noreply.github.com>
Co-authored-by: Narrik Synthfox <80410683+NarrikSynthfox@users.noreply.github.com>
Co-authored-by: Mia Berth <miaberthrage@gmail.com>
Co-authored-by: Nathan <nathanhurst03@gmail.com>

* Migrate everything to use new song scanning (#247)

* Add UniTask and EasySharpIni

* Start new song scanning

* Read song cache

* Fix StarDisplay gold progress pulse call not resetting the pulse animation (#226)

* fixed anim warnings triggering after gold stars achieved

* Move ScoreDisplay if MicPlayer isn't present

* fix star display pulse call not resetting the pulse animation

* remove accidentally left-in log

* Sustain animation update (#225)

* Sustain Lines thicker and emission fixed

* Update sustain animations

---------

Co-authored-by: Mia Berth <miaberthrage@gmail.com>

* Don't do anything on debounce override if disabled or timer isn't running (#224)

* New settings (#220)

* Started new settings

* Started to add settings back

* Added localizations

* Tabs

* Text input texture

* Almost there!

* Added Buttons

* Fixed some bugs

* Fixed merge issue

* Updated button texture

* Icons and headers

* Abstraction

* Started track preview in settings

* Track camera settings!

* Simplified camera positioning

* Song folder manager

* Fixed render texture issue

* Fixed scene merge

* Fixed prefab merge

* add song update functionality (#185) (#221)

Co-authored-by: rjkiv <76180273+rjkiv@users.noreply.github.com>

* "Fixed" errors

* note count hit, solo reset*, slightly easier tap recovery (#222)

* Fix StarDisplay gold progress pulse call not resetting the pulse animation (#226)

* fixed anim warnings triggering after gold stars achieved

* Move ScoreDisplay if MicPlayer isn't present

* fix star display pulse call not resetting the pulse animation

* remove accidentally left-in log

* Sustain animation update (#225)

* Sustain Lines thicker and emission fixed

* Update sustain animations

---------

Co-authored-by: Mia Berth <miaberthrage@gmail.com>

* Don't do anything on debounce override if disabled or timer isn't running (#224)

* Start new song scanning

* Read song cache

* Update README.md

* Slide reverb volume up and down (#229)

* GOT HER DONE

(Temporary fix)

* Fixed particle group issue

* Add notes file and song type to SongEntry

* minor overstrum-related fix (#239)

* small RB song fixes (#238)

* add hopo_threshold support to please jnack

* fix DXT3 image byte parsing

* DXT3 loop cleanup

* hopo threshold fix

* actually reference hopo_threshold this time

* small RB fixes

* fix solo bonus minimum to be at 60% instead of 50% (#234)

* Change semitone shift calculation to linear functions (#231)

* Fix Discord Unpause Timer (#230)

- Using Play.Instance.SongTime to calculate the time left of the song;
- Removed unused variables;
- Add code for a future implementation

* Updated credits

* New song select (#245)

* New Music Library

+ Added base design for the new library
+ Source Icons added (78 Icons for now, will implement more in the future, for now mainly base games)
- Still need to add scrollbar to the list
- Need to rework the whole Filter/Search bar

* Music Library Update

+ Added default icon for songs that don't have a source
- Removed extra folders in the Sources folder (also EA need to fix this to use the right path, I'm just dumb)

* Fix song select being active by default

* Updated Library

+ Added search function to the tags (Album, Source Name and Icon, Charter, Genre and Year)
+ Added new filters for album: charter: genre: and year:
- Instrument Difficulty display needs rework with the new visual
- Need help adding the search function to the artist name, not sure how since we're using just one component for now (help pls)
- Still need to adjust the Subheader (Working on Figma first)

* Source Icons

UPDATED:
+ Rock Band
+ Rock Band 2
+ Rock Band 3
+ Rock Band 4
+ Guitar Hero Aerosmith
NEW:
+ Band Hero DS
+ Guitar Hero: On Tour Decades
+ Guitar Hero: On Tour Modern Hits
+ Guitar Hero TV
+ Goulart
+ Hugh
+ Power Gig
+ Rock Revolution
+ Phase Shift

* Music Library Update + Source Icons (#236)

* New Music Library

+ Added base design for the new library
+ Source Icons added (78 Icons for now, will implement more in the future, for now mainly base games)
- Still need to add scrollbar to the list
- Need to rework the whole Filter/Search bar

* Music Library Update

+ Added default icon for songs that don't have a source
- Removed extra folders in the Sources folder (also EA need to fix this to use the right path, I'm just dumb)

* Fix song select being active by default

* Updated Library

+ Added search function to the tags (Album, Source Name and Icon, Charter, Genre and Year)
+ Added new filters for album: charter: genre: and year:
- Instrument Difficulty display needs rework with the new visual
- Need help adding the search function to the artist name, not sure how since we're using just one component for now (help pls)
- Still need to adjust the Subheader (Working on Figma first)

* Source Icons

UPDATED:
+ Rock Band
+ Rock Band 2
+ Rock Band 3
+ Rock Band 4
+ Guitar Hero Aerosmith
NEW:
+ Band Hero DS
+ Guitar Hero: On Tour Decades
+ Guitar Hero: On Tour Modern Hits
+ Guitar Hero TV
+ Goulart
+ Hugh
+ Power Gig
+ Rock Revolution
+ Phase Shift

---------

Co-authored-by: Nathan <nathanhurst03@gmail.com>

* Small changes

* Music Library Update

+ Added new Source Icons
+ Fixed category header text (1 Song, X Songs)

* Difficulty rings + scroll bar

* Fixed search

---------

Co-authored-by: Kadu Waengertner <87105274+kaduwaengertner@users.noreply.github.com>
Co-authored-by: Nathan <nathanhurst03@gmail.com>

* Parallel scanning if folders are on different drives

* Migrate everything to use SongEntry, quite non functional right now

---------

Co-authored-by: muskit <15199219+muskit@users.noreply.github.com>
Co-authored-by: Narrik Synthfox <80410683+NarrikSynthfox@users.noreply.github.com>
Co-authored-by: Mia Berth <miaberthrage@gmail.com>
Co-authored-by: Nathan <nathanhurst03@gmail.com>
Co-authored-by: EliteAsian <lavasnakegaming@gmail.com>
Co-authored-by: rjkiv <76180273+rjkiv@users.noreply.github.com>
Co-authored-by: Raphael Goulart <contact@raphaelgoul.art>
Co-authored-by: Paulo Cardoso <50218490+nevespt@users.noreply.github.com>
Co-authored-by: Kadu Waengertner <87105274+kaduwaengertner@users.noreply.github.com>

* Remove duplicate files and unused imports

* Renamed "RawCon" to "ExtractedCon"

* Added LoadingManager

* Added back score loading

* Added extracted CON read/write for song cache (#248)

* Added extracted CON read/write for song cache

* Difficulty loading from ini

* Did an oopsie and realised difficulties would not work

* Fixed bug loading mid files

* Added back refresh per folder

* [New Caching] Fix excon caching and music library bugs (#253)

* Added extracted CON read/write for song cache

* Difficulty loading from ini

* Did an oopsie and realised difficulties would not work

* Fixed bug loading mid files

* Added BinaryWriter wrapper to handle null strings

* Always fast scan on startup

* Fix missing difficulties breaking music library

* Fix some issues with EXCON caching

* Fix incorrect notes file assignment

* Added "ErroredCaches" to scanning

* Fixed null song folder issue

* .chart preparsing (#255)

* Fixed warning

* Fixed duplicate folder issue

* [New Caching] .mid Preparsing, badsong logging and difficulty ring fix (#263)

* .chart preparsing

* Basic mid preparsing (only instruments)

* Lots of preparsing fixes and fixed hopo frequencies

* Change where badsongs are written to

* Fix difficulty rings showing when no track is present but difficulty is defined

* Fix duplicate chart preparsing causing compile error

* Settings menu now auto updates cache

---------

Co-authored-by: RileyTheFox <jacobchambers@hotmail.co.uk>
Co-authored-by: rjkiv <76180273+rjkiv@users.noreply.github.com>
Co-authored-by: Raphael Goulart <contact@raphaelgoul.art>
Co-authored-by: muskit <15199219+muskit@users.noreply.github.com>
Co-authored-by: Narrik Synthfox <80410683+NarrikSynthfox@users.noreply.github.com>
Co-authored-by: Mia Berth <miaberthrage@gmail.com>
Co-authored-by: Nathan <nathanhurst03@gmail.com>
Co-authored-by: Paulo Cardoso <50218490+nevespt@users.noreply.github.com>
Co-authored-by: Kadu Waengertner <87105274+kaduwaengertner@users.noreply.github.com>
@rjkiv rjkiv deleted the cons_update branch May 9, 2023 20:07
april83c pushed a commit to april83c/YARG that referenced this pull request Dec 2, 2024
* Implement AddUpdate() & AddUpdateGroup()

The functionality was already present, but they need to be separate functions

* Cache Scan & Serialization rework

+ During scan and deserialization, use the FileCollection type to query for subfiles or subdirectories within the updateGroup & upgradeGroup generation functions. Using this minimizes the need to re-collect all the infos of a directory.

+ Update cache file to hold the lengths of each group section in the file. This grants the ability to use more optimal parallel execution patterns. For these patterns, we utilize a custom enumerable structure that can be looped upon with Parallel.ForEach. Guarantees better Task allocation.

+ Update serialization functions to return ReadOnlyMemory structures to remove ToArray() calls that copied memory.

+ Contain SongUpdate types in SortedLists using DateTimes as keys instead of having SongUpdate hold DateTime variables.

+ Fix incorrect disposal sequence for PackedConGroups. We can't dispose of the upgrade dta data until after all cons are completed

* Reorganize CacheHandler files

Instead of separating the scanning and serialization functions across multiple files, place them all in the main CacheHandler file, separating them through `#region`s.

* Convert Lists of SongEntries to SortedSet

* Revert IniModifier union change

* Convert SngFileListing to readonly struct

+ Updates GetRandomBackgroundImage() function to a `TryGet`

* Use AllocatedArray in SngFileListing read

* Remove unnecessary BinaryReader extensions

* Move FixedArray finalizer logs to the subclasses

* Remove check for loose charts on cache load

Substantial performance boost

* Revert SortedSets back to Lists

+ List is easier to deal with
+ Better instrument sort performance than before the change
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants