banner

What is Simple Beatmap Analyzer?

This is my first rust program

Simple Beatmap Analyzer is a console application that analyzes ".osu" files for Standard game mode only. After it finishes it outputs the results in a "CSV" (comma,separated,values) file in the same directory as the .exe

Table of Contents

  1. How does it work
  2. How to install
  3. How to use it
  4. How to load results.csv in Excel
  5. How to analyze the data in Excel
  6. To Do
  7. F.A.Q

How does it work

It assumes every map is in maped 1/4 and calculates streams/jumps and other patterns aswel as some ratios based on them (Jumps are asumed every second beat and i will be refering to it as 1/2). * For 1/4 patterns we assume the circles are overlapping or up to 16 pixels edge to edge. * For 1/2 patterns we asume the edge to edge space is higher than 110 pixels 1. 1\4 patterns: * Dobules/Triples/Quads/Bursts/Streams/DeathStreams * Bursts: 3-12 includes Triples and Quads * Streams: 13-32 * DeathStreams: 33+ 1. 1\2 patterns: * ShortJumps/MidJumps/LongJumps * ShortJumps: 3-12 * MidJumps: 13-32 * LongJumps: 33+ 1. SI -> Stream index (how streamy the map is minus jumps) 1. JI -> Jump index (how jumpy the map is minus streams) 1. FCDBI -> Finger Control Double Bursts Index (experimental) 1. Additionals stats like 99% acc PP for NM/DT/HR aswel as Stars for said mods and others... wont list em all

How to install

  1. Click on releases and download the latest version.
  2. Unzip into a folder of your choice.

How to use it

  1. Open the SimpleBeatmapAnalyzer.exe
  2. Paste the Osu Songs path (example: D:\osu\Songs) and click Enter
  3. Wait for it to finish and save the data in results.csv
  4. Open the results.csv in Excel or any other CSV reader/analyzer
  5. After you find the map you like simply copy the MapID and paste it in the Osu search ingame

How to load results.csv in Excel

Method 1

  1. Open a new excel document.
  2. Chose the menu Data and from there click From Text/CSV
  3. Select the results.csv and click Open
  4. After then on the first drop down menu select 65001: Unicode (UTF-8) if its not auto selected

    1. Make sure the delimiter is Comma and press Load

Method 2

  1. If in windows your default delimiter is "," and not "." open the csv with Excel
  2. Chose the menu Insert and from there click Table
  3. It should auto detect the scope of your table, if not manualy select it
  4. Enable My table has headers checkbox and press Ok

How to analyze thedata in Excel

Example 1: Most Streamy 7* Beatmaps from 210 to 220 BPM with more than 20% Bursts

  1. Chose the menu Data and enable Filter if its not enabled.
  2. Click the arrow on BPM->Number filters->Between..
  3. Click the arrow on Stars->Number filters->Between..
  4. Click the arrow on Bursts->Number filters->Greater Than..

Example 2: Most Jumpy 6* DT Beatmaps with no Streams and Deathstreams that are 10.33 AR

  1. Chose the menu Data and enable Filter if its not enabled.
  2. Click the arrow on DT_Stars->Number filters->Between..
  3. Click the arrow on Streams->Number filters->Equals..
  4. Click the arrow on DeathStreams->Number filters->Equals..
  5. Click the arrow on DT_AR->Number filters->Equals..
  6. Click the arrow on JI->Sort Largest to Smallest

To Do:

  1. Create a config file with options.
  2. Add counter for cut streams
  3. Calculate AVG jump Spacing and AVG jump Distance
  4. Option to be able to generate Osu links and Osu Direct links
  5. Expose variables as the stream distance and jump distance for editing in the config
  6. Maybe add optinal support for 1/3 or 1/6th or other uncomon Snap Divisors (prob wont)
  7. Figure out a way to have an indicator if the map is ranked/loved/qualified/graveyarded

  8. Why does it run slow ?

  9. When i load the data in Excel the numeric columns like Stars are text ?

ROSU-PP - Beatmap parsing and Difficulty/PP calculations

Licence

MIT

back to the top