Coder Social home page Coder Social logo

sandiz / rs-manager Goto Github PK

View Code? Open in Web Editor NEW
51.0 7.0 8.0 170.82 MB

Stats Manager for Rocksmith - Manage Playlists, Stats, Setlists and more!

Home Page: https://sandiz.github.io/rs-manager/

License: GNU General Public License v3.0

JavaScript 85.17% HTML 6.31% CSS 3.36% Shell 0.12% SCSS 5.04%
rocksmith playlists setlists guitar stats psarc prfldb steam pyrocksmith rocksmith2014

rs-manager's Introduction

Stats Manager for Rocksmith (Windows/Mac Download)

Rocksmith's UI leaves a lot to be desired especially when you have a lot of songs in your collection. Rocksmith Manager uses Rocksmith + Steam data to consolidate stats/mastery/dlc/setlists under one roof. It also tracks your live session, showing you your accuracy, notes hit/missed in realtime.

Dashboard RSLive - Phrases

Features

  • Stats
  • Steam
    • steam integration (dlc catalog + purchased stats)
    • sort by acquired date
    • discover similar dlcs (genre based)
  • Realtime
    • track note hit on a per phrase level
    • track perfect hits on a per phrase level (score attack)
    • record raw audio
  • Setlists
    • unlimited setlists to sort your collection
    • supports manual, filter based and rocksmith in-game song lists
    • export to Rocksmith song list

Screenshots

Stats

Stats

Songs Owned

Songs Owned

Rocksmith Live - Rocksmith Live stats like accuracy, streaks, hits and misses

Rocksmith Live

Progress History

Progress History

Hit Tracking

Percent

Perfect Tracking

Percent

Record Audio

Record

Songs Available

Songs Available

Song Preview - YouTube preview for song selected and other options

Songs Available

Setlist

Generated Setlist - list of songs chosen via Setlist filters

Filter One

Filter Two

PSARC Explorer - scan and import all Rocksmith songs

PSARC Explorer

PSARC Info/Extract - inspect psarc files for more details

PSARC Explorer

Settings

Settings

Export Setlist

Development

  • Instructions for dev
    • yarn install to install all dependencies
    • yarn start to launch app in debug mode
  • Instructions for build
    • yarn run build to generate build files
    • yarn run dist-mac for mac builds
    • yarn run dist-win for win builds

Thanks

Contributors

Thanks goes to these wonderful people (emoji key):


Justin Aiken

๐Ÿ› ๐Ÿค” ๐Ÿ’ป

This project follows the all-contributors specification. Contributions of any kind welcome!

rs-manager's People

Contributors

bradgrimm avatar dependabot[bot] avatar imgbot[bot] avatar justinaiken avatar sandiz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

rs-manager's Issues

Getting a crash when clicking on a song in Detail View

Describe the bug
Click on an individual arrangement starts to pop up the detail modal, then it crashes

To Reproduce

  • Go to either a manual or generated setlist
  • Click on an arrangement

Expected behavior
Something should pop up

Screenshots
Screen Shot 2019-05-31 at 4 46 53 PM

or in text form:

searching for  Ain't No Sunshine Bill Withers rocksmith Ain't No Sunshine Bill Withers music video
react-dom.production.min.js:3744 TypeError: Cannot read property 'length' of undefined
    at t.a.render (songdetailView.js:334)
    at Ki (react-dom.production.min.js:3357)
    at Zi (react-dom.production.min.js:3348)
    at eo (react-dom.production.min.js:3507)
    at Ao (react-dom.production.min.js:4486)
    at Mo (react-dom.production.min.js:4505)
    at pa (react-dom.production.min.js:4826)
    at ca (react-dom.production.min.js:4800)
    at Ro (react-dom.production.min.js:4681)
    at Object.enqueueSetState (react-dom.production.min.js:2796)
    at t.y.setState (react.production.min.js:71)
    at t.<anonymous> (songdetailView.js:128)
    at _ (runtime.js:63)
    at Generator._invoke (runtime.js:282)
    at Generator.e.(anonymous function) [as next] (file:///Applications/Rocksmith%20Manager.app/Contents/Resources/app/build/static/js/3.7a7b0af6.chunk.js:1:854092)
    at r (asyncToGenerator.js:3)
    at s (asyncToGenerator.js:25)
    at process._tickCallback (internal/process/next_tick.js:68)
oo @ react-dom.production.min.js:3744
n.callback @ react-dom.production.min.js:4018
ii @ react-dom.production.min.js:2666
ri @ react-dom.production.min.js:2654
ha @ react-dom.production.min.js:5090
pa @ react-dom.production.min.js:4826
ca @ react-dom.production.min.js:4800
Ro @ react-dom.production.min.js:4681
enqueueSetState @ react-dom.production.min.js:2796
y.setState @ react.production.min.js:71
(anonymous) @ songdetailView.js:128
_ @ runtime.js:63
(anonymous) @ runtime.js:282
e.(anonymous function) @ runtime.js:116
r @ asyncToGenerator.js:3
s @ asyncToGenerator.js:25
_tickCallback @ internal/process/next_tick.js:68
Promise.then (async)
r @ asyncToGenerator.js:13
s @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
(anonymous) @ songdetailView.js:63
(anonymous) @ songdetailView.js:98
_ @ runtime.js:63
(anonymous) @ runtime.js:282
e.(anonymous function) @ runtime.js:116
r @ asyncToGenerator.js:3
s @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
(anonymous) @ songdetailView.js:63
Ci @ react-dom.production.min.js:2823
Zi @ react-dom.production.min.js:3347
eo @ react-dom.production.min.js:3507
Ao @ react-dom.production.min.js:4486
Mo @ react-dom.production.min.js:4505
pa @ react-dom.production.min.js:4826
ca @ react-dom.production.min.js:4800
va @ react-dom.production.min.js:5202
On @ react-dom.production.min.js:1737
songdetailView.js:149 Uncaught (in promise) TypeError: Cannot read property 'length' of undefined
    at t.<anonymous> (songdetailView.js:149)
    at _ (runtime.js:63)
    at Generator._invoke (runtime.js:282)
    at Generator.e.(anonymous function) [as next] (file:///Applications/Rocksmith%20Manager.app/Contents/Resources/app/build/static/js/3.7a7b0af6.chunk.js:1:854092)
    at r (asyncToGenerator.js:3)
    at s (asyncToGenerator.js:25)
    at asyncToGenerator.js:32
    at new Promise (<anonymous>)
    at t.<anonymous> (asyncToGenerator.js:21)
    at t.chooseVideo (songdetailView.js:63)
    at t.<anonymous> (songdetailView.js:138)
    at ii (react-dom.production.min.js:2666)
    at ri (react-dom.production.min.js:2652)
    at ha (react-dom.production.min.js:5073)
    at pa (react-dom.production.min.js:4826)
    at ca (react-dom.production.min.js:4800)
    at Ro (react-dom.production.min.js:4681)
    at Object.enqueueSetState (react-dom.production.min.js:2796)
    at t.y.setState (react.production.min.js:71)
    at t.<anonymous> (songdetailView.js:135)
    at _ (runtime.js:63)
    at Generator._invoke (runtime.js:282)
(anonymous) @ songdetailView.js:149
_ @ runtime.js:63
(anonymous) @ runtime.js:282
e.(anonymous function) @ runtime.js:116
r @ asyncToGenerator.js:3
s @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
(anonymous) @ songdetailView.js:63
(anonymous) @ songdetailView.js:138
ii @ react-dom.production.min.js:2666
ri @ react-dom.production.min.js:2652
ha @ react-dom.production.min.js:5073
pa @ react-dom.production.min.js:4826
ca @ react-dom.production.min.js:4800
Ro @ react-dom.production.min.js:4681
enqueueSetState @ react-dom.production.min.js:2796
y.setState @ react.production.min.js:71
(anonymous) @ songdetailView.js:135
_ @ runtime.js:63
(anonymous) @ runtime.js:282
e.(anonymous function) @ runtime.js:116
r @ asyncToGenerator.js:3
s @ asyncToGenerator.js:25
_tickCallback @ internal/process/next_tick.js:68
Promise.then (async)
r @ asyncToGenerator.js:13
s @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
(anonymous) @ songdetailView.js:63
(anonymous) @ songdetailView.js:99
_ @ runtime.js:63
(anonymous) @ runtime.js:282
e.(anonymous function) @ runtime.js:116
r @ asyncToGenerator.js:3
s @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
(anonymous) @ songdetailView.js:63
Ci @ react-dom.production.min.js:2823
Zi @ react-dom.production.min.js:3347
eo @ react-dom.production.min.js:3507
Ao @ react-dom.production.min.js:4486
Mo @ react-dom.production.min.js:4505
pa @ react-dom.production.min.js:4826
ca @ react-dom.production.min.js:4800
va @ react-dom.production.min.js:5202
On @ react-dom.production.min.js:1737
asyncToGenerator.js:6 Uncaught (in promise) TypeError: Cannot read property 'length' of undefined
    at t.a.render (songdetailView.js:334)
    at Ki (react-dom.production.min.js:3357)
    at Zi (react-dom.production.min.js:3348)
    at eo (react-dom.production.min.js:3507)
    at Ao (react-dom.production.min.js:4486)
    at Mo (react-dom.production.min.js:4505)
    at pa (react-dom.production.min.js:4826)
    at ca (react-dom.production.min.js:4800)
    at Ro (react-dom.production.min.js:4681)
    at Object.enqueueSetState (react-dom.production.min.js:2796)
    at t.y.setState (react.production.min.js:71)
    at t.<anonymous> (songdetailView.js:128)
    at _ (runtime.js:63)
    at Generator._invoke (runtime.js:282)
    at Generator.e.(anonymous function) [as next] (file:///Applications/Rocksmith%20Manager.app/Contents/Resources/app/build/static/js/3.7a7b0af6.chunk.js:1:854092)
    at r (asyncToGenerator.js:3)
    at s (asyncToGenerator.js:25)
    at process._tickCallback (internal/process/next_tick.js:68)
a.render @ songdetailView.js:334
Ki @ react-dom.production.min.js:3357
Zi @ react-dom.production.min.js:3348
eo @ react-dom.production.min.js:3507
Ao @ react-dom.production.min.js:4486
Mo @ react-dom.production.min.js:4505
pa @ react-dom.production.min.js:4826
ca @ react-dom.production.min.js:4800
Ro @ react-dom.production.min.js:4681
enqueueSetState @ react-dom.production.min.js:2796
y.setState @ react.production.min.js:71
(anonymous) @ songdetailView.js:128
_ @ runtime.js:63
(anonymous) @ runtime.js:282
e.(anonymous function) @ runtime.js:116
r @ asyncToGenerator.js:3
s @ asyncToGenerator.js:25
_tickCallback @ internal/process/next_tick.js:68
Promise.then (async)
r @ asyncToGenerator.js:13
s @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
(anonymous) @ songdetailView.js:63
(anonymous) @ songdetailView.js:98
_ @ runtime.js:63
(anonymous) @ runtime.js:282
e.(anonymous function) @ runtime.js:116
r @ asyncToGenerator.js:3
s @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
(anonymous) @ songdetailView.js:63
Ci @ react-dom.production.min.js:2823
Zi @ react-dom.production.min.js:3347
eo @ react-dom.production.min.js:3507
Ao @ react-dom.production.min.js:4486
Mo @ react-dom.production.min.js:4505
pa @ react-dom.production.min.js:4826
ca @ react-dom.production.min.js:4800
va @ react-dom.production.min.js:5202
On @ react-dom.production.min.js:1737

Desktop (please complete the following information):

  • OS: Mac
  • Version v2.1.9

[REQUEST] Get playtime from Steam

Rocksmith doesn't count score attack/menus/etc towards playtime.. it's off by about 400 hours for me!

You can get playtime in minutes from steam using node-steam-webapi like:

const Steam = require('steam-webapi');

Steam.key = "much_secret"; 

const getPlaytime = (steamID) => {
  Steam.ready(() => {
    const steam = new Steam();

    steam.getOwnedGames({
      appids_filter: [221680],
      steamid: steamID,
      include_played_free_games: false,
      include_appinfo: 1,
    }, (err, data) => {
      const minutesPlayed = data.games[0].playtime_forever;
      console.log(minutesPlayed);
    });
  });
};

getPlaytime(steam_user_id);

The downside is it requires an API key - so maybe make an optional setting, and fallback to Rocksmith's stat if not entered..
I'm not sure if you can get playtime via the cookie method you use to get owned packages...

Bonus points if you can config playtime display for Days/Hours/Minutes or just Hours/Minutes!

Some thoughts about scores

  • In the songlist view, songs with a mastery above 100 (like 105% from Master mode) show up as 100% - what about showing it as 105? Still keeping the bar the same though

  • Instead of hardcoding 95% as "mastered"

  • For the LAS stat tables, there's 3 bars now, plus one unplayed

    • But the SA stat tables has 6 bars, plus one unplayed
    • So could expand the LAS ranges to also have 6, and then the stat tables would be the same height
    • Maybe something like "100+", "95-99.99", "90-95", "80-90", "70-80", "0-70"

Thoughts on each of these?

Duplicate arrangements

screen shot 2018-07-23 at 10 09 34 am

  • Some of those "Lead"s are "Alt Lead"s
  • But there's also identical copies of each - 2 basses, 2 leads, 2 alt leads, 2 rhythms
    • Probably a result of me scanning the psarcs from multiple places in an attempt to get my library loaded
    • But uniqueness should be constrained based on the arrangement id - adding an already existing one should update, instead of creating new..

Some requests/ideas around setlists in the sidebar

  • [Bug?] Sort them in alphabetical order, instead of the kind-of-random they are now
  • [Bug?] If you have more setlists than fits on the screen, scrolling is wonky
  • [Feature Request] Remember if "Songs" and "Setlist" were expanded when reopening the window
  • [Feature Request] "Starred" or something setlists
  • [Mega Feature Request] Setlist folders
    • Can place setlists in folders
    • Which folders are expanded is also remembered

Flaky DLC import

Describe the bug
The DLC setlist import skips some entries

To Reproduce
Steps to reproduce the behavior:

  1. Go to Settings > Import RS Song List > Import DLC Packs as Songlist

Expected behavior
Every setlist/arrangement on the .csv gets imported

Actual behavior
Some (towards the beginning) get skipped

Additional context
If I add a console.log(line) in the line-by-line on-line handler, right after the pause(), here:

lr.on('line', async (line) => {
// pause emitting of lines...
lr.pause();

then I see something odd:

2014-04-15,Garbage Song Pack,Garba2015-03-10,Jeff 2016-02-16,Hit Singles IV Song Pack,Sublime,Bad2017-02-07,80s Mix II Song Pack,Kenny Loggins,2018-01-16,Green Day III,Green Day,Boulevard Of Broken Dreams,ACB92D364223BF2006E596E0C5CC5298,0.64864864862019-04-02,Roxette,Roxette,Listen to Your Heart,46BDBE3E81B32C70E1548C835F048C36,0.50
2019-04-02,Roxette,Roxette,Listen to Your Heart,45926D85D0B3751A3FF0E2C71628FB0D,0.50
< .. on and on with lines that look okay .. > 

Each time I try, that first line is random garbled lines from further down the pack, and then all the lines that SHOULD be there follow - sometimes it skips a few dozen, but it finishes fine going down to the end of of the file.

Something to do with the line reader starting to slurp the stream... ยฏ_(ใƒ„)_/ยฏ

Odd nested in sidebar w/ playlists

Describe the bug
screen shot 2018-12-28 at 4 39 28 pm

^^ Some playlists randomly end up "nested" under each other ^^
All of those should be at the same level

To Reproduce

  • Create a lot of playlists, put them in a folder

Expected behavior

This:

[ ] 
[ ] 
[ ] 
[ ] 

Not this:

 [ ] 
   [ ] 
  [ ] 
     [ ] 
[ ] 

๐Ÿ˜›

Desktop (please complete the following information):
Mac, RS Manager on master (although has been around since the beginning)

Additional context
Perhaps the scrollbar should apply to the whole sidebar, instead of just the setlists? You can always collapse the setlist section if unneeded, but the dual scrollbars work a bit wonky:
screen shot 2018-12-28 at 4 44 54 pm

Might be related to the nesting, might not... ๐Ÿค”

[FEATURE REQUEST] Notes

Is your feature request related to a problem? Please describe.

It would be nice to see notes about a given track, and also to have an area to write personal notes about a track.

Describe the solution you'd like

  • Arrangement notes
    • Something that's stored by arrangement_id in .csv or something that can be imported when adding arrangements from a psarc
    • Has notes like "this is vocal melody transcribed for guitar" or other things that are true for everyone
    • PRs could help fill that out with data from TRR and such
  • Personal notes
    • Where you can jot notes to yourself, like "Make sure to use ring finger instead of pinky in the last bar"

Describe alternatives you've considered
A big markdown file of notes locally ๐Ÿ˜œ

Some general problems

Hi there,

Zoutje here. I really liked the design of the app and its looking awesome. Unfortunately I can't get it to work.

I got a few issues:
-I can't select a control path.
-Whenever I change the rocksmith profile (_prfldb:) it goes blank like here;
https://i.imgur.com/OUBW1I7.png
-The sign in through Steam button does nothing for me.

Would love to use this app as I am a dedicated RS player and this would be really nice to keep track of everything.

Friendly greetings,

Zoutje

Tuning sorting

At the moment, when sorting by tuning the listing is not consistent at all.

Capo and off tuned song just randomly in the middle of other song in the same tuning :
https://imgur.com/IrQZwGR

And listing that doesn't correspond to tuning order in RS which doesn't help quickly noticing where you are :
https://imgur.com/f4DWFv7

Would be nice if it was more consistent with RS own sorting.

Create setlists for ODLC packs

Data

Here's a csv that has the DLC pack / date / arrangement_id for all current songs

Import

  • It would be cool to have a button in settings that would autocreate setlists matching
    • Even better if it would only create the setlists for the packs you actually have
  • I hacked it in to my own local sqlite database directly with this hacky ruby script
    • But that's not helpful to anyone else...

End Result:

Screen Shot 2019-03-27 at 4 58 10 PM

[Feature Request] Find Steam account/Rocksmith profiles by name

Hi Sandi,

A low priority feature request as discussed yesterday.

Cheers,

Larry

Is your feature request related to a problem? Please describe.

Rather than asking the user to find their Rocksmith profile file, it would be good to provide menus that allow the user to select a Steam account by name, and then their Rocksmith profile by name. This would help people who don't understand (or don't want to understand) the layout of their Steam files, and would help reduce selection mistakes for people with multiple accounts/profiles. It'd also help people like me who are lazy (and have multiple accounts and profiles :-) ).

Describe the solution you'd like

I tried a couple of paths in rsrtools - the following approach is what I found best:

  1. Find the steam folder (~Library/Application Support/Steam for OS X, or from the registry
    key HKEY_CURRENT_USER\Software\Valve\Steam\SteamPath for Windows).

  2. Read the loginusers.vdf file in the <steam path>/config directory. This gives you
    the following information for each account that has logged in locally:

          - 17 digit steam user id.
    
          - Account name.
    
          - Publlic account alias (persona name)
    

    (This is where I ran into the unreliable case problem with the dictionary keys.)

  3. Ask the user to select an account by name or alias.

  4. Convert the 17 digit id into a steam account id (which is also the the name of the users folder
    under <steam path>\userdata by grabbing the low 32 bits of the steam user id:

             account_id = user_id & 0xFFFFFFFF
    
  5. Load LocalProfiles.json for the selected account id.

  6. Ask the user to select a Rocksmith profile by name from the names available in
    LocalProfiles.json (and consequently also select the _PRFLDB file).

Describe alternatives you've considered

I tried a couple of options around searching Steam folders - the option described above seems to be the best for getting to the desired result even if it is a bit round about.

Additional context

None. It's really a usability request for people who are guitar rather than computer focused.

[Feature Request] Score Attack

This thing is amazing!

Would also be nice if:

  • Song views had "SA Hard" next to mastery, so one can see songs that are 100% mastered but only Gold SA'd, etc..
  • Dashboard view had a SA Hard breakdown for songs similar to Lead/Rhythm/Bass, showing count unplayed, count failed, count gold'd, count platinum'd, etc

Feature Request songlists

Hello,

I am a big fan of the RS manager. One thing that prevents it from being perfect for me is the setlists.
I am not sure what is possible coding wise, but I just give some things I like to see to make it perfect for me:

-Being able to add filters to Rocksmith Song lists (imported from in-game)
-Individually able to add/delete arrangements to custom lists; Rhythm, Bass or Lead/Alt lead from tracks. Now if you add or delete you add or delete all arangements at a time.
-A workaround that doesn't show Rhythm, but does show lead from RS1 songs, they are currently not showing because the ''combo'' arrangement.

Ultimately what I would love to see is a list that shows Lead songs that I like (that are currently in my RS Song list 1 playlist) so I can remove songs from the base game that I don't like. I currently have a goal of reaching 80% in all songs from my RS Song list 1 in the lead path. Both suggestions would enable me to keep perfect track of my goal. With custom lists I could manually add all Lead from songs I like OR with filters in imported RS lists I could filter out rhythm/bass.

I hope I made clear what I would like to see as English isn't my first language. I am also not sure what is possible, I appreciate all the effort greatly.

Unplayable arrangements in songs.psarc

If you scan in the songs.psarc to get all the on-disc progress, it grabs some unplayable arrangements, called like RS2 Test Disc Riffs - Hybrid Tails

screen shot 2018-07-27 at 7 55 10 pm

[MAC] No password rocksniffing

Okay, so if we make a file like this:

src/tools/rocksniff:

#! /usr/bin/env bash

# Run a command in the background.
_evalBg() {
  eval "$@" &>/dev/null &disown;
}

rocksniff_off() {
  pids=$(rocksniff_pids)
  if [ -n "$pids" ]; then
    kill -9 $pids
  fi
}

rocksniff_pids() {
  ps aux | grep RockSniffer.exe | grep -v grep | awk '{print $2}'
}

rocksniff_on() {
  rocksniff_off
  cmd='/Library/Frameworks/Mono.framework/Commands/mono "/Applications/Rocksmith Manager.app/Contents/Resources/app/src/tools/RockSniffer/RockSniffer.exe"'
  _evalBg "${cmd}";
}

case $1 in
   "on") rocksniff_on &;;
   "off") rocksniff_off;;
   "pids") echo $(rocksniff_pids);;
   *) echo "invalid usage!" && exit 1;;
esac

And then replace the "on" command for mac with:

-      this.rssniffer = `bash -c "${killcmd}; cd '${cwd}'; /Library/Frameworks/Mono.framework/Commands/mono RockSniffer.exe"`
+      this.rssniffer = `/Applications/Rocksmith Manager.app/Contents/Resources/app/src/tools/RockSniffer/rocksniff on`

..and something similar for the "stop tracking"...

We should keep about the same functionality, but now we have a single command rocksniff.

Then if one edits their local sudors file to add:

%staff ALL=(ALL) NOPASSWD: /Applications/Rocksmith Manager.app/Contents/Resources/app/src/tools/RockSniffer/rocksniff

They should not get prompted to enter the password when clicking "Start Tracking" or "Stop Tracking"..

But the downside is, it means we can't dynamically find the rocksniff script or the RockSniffer.exe - it gets hardcoded to RSManager being installed to /Applications

What do you think about this idea?

[Feature] - FC Support

It's nice to keep track of which arrangements you've FC (Full Combo) - got 100% on in Score Attack. Unfortunately, Rocksmith doesn't keep track of this in the save file; you have to track it outside the game.

Here's kind of what I'm thinking...

  • Add fields to the songs_owned database for tracking this..
    • Either sa_easy_fc/sa_medium_fc/sa_hard_fc/sa_master_fc as booleans
    • Or sa_easy_fc_at / sa_medium_fc_at / sa_hard_fc_at / sa_master_fc_at as dates, to store when FC was achieved
  • On the view that pops up when you click an arrangement, add input for getting FC Status next to the "Delete Song from DB" and other buttons
  • On the SongList view, where it shows the little badges for SA, add a little glowy halo or something around the platinum pick if it's FC'd
  • On the Dashboard "Score Attack" stats view, add a tier above "Plat" for "FC"

What are your thoughts about adding FC-tracking in general, and the approach?

[Feature Request] Genre tags + discovery of steam dlc

from ted (r/rocksmith discord):

it'd be cool if a dev made some sort of
"enter bands you like, hey you might like these dlc!" style app
discoverability definitely is an issue, especially with new players coming in to all these songs
  • tag steam dlcs with genres fetched from discogs
  • add/remote in song detail
  • filter by tags

RocksnifferLib Updates

update to latest rocksnifferlib

  • has pointers to persistent id + game state (for windows)
  • find pointers for mac

[Feature Request] Make plat/silver picks and gold/bronze more distinct

Is your feature request related to a problem? Please describe.
It's kind of hard to tell which picks are which when glancing at them:

screen shot 2018-11-28 at 3 54 38 pm 1

Which is better?

  • Is the 2nd from the top, or 3rd from the bottom a better playthrough?
  • What about gold vs bronze?
  • I can't even tell!

Describe the solution you'd like

  • Maybe differentiate the platinum and gold (and FC, since it's the best, even if it doesn't have conflicts) with kind of a crystalized effect, like in game:

screen shot 2018-11-28 at 3 56 54 pm

Describe alternatives you've considered

  • Or a halo?
  • Or make the silver/bronze really ugly, hahaha
  • Or add nums/letters?

[FEATURE REQUEST] Sort order on setlists

Is your feature request related to a problem? Please describe.
Not a problem, just a new request...

Describe the solution you'd like

  • Instead of the songs owned list or the setlists always defaulting to mastery descending, make it customizable:
    • Globally
      • And then each setlist can have an option to use the global settings, or override
    • I think datatables lets you do multiple sorts; would be even better if you could pick 2 or 3 (ie, playcount descending, but in case of a tie order by difficulty ascending

Describe alternatives you've considered

  • Continue just clicking on difficulty every time I open a setlist ๐Ÿ˜›

Additional context
I'm opening a few issues here... if there's any you like the idea of, but don't want to do yourself, let me know and I'll take a stab! Or if you don't like ideas feel free to reject ๐Ÿ˜„

"Refresh Stats from Profile" Broken

Describe the bug
Just updated from 2.0.5, to 2.1.1, and played some new songs. After hitting "Refresh Stats from Profile", it does lots of activity, but then nothing updates - the songs I played still show 0 plays and 0% instead of 1 play and 100%.

To Reproduce

  • Be on 2.1.1
  • Have some progress
  • Hit "Refresh Stats from Profile"
  • After much processing, nothing happens

Expected behavior

  • Stats update on the Dashboard after react does it's thing
  • Going to songs or a setlist should show the new progress

Screenshot

Also, looks like some of the badges have dissappeared:
Screen Shot 2019-05-03 at 10 21 55 AM

All those blank spaces should either be a platinum, gold, or fail

Desktop (please complete the following information):

  • OS: MacOS10.13.6
  • Version: 2.1.1

Additional context
I'd installed rsrtools via pip3 and linked the binary in the new settings, but haven't touched anything with it yet.

[Feature Request] rslive features

Is your feature request related to a problem? Please describe.
over on r/rocksmith discord, thejohnnewton shared some great ideas for future rocksmith. some of them might be possible now with rs-manager

Describe the solution you'd like
Sound capture (whole mix/possible to isolate ?)
track good and perfects with <1000ms accuracy
find timing data from psarc (?)

Describe alternatives you've considered
n/a
Additional context
n/a

[Feature] - CDLC support

What do you think about...

  • Adding a is_custom type field to the DB
  • On the psarc explorer, add a checkbox when you import a song for "is custom"
  • On songlist view, color custom songs different or some other visual indicator
  • On the dashboard view, have a toggle to include customs, or limit to official content for all stat calculations

Can not export setlist

Describe the bug
Export setlist give me an error no matter how I set the path to rsrtool.

{"code":"ENOENT","errno":"ENOENT","syscall":"spawn "C:\Python\Lib\site-packages\rsrtools\"","path":""C:\Python\Lib\site-packages\rsrtools\"","spawnargs":["--silent","-a","76561197995688498","-p","Gaboros","-sl","2",""D:\Temp\Windows\tmp-9132X2zTof37O1kR\songkeys.json"",""D:\Temp\Windows\tmp-9132X2zTof37O1kR""]}

V2.1.9

Software doesn't load, stay on a white screen

Note sure what kind of information i could share just like that.

Windows 10 1803-17134.345

One detail is that the tool isn't in the same place as the game (no idea if that matters) and i got version 1.0.2

Tried the version 1.0.0 and it loads perfectly until i load a profile and then i just get the background image but nothing else.

[Feature Request] Track History

Is your feature request related to a problem? Please describe.
track history of mastery % per arrangement

Describe the solution you'd like
save MasteryLast on update and display as history

Describe alternatives you've considered
n/a
Additional context
n/a

List filtering

So i've used it a little and one thing that i would like to be able to manage is to filter out the listing in the "songs owned" (might probably be worth to all listing but this the one i've used at the moment).

For example, i wanted to complete alt/bonus arrangement in SA that i haven't done yet but the only thing i could use was to sort by Badges and i couldn't then make it so it's ordered by tuning (or maybe filter out bass if i wanted to do guitar only).

I know some of it is doable using the search (for reducing the arrangement type) but it's a bit limited.

Songs count is incorrect

It doesn't take into account songs with the same title, but different bands.

For example, Know Your Enemy is the title of two songs (Green Day and RatM), but counts as only 1 song. This is clear from the search results:

screen shot 2018-08-07 at 11 25 59 am

But besides the search results also throws off the "Songs Owned" stat and I'm guessing a few others

Can't `yarn install` after Electron update commmit

Describe the bug

  • After 686c7ab, I'm unable to yarn install

To Reproduce

  • Be on High Sierra 10.13.6
  • Be on yarn 1.13.0
  • run yarn install

Expected behavior
ndi4nd6i7k7z

Screenshots
screen shot 2019-02-13 at 9 02 31 am

And then after rm -r node_modules/ and trying again:

screen shot 2019-02-13 at 9 03 57 am

I tried upgrading node-abi to 2.7.1 (yarn upgrade node-abi), but then running yarn install still gives the same error

2.4 breaks "Refresh Stats" button

Describe the bug

  • When hitting "Refresh Stats from Profile", I get this error:

Screen Shot 2019-10-03 at 3 53 18 PM

and the new Toast thing spins forever:

Screen Shot 2019-10-03 at 3 53 14 PM

To Reproduce

  • Be on the just released version
  • Hit said button

Expected behavior

  • Toasty notification should talk about how fast it's importing things :D

Desktop (please complete the following information):
Mac OS

[MAC] Crashes on startup because of naudiodon

Describe the bug
Crashes on running migration startup screen.. pulling up the dev tools console shows a stacktrace about naudiodon complaining about libportaudio.dylib not being loaded

To Reproduce

  • Download the latest 1.7.2 release
  • Start it on a Mac it wasn't build on

To Un-Reproduce
Building the same tag locally, it all works perfect. Looks like it might be related to this issue? Streampunk/naudiodon#3

Add task scheduler

  • task scheduler + background worker for all long running operations
  • verify tab switching works with background operations

Lots of extra cruft in releases

screen shot 2018-09-05 at 10 32 04 am

  • 125MB -> frameworks (electron, etc); can't lose that!
  • 7MB -> app/build - can't lose that! (green square)
  • 133MB -> node_modules (red square)
    • Much of this is dev dependencies - babel, jest, eslint, webpack, etc...
    • Some could be filtered with --ignore
    • ...and maybe some packages moved from dependencies to devDependencies ?
  • 22MB -> app/assets/images (yellow square)
    • Just screenshots used in the README - could probably be added to --ignore

Anyways, by moving some packages around and getting crazy with --ignore, could probably cut the release size in half... if you're interested I can help out with some of that, but feel free to close if you don't care that much about release size - after all, I'm installing this on a 1TB HD :p

Setlist Issues

Hey again,

Loving the quick updates. I tried using the ''Generated'' list for the request I had. However its not working as intended for me. I used Filter type; arrangement like lead and it shows rhythm. I also tried not like rhythm, but its still showing rhytm.

Also I was wondering if it would be possible if there was a way to use filters in Rocksmith playlist (like from Rocksmith Song list 1) because I basically have all my tracks I like in that playlist. Would be great, if I just could filter to Lead then I have everything in one place. Otherwise I have a bunch of songs I don't really like in this list and its a bit of a nuisance to manually remove song by song.

setlist improvements

  • remove add to setlist options from song detail
  • "add songs" option in manual setlists
  • "export to setlist" option in individual setlists

[FEATURE REQUEST] Stats on playlists

Is your feature request related to a problem? Please describe.

Problem: Stats are addictive... More breakdown wanted ๐Ÿ˜

Describe the solution you'd like

  • Picture the Lead/Rhythm/Bass and various SA stat boxes...
    • but instead of just on the dashboard, also on each setlist,
    • Showing the stats for whatever is represented in that setlist...
    • "Include CDLC in stats" wouldn't be taken into effect here;
      • It would be determined by whether the setlist itself has CDLC or not
    • If any stat boxes would be empty (IE, if the setlist is only bass arrangements, so lead/rhythm are all 0s, hide them)

Describe alternatives you've considered

  • Manually running queries against the sqlite3 database ๐Ÿ˜œ

Feature request: "proper last played (with import)"

Hi there,
im tracking what i played for like 2-3? month so far (doing snapshots of rocksniffer every 10?sec) - goal is to get a "last played" list on any track (lead/rythmn/alt/bass). so i have like 30k small json files but no time to write something to evaluate those :) - or put them in a (proper) database.

Imho a nice addition to keep track and not play the same stuff all the time?

psarcjs

add psarcjs, remove custom psarc code

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.