Releases: Wieku/danser-go
0.11.0
BIGGEST CHANGE: SR/PP Update, AMD Encoding Support and Custom Labels/Statistics
General
- Updated to go 1.24.1 which can bring stability/performance improvements
- Changed linux target to ubuntu 22.04
- Updated SR/PP algorithms to the recent rework
- Windows binaries should now be signed (will try to keep it up, but that's $$), that means your systems should complain less
Danser
Recording
- Fixed FLAC audio encoder being silent
- Added AMD (H264, H265 and AV1) encoder support (thanks to @waylaa )
- Added Software AV1 support (thanks to @waylaa )
- Updated ffmpeg to 7.1
- Fixed reduced recording performance with ffmpeg 7.0+
- Fixed glitched output on AMD cards on Linux (even on software encoders)
- nv12 pixel format should now be slightly faster than before (mostly for Intel encoding)
- Removed nv21 format support
- Image flipping is now done internally if
yuv420p/yuv444p/nv12is used (danser no longer applies thevflipffmpeg filter). Should make recording slightly faster - Added
high444profile to libx264 options, enablingyuv444pusage - Added
high444-8profile to libx265 options, enablingyuv444pusage
Audio
- Fixed nil panic if
Audio.OnlineOffsetwas true but API was not authorized - Updated BASS libraries to the newest versions
- Fixed skip intro causing some maps to desync (chiptune Brazil map for example)
- Fixed manual skipping in Watch mode generating a buzzing sound
Mods
- Fixed Easy mod crashing danser if non-default number of retries was set
- Fixed Difficulty Adjust values above 10 being overriden by Hard Rock
- Added Mirror mod support
- Added Traceable mod support
- Relax and Autopilot should now have correct mod multipliers for Lazer plays
- Fixed index out of range crash if Classic mod with
No Slider AccuracyandLazer Notelockoptions was selected
Cursordance
- Fixed autoplay randomly missing during watch mode
- Autoplay now adjusts single/double tap based on speed adjustment mods
HUD
- Keyboard HUD now only shows B1/B2/Smoke keys if Lazer mod is selected
- Added custom text components that add possibility to display custom statistics like SS PP, current SR, FC PP, KPS and more! More details here: https://github.com/Wieku/danser-go/wiki/Templates
Knockouts
- Lazer replays are now forced to Classic scoring if matched against osu!stable replays
Scoring (General)
- Fixed slider breaks being counted two times
- Updated pp to the recent rework. Moved the previous pp rework from latest to
241007(json) and2024 pp rework(GUI). So if you had latest selected, it will automatically use the current (2025) rework - SR calculation should now be faster for maps with hour+ long breaks.
- Due to the above, people using Skill's map collection shouldn't get stuck in Star Rating calculation.
Scoring (Lazer)
- Fixed lazer's SS PP being wrong in logs
- Lazer scores now use lazer's slider paths (circular arcs are more detailed in lazer than in stable), that should improve replay accuracy
- Lazer scores now use lazer's circle size calculations, that should improve replay accuracy as well
- Lazer Relax plays should now be more accurate
Scoring (Stable)
This is the big one (at least for me). I think that battle has spanned over 4-5 years and I think I've finally managed to win it. Stable slider paths and timings should now be more accurate. That means stable slider end times should now match osu stable. Previously they were slightly incorrect, making true end time (the -36ms one) sometimes being off by 1ms, causing some slider ends to be missed or scored incorrectly. Danser had a "hack" to compensate for that by replay analysis, but since the timings should be fixed, that hack has been turned off in this release.
CLI
- Added an
-sPatchargument that allows overriding json options, more in README
Launcher
- Fixed config editor search working only with lowercase letters
- Fixed the splash screen being slightly off-center
- Made config editor slightly more compact
- Fixed lazer mods not showing up in the knockout manager
- Mode and Watch Mode are now being preserved between sessions - no more need to select
RecordorCusrordance with UIeach launch - User is now getting notified (with map path in logs) if map's SR calculation takes longer than a minute for easier investigation (no need to send danser.db and stuck number anymore)
Happy dansing!
0.10.2
General
Local offset (-offset and Time/Offset menu in launcher) is now inverted to match stable's local offset
Danser
- Fixed some leaderboards failing to load
- Added an option (
Audio.OnlineOffset) that uses osu! API (if authorized) to download and apply online offset for some beatmaps. - Added https://osu.ppy.sh/home/news/2024-10-28-performance-points-star-rating-updates to the Difficulty Calculator version message
0.10.1
Ironing out some stuff.
General
- Improved Songs folder scanning performance on HDDs on Windows. Depending on file cache state reduction should be 33-50% on first run after restart up to 90% on subsequent danser launches. No guaranties though. Please let me know if there's performance change on Linux as I haven't tested it there, but it should be roughly unchanged.
- Songs scanner now looks for the first .osu file in hierarchy. That means folder collections are now supported. Considering this hierarchy:
Songs
├── collections
│ ├── farm
│ │ ├── OBAMA SCRAMBLE
│ │ │ ├── a.osu
│ │ │ └── b.osu
│ │ └── Brazil
│ │ └── c.osu
│ └── huh
│ └── Save Me
│ └── d.osu
├── 727 Harumachi Clover
│ ├── e.osu
│ └── additional
│ └── f.osu
└── 1751 Some Broken Map
└── subfolder
└── g.osu
Before 0.10.1 danser would only load e.osu. Now it will load a.osu, b.osu, c.osu, d.osu, e.osu and g.osu
Danser
API
- Fixed avatars failing to download on Linux
- Fixed local replays not showing leaderboards and downloading wrong avatars
Mods
- EZ/HR are now compatible with DA, HR will still clamp values to 10 though, EZ will raise difficulty on DA parameters below 0.
HUD
- Slightly improved text clarity on lower resolutions
- Added
Gameplay.SBFontsetting. It allows changing the font for leaderboard names and ranking panel texts. Use Aller Light for osu! stable look. - Added slider ticks and slider end counts to the ranking panel
- Fixed spinner bonuses showing up as 1100 instead of 1000 for stable replays
Knockout
- Added support for DA replays
Skinning
- Added Daycore mod icon to the default skin
Launcher
- EZ/HR and DA mods are now compatible
- Removed Difficulty Adjust from main menu
- Fixed opening Mods menu clamping DA mod settings if replay had extended values
- Added a launcher option to automatically refresh the database on Songs folder change (alternative to popup)
0.10.0
A pretty significant update! I would say, lazer-y!
BIGGEST CHANGE: Lazer support
General
- Switched to osu!api v2. Your apiv1 key will be wiped on the first launch of 0.10.0 version
- Updated the SR/PP algorithms to the recent rework
- Added basic lazer replay support. Only standard mods as well as Classic and Difficulty Adjust are supported. Mod settings are also supported
- Changed Linux target to Ubuntu 20.04 or newer (was latest before)
- Map music and storyboard files are now case-insensitive on Linux
Danser
Recording
- AV1 encoding support for NVIDIA GPUs
- Improved recording performance for longer maps in replay/cursordance w UI modes (55s -> 47s reduction on my machine on a 8 minute map at 900p)
- Fixed QSV initialization error not being captured
PePe
- Improved live pp calculator builder performance (1h marathon map, takes 16s for 2022 calculator, 1.2s for current)
- Added Gameplay.PPVersion setting. 2024 rework is set as a default but you can switch back to 2021 or 2022 versions.
Mods
- Added "LZ" (Lazer), "DA" (Difficulty Adjust), "CL" (Classic) mods.
- DC/NC mods now use relative frequency instead of tempo+pitch, fixes some nightcored maps sounding off
HUD
- Added "Classic" score option (Gameplay -> Use "Classic" score for osu!lazer plays) for Lazer plays
- Added mod icons for Lazer, Classic and Difficulty Adjust mods
- Added an option to hide Lazer mod from mod HUD
- Fixed mod HUD blinking if map starts near the song start
- Changed display of ar/cs/od/hp/speed changes to be more pleasing
- Added support for Country/Friends leaderboards
- Added support for Lazer leaderboards
- User avatars are now cached on disk
Knockout
- Added smoke support in knockout mode.
Skinning
- Slightly improved parsing of skin.ini files (trash values in boolean options are being ignored, skipped reading alpha values in color options as it often contains trash)
Backgrounds/Storyboards/Video
- Fixed map videos with odd width/height being broken
- Background dim/blur is now changeable while danser is running
- Fixed Enabling blur while danser is running making the backgound black
Arguments
- Added -mods2 argument. It's structure is a JSON array with mod object with acronym string and settings map. Example
[{"acronym":"DT","settings":{"adjust_pitch":true,"speed_change":1.22}},{"acronym":"LZ"},{"acronym":"DA","settings":{"approach_rate":9,"circle_size":5.3,"drain_rate":2.5,"overall_difficulty":7.4}}]] -ar,-od,-cs,-hparguments are ignored if -mods2 contains DA mod-speedargument is ignored if-mods2contains HT/DC/DT/NC mods- Fixed
-pitchbelow 0.25 breaking playback
Performance
- Changed frame scheduling a bit, slightly raised fps on powerful machines (Watch/Play modes only!)
Misc
- F11 now enables the debug screen (
-debugflag) - Added performance graph (available via SHIFT+F11)
Launcher
- Added support for modifying replay mods
- Fixed selecting files from search results crashing danser
- Added janky drag scrolling for tablet users (probably won't touch that shit again)
- Changed reset button to an icon
- Added "Allow extended values" checkbox to "Adjust difficulty" window
- Added "LZ" (Lazer), "DA" (Difficulty Adjust), "CL" (Classic) mods to mod selection
- Added support for mod configs, even for non-lazer plays
- Unsupported encoders are now hidden from selection
- Winter theme now should end at the end of January instead of February
- Fixed excessive snow being shown in play mode
Happy dansing!
0.9.1
Danser
Scoring
- Fixed combo not resetting when very short sliders are missed (0.9.0 regression)
- Fixed spinners sometimes not clearing or giving too much bonus in replays (#330)
- Fixed spinners sometimes auto-missing with massive RPM in replays (#342, https://reddit.com/r/osugame/comments/15sf7ui/comment/jwdyumm)
- Fixed passive hp drain being too high on some maps (#316, #342)
Misc
- Debug overlay now shows memory info
- Reduced memory hit by debug overlay
- Reduced memory allocation by shaders, should result in less GC cycles.
Launcher
- Fixed strain graph not showing properly for freshly imported maps
0.9.0
General
- Dropped support for Windows 7/8/8.1
- Updated go to 1.21 which brings stability improvements
- Added a
DANSER_FLAGS=AMDHACKenvironment variable to fix cases when launcher only has triangles visible or danser has random missing letters on older AMD GPUs
Danser
Recording
- Fixed color issues/stuttering on 23.7.1 or newer AMD drivers (#337)
UI
- Strain Graph now ends at last object's end, not start
- Strain Graph now better exposes most difficult parts of the map
- Fixed Strain Graph crashing if map has only one object
Objects
- Fixed reverse arrows being broken on old maps (#328)
- Fixed missed kick slider head circles disappearing too late
Settings
Cursor.CursorRipplesis now disabled by default because a lot of people confused them with HitLighting- Paths are not being sanitized anymore which enables use of network locations (#323)
Misc
- LZMA compressed and Base64 encoded settings are now embedded in danser.log for easier issue analysis
- Improved stability of frame limiter, fixes update thread sometimes being stuck at 800-ish ups
-debugflag now also shows memory information
Launcher
- Launcher logs now also print platform information
- Fixed "Select replay" button crashing the launcher if Replays dir doesn't exist, it now defaults to danser's dir
- Improved wording of Encoder option tooltip (by @AliceUnderwater)
- Fixed task bar progress being stuck on failed replays
- File/Directory that triggered the database refresh request is now being logged
- Added strain graph to Time/Offset menu:

I think I didn't omit anything this time ;)
0.8.4
Happy New Year! 🎉🎉
General
Settings
- Changed default values for OversampleMultiplier and BlendFrames to 16 and 24
Launcher
- Fixed launcher crashing if Songs dir doesn't exist
- Fixed "Browse" button freezing the launcher
0.8.3
Ho Ho Ho! 🎅
A small update this time, but read to the very end ;)
Danser
Recording
- Improved quality (especially hitcircles) at lower resolutions
Gameplay
- Added an option to ignore fails in replays. You can now render your multi replays ;)
Objects
- Fixed some sliders not loading correctly
- Danser is now ignoring sliders with 1B total length (pixel_length * repeats)
Cursordance
- Fixed danser failing at ~60% of the map when Slider Dance is turned on.
Playfield
- Fixed "Bloom to the beat" not being disableable
Storyboards
- Fixed looping sprites disappearing too early
Launcher
Import
- Slightly improved speed of calculating Star Rating of longer maps
- Fixed some maps freezing Star Rating Calculation
Recording
- Fixed danser opening new videos folder each time after finishing 2nd+ video.
And a small surprise in the launcher!
Merry Christmas! 🎅🎄
0.8.2
Finally an update :P
There are some changes in settings file format, read below.
General
- Fixed function keys crashing danser and launcher (#293)
- (Linux) Fixed inability to run danser if working directory is not the same as danser's directory
- Fixed broken video on AMD GPUs with 15.200.* drivers
Danser
Recording
- Fixed AAC audio being encoded at 128kbps no matter the setting
- Removed manual blending weights
- Moved Automatic weights to Motion Blur:

They migrate automatically
Gameplay
- Fixed HT plays having wrong passive HP drain (#288)
- Fixed NaN pp appearing in some cases
- Fixed osu! auto replays auo-failing (OR just use danser UI mode FFS)
- Switched danser auto and play mode to lazer's notelock (kinda, auto-miss is missing yet). Ability to switch between stable/lazer notelock will come in the future
Cursor dance
- Numerous improvements to 2B cursor dancing (example: https://youtu.be/97Gx97iCQ9s)
Objects
- Added support for lazer's multi-type sliders:

- Fixed timing points with decimal time (lazer) being skipped
- Improved performance of sliders with huge amounts of ticks/repeats
- Immensely improved performance of slider path rendering, allowing complex sliders without losing quality. As a result, Quality options have been removed. For nerds: https://img.wieku.me/22/solace.mp4
- Fixed distortions not looking correctly
- Added options to customize distortions
- Fixed objects with negative volume being loud
Storyboards
- Fixed video of https://osu.ppy.sh/s/95981 crashing danser if internal ffmpeg is used
- Fixed some sprites of https://osu.ppy.sh/beatmapsets/1521219 storyboard not being scaled/flipped correctly
Launcher
General
- Fixed some maps freezing Star Rating calculation
- Removed classic knockout
- Danser now detects new maps in osu! Songs directory, restart is no longer required:

- Maps can be imported by dropping OSZ file on launcher's window. osu! may complain about it.
Settings
- Fixed search being reset on reopening
- Added more tooltips
- Added 16:9 presets to Recording Resolution:

And probably something I forgot about.
0.8.1
General
- Switched to 2022-09-30 PP System: https://osu.ppy.sh/home/news/2022-09-30-changes-to-osu-sr-and-pp
- Fixed danser crashing during database refresh while trying to load beatmaps that are broken in a specific way
- On Windows, danser first looks into registry to find osu! installation path (if multiple osu! instances are installed the one that handles files is selected) before defaulting to
%localappdata%
Danser
UI
Gameplay
- Fixed DT ScoreV2 plays having wrong score
