Repository navigation
v0.6.10
RockSniffer_PJ v0.6.10 Release Notes
Hotfix release on top of v0.6.9. No C# changes; addon JavaScript only.
Bug fixed
Mode-1 (results comparison) wiped before user can read it in NSP
The 6 mode-1 addons (current_song_v2/v3/v3.1_LaS/v4, Arcade_v1_LaS/SA) display a post-song results view in mode 1, showing the prevNotes stats, the hasPreviousBest() comparison ("X% better than previous best"), and the cycled feedback strings ("Hit N more notes in section X", etc.). This is set by onSongEnded.
In Nonstop Play, when a song completes Rocksmith returns to nonstopplayhub (state IN_MENUS) and the in-memory songID immediately flips to the next-queued song's ID. This triggered onSongChanged in the same poll as onSongEnded, and the v3/v3.1_LaS/Arcade addons' existing onSongChanged handler flipped mode back to 0 before the comparison view was ever rendered to the user.
v2 and v4 didn't have an onSongChanged handler, so they worked better by accident — but still inconsistently, depending on getCurrentArrangement() timing relative to the songID flip.
Fix: per-addon minimum-hold for mode 1
Each of the 6 mode-1 addons now holds mode 1 for at least feedback.length × CYCLE_MS (where CYCLE_MS = 5000, matching the existing cycleFeedback rotation interval) before any subsequent onSongChanged/onSongStarted callback can flip back to mode 0. Songs with rich feedback (e.g. 5 strings → 25s hold) display longer; "YOU TRIED!"-only fallback songs hold for one cycle (5s).
State transitions to SONG_SELECTED, SONG_STARTING, or SONG_PLAYING override the min-hold immediately — once the user has clearly progressed past the hub/result screen into the next song, the comparison view is no longer useful and flips out without waiting for the timer.
Implementation: new flipToModeZero(force) helper plus modeOneSetAt / pendingModeFlipTimer module-level state in each addon. The existing 60-second hideTimeout in generateFeedback remains as the ultimate upper bound (mode 1 hides + addon goes invisible after 60s if nothing else fires).
v2 and v4 also gain an onSongChanged handler for behavioral consistency with v3/v3.1/Arcade.
Adjacent fix: song-name marquee matches stats in mode 1
The song computed property in all 6 addons now reads from prevData.songDetails when mode === 1, so the song name marquee, album art, and artist all reference the song that just ended — consistent with the prevNotes stats and hasPreviousBest comparison shown below.
Without this, the new extended hold window in NSP would have exposed a cosmetic mismatch: the marquee would show song B (the next-queued song) while the stats panel showed song A's data. In LaS this is a no-op (songID doesn't change until the user picks the next song, so songDetails and prevData.songDetails are already the same).
Files changed
addons/current_song_v2/script.js— min-hold helper + onSongChanged added + onStateChanged override + song computed prevData readaddons/current_song_v3/script.js— min-hold helper + lifecycle handlers + song computedaddons/current_song_v3.1_LaS/script.js— identical to v3 (byte-for-byte)addons/current_song_v4/script.js— min-hold helper + onSongChanged added + lifecycle handlers + song computedaddons/Arcade_v1_LaS/script.js— min-hold helper + lifecycle handlers + song computedaddons/Arcade_v1_SA/script.js— sameRockSniffer/Program.cs— version bump 0.6.9 → 0.6.10
No submodule changes. No C# rebuild needed for the addon work itself; only Program.cs's version constant changed.