forum

Osu Music Library

posted
Total Posts
42
Topic Starter
Dayanto
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

Tips!
  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.

New In Version 2.1
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.
Old Versions
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
monsternator
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
Topic Starter
Dayanto
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. :)
Topic Starter
Dayanto
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.
monsternator
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?
Topic Starter
Dayanto
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
monsternator
You should. Thanks for this, you helped a lot. What did you use to make this project? I need to contribute too.
Topic Starter
Dayanto
I'm programming in C# using WPF (so there's some XAML involved as well) and I'm using Visual Studio as my IDE.
xasuma
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 :)
Topic Starter
Dayanto
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 :)
xasuma
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) :)
Yonaton
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.
Topic Starter
Dayanto
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.
Yonaton
Is there any way it can do something similar to what windows media player does with seeking buttons?
Demmon
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
Topic Starter
Dayanto
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. :)
Topic Starter
Dayanto
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.
xasuma
Keep it going!
Topic Starter
Dayanto
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.
Yonaton

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
Topic Starter
Dayanto
Released a quick fix for some issues in the last version.

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: Warnings 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.
You are the best :3
Thanks! :)
Also, it seems i cant use my keyboard media keys even though you said i could :s Using logitech k400r
That's odd...

- What version of Windows are you running?

- Do the media keys work in other applications? (Windows Media Player, Spotify, etc.)

I tried a couple of different keyboards. Two of them worked like they should while one failed. The one that failed however was an older keyboard that couldn't use the media keys in any other programs either. (That's the reason I'm wondering about that)

I prepared a debug build that you could try. It's more or less the same as the one I just released except it also has a command line window where you'll be able to see any keys that the program is able to pick up. If you could try a couple of keys and tell me what shows up and what doesn't, that would be great.

Note: The debug build likely runs much slower than the regular version, so I can't recommend using it for anything besides testing.
Yonaton
Also, it seems i cant use my keyboard media keys even though you said i could :s Using logitech k400r
That's odd...
- What version of Windows are you running?

- Do the media keys work in other applications? (Windows Media Player, Spotify, etc.)

I tried a couple of different keyboards. Two of them worked like they should while one failed. The one that failed however was an older keyboard that couldn't use the media keys in any other programs either. (That's the reason I'm wondering about that)

I prepared a debug build that you could try. It's more or less the same as the one I just released except it also has a command line window where you'll be able to see any keys that the program is able to pick up. If you could try a couple of keys and tell me what shows up and what doesn't, that would be great.

Note: The debug build likely runs much slower than the regular version, so I can't recommend using it for anything besides testing.
I am running windows 7

The media keys work in windows media player and itunes, which are the ones i have

When i click the function keys for media and media alone nothing appears in command prompt, All other function keys appear, I will try to use my google-fu to try to find about these media keys, also this may be the case with all logitech keyboards since they all use the same software

EDIT: back from my google-fu, I have discovered Logitech keyboards dont like making key bindings and you must add the program manually in the programs .ini. Thats all done but there is no key that i can bind it to that will Go back/Pause-play/Skip because your program doesnt have one as far as i know, maybe make the f1 f2 and f3 keys do that?
EDIT2: i give up -_- the f keys are hard to bind, Logitechs software,setpoint, is hard to configure, Im just gonna get a corsair k70 :s
Topic Starter
Dayanto

coolyc3 wrote:

EDIT: back from my google-fu, I have discovered Logitech keyboards dont like making key bindings and you must add the program manually in the programs .ini. Thats all done but there is no key that i can bind it to that will Go back/Pause-play/Skip because your program doesnt have one as far as i know, maybe make the f1 f2 and f3 keys do that?
EDIT2: i give up -_- the f keys are hard to bind, Logitechs software,setpoint, is hard to configure, Im just gonna get a corsair k70 :s
Well, I could easily add a config file for the key bindings if that would help. Do you think it's worth a try?
Yonaton

Dayanto wrote:

coolyc3 wrote:

EDIT: back from my google-fu, I have discovered Logitech keyboards dont like making key bindings and you must add the program manually in the programs .ini. Thats all done but there is no key that i can bind it to that will Go back/Pause-play/Skip because your program doesnt have one as far as i know, maybe make the f1 f2 and f3 keys do that?
EDIT2: i give up -_- the f keys are hard to bind, Logitechs software,setpoint, is hard to configure, Im just gonna get a corsair k70 :s
Well, I could easily add a config file for the key bindings if that would help. Do you think it's worth a try?
Nothing to lose
Topic Starter
Dayanto
Here's a version with key bindings. Instructions are in the config file.
Shariele
Awesome software! I like it! Keep up the good work, if I find any bugs I´ll report it as best as I can to help!
[ kenon ]
nice software xD i like it
go ahead x3
Avishay
I've been looking for something like this for a while, thanks!!
I have just one thing I disliked, why there's no option to change the audio level in the program itself? I dislike using the Volume Mixer from Windows.
Topic Starter
Dayanto

Avishay wrote:

I've been looking for something like this for a while, thanks!!
I have just one thing I disliked, why there's no option to change the audio level in the program itself? I dislike using the Volume Mixer from Windows.
Sure, I can add that. :) I'll get to it when I have time, have an exam tomorrow.
Avishay

Dayanto wrote:

Avishay wrote:

I've been looking for something like this for a while, thanks!!
I have just one thing I disliked, why there's no option to change the audio level in the program itself? I dislike using the Volume Mixer from Windows.
Sure, I can add that. :) I'll get to it when I have time, have an exam tomorrow.
Cool!
I have 2 more suggestions:
[list]
[*] Ignore / delete duplicates, by either song and author name (+length maybe?)
[*] Exporting all of the .mp3 (or selected ones) to one folder

Both of those will be very handy, thanks!
Topic Starter
Dayanto
A new update is out! :)

[*] Exporting all of the .mp3 (or selected ones) to one folder
Done! ^^

[*] Ignore / delete duplicates, by either song and author name (+length maybe?)
This one is a bit tricky for technical reasons. I might do something like this later, but I won't promise anything. For now, you can choose whether to filter out songs that have the exact same title and artist when exporting song files, if that helps.

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.
Avishay

Dayanto wrote:

A new update is out! :)

[*] Exporting all of the .mp3 (or selected ones) to one folder
Done! ^^

[*] Ignore / delete duplicates, by either song and author name (+length maybe?)
This one is a bit tricky for technical reasons. I might do something like this later, but I won't promise anything. For now, you can choose whether to filter out songs that have the exact same title and artist when exporting song files, if that helps.

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.
I love you!
I am going on a trip soon and it will be very handy <3
DahplA
Holy shit this is so good. Now I don't have to open osu to listen to my osu music :D Although I would like to say one thing. The music player starts to lag when scrolling up and down (using the scroll bar, mouse scroll is fine) or searching because of the amount of beatmaps I have. Not sure if you will fix this soon or something, but good job.
Yonaton

Dayanto wrote:

A new update is out! :)

[*] Exporting all of the .mp3 (or selected ones) to one folder
Done! ^^

[*] Ignore / delete duplicates, by either song and author name (+length maybe?)
This one is a bit tricky for technical reasons. I might do something like this later, but I won't promise anything. For now, you can choose whether to filter out songs that have the exact same title and artist when exporting song files, if that helps.

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.
Let me export 2000 songs, what could go wrong ¯\_(ツ)_/¯
Alot. Alot can go wrong.
But nothing did go wrong
Props to you sir
Pawsu
great project.
i'm smitten by all the amazing projects that come from this game, they're all so good
eadan97
Excellent job!, I loved it... just had a little problem with the installation path, but I think it was my fault (had to change the code).
Ladybugman
Wow, this is really nice. Good work! :D
rayorlana
Great work! Been looking for something to play my osu music without running osu. Thanks :)
Det
Can you make a option to export all the songs ? one by one takes too long :(
Idocrase Daru
My goodness, this is excellent work, and I feel no shame at bringing this thread back from the dead. <3
Xinistra
Thank you so much. Really appreciate this ^_^
Jovial_old_1
This is super cool, So its basically so you can make a playlist of what songs you want for online instead of scrolling through everything?
Please sign in to reply.

New reply