dennisvhest / mapmaven Goto Github PK
View Code? Open in Web Editor NEWMap Maven is an application for managing Beat Saber playlists, discovering new maps to play and to improve your Beat Saber skills.
License: GNU General Public License v3.0
Map Maven is an application for managing Beat Saber playlists, discovering new maps to play and to improve your Beat Saber skills.
License: GNU General Public License v3.0
Show what count of maps have already been loaded and the total count.
It would be nice to be able to select multiple maps and then add/remove them to/from a playlist in the maps page.
Also bulk action for deleting maps (#38)
In the imrove page, there could be a bulk-(un)hide action.
In case something is wrong in the cache, the cache should be able to be removed by the user (at startup when there is an error and in the settings screen).
The popup can only be closed by clicking the background.
Notification when update has been downloaded. Clicking on a button restarts the application with the new version.
Also make the current version of the application visible somewhere (#166)
Automated tests should be written.
A Map Maven mod for Beat Saber alongside the desktop application. Main use cases:
Check if possible
Currently, there are only 2 dynamic playlists.
What would be nice, is configuring your own dynamic playlists by adding filters and orderings on map fields. Currently the underlying JSON format for dynamic playlists already works like this. Only a UI would have to be created.
You should also be able to select which map pool the dynamic playlists should pull maps from. Either the downloaded maps or the improvement maps.
Right now, if you click on a playlist from the improve screen. The improvement maps list will be filtered on maps in that playlist. This is a little confusing. Whenever you click on a playlist, the maps page should always be opened.
The 'Improvement maps' dynamic playlist doesn't actually download maps. Only already downloaded maps are added to the playlist.
Currently, this is to prevent some performance issues, because the application is locked up while downloading maps.
The proces of arranging dynamic playlists with maps should be completely in the background and should only refresh the UI when the proces is complete.
Maybe clear the map cache after switching install folder?
The application should be able to deal with some issues. For example:
PP curve was updated to this:
let AutogenCurve_v3 = {
name: 'Automatically Generated Curve (v3)',
points: [[0.0, 0.0],
[0.6, 0.18223233667439062],
[0.65, 0.5866010012767576],
[0.7, 0.6125565959114954],
[0.75, 0.6451808210101443],
[0.8, 0.6872268862950283],
[0.825, 0.7150465663454271],
[0.85, 0.7462290664143185],
[0.875, 0.7816934560296046],
[0.9, 0.825756123560842],
[0.91, 0.8488375988124467],
[0.92, 0.8728710341448851],
[0.93, 0.9039994071865736],
[0.94, 0.9417362980580238],
[0.95, 1.0],
[0.955, 1.0388633331418984],
[0.96, 1.0871883573850478],
[0.965, 1.1552120359501035],
[0.97, 1.2485807759957321],
[0.9725, 1.3090333065057616],
[0.975, 1.3807102743105126],
[0.9775, 1.4664726399289512],
[0.98, 1.5702410055532239],
[0.9825, 1.697536248647543],
[0.985, 1.8563887693647105],
[0.9875, 2.058947159052738],
[0.99, 2.324506282149922],
[0.99125, 2.4902905794106913],
[0.9925, 2.685667856592722],
[0.99375, 2.9190155639254955],
[0.995, 3.2022017597337955],
[0.99625, 3.5526145337555373],
[0.9975, 3.996793606763322],
[0.99825, 4.325027383589547],
[0.999, 4.715470646416203],
[0.9995, 5.019543595874787],
[1.0, 5.367394282890631]]
};
When the grid is rerendered, the cover images flicker. Maybe this can be prevented?
From a user:
I've been trying to get it to work but after a wile I get this "An unhandled error has occurred. Reload". I do have a large ammount of songs and I can see that it's still using my cpu and gpu. But it's been active for over 8 hours and I haven't seen any changes. Not sure if this is just my system or if any others have seen it.
I first want to clarify that I have a crap load of songs and a decent amount of playlist which is most likely the cause of the problem.
After doing a fresh install I decided to choose an empty/new directory for the beat saber installation to see if adding a few songs at a time could help. I ended getting some progress with that idea. I was able to load up to around 600 songs when imported in chunks manually to that said directory, but after that no new songs were detected when I refreshed. I also noticed that some playlist would just stop the whole thing from working, The playlist that would break the application changed each time I put them in, so I'm not 100% sure if it would break from how/what created the playlist or how many items/tracks were in said playlist.
When editing/deleting one of the playlist, possibly the wrong one will be edited/deleted.
It would be nice to be able to tweak the recommendation system in a way to get some easier or harder maps if you don't like the current selection.
Toaster is shown when downloading maps for an improvement playlist, but not yet for downloading a single map.
Right now, only the estimated pp gain is shown for played difficulties, but it would be useful to know the max pp gain for the recommended difficulty.
Button in map grid to open a panel with details on the map.
Most likely related to (#2).
Right now, the replay button is only shown if the score with the highest pp has a replay.
Right now, the application checks every 5 minutes for an update. This is really not nescessary.
The update check should be seperated into it's own background service with its own timer instead of sitting alongside the dynamic playlist update.
Add searchbar to:
Ability to package an update release with a script or maybe GitHub actions?
Maybe it is possible to launch a replay from a local replay file instead of ScoreSaber.
Beat Saber Web Replay supports a download URL for replay files as a URL parameter.
Maybe it is possible to give a base64 data url instead?
Some performance improvements can be made throughout the application. The application will sometimes stutter or freeze while it is doing something.
Areas where the performance can be improved:
Score Saber data is only fetched 1 time on startup. This is never updated.
If you have a dynamic playlist that filters maps on if they were played or not, and the user finishes a map while the application is running. This map will stay in the dynamic playlist until the next restart or full manual refresh.
Maybe also fetch Score Saber data during dynamic playlist arrangement?
When no cover image is selected for a playlist, show the map covers of the first 4 maps in the playlist instead of a generic icon. Just like in-game.
Memory usage can sometimes go up to 1GB when there are many maps and playlists. This should be decreased.
On map page and on improvement page
Very rarely after interacting with a text input, the application can no longer be interacted with using the mouse.
Interaction with the keyboard is still possible, so the application is not frozen or anything.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.