Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
311 commits
Select commit Hold shift + click to select a range
05216fe
Fix bug in the profile screen where engine is not set when switching …
poliwhirlge Jul 19, 2026
2770ecc
Add ability to view the score screen for a replay (#1488)
Supersonicboss1 Jul 19, 2026
d21f170
Update core pointer for YARG.Core#380
wyrdough Jul 19, 2026
23a60f8
Return early from UnisonDisplay initialization if there aren't any un…
wyrdough Jul 19, 2026
b47d0c1
don't explode if a yargchar is missing a Vrm10Instance
wyrdough Jul 19, 2026
05110f7
Rework character loading and fix an ownership confusion bug
wyrdough Jul 19, 2026
5442d7a
Update sources and genres concurrently (speeds up startup)
wyrdough Jul 19, 2026
2dc626b
Core pointer update for PK single note solo fix
wyrdough Jul 19, 2026
fc877b7
Improved song sync, mic latency, various audio improvements (#1558)
polson Jul 21, 2026
cea37bb
Core pointer update for improved song sync (#418)
polson Jul 21, 2026
d938096
dmx: Add configurable local sACN IP address (#1556)
Ape Jul 21, 2026
104a7b2
Reapply Active Filters when Opening Music Library (#1548)
Dansla116 Jul 21, 2026
be906e2
Remove Dead Playlist Hashes (#1452)
Dansla116 Jul 21, 2026
5da3a1d
Add menu binds for search (#1404)
polson Jul 21, 2026
662f630
Core pointer update for Add search input action (#347)
polson Jul 21, 2026
bd5ea86
Fix HARM3 persisting when switching to Harmony on songs with fewer pa…
XaiaX Jul 21, 2026
7e86b84
Core pointer update for Make Harmony part selection sticky with fallb…
polson Jul 21, 2026
367a2d5
Updates for EngineContainer changes (#1560)
Supersonicboss1 Jul 21, 2026
649212e
Core pointer update for Rework EngineContainer to use generics #414
polson Jul 21, 2026
c43faf4
Fix Core pointer regression after EngineContainer update
polson Jul 21, 2026
45f07fb
Restore orange button
polson Jul 21, 2026
639bdd5
Fix inputs not working when playing new song
polson Jul 21, 2026
074a8a6
Add Current Difficulty Score Display Options and Sync Star Sorting (#…
Dansla116 Jul 21, 2026
8861f49
ci: add workflow to auto-label PRs needing rebase (#1576)
polson Jul 21, 2026
4d64df0
ci: Better script for labeling PRs with conflicts (#1577)
polson Jul 21, 2026
6be1fdc
Core pointer update for ci changes
polson Jul 21, 2026
0609be3
ci: Update label for auto labeling PRs with conflicts
polson Jul 21, 2026
86a2061
Alias Country > Traditional Folk to Traditional instead of Folk (#1575)
Frickitickitavi Jul 22, 2026
bf303d1
Rescale lanes based on lane count (#1579)
Frickitickitavi Jul 22, 2026
c434ce0
Setting best percent ties with highest score (#1578)
Dansla116 Jul 22, 2026
9a14ed4
Check merge conflicts for updated PR only
polson Jul 22, 2026
7b88d9d
Implement per-stem drum muting (#1573)
DevPrice Jul 22, 2026
dbab1e9
Core pointer update for Implement per-stem drum muting #425
polson Jul 22, 2026
21073d1
Fix settings calibration issues
polson Jul 22, 2026
159a2b7
Fix vocal gender parsing for ini and con (core pointer update)
wyrdough Jul 23, 2026
323a331
Aggregate Drums Score/Sort/Filter (#1413)
Dansla116 Jul 23, 2026
6bd898a
Fix fail meter related inconsistent replay issue
wyrdough Jul 25, 2026
9ae1b0f
Fix audio desync issues (#1589)
polson Jul 25, 2026
f797d47
Core pointer update for song sync fixes
polson Jul 25, 2026
f4ebdda
Fix: Song progress overlay desynced from actual song progress (#1571)
RubyStarbloom Jul 28, 2026
cff2031
Dim the music library when the search field is in focus (#1591)
poliwhirlge Jul 28, 2026
03733cf
Preserve Music Library Song Selection Instead of Scroll Position when…
Dansla116 Jul 28, 2026
222adb5
fix(song): ignore leading articles in web export sorting (#1592)
XaiaX Jul 28, 2026
169db96
Make practice mode handle EngineManager state better (#1595)
Supersonicboss1 Jul 29, 2026
9045823
Update core pointer for enginemanager fixes
wyrdough Jul 29, 2026
7d9b387
Don't initialize StageManager if venue is not set
wyrdough Jul 29, 2026
d564093
Players should not fail in practice mode
wyrdough Jul 29, 2026
20437d8
Keep vocal modifier uniformity from overwriting saved selections (#1517)
XaiaX Jul 30, 2026
f3a288a
Core pointer update for #397 Separate saved and effective vocal modif…
polson Jul 30, 2026
6bb5896
Fix BRE Box behaviour with multiple close together BREs (#1598)
Supersonicboss1 Jul 31, 2026
fef713a
Fix loading screen appearing underneath Music Library search field + …
poliwhirlge Jul 31, 2026
5e94f6e
add wind parameter to character manager and pause VRM springs during …
4dispel Aug 1, 2026
da0abe2
Kick lanes (#1581)
Frickitickitavi Aug 2, 2026
aea3da8
Core pointer update for Kick lanes #428
polson Aug 2, 2026
1ee4fe5
Added fog timer and changed all bytes to a queue (#1605)
TheFatBastid Aug 2, 2026
006f507
Use native C++ DSP effects (#1602)
polson Aug 3, 2026
fb9ef53
Core pointer for first note one-note solo fix
wyrdough Aug 3, 2026
5e87d07
Extend track effects to the end of a sustain (#1603)
Supersonicboss1 Aug 3, 2026
824adf9
Add vocal needle outline on hit (#1585)
Supersonicboss1 Aug 3, 2026
7823764
Fix Persistent UI Layering in Filters Menu (#1601)
Dansla116 Aug 3, 2026
6546d11
Correctly determine whether no fail is on for replays
Supersonicboss1 Aug 4, 2026
3dd47e0
Resize character select text if too large
Supersonicboss1 Aug 4, 2026
881edc3
Fix Persistent UI Layering Regression (#1606)
Dansla116 Aug 4, 2026
1ab04dc
Fix vocal needle rendering on MacOS
Supersonicboss1 Aug 6, 2026
44030d6
Vocal Note Glow (SP & Normal) (#1586)
Supersonicboss1 Aug 6, 2026
d90282c
Update PlasticBand-Unity to v0.9.1 (#1607)
TheNathannator Aug 6, 2026
f5d8a50
Fix vocals glow in batchmode builds
Supersonicboss1 Aug 7, 2026
a0ff736
Core pointer update for <br> in loading phrases
Supersonicboss1 Aug 7, 2026
df03c53
Core pointer update for pro keys fixes
Supersonicboss1 Aug 7, 2026
cb0b6fd
Fix Persistent UI Layering Regression Again (#1611)
Dansla116 Aug 8, 2026
4fe6b45
Multichannel mic handling (#1610)
polson Aug 8, 2026
16be244
YARG.Core pointer update for Support for multichannel mic handling- #440
polson Aug 8, 2026
c49e8ef
Also reset rotation when resetting character position
wyrdough Aug 8, 2026
35c61ed
Vocals visual enhancements (#1567)
Supersonicboss1 Aug 8, 2026
61cd26d
Fix Persistent UI Layering Regression a Third Time (#1612)
Dansla116 Aug 9, 2026
ea9ae31
Vocal player hud fixes
Supersonicboss1 Aug 10, 2026
d627c1f
Reset VRMCharacter rotation, support RNG parameter for animator
wyrdough Aug 11, 2026
6760dcc
Black glissando first draft (#1613)
Frickitickitavi Aug 11, 2026
2bd52c9
Add vocals censorship chart feature (#1529)
Supersonicboss1 Aug 12, 2026
8c47173
Core pointer update for vocals censorship
Supersonicboss1 Aug 12, 2026
b38c6f0
Core pointer update for "Parse strings and keys authors from DTA"
Supersonicboss1 Aug 12, 2026
bd44e63
Use parsed section names for practice header
Supersonicboss1 Aug 14, 2026
30d31c8
Implement ASIO support (#1587)
polson Aug 15, 2026
b6c660e
Core pointer update for asio support
polson Aug 15, 2026
5a78e37
Fix FFT handling and add FFT to audio debug window
polson Aug 15, 2026
9a2f710
Wait Countdown fix core pointer update
wyrdough Aug 15, 2026
eb442dd
CON scan parallization core pointer update (h/t DevPrice)
wyrdough Aug 15, 2026
30d6f5d
Better ASIO position handling (#1616)
polson Aug 15, 2026
92b1d1d
feat: overhaul preset editor and track preview (#1568)
XaiaX Aug 15, 2026
58c70bb
Core pointer update for feat: add preset preview color profile suppor…
polson Aug 15, 2026
d9c2141
feat: clarify recommended preset dismissal (#1569)
XaiaX Aug 16, 2026
6ed47e7
Add KeepLyricBar to HUD settings (#1572)
sepalani Aug 16, 2026
ce64386
Add github pull request template
polson Aug 16, 2026
5a8caa0
core pointer update for stem fixes
Supersonicboss1 Aug 16, 2026
7fde4ac
Don't assume all slider ranges that start and end at whole numbers ar…
Supersonicboss1 Aug 16, 2026
34f8e3d
Fix enter to unfocus search not working
Supersonicboss1 Aug 17, 2026
44c7167
Rewrite background/side image FileInfo when renaming highway preset
wyrdough Aug 18, 2026
51a5281
Shrink and wrap genre/subgenre text
Supersonicboss1 Aug 18, 2026
28ec971
Add glow effect to the fail meter
Supersonicboss1 Aug 18, 2026
96f2af6
Harmony lipsync and singalongs (#1614)
Supersonicboss1 Aug 19, 2026
7d7fa4f
More consistently use charted postproc transition durations
wyrdough Aug 20, 2026
5afd36a
Add Options for Song Duration Groups in Sort and Filter (#1624)
Dansla116 Aug 20, 2026
c277bed
Unify managed DSP native interop (#1626)
polson Aug 20, 2026
782e0ac
Update core pointer for Expose microphone buffer and reverb controls …
polson Aug 20, 2026
e08b6d7
Add unity pipeline package dependency (#1619)
theli-ua Aug 20, 2026
d4d1236
Handle duplicate metal shaders when loading custom content gracefully…
theli-ua Aug 21, 2026
3e7ffeb
Core pointer update for .voc lipsync loading
Supersonicboss1 Aug 21, 2026
7fb2a43
Fix metronome routing (#1631)
polson Aug 21, 2026
864f135
Add in new crowd settings (#1629)
polson Aug 21, 2026
bdbb3bd
Support `idle_mellow` character state (#1627)
trainlos Aug 21, 2026
e93fdba
Core pointer update for Support idle_mellow character state #1627 - t…
polson Aug 21, 2026
0635624
yarg_guid ini support core pointer update
wyrdough Aug 21, 2026
b3e70ee
Core pointer update for yarg.core metronome fix
polson Aug 21, 2026
b62081f
Add back in 0 buffer on output mixer, whoops
polson Aug 21, 2026
6953cce
Fix notifications sometimes appearing when they should be inhibited
Supersonicboss1 Aug 22, 2026
0015fcf
Percentage and Score Sorting, Resolution Helper (#1580)
Dansla116 Aug 22, 2026
6b16160
Update PlasticBand-Unity to v0.9.2 (#1639)
TheNathannator Aug 24, 2026
cc300d4
add support for background censorship
Supersonicboss1 Aug 24, 2026
3786b79
WASAPI exclusive support (#1633)
polson Aug 26, 2026
5103c78
Core pointer update for wasapi exclusive
polson Aug 26, 2026
27d4457
Preserve playlist entries when songs are updated in place (#1622)
Dansla116 Aug 26, 2026
e67f9c3
Fix quick bind skip button
wyrdough Aug 26, 2026
14c1f5e
Fix genre spacer improperly being set to be active (#1643)
poliwhirlge Aug 27, 2026
2e5572d
Add guide pitch for vocals practice mode (#1582)
DevPrice Aug 28, 2026
aaf1016
Core pointer update for Add guide pitch for vocals practice mode #158…
polson Aug 28, 2026
edf93d3
Support video playback via libVLC (with fallback to built in player) …
theli-ua Aug 28, 2026
63226ac
Add the ability to correct audio offset for individual songs (#1535)
asimard1 Aug 28, 2026
723c6f0
Add bind for selecting current artist in music library (#1588)
Ape Aug 28, 2026
28abd01
Update core pointer for Add SelectArtist input action- #432 (Ape)
polson Aug 28, 2026
0d5929a
Revert libVLC video player integration (#1644)
polson Aug 28, 2026
6f83aca
Add build preprocessor to fail on missing scripts in scenes and prefa…
polson Aug 29, 2026
5a21196
Divide mic analysis bytes by channel count (#1650)
polson Aug 30, 2026
2503e0e
Fix ASIO init crash on drivers with non-ASCII paths (#1648)
0urPal Aug 30, 2026
5a214aa
Remove obsolete OldOnboardingDialog prefab with missing script (#1651)
polson Aug 31, 2026
1f1af65
Catch exceptions in audio output mode selection so that we fall back …
wyrdough Aug 31, 2026
386d512
Reset VRM character animation on camera cut, add support for end anim…
wyrdough Aug 31, 2026
1110bf0
Update IsGenericState to include missing states
wyrdough Aug 31, 2026
dadf0dd
Show clickable filters in a unified search bar (#1637)
Dansla116 Sep 1, 2026
7481307
Move Playable filter from 'Sort By' to 'Filters' menu (#1640)
Dansla116 Sep 1, 2026
50bd051
Update open to greens modifier icon
wyrdough Sep 1, 2026
b7b572c
Also reset positions when camera cuts are triggered by VenueAnimator.
wyrdough Sep 1, 2026
f31fc96
Allow VRMCharacters to specify genre-specific animation controllers
wyrdough Sep 1, 2026
cc317cf
Unify Play a Show and Setlist Behavior in the Music Library (#1625)
Dansla116 Sep 1, 2026
33afd22
feat: show built-in preset values read-only in the preset editor (#1620)
XaiaX Sep 1, 2026
fc72708
Set sound texture as a global texture (#1632)
theli-ua Sep 1, 2026
2a76fa7
Move delayed button arming into ShowCompactConfirmation, fix color fl…
XaiaX Sep 1, 2026
ecbd27d
Bug/profile load recovery (#1636)
XaiaX Sep 1, 2026
288319b
Performance Improvements when Sorting By Score Context (#1641)
Dansla116 Sep 1, 2026
44d1dfa
Fix backwards compatibility with existing characters
wyrdough Sep 2, 2026
1f85219
Use specified custom genre-specific animator overrides (when possible)
wyrdough Sep 2, 2026
41d74a9
Enable dedicated open lane on 5F Guitar (#1654)
Frickitickitavi Sep 2, 2026
f039eae
Six Fret Guitar Support (#1470)
theli-ua Sep 4, 2026
d1ad353
Add 6 fret charter credits to credits menu
wyrdough Sep 4, 2026
bf2bb29
Fix 6f color preset sp metal preview (#1659)
theli-ua Sep 4, 2026
3971a13
Allow 6f profile to select casual or solotap preset (#1658)
theli-ua Sep 4, 2026
d4e6ce6
core pointer update to unbroke 5F anchoring
Supersonicboss1 Sep 5, 2026
558591a
Static lyric shifts (#1594)
Supersonicboss1 Sep 5, 2026
0c3efe8
Fix engine preset editor regressions (#1660)
XaiaX Sep 5, 2026
d3813de
Don't allow solo taps to be selected in 6F
wyrdough Sep 5, 2026
296ff12
Add gameStateTexture to texture manager (#1634)
theli-ua Sep 5, 2026
700f9cd
Allow 5LK converts on 6F Guitar
Supersonicboss1 Sep 5, 2026
3673672
Fix bass groove on 5F->6F converts
Supersonicboss1 Sep 5, 2026
d856cfb
Update PlasticBand-Unity to v0.10.0 (#1666)
TheNathannator Sep 7, 2026
38d8e13
Default to binding touch strip frets as solo frets for GH guitars
wyrdough Sep 7, 2026
6a44f34
Update com.unity.pipeline (#1667)
theli-ua Sep 7, 2026
f78a1fa
make both venue rngs even 1 to 100 ranges (#1668)
4dispel Sep 7, 2026
e221066
Core pointer update for 6f ghost fixes
Supersonicboss1 Sep 7, 2026
f301de3
feat(difficulty-select): polish difficulty select menus (#1593)
XaiaX Sep 7, 2026
ea71612
Make OnChartEvent actually do something on VRMCharacter
Supersonicboss1 Sep 8, 2026
86a6980
Process drum animation state triggers
Supersonicboss1 Sep 9, 2026
31e0505
Fix sitting-out vocal mode gating (#1662)
XaiaX Sep 10, 2026
806c55a
Guard NeonLightManager against unassigned material references (#1676)
neilweber Sep 10, 2026
88ebc89
Implement track player menu (#1673)
polson Sep 10, 2026
3d66d06
Copy vlc-unity files instead of symlinks (#1645)
theli-ua Sep 10, 2026
698c190
Fix Linux microphone scanning (#1642)
Ape Sep 10, 2026
8a2f791
Core pointer update for 6f fixes
wyrdough Sep 11, 2026
ac2ccd4
Fix warnings and error logs (#1677)
polson Sep 11, 2026
0ca4975
Core pointer update for Fix warnings and error logs- #462
polson Sep 11, 2026
d910e1b
Core pointer update for "Load singalong events present in milo .lipsy…
Supersonicboss1 Sep 12, 2026
b21ce44
Implement mid-song difficulty switching
wyrdough Sep 11, 2026
1d2117d
Add missing setting string for pause on menu open
wyrdough Sep 14, 2026
8d0bd7f
Don't stop the Unity VideoPlayer right after it finishes preparing (#…
matiasba Sep 14, 2026
54d3c04
Core pointer update for "Fix difficulty select exploding when selecti…
Supersonicboss1 Sep 14, 2026
6bf6b14
6f visual fixes (#1665)
theli-ua Sep 14, 2026
2e349eb
Add orthogonal projection to camera preset (#1674)
theli-ua Sep 14, 2026
d7b3218
orthographic highway core
wyrdough Sep 14, 2026
ca601ca
Handle difficulty changes more gracefully in UnisonDisplay
Supersonicboss1 Sep 14, 2026
1ce5d1e
fix text postproc parsing (core pointer)
wyrdough Sep 14, 2026
ceb449e
Core pointer update for first note splicing fix
Supersonicboss1 Sep 14, 2026
c6b4189
Add native audio builder and shadow loading (#1653)
polson Sep 15, 2026
0beb0a6
Log errors from the Unity VideoPlayer (#1684)
matiasba Sep 16, 2026
68a809e
Fix Scan Songs from Playlist Menu (#1691)
Dansla116 Sep 18, 2026
1b96e72
4-Lane/Pro Drums aggregate-light Score/Sort/Filter (#1678)
Dansla116 Sep 18, 2026
aaa73a3
Add a setting to keep a shared stem audible until every player misses…
matiasba Sep 18, 2026
6acace5
Further simplify fade alpha calculation (#1688)
theli-ua Sep 18, 2026
d4cdf30
Add Configurable Album Grouping to Artist Sort (#1690)
Dansla116 Sep 18, 2026
5681cfd
Match fade distance to previous values (#1696)
theli-ua Sep 20, 2026
fa0b9c0
Reorganize Music Library Settings (#1700)
Dansla116 Sep 21, 2026
6ef6137
Add NotoSansSymbols2 font, set as fallback for Barlow so we have chec…
wyrdough Sep 21, 2026
28b90b6
Update README with new font attribution
wyrdough Sep 21, 2026
79241b6
Remember filters between play sessions (#1707)
Dansla116 Sep 26, 2026
0b71135
Use correct enum in menu bindings (#1713)
joewestcott Sep 26, 2026
6c9dcbd
Update CONTRIBUTING.md to reflect modern realities (#1701)
theli-ua Sep 26, 2026
275e9a1
Block input during loading and prevent UI click-through (#1705)
Dansla116 Sep 27, 2026
c9bb8b1
Show Gold Star Icons for Fully Gold-Starred Song Groups (#1692)
Dansla116 Sep 30, 2026
47b3e67
Fix live star updates for tied best percentages (#1719)
Dansla116 Sep 30, 2026
9e0f0b3
Enable Free Harmonies gameplay (minimal, single-mic) (#1600)
XaiaX Oct 2, 2026
a67f856
Update core pointer for free harmonies
polson Oct 2, 2026
6aad5ad
6F open sustain particles
Supersonicboss1 Oct 4, 2026
b703964
Fix open sustain particles never stopping on 5LK
Supersonicboss1 Oct 4, 2026
f4ae7bc
Don't remove FC Ring or play miss SFX when missing percussion notes
Supersonicboss1 Oct 4, 2026
9f20057
Static lyrics improvements
Supersonicboss1 Oct 4, 2026
007d978
Attempt to get animation controller matching MiloAnimationGenre first…
Supersonicboss1 Oct 4, 2026
dd3b42f
Make Recommendations follow Filter Results (#1680)
Dansla116 Oct 4, 2026
8fbf080
Improve Music Library Shortcuts and Context Menus (#1718)
Dansla116 Oct 4, 2026
77947be
Support custom player avatar (png only for now)
wyrdough Oct 5, 2026
b6819b6
Use avatar on score screen (and remove vestigial code)
wyrdough Oct 5, 2026
fc21b7a
Make player avatars work on Vocals
Supersonicboss1 Oct 5, 2026
8948146
Actually size the mask and avatar correctly on vocals
Supersonicboss1 Oct 5, 2026
3b8cd26
update rectangular 6f notes (#1671)
theli-ua Oct 5, 2026
c1f0ede
core pointer update for "Fix static lyrics dropping every lyric after…
Supersonicboss1 Oct 5, 2026
f0eb086
Better organization for avatar loading and disposal (plus fix the dis…
wyrdough Oct 6, 2026
8026c25
Fix 5L drums cymbal accent note material ( Lit -> YargLit ) (#1730)
theli-ua Oct 6, 2026
f91ba73
Use bot sprite for bot profiles in profile list
wyrdough Oct 6, 2026
5f5352c
Add a setting to allow a user-directed VLC.app or libVLC path
taynaron Sep 12, 2026
85e9daf
Add a VLCUnityPlugin.dylib re-export shim for macOS
taynaron Sep 18, 2026
c744979
Move libVLC path setup out of the vendored vlc-unity files
taynaron Sep 30, 2026
f15dfff
be a tiny bit more lenient on macos
taynaron Sep 30, 2026
293934b
Update LibVLCSharp/vlc-unity to HEAD for Vulkan support; support libV…
taynaron Oct 2, 2026
1b6b227
Fix four defects in the VLC player wrappers
taynaron Sep 18, 2026
4d632cf
Drive the background video off VisualTime, not SongTime
taynaron Sep 25, 2026
fb68e70
Pass low-latency decoder options to libVLC
taynaron Sep 25, 2026
8aafbcc
Report VLC seek completion from libVLC, not synchronously
taynaron Sep 25, 2026
dd14698
Park the video on its first frame until the song reaches it
taynaron Sep 25, 2026
598356f
Preserve video aspect ratio with letter/pillarboxing
taynaron Sep 25, 2026
518caa5
Push video up by 1-2 frames (constant per OS) to compensate for pipel…
taynaron Sep 30, 2026
98f4523
Park the video at pause so resuming is a Play, not a seek
taynaron Sep 30, 2026
d15365e
Fix video resume when manually paused
taynaron Sep 30, 2026
2c5530a
Seek video at rate 1 and change its rate only when parked or landing
taynaron Sep 30, 2026
cb5b338
Lower libVLC's file caching for background videos
taynaron Sep 30, 2026
e6b24f0
Call libVLC's precise seek and non-toggling pause from YargVideoPlayer
taynaron Sep 30, 2026
9fb5aef
Stop video at song end; fade video if it ends early
taynaron Oct 1, 2026
9d72347
Linux VLC fixes: teardown leak, Editor plugin, flat lead, Vulkan flip
taynaron Oct 5, 2026
abe8b5a
Keep Update running for looping song videos
taynaron Oct 5, 2026
af5a392
Hold at most one pause override per held video seek
taynaron Oct 5, 2026
c35a15d
Add SongRunner.GetVisualTime for the song-to-visual time conversion
taynaron Oct 5, 2026
2713a24
Move VLC specifics into YargVideoPlayer; extract VlcTimeWatch
taynaron Oct 5, 2026
99f15d1
Move background video sync into BackgroundVideoController
taynaron Oct 6, 2026
5618883
Simplify BackgroundVideoController, document
taynaron Oct 6, 2026
1e142fe
fix looping video
taynaron Oct 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,11 @@ tab_width = 4
indent_style = tab
tab_width = 4

[manifest.json]
charset = utf-8
indent_style = space
indent_size = 2

[*.inputactions]
indent_style = tab
tab_width = 4
Expand Down
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
*.prefab eol=lf
ProjectSettings/* eol=lf
ProjectSettings/**/* eol=lf
*.sh text eol=lf

# Items that should be stored in LFS
*.png filter=lfs diff=lfs merge=lfs -text
Expand Down
13 changes: 13 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## Description
<!-- Briefly describe the changes in this pull request in your own words. -->


## Screenshots or Video
<!-- Add screenshots or a video recording if this PR introduces visual or UI changes. -->


## YARG.Core PR (if applicable)
<!-- If this change depends on a YARG.Core PR, link to it here. -->


<!-- Tip: Please make sure not to include YARG.Core pointer updates in your PR. -->
103 changes: 103 additions & 0 deletions .github/workflows/label-conflicts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: Auto Label Merge Conflicts

on:
push:
branches:
- dev
pull_request_target:
types: [opened, synchronize, reopened]

concurrency:
group: label-conflicts-${{ github.repository }}-${{ github.event.pull_request.number || 'all' }}
cancel-in-progress: true

jobs:
label-conflicts:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Check and Label Conflicting PRs
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
fetch_prs() {
if [ -n "$PR_NUMBER" ]; then
gh api graphql -f query='
query($owner: String!, $repo: String!, $number: Int!) {
repository(owner: $owner, name: $repo) {
pullRequest(number: $number) {
number
title
mergeable
labels(first: 100) {
nodes { name }
}
}
}
}' -F owner="${GH_REPO%/*}" -F repo="${GH_REPO#*/}" -F number="$PR_NUMBER" \
| jq -c '[.data.repository.pullRequest] | map(select(. != null))'
else
gh api graphql -f query='
query($owner: String!, $repo: String!) {
repository(owner: $owner, name: $repo) {
pullRequests(states: OPEN, first: 100) {
nodes {
number
title
mergeable
labels(first: 100) {
nodes { name }
}
}
}
}
}' -F owner="${GH_REPO%/*}" -F repo="${GH_REPO#*/}" \
| jq -c '.data.repository.pullRequests.nodes'
fi
}

# GitHub may still be calculating mergeability immediately after a push.
for attempt in {1..4}; do
PRS=$(fetch_prs)
UNKNOWN_COUNT=$(echo "$PRS" | jq -r '[.[] | select(.mergeable == "UNKNOWN")] | length')

if [ "$UNKNOWN_COUNT" -eq 0 ] || [ "$attempt" -eq 4 ]; then
break
fi

echo "Waiting 10s for GitHub to compute merge status for $UNKNOWN_COUNT PR(s)... (attempt $attempt/4)"
sleep 10
done

TOTAL=$(echo "$PRS" | jq -r 'length')
echo "Checking $TOTAL pull request(s)."

if [ "$TOTAL" -eq 0 ]; then
echo "No open PRs to process."
exit 0
fi

echo "$PRS" | jq -c '.[]' | while read -r pr; do
NUMBER=$(echo "$pr" | jq -r '.number')
TITLE=$(echo "$pr" | jq -r '.title')
MERGEABLE=$(echo "$pr" | jq -r '.mergeable')
HAS_LABEL=$(echo "$pr" | jq -r 'any(.labels.nodes[]; .name == "Has Conflicts")')

if [ "$MERGEABLE" = "CONFLICTING" ] && [ "$HAS_LABEL" = "false" ]; then
echo "PR #$NUMBER ($TITLE) has conflicts -> Adding 'Has Conflicts' label"
gh pr edit "$NUMBER" --add-label "Has Conflicts"
elif [ "$MERGEABLE" = "MERGEABLE" ] && [ "$HAS_LABEL" = "true" ]; then
echo "PR #$NUMBER ($TITLE) is clean -> Removing 'Has Conflicts' label"
gh pr edit "$NUMBER" --remove-label "Has Conflicts"
elif [ "$MERGEABLE" = "CONFLICTING" ]; then
echo "PR #$NUMBER ($TITLE) still has conflicts -> Label unchanged"
elif [ "$MERGEABLE" = "MERGEABLE" ]; then
echo "PR #$NUMBER ($TITLE) is still clean -> Label unchanged"
else
echo "PR #$NUMBER ($TITLE) status is $MERGEABLE -> Skipping"
fi
done
145 changes: 145 additions & 0 deletions .github/workflows/native-audio.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
name: Native audio

on:
pull_request:
paths:
- "Native/YargAudio/**"
- "Assets/Plugins/YargAudio/**"
- "scripts/NativeBuild/**"
- ".github/workflows/native-audio.yml"
push:
branches: [dev]
paths:
- "Native/YargAudio/**"
- "Assets/Plugins/YargAudio/**"
- "scripts/NativeBuild/**"
- ".github/workflows/native-audio.yml"
workflow_dispatch:

permissions:
contents: read

jobs:
windows:
name: Windows x64
runs-on: windows-2022
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Build, test, and package plugin
run: >
dotnet run --project scripts/NativeBuild --
build --output "$env:RUNNER_TEMP/yarg-audio-package" --verify-committed-plugin
- uses: actions/upload-artifact@v4
if: always()
with:
name: yarg-audio-windows-x64
path: ${{ runner.temp }}/yarg-audio-package
if-no-files-found: error

linux:
name: Linux x64
# Build inside an Ubuntu 20.04 container (glibc 2.31, gcc 11) to keep the
# glibc floor at 2.31, matching Unity 6's Ubuntu 20.04 support. Toolchains
# linked against glibc >= 2.34 emit dlopen@GLIBC_2.34 and fail to load on
# Ubuntu 20.04, Debian 11, and RHEL 8. Do not bump this container without
# re-evaluating the floor (see Native/YargAudio/README.md).
runs-on: ubuntu-22.04
container: ubuntu:20.04
env:
# apt can hang on debconf prompts (e.g. tzdata) in bare containers.
DEBIAN_FRONTEND: noninteractive
steps:
- name: Install toolchain (gcc 10, cmake)
timeout-minutes: 10
run: |
apt-get update
# gcc-10 ships in focal universe and supports C++20 (designated
# initializers, etc.); avoids the launchpad PPA keyserver.
apt-get install -y --no-install-recommends \
g++-10 git python3-pip curl ca-certificates libicu66 make \
file binutils
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100
# Ubuntu 20.04 ships cmake 3.16; YargAudio requires >= 3.25.
# py3-none wheel bundles a fresh cmake; pinned <4 for preset compat.
pip3 install --no-cache-dir "cmake<4"
cmake --version
gcc --version | head -1
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.x
- name: Build, test, and package plugin
run: >
dotnet run --project scripts/NativeBuild --
build --output "$RUNNER_TEMP/yarg-audio-package" --verify-committed-plugin
- name: Verify architecture and exports
run: |
file Native/YargAudio/build/linux-x64/libyarg_audio.so | grep 'ELF 64-bit.*x86-64'
nm -D --defined-only Native/YargAudio/build/linux-x64/libyarg_audio.so | grep ' yarg_gain_dsp_attach$'
- uses: actions/upload-artifact@v4
if: always()
with:
name: yarg-audio-linux-x64
path: ${{ runner.temp }}/yarg-audio-package
if-no-files-found: error

macos:
name: macOS universal
# macos-26, not -14/-15: dyld4 on macOS 26 rejects ad-hoc signatures
# produced by older codesign versions (Xcode 16) with SIGKILL at dlopen,
# and enforces the LC_UUID requirement. This runner matches what users
# run, so the integration test exercises the real load path.
runs-on: macos-26
env:
# Pin Xcode 26.0.1: its clang (17.0.0.17000319) matches what the
# maintainers build with, keeping the byte-identical plugin gate
# meaningful. Also: never ad-hoc re-sign with codesign here — dyld on
# macOS 26.0-26.4 SIGKILLs codesign-made signatures at dlopen; the
# linker's own ad-hoc signature (linker-signed) loads everywhere.
DEVELOPER_DIR: /Applications/Xcode_26.0.1.app/Contents/Developer
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
# xcode-select alone does not redirect the codesign shim when the image
# also ships newer Command Line Tools; DEVELOPER_DIR does. Kept for the
# clang toolchain selection even though the plugin is no longer re-signed.
- name: Pin Xcode 26.0.1
run: |
sudo xcode-select -s /Applications/Xcode_26.0.1.app
xcode-select -p
clang --version | head -1
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.x
- name: Build, test, and package plugin
run: >
dotnet run --project scripts/NativeBuild --
build --output "$RUNNER_TEMP/yarg-audio-package" --verify-committed-plugin
- name: Verify architectures, load commands, and signature
run: |
lipo Native/YargAudio/build/macos-universal/libyarg_audio.dylib -verify_arch x86_64 arm64
nm -gU Native/YargAudio/build/macos-universal/libyarg_audio.dylib | grep ' _yarg_gain_dsp_attach$'
# dyld4 (macOS 15+) refuses UUID-less dylibs; guard against linker
# flags that strip LC_UUID for reproducibility.
otool -l Native/YargAudio/build/macos-universal/libyarg_audio.dylib | grep -c 'cmd LC_UUID' | grep -q '^2$'
# CD size identifies the codesign generation; 26.0-era is ~358,
# newer is ~367 and SIGKILLs at dlopen on macOS 26.0-26.4. A
# linker-signed (0x20002) signature is the expected good state.
# Note: codesign --verify cannot validate linker-signed binaries
# (reports "not signed at all"); the integration test's dlopen is
# the real load proof.
codesign -dv --verbose=4 Native/YargAudio/build/macos-universal/libyarg_audio.dylib 2>&1 | grep CodeDirectory
- name: Verify Intel (x86_64) slice under Rosetta
run: arch -x86_64 Native/YargAudio/build/macos-universal/yarg_audio_tests
- uses: actions/upload-artifact@v4
if: always()
with:
name: yarg-audio-macos-universal
path: ${{ runner.temp }}/yarg-audio-package
if-no-files-found: error
30 changes: 26 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/Native/YargAudio/build/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/
/UIElementsSchema/
Expand Down Expand Up @@ -41,6 +42,11 @@
ExportedObj/
.consulo/
*.csproj
!/Native/YargAudio/tests/GainIntegration/GainIntegration.csproj
/Native/YargAudio/tests/GainIntegration/[Bb]in/
/Native/YargAudio/tests/GainIntegration/[Oo]bj/
/scripts/NativeBuild/[Bb]in/
/scripts/NativeBuild/[Oo]bj/
*.unityproj
*.sln
*.slnx
Expand Down Expand Up @@ -76,10 +82,15 @@ sysinfo.txt
# Crashlytics generated file
crashlytics-build.properties

# Packed Addressables
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
/[Aa]ssets/[Ss]ettings/[Aa]ddressable[Aa]ssets[Dd]ata/link.xml
/[Aa]ssets/[Ss]ettings/[Aa]ddressable[Aa]ssets[Dd]ata/link.xml.meta
# Addressables default ignores, before user customizations
/ServerData
/[Aa]ssets/StreamingAssets/aa*
/[Aa]ssets/AddressableAssetsData/link.xml*
/[Aa]ssets/Addressables_Temp*
# By default, Addressables content builds will generate addressables_content_state.bin
# files in platform-specific subfolders, for example:
# /Assets/AddressableAssetsData/OSX/addressables_content_state.bin
/[Aa]ssets/AddressableAssetsData/*/*.bin*

# Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treamingAssets/aa.meta
Expand Down Expand Up @@ -126,3 +137,14 @@ reload_lock~.meta

# Unity crash dumps
mono_crash.mem.*.blob

# dotnet tool build output
Tools/**/[Bb]in/
Tools/**/[Oo]bj/

qodana.yaml

# VLC upstream checkouts and downloaded SDKs (managed by vlc/build.sh)
/vlc/vlc-unity/
/vlc/LibVLCSharp/
/vlc/sdk/
Binary file added Art/six_fret.blend
Binary file not shown.
Loading