1. osu! forums
  2. osu!
  3. Development

posted
Osu Music Library is a program that lets you organize, listen to and look up songs from outside of the game.

I made this program because I wanted a quick and easy way to pick songs in a multiplayer lobby. Keeping track of all the songs I like got a little out of hand after reaching several houndreds of them.

The program allows you to access your song list when you wouldn't be able to from the game, either because you're waiting for your turn in host rotation, or because people are downloading the current map. It lets you to plan songs ahead of time by adding them to a queue and the ability to rate songs can be useful if you want to filter out songs you don't like.

You can of course use it as a music player as well.




The main purpose of the project was as a learning excercise, but if anyone finds it useful, it's available for anyone to use.

The whole project is open source (public domain) and is freely available from my BitBucket repository here, where you'll find more information. If anyone wants to play around with the code or use any of it for another project, go ahead! :)

The program can be downloaded from my BitBucket repository's download page.

Have fun! :D

  1. If you want to use the program as a music player, enable "Ignore Preview Time" in the settings, to play songs from the beginning.
  2. Searching can be done fast. Just start typing and it will start searching. Press 'Enter' to play the first song in the results and 'Escape' to clear the search box.
  3. Press 'Tab' to find the currently playing song in the list (if it exists in the list).
  4. You can use quotes to search for something specific, or just keep typing without any spaces to do the same thing.
  5. If you don't want songs to shuffle, this can be disabled in the settings.
  6. You can control the music using media buttons in the thumbnail on the taskbar or by using the media keys on your keyboard if it has those.
Version 2.1
Changes:
  1. Added: Volume slider in the settings
  2. Added: Export song files from the context menu (right-click)
  3. Added: Keybindings for the media keys
  4. Fixed: Only one instance of the program is now allowed to run at a time to avoid fighting over save files.
  5. Fixed: Only one settings window can now be open at a time. Trying to open a second will instead focus the one that's already open.
Version 2.0a
Changes:
  1. Changed: Clicking on any blank space in the song list now deselects everything.
  2. Fixed: Drag & drop only picked up a single page at a time.
  3. Fixed: Renaming categories didn't update their names in the context menus.
  4. Fixed: Warning messages weren't being shown when dropping things on the queue.
  5. Fixed: Adding songs to a category didn't refresh what songs it says that it belongs to.


Version 2.0
Changes:
  1. Added: Drag & Drop is now supported. Almost everything can be dragged and dropped / reordered, including multiple songs at once and entire categories.
  2. Added: 'Tab' now highlights and scrolls to the song that's currently playing. This can be useful for finding and rating songs after listening to them, especially when using shuffle.
  3. Added: It's now possible to delete the current selection using the 'Delete' key, and this works for categories too. It can be easy to delete somthing by mistake however, so by default there's a warning message when you're trying to delete something. (This can be disabled in the settings)
  4. Added: Clear / Save buttons added below the queue
  5. Added: The side panels now snap to the sides beyond a certain threshold.
  6. Added: Double clicking a category now starts playing songs from that category.
  7. Changed: Several context menus have been reorganized.


Version 1.6
Changes:
  1. Added: Support for media keys. (Play/Pause, Next, Previous and Stop)
  2. Added: Song and title visible in the thumbnail on the taskbar
  3. Added: Searchbox automatically gets focused as you start typing, for quicker searching
  4. Added: 'Escape' clears the searchbox, like it does in the game
  5. Added: 'Enter' plays the currently selected song. (If you search for something, it will pick the first result)
  6. Added: Sidepanels can now be hidden to save room
  7. Added: A song's folder can now be opened in explorer from the context menu
  8. Added: A progress bar is shown when building or rebuilding the cache
  9. Changed: Adjusted the volume to match osu! (50% -> 80%)
  10. Fixed: Program becoming unresponsive when building or rebuilding cache (Thanks _jacob! :) )
  11. Fixed: Song names with colon (':') in them being cut short. (If you're upgrading, use File->Rebuild Cache to update the names)
  12. Fixed: Quote search now works as expected.
  13. Fixed: Songs rarely starting at the preview point. (Enable File->Settings->"Ignore Preview Time" to make songs start from the beginning)
  14. Fixed: Rare issue where a song failed to load.

Version 1.5
Changes:
  1. Added: Filters settings are now remembered when switching between different categories and 'All songs'. (Each now has its own filter)
  2. Added: Shuffle can now be disabled everywhere. (You can change this in the settings)
  3. Added: The music player now takes filtering and sorting into account when picking a song. This can for example be used to search for something and play songs from the results.
  4. Added: It's now possible to do most things to multiple songs at once.
  5. Added: Media buttons have been added to the thumbnail in the taskbar.
  6. Added: Unrated songs can now be shown while filtering by rating.
  7. Fixed: Selection inside another selection in the 'Add to Categories' menu.
  8. Fixed: Cleaned up several minor GUI issues.

Version 1.4
Changes:
  1. Added: There's now an option to play songs in order (instead of shuffle), but only for songs in the queue until it can be supported everywhere. (Settings -> "Play queued songs in order")
  2. Added: Better error handling - in case something crashes, an error message will always be shown and the program will save a crash log. (if you get a crash, it helps a lot if you send in that log)
  3. Changed: The player now avoids picking the same song repeatedly.
  4. Fixed: Changes to ratings weren't saved under special circumstances.

Version 1.3
Changes:
  1. Added: There's now a setting to make the player pick a new song when the current one ends.
  2. Added: You can now manually skip to a new song (randomly), or go back in the song hisory using the new 'Next' and 'Previous' buttons.

Version 1.0 - 1.2
  1. Initial release + fixes
posted
You're a genius, I use this now and it is now one of my favorite programs and essential programs, thank you for making this :). A suggestion is to make a playlist for it, I use it to listen sometimes but i have to do it manually. If you even consider it, thanks
posted
Thanks! ^^

I've been thinking of adding that feature before, but I couldn't quite figure out how to implement it because of how the program is structured, but I think I have an idea now, I'll see what I can do. :)
posted
Done! ^^

I uploaded a new version that can switch songs when it has finished playing one.

To be able to use the feature, you will have to enable it in the settings though. I can recommend enabling "Ignore Preview Time" at the same time if you're going to use it as a playlist.

It's context aware, meaning that it remembers where you played songs from and keeps playing songs from the same place.

Have fun! ;)

Edit: Removed wall of text
Edit2: Changes:
  1. Added: There's now a setting to make the player pick a new song when the current one ends.
  2. Added: You can now manually skip to a new song (randomly), or go back in the song hisory using the new 'Next' and 'Previous' buttons.
posted
Nice, I hope your new experiment gets noticed a lot more. :) Thanks for listening to my option and hopefully all goes well in the next versions. I expect more for this stuff, its great :)
EDIT: The thing doesnt automatically switch songs. Help?
posted
It's not enabled by default. Just check the box that says "Automatically switch songs" in the settings. I should probably change that and make it enabled by default instead... :P
posted
You should. Thanks for this, you helped a lot. What did you use to make this project? I need to contribute too.
posted
I'm programming in C# using WPF (so there's some XAML involved as well) and I'm using Visual Studio as my IDE.
posted
I am trying to use it as a playlist.
Songs seem to change in a "shuffle" . The 'next' song seems to be random within the queued songs (sometimes a song will play more than once in a row).
I would like for them to just follow the order of the queue, and perhaps add a shuffle button (make sure the same song doesnt play twice).

Also, it would be great for the program to somehow remember the rating I give to the maps whenever I update it. (IF I had to re-rate 10k+ songs again would be a pain, asumming I rated that many,lol)

I really like the program, Take these suggestions constructively :)
posted
Songs seem to change in a "shuffle" .
The way I'm storing the songs, it was easier to just make them shuffle than to play things in order. I could probably get it in, but it'd require some tweaking.

sometimes a song will play more than once in a row
Yeah, that's kind of annoying, but it should be pretty easy to fix.

perhaps add a shuffle button
I've thought about that and actually have an icon that I could use, but I'm not sure how well it would fit into the interface. Can't find good spot for it. I would probably just make a new setting for it.

Also, it would be great for the program to somehow remember the rating I give to the maps whenever I update it. (IF I had to re-rate 10k+ songs again would be a pain, asumming I rated that many,lol)
Sorry if this is a simple question, but did you put it in the same folder as the old version? The files are saved right next to the program, so if you put it somewhere else you won't have them. If you did put it in the right place, then it sounds like a bug.

It actually sounds a bit like a bug that was fixed with this update. Categories and ratings used to always save when the program closed, even if they couldn't be loaded. After the update, the program should just close without doing anything if it fails to load. But if this happened after the update, that makes no sense...

Did you get any error messages when you ran the new version or was everything just missing? Do you know if you have been running multiple versions of the program at the same time, because that's something I've noticed can cause the loading to fail, and triggers the bug in the old version.

Edit: OK, nvm the last part then :)
posted
Oh I see, so the song ratings are saved in the SongCache.json ?
And As long as that file is intact they should remain, even with an updated version of the program?


(I haven't tried it, I just didn't know how it worked, so no bugs) :)
posted
Seems like the program doesn't like osu! being open when caching, because it crashed every time it was open but worked once i closed it.
Other than that I love it to no end.
posted
I uploaded a new version.
  1. Added: There's now an option to play songs in order (instead of shuffle), but only for songs in the queue until it can be supported everywhere. (Settings -> "Play queued songs in order")
  2. Added: Better error handling - in case something crashes, an error message will always be shown and the program will save a crash log. (if you get a crash, it helps a lot if you send in that log)
  3. Changed: The player now avoids picking the same song repeatedly.
  4. Fixed: Changes to ratings weren't saved under certain circumstances.
And As long as that file is intact they should remain, even with an updated version of the program?
Yes, exactly.

Oh I see, so the song ratings are saved in the SongCache.json ?
Close, it's the Library.json one. ;) The song cache is just used to make the program open faster, but it wasn't a bad guess, because I used to have the ratings there in the beginning.

Seems like the program doesn't like osu! being open when caching, because it crashed every time it was open but worked once i closed it.
Other than that I love it to no end.
It takes some time to load the songs, so if it said that the program was unresponsive, it might have been that. I haven't yet figured out a way to get around that. If the issue remains, you should now get an error message describing what the problem is if it's actually crashing.
posted
Is there any way it can do something similar to what windows media player does with seeking buttons?
posted
You know what? I love you.

Is it possible to search something, select everything and add everything to a categorie? It's so booooooring to add them one by one
posted
Merry Christmas! ^^ (if it's still christmas where you live)

There's a new update up for download and this is a pretty big one.

Is there any way it can do something similar to what windows media player does with seeking buttons?
Done! ^^
You know what? I love you.

Is it possible to search something, select everything and add everything to a categorie? It's so booooooring to add them one by one
Also done! ^^

Changes:
  1. Added: Filters settings are now remembered when switching between different categories and 'All songs'. (Each now has its own filter)
  2. Added: Shuffle can now be disabled everywhere. (You can change this in the settings)
  3. Added: The music player now takes filtering and sorting into account when picking a song. This can for example be used to search for something and play songs from the results.
  4. Added: It's now possible to do most things to multiple songs at once.
  5. Added: Media buttons have been added to the thumbnail in the taskbar.
  6. Added: Unrated songs can now be shown while filtering by rating.
  7. Fixed: Removed selection inside another selection in the 'Add to Categories' menu.
  8. Fixed: Cleaned up several minor GUI issues.


Guess I should start working on Drag and Drop next. :)
posted
Happy new year!

A new update is now up! :)

This time it's a bunch of small changes to make the program easier to use.

Changes:
  1. Added: Support for media keys. (Play/Pause, Next, Previous and Stop)
  2. Added: Song and title visible in the thumbnail on the taskbar
  3. Added: Searchbox automatically gets focused as you start typing, for quicker searching
  4. Added: 'Escape' clears the searchbox, like it does in the game
  5. Added: 'Enter' plays the currently selected song. (If you search for something, it will pick the first result)
  6. Added: Sidepanels can now be hidden to save room
  7. Added: A song's folder can now be opened in explorer from the context menu
  8. Added: A progress bar is shown when building or rebuilding the cache
  9. Changed: Adjusted the volume to match osu! (50% -> 80%)
  10. Fixed: Program becoming unresponsive when building or rebuilding cache (Thanks _jacob! :) )
  11. Fixed: Song names with colon (':') in them being cut short. (If you're upgrading, use File->Rebuild Cache to update the names)
  12. Fixed: Quote search now works as expected.
  13. Fixed: Songs rarely starting at the preview point. (Enable File->Settings->"Ignore Preview Time" to make songs start from the beginning)
  14. Fixed: Rare issue where a song failed to load.


PS. I added a Tips! section to the original post to highlight some useful things you can do that aren't immediately obvious.
posted
Keep it going!
posted
It's time for another update! Finally managed to get drag & drop in! :)

Version 2.0

Changes:
  1. Added: Drag & Drop is now supported. Almost everything can be dragged and dropped / reordered, including multiple songs at once and entire categories.
  2. Added: 'Tab' now highlights and scrolls to the song that's currently playing. This can be useful for finding and rating songs after listening to them, especially when using shuffle.
  3. Added: It's now possible to delete the current selection using the 'Delete' key, and this works for categories too. It can be easy to delete somthing by mistake however, so by default there's a warning message when you're trying to delete something. (This can be disabled in the settings)
  4. Added: Clear / Save buttons added below the queue
  5. Added: The side panels now snap to the sides beyond a certain threshold.
  6. Added: Double clicking a category now starts playing songs from that category.
  7. Changed: Several context menus have been reorganized.


Have fun! ^^

PS. Most of the things I wanted to get in from the beginning have now been finished, so I probably won't be working on this as regularly from now on. However, I'll still be listening to any feature requests.
posted

Dayanto wrote:

It's time for another update! Finally managed to get drag & drop in! :)

Version 2.0

Changes:
  1. Added: Drag & Drop is now supported. Almost everything can be dragged and dropped / reordered, including multiple songs at once and entire categories.
  2. Added: 'Tab' now highlights and scrolls to the song that's currently playing. This can be useful for finding and rating songs after listening to them, especially when using shuffle.
  3. Added: It's now possible to delete the current selection using the 'Delete' key, and this works for categories too. It can be easy to delete somthing by mistake however, so by default there's a warning message when you're trying to delete something. (This can be disabled in the settings)
  4. Added: Clear / Save buttons added below the queue
  5. Added: The side panels now snap to the sides beyond a certain threshold.
  6. Added: Double clicking a category now starts playing songs from that category.
  7. Changed: Several context menus have been reorganized.


Have fun! ^^

PS. Most of the things I wanted to get in from the beginning have now been finished, so I probably won't be working on this as regularly from now on. However, I'll still be listening to any feature requests.
You are the best :3
Also, it seems i cant use my keyboard media keys even though you said i could :s Using logitech k400r
show more
Please sign in to reply.