osu!player is a music player for osu! with the focus of playing your osu! songs without having to start osu!. This is the official osu!player repository and is mainly developed by @Founntain, with the help of @Cesan.
If you want to contribute, feel free to fork this repository, read the contributing information and head to the official osu!player discord (not mandatory, but helpful). There you can add all valuable ideas and discuss other stuff regarding development.
✔️ A working computer
✔️ .NET 8 or later installed
✔️ osu! installed with an osu!.db file or osu!lazer client.realm (Beatmaps imported in osu!)
✔️ An internet connection if you want to use your osu!player plus profile
To download the osu!player head to our release section to download the latest release.
You can also build the project for yourself; see the section below!
- Clone / Download the source
- Open it with Visual Studio, Visual Studio Code, Rider or an IDE of your choice that supports C# and .NET
- Run
dotnet restore
(or IDE tools) to restore all packages and dependencies - Build/Run the project
- .NET 8 SDK
- Avalonia .NET Templates
- Check out the Avalonia getting started
- Have a decent understanding of the internal osu! structure and know osu! (the game) as well.
- Make a fork of this repository
- Implement your ideas and features
- Make a pull request (PR) on this repository
- Pray that I accept your PR 😂 (I'm joking)
- Profit 📈
Warning
You should implement features that are asked for and not ones you like or think will be good additions. A rule of thumb is: If you want a new feature, discuss it with us to see if it makes sense implement, if it does the feature may be added. So don't be afraid to ask! We appreciate your ideas and feedback!
Dependency | Description |
---|---|
AvaloniaUI | The UI-Framework |
FluentAvalonia | UI-Framework Extensions |
ManagedBass | The Audio-Engine |
discord-rpc-sharp | Used to display Discord RPC |
- SourRaindrop: for creating a lot of custom images and assets like our logo
- You, the user: for using this project and helping us improving it and simply enjoying your osu! music
- Audio-Equalizer
- Miniplayer to save some space
- Export songs to directory
- Localization
- Hotkey support
- Synced play via osu!player API
❌ Steering wheel support
Hey, there my name is Founntain! A bit about myself: I'm currently `currentYear - 1999` years old and from Germany. Currently, I am working for a medium-sized software development company as Software Consultant.Languages I use:
- C# (For most of my projects)
- HTML, CSS and Typescript (for web stuff)
- Java (mostly for Minecraft plugin development)
In 2016 I had my first programming contact at my IT-School. There we mostly developed in Java, but all stuff that we programmed in Java I tried to implement in C# while learning it on my own.
In 2017 I started development on the first versions of the osu!player in WPF and .NET-Framework 4.6. It looked bad, it felt bad and badly performed. But let's be honest what do expect from someone who never used WPF at all and did not have much C# experience? On the 1st of November 2017, the first version of the osu!player was released on the osu! forum.
After a while, Cesan joined me and we started working on it together now and I'm grateful for that. Thanks buddy
Hi, I'm Cesan. You can also call me Caro if you want ^^I'm a self-taught C# dev and currently studying Applied Computer Sciences at University. I also work as an embedded C dev in the meantime.
I mostly use C# for everything I do because I think it's the most versatile and practical language for desktop development. In university, I learned C and Java. However I would never use Java personally.
When I joined the development team of the osu!player, I mostly did design stuff in WPF as I understood it best, but now we both do more or less the same stuff because we have quite some experience with the osu!player by now, to make the player look and feel like how it is today.
Thanks for reading and have fun with the player, cheers.