{"id":13568058,"url":"https://github.com/Wieku/danser-go","last_synced_at":"2025-04-04T04:30:44.295Z","repository":{"id":37448351,"uuid":"136501604","full_name":"Wieku/danser-go","owner":"Wieku","description":"Dancing visualizer of osu! standard maps and custom osu! client written in Go. Also a generator for osu! videos.","archived":false,"fork":false,"pushed_at":"2025-03-31T22:18:12.000Z","size":25301,"stargazers_count":795,"open_issues_count":21,"forks_count":104,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-03-31T23:24:45.217Z","etag":null,"topics":["clone","cursordance","dance","danser","go","golang","osu"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Wieku.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"wiekus","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2018-06-07T16:06:42.000Z","updated_at":"2025-03-30T17:41:20.000Z","dependencies_parsed_at":"2024-06-18T20:03:00.253Z","dependency_job_id":"6a6152e8-d7dc-442c-a859-bdbf2c55906f","html_url":"https://github.com/Wieku/danser-go","commit_stats":{"total_commits":2212,"total_committers":9,"mean_commits":"245.77777777777777","dds":"0.010397830018083143","last_synced_commit":"0518d83a2a9966780040f002677066c32dc185fa"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wieku%2Fdanser-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wieku%2Fdanser-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wieku%2Fdanser-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wieku%2Fdanser-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Wieku","download_url":"https://codeload.github.com/Wieku/danser-go/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247123071,"owners_count":20887259,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clone","cursordance","dance","danser","go","golang","osu"],"created_at":"2024-08-01T14:00:19.453Z","updated_at":"2025-04-04T04:30:39.286Z","avatar_url":"https://github.com/Wieku.png","language":"Go","funding_links":["https://ko-fi.com/wiekus"],"categories":["Uncategorized","Alternative clients","Repositories","Danser"],"sub_categories":["Uncategorized","Audio","Format"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"500px\" src=\"assets/textures/coinbig.png\"/\u003e\n\u003c/p\u003e\n\n# danser-go\n\n[![GitHub release](https://img.shields.io/github/release/wieku/danser-go.svg)](https://github.com/Wieku/danser-go/releases/latest)\n[![Downloads](https://img.shields.io/github/downloads/wieku/danser-go/total?label=Downloads)](https://github.com/Wieku/danser-go/releases)\n[![CodeFactor](https://www.codefactor.io/repository/github/wieku/danser-go/badge)](https://www.codefactor.io/repository/github/wieku/danser-go)\n[![Discord server](https://img.shields.io/discord/713705871758065685.svg?label=\u0026logo=discord\u0026logoColor=ffffff\u0026color=7389D8\u0026labelColor=6A7EC2)](https://discord.gg/UTPvbe8)\n\ndanser-go is a GUI/CLI visualisation tool for osu!standard maps.\n\nAs danser is in development phase, some things may break. If that happens please fill an issue with as much detail as possible.\n\n**WARNING**: Because of MacOS' poor OpenGL support, danser-go won't run on that platform. Please use dual-booted Windows/Linux instead.\n\n## Examples\n* [Omoi - Chiisana Koi no Uta (Synth Rock Cover) [Kroytz's EX EX] - TAG2 Mirror Collage](https://youtu.be/Vo0Pbpu113Y)\n* [Sex Whales \u0026 Fraxo - Dead To Me (feat. Lox Chatterbox) [extrad1881 (ar 10)] Mirror Collage](https://youtu.be/KCHqrVGdXrk)\n* [Nightcore - Flower Dance [Amachoco ARX.7] Mandala Mirror Collage](https://youtu.be/HBC89S-UwFc)\n* [Flower Dance (osu! cursordance)](https://youtu.be/lcnnz3fN3bs)\n* [osu! top 50 replays knockout | xi - FREEDOM DiVE [ENDLESS DiMENSiONS]](https://youtu.be/kzr_Sr0Shuc)\n* [osu! top 50 knockout | YURRY CANNON - Suicide Parade [Sakase]](https://youtu.be/GS_yoq5MJMU)\n* [osu! top 50 replays knockout | Kobaryo - Bookmaker [Corrupt The World]](https://youtu.be/SJqkP1IDUq0)\n\n## Running Danser\n\nYou can download the newest Windows/Linux 64-bit binaries from [releases](https://github.com/Wieku/danser-go/releases).\n\nAfter unpacking it to your desired directory, you need to run it using launcher (using `danser` executable) or\na command-line application/terminal:\n\n##### Windows cmd:\n```bash\ndanser-cli \u003carguments\u003e\n```\n\n##### Linux / Unix / git bash / Powershell:\n```bash\n./danser-cli \u003carguments\u003e\n```\n\nIf you try to run *danser-cli* without any arguments there's a surprise waiting for you ;)\n\n## Run arguments\n* `-artist=\"NOMA\"` or `-a=\"NOMA\"`\n* `-title=\"Brain Power\"` or `-t=\"Brain Power\"`\n* `-difficulty=\"Overdrive\"` or `-d=\"Overdrive\"`\n* `-creator=\"Skystar\"` or `-c=\"Skystar\"`\n* `-md5=hash` - overrides all map selection arguments and attempts to find `.osu` file matching the specified MD5 hash\n* `-id=433005` - overrides all map selection arguments and attempts to find `.osu` file with matching BeatmapID (not BeatmapSetID!)\n* `-cursors=2` - number of cursors used in mirror collage\n* `-tag=2` - number of cursors in TAG mode\n* `-speed=1.5` - music speed. Value of 1.5 is equal to osu!'s DoubleTime mod. Ignored if in `-play` mode with speed changing mods\n* `-pitch=1.5` - music pitch. Value of 1.5 is equal to osu!'s Nightcore pitch. To recreate osu!'s Nightcore mod, use\n  with speed 1.5\n* `-settings=name` - settings filename - for example `settings/name.json` instead of `settings/default.json`\n* `-debug` - shows additional info when running Danser, overrides `Graphics.DrawFPS` setting\n* `-play` - play through the map in osu!standard mode\n* `-skip` - skips map's intro like in osu!\n* `-start=20.5` - start the map at a given time (in seconds)\n* `-end=30.5` - end the map at the given time (in seconds)\n* `-knockout` - knockout mode\n* `-knockout2=\"[\\\"replay1.osr\\\",\\\"replay2.osr\\\"]\"` - knockout mode, but instead of using danser's replays folder,\n  sources replays from the given JSON array. `Knockout.MaxPlayers` and `Knockout.ExcludeMods` settings are ignored.\n* `-record` - Records danser's output to a video file. Needs an\n  accessible [FFmpeg](https://github.com/Wieku/danser-go/wiki/FFmpeg) installation.\n* `-out=abcd` - overrides `-record` flag, records to a given filename instead of auto-generating it. Extension of the\n  file is set in settings. When the `-ss` flag is used, this sets the output filename as well.\n* `-replay=\"path_to_replay.osr\"` or `-r=\"path_to_replay.osr\"` - plays a given replay file. Be sure to replace `\\`\n  with `\\\\` or `/`. Overrides all map selection arguments\n* `-mods=HDHR` - displays the map with given mods. `-mods=AT` will\n  trigger cursordance with replay UI. If specified, it will override `-replay` mods\n* `-mods2=\"[{\\\"acronym\\\":\\\"DT\\\",\\\"settings\\\":{\\\"speed_change\\\":1.2}},{\\\"acronym\\\":\\\"HD\\\"}]\"` - displays the map with given mods. It's using lazer's mod structure to support mod settings. If specified, it will override `-replay` mods. As above, adding AT will\n  trigger cursordance with replay UI\n* `-skin` - overrides `Skin.CurrentSkin` in settings\n* `-cs`, `-ar`, `-od`, `-hp` - overrides maps' difficulty settings (values outside of osu!'s normal limits accepted). Ignored if DA (Difficulty Adjust) mod is specified in `-mods2`\n* `-nodbcheck` - skips updating the database with new, changed or deleted maps\n* `-noupdatecheck` - skips checking GitHub for a newer version of danser\n* `-ss=20.5` - creates a screenshot at the given time in .png format\n* `-quickstart` - skips intro (`-skip` flag), sets `LeadInTime` and `LeadInHold` to 0.\n* `-offset=20` - local audio offset in ms, applies to recordings unlike `Audio.Offset`. Inverted compared to stable.\n* `-preciseprogress` - prints record progress in 1% increments.\n\nExamples which should give the same result:\n\n```bash\n\u003cexecutable\u003e -d=\"Overdrive\" -tag=2 //Assuming that there is only ONE map with \"Overdrive\" as its difficulty name\n\n\u003cexecutable\u003e -t=\"Brain Power\" -d=\"Overdrive\" -tag=2\n\n\u003cexecutable\u003e -t \"Brain Power\" -d Overdrive -tag 2\n\n\u003cexecutable\u003e -t=\"ain pow\" -difficulty=\"rdrive\" -tag=2\n\n\u003cexecutable\u003e -md5=59f3708114c73b2334ad18f31ef49046 -tag=2\n\n\u003cexecutable\u003e -id=933228 -tag=2\n```\n\nSettings and knockout usage are detailed in the [wiki](https://github.com/Wieku/danser-go/wiki).\n\n## Building the project\nYou need to clone it or download as a .zip (and unpack it to desired directory)\n\n#### Prerequisites\n\n* [64-bit go (1.22 at least)](https://go.dev/dl/)\n* gcc/g++ (Linux/Unix), [WinLibs](http://winlibs.com/) MSVCRT+POSIX (Windows, TDM-GCC won't work, mingw-w64 is outdated)\n* OpenGL library (shipped with drivers, `libgl1-mesa-dev` when building on Linux servers)\n* xorg-dev, libgtk-3 and libgtk-3-dev (Linux)\n\n#### Building and running the project\n\nFirst, enter the cloned/downloaded repository.\n\nWhen you're running it for the first time or if you made any changes type:\n\n```bash\ngo build\n```\n\nThis will automatically download and build needed dependencies.\n\nAfterwards type:\n\n```bash\n./danser-go \u003carguments\u003e\n```\n\nRunning without arguments (as opposed in [Running Danser](#running-danser)) will give you the launcher, though you can't\nuse drag\u0026drop on the executable to preload a replay. If that ability is desired, build danser using dist scripts.\n\n\n## Credits and License\n\nSoftware created by Sebastian Krajewski ([@Wieku](https://github.com/Wieku)) and [contributors](https://github.com/Wieku/danser-go/graphs/contributors)\n\nUnless stated otherwise, source files are distributed under GNU General Public License v3.0\n\nFull credits and licenses of 3rd party assets can be found [here](CREDITS.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWieku%2Fdanser-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FWieku%2Fdanser-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWieku%2Fdanser-go/lists"}