1. osu!community
  2. osu!
  3. Development
posted
Dieses Programm ist in Deutsch verfügbar. | ˙(uʍop ǝpısdn) ɥsıןƃuǝ uı ǝןqɐןıɐʌɐ sı uoıʇɐɔıןddɐ sıɥʇ | This application is available in English. | Esta aplicación está disponible en Español. | Cette application est disponible en Français. | Ez az alkalmazás elérhető Magyar nyelven. | Aplikasi ini tersedia dalam bahasa Indonesia. | Dette programmet er tilgjengelig på norsk. | Ta aplikacja jest dostępna w języku polskim. | Este aplicativo também está disponível em português do Brasil. | Приложение переведено на русский язык. | โปรแกรมนี้มีรองรับภาษาไทย | 本程序有简体中文版本。 | 此程式有繁體中文版本。| And some more unfinished languages, which can be downloaded from the Crowdin-project page.

The idea behind
osu!Sync is a tool which helps you to export, share and backup your beatmaps in a small and handy file, a beatmap list file. These beatmap lists can be shared simply via any file hoster. When importing beatmaps osu!Sync automatically downloads the beatmaps and installs them to osu!. You can also export your beatmap lists to other formats like JSON, SVG, HTML.

Screenshots
Screenshots

Overview of installed beatmaps. (Version 1.0.0.14)

Beatmap detail panel with enabled API access. (Version 1.0.0.14)

Downloader and importer. (Version 0.0.0.14)

Export selector (will be optimized later). (Version 1.0.0.14)

Generated HTML-page. (Version 1.0.0.1)


Links
Download
  1. Download latest version from GitHub (under "Downloads", click on "osu.Sync.[VERSION].zip").
  2. List of older releases on GitHub.


Source Code
  1. View source code on GitHub.
  2. Download source code from GitHub.


Other
  1. Help translate osu!Sync.
  2. Sample Beatmap lists.


Installation
  1. Download latest version of osu!Sync.
  2. Unzip downloaded .ZIP-File into a separate folder.
  3. Run osu!Sync.exe. (No installation required.)
  4. That's it.


Anything else
Compatibility: Windows 10, Windows 8.1, Windows 8, Windows 7 | 64/32bit (Requires .NET Framework 4 or later) | May work on older OS, but not tested
Languages: Open for translations / Available languages listed at top.
Bugs and improvements: If you run into a bug or find strange-sounding English sentences (I'm German and everyone knows that we're terrible regarding English :o ), feel free to open an issue on GitHub or to drop me a PM.
osu!weekly: Apparently this project has once been featured in osu!weekly #5, which I kinda didn't notice until August 2017. The article was no longer available at that time but fortunately it got crawled. Read here.
posted
If this really works as well as I hope it will, this will make the ordeal of redownloading the maps I deleted much lesser. This will probably become a necessity if it keeps improving :V
posted
Oh I gotta try this later :)

EDIT: The user should be able to specify the location of osu directory, not everyone uses the default installation path. At the moment the Open Data Folder button points to the Roaming directory under windows.

Also wish there's more Update options (ie Daily/Weekly).
posted

Oinari-sama wrote:

Oh I gotta try this later :)

EDIT: The user should be able to specify the location of osu directory, not everyone uses the default installation path. At the moment the Open Data Folder button points to the Roaming directory under windows.

Also wish there's more Update options (ie Daily/Weekly).
Thanks for your feedback.

The path to the osu! directory can be specified in the settings window (Program > Settings) in the tab "osu!" (unfortunately the dialog directly pops up, gonna fix that later). There you need to select the osu!.exe which is used to specify the path to it.
If you try to synchronize and the tool can't find the "normal" directory of osu! you'll get a warning and will directly be taken to the settings.
The "Open Data Folder"-button points to the directory of the files osu!Sync leaves in your system (currently only configuration) which you may want to remove.
Well, I should label the button more clear, I guess. :D

But more update options will definitely come. :)


Esupanitix wrote:

If this really works as well as I hope it will, this will make the ordeal of redownloading the maps I deleted much lesser. This will probably become a necessity if it keeps improving :V
Well, for that I need to improve the "Export selected Beatmaps" function, which is already planned :D
posted
this. is. awesome.
posted
Oh lol I totally didn't realise there're 2 tabs (General & osu)! The editor pic above was a trap, I tried clicking on the design/timing/song setup in the pic and nothing happened so I assumed the rest are decorations too xD

After fixing the path, it produced a generic error as soon as I hit sync:
posted

Howl wrote:

this. is. awesome.
Hehe, thanks. (〃 ̄ω ̄〃ゞ
Oh, and also thank you for your error report.


Oinari-sama wrote:

Oh lol I totally didn't realise there're 2 tabs (General & osu)! The editor pic above was a trap, I tried clicking on the design/timing/song setup in the pic and nothing happened so I assumed the rest are decorations too xD

After fixing the path, it produced a generic error as soon as I hit sync:
1) Lol :)
2) Mhh, I gonna take a look...
posted
It'd be amazing if we can see mapper's name below map's name :D
posted

Secretpipe wrote:

It'd be amazing if we can see mapper's name below map's name :D
Well, I had that in mind too buuut...
currently osu!Sync reads all folders inside of your osu!\Songs directory. Their names follow the same scheme "[ID] [Artist] - [Title]", mostly.
However, I plan to read the *.osu files in later version, so if that is implemented I'll display the beatmapper too. :)


Update: 0.0.0.2
A new version of osu!Sync is available
Changelog
* Attempt to fix bug: - Negative Length: Parser Exception
* Typo @ Window_Welcome
* Reduced required .NET-Framework from 4.5 to 4.0
* Update of libraries: - Newtonsoft.Json
+ More Update Check Intervals
posted
I really liked the design. Great job!
posted

XinCrin wrote:

I really liked the design. Great job!
Hehe, thanks. :)


Secretpipe wrote:

It'd be amazing if we can see mapper's name below map's name :D
Now added.


Update: 0.0.0.3
A new version of osu!Sync is available
Changelog
# Thanks to Oinari-sama for some testing
Added:
__Exporter:
____Detection of not existing/empty beatmaps after download
____Don't export beatmaps with ID -1 (unsubmitted)
____Export won't crash anymore if Beatmap ID exists more than once (it will be skipped)
__Sync:
____Beatmap Counter
____Creator now parsed and displayed
____Detect unsubmitted maps
____More accurate parser (but slower)
____Warning if more than 1000 beatmap sets on sync
__Moar Romaji!!
__More Settings
Improved:
__Better Changelog Format
__Exception Handler Order (first set Clipboard, then show Message Box)
__Updater Connection Error Messages (now more helpful)
__Updater Design
posted
Some feedbacks and wish lists:

Rename the 1st Sync to "Get Map Lists"
The 1st sync after loading up the app is really just a "get map list" command isn't it... Imo it'd be better to rename that to distinguish from the "Sync Now" after the list is displayed/imported.


Preload Sync Result from Last Session
The app won't display any maps untill the user syncs, which is a very time consuming process. Is it possible to preload sync results from last session? For people who relies on beatmap packs, this can save a lot of time. Of course, this could introduce problems if some maps were updated between sessions, but this can be avoided if the user is prompted to refresh list before exporting beatmap list.


Remember Path to osu Directory
This is a minor one: it'll be nice to have the last specified path expanded in the popup instead of the default C:\Program Files (x86) everytime.


Improve "Select More Maps to Export"
1) This function takes a LONG time to load (approx. 10 times longer than the sync), is it possible to look at optimisation?
2) I wish there's more selection/sort options, eg select a particular Collection to export (you might wanna check out the Collection Editor project), or custom filter (eg certain artists).


Update All Maps
This is a huge wish list and I dunno how feasible: an Update All Maps function will be nice :D
Are you just grabbing map names (ID) from the Songs folder, or can you actually compare the local version to the server? Update All Maps is only possible with the comparison I think, but I'm just throwing my ideas out lol
posted
nice bro :p
posted

Oinari-sama wrote:

Rename the 1st Sync to "Get Map Lists"
Good idea. :)

Oinari-sama wrote:

Preload Sync Result from Last Session
Well, I'm already working on something like this but currently it is too inefficient. Expect to have this soon.

Oinari-sama wrote:

Remember Path to osu Directory
I'm not quite sure which dialog you mean but this seems to be a good suggestion.

Oinari-sama wrote:

Improve "Select More Maps to Export"
1) Uhm, I'm surprised that it takes even longer than the actual "Get Beatmap"-Progress. I'll look what I can optimize.
2) Yeah, I know that it's currently too time-consuming if you want to be really specific with your selection. At first I planned to use DataGrids (they're like tables but you can even sort every column after its values (like sort by Artist)). But I'm not very familliar with them. However, I'll replace the current export selector as soon as I know how to use those tables.
3) I already planned to implement a "Preselect by Collection"-function (ut I couldn't find an open-source project for osu! here on the forums (well, the link at osu!db doesn't work) so I need to write it on my own. However, I'll try to implement this one day but it's currently low priority 'cause it will take much more work than other things on my list.
4) "Select all maps from Artist x" (for example) sounds good, hope to add this soon.

Oinari-sama wrote:

Update All Maps
Mhhh, sounds quite interesting but will be hard to do. Well, I'll look how this would work (I think that osu! uses md5-Hashes) but it will take quite long so I can't promise to add this but I will try. (Maybe I can wirk with other osu! players which already wrote such a tool).

Something I'd like to mention:
I'm planning to make osu!Sync open-source so that other interested people can 1) Optimize osu!Sync (I'm not that familiar with Visual Basic so there are lots of places which can be optimized)
2) Use some parts of the code to develop their own apps faster (but please don't just copy everything, modify a few lines and publish it as a new programm).
posted
I must try this! :)

EDIT:
A little feedback after testing it :P

1) Maybe show only one time this dialog or sum all beatmaps in one dialog


2) Just skip the "Failed" folder, because, you know, there is only corrupted beatmaps here :D


That's all for the moment! :)
posted

naseweis520 wrote:

Oinari-sama wrote:

Remember Path to osu Directory
I'm not quite sure which dialog you mean but this seems to be a good suggestion.
It's the pop-up prompt for choosing osu directory in Settings > Osu.
posted

Entrivax wrote:

I must try this! :)

EDIT:
A little feedback after testing it :P

1) Maybe show only one time this dialog or sum all beatmaps in one dialog


2) Just skip the "Failed" folder, because, you know, there is only corrupted beatmaps here :D


That's all for the moment! :)
Thanks for your feedback. ;)
1) Yeah, I didn't expect that there would be so many. However, will be reduced to only one dialog.
2) Ok, will be ignored.


Oinari-sama wrote:

It's the pop-up prompt for choosing osu directory in Settings > Osu.
Ok, thanks. :)
posted
Update: 0.0.0.4
A new version of osu!Sync is available
Changelog
Added:
__Export:
____Creator will be exported to HTML file too. (Added sort filter "Creator")
____Creator will be exported to OSBL/OSBLX too. (However, this is currently unused but will be displayed in later versions)
__Interface:
____Splash Screen
__Sync:
____"Get Beatmap Sets"-progress will be cached to avoid uneccessary folder scans (which take quite long).
Fixed:
__Export:
____Automatically replace problematic characters in HTML file
Improved:
__Interface:
____Renamed button from "Sync now" to "Get Beatmap Sets"
____"Select file"-Dialogs saves last path
__Sync:
____Ignore "Tutorial" and "Failed" Folder
____Show "Unable to get ID" only once at the end and in an extra window
____Show "Ignored Folders" in an extra window


The following suggestions are still in work or planned:

Oinari-sama wrote:

Preload Sync Result from Last Session

Oinari-sama wrote:

Improve "Select More Maps to Export"

Oinari-sama wrote:

Update All Maps
posted
Said this for your osu!Skype application, and it would be awesome if it was added onto this. Just to keep it running in the background, could you add that we can minimize it as an icon on the task bar (similar to osu! Boss Key feature).

Also when try to to select the "Get Beatmap Feature", the application doesn't respond.
Error Log
Problem signature:
Problem Event Name: AppHangB1
Application Name: osu!Sync.exe
Application Version: 0.0.0.4
Application Timestamp: 54a71b3e
Hang Signature: 72e8
Hang Type: 0
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1033
Additional Hang Signature 1: 72e8b4651a20b5d565b4c3711f4af329
Additional Hang Signature 2: 18d7
Additional Hang Signature 3: 18d7577db50cc06275293de3f35dbaf9
Additional Hang Signature 4: 72e8
Additional Hang Signature 5: 72e8b4651a20b5d565b4c3711f4af329
Additional Hang Signature 6: 18d7
Additional Hang Signature 7: 18d7577db50cc06275293de3f35dbaf9
posted

Sulker wrote:

Said this for your osu!Skype application, and it would be awesome if it was added onto this. Just to keep it running in the background, could you add that we can minimize it as an icon on the task bar (similar to osu! Boss Key feature).

Also when try to to select the "Get Beatmap Feature", the application doesn't respond.
I think it's just because you have a lot of beatmaps, just keep the app running until it finishes its process :)

@naseweis520 Can you run the sync method in an another thread and just block window's controls until it's finished? (and maybe show a waiting loop during the process ;) ) It will prevent the freezing of the window and the user to force-closing it during this looooong (but necessary :cry:) process.
Little something for the loop
<Controls:MetroProgressBar x:Name="loadingBar" Visibility="Hidden" IsIndeterminate="True" VerticalAlignment="Stretch"/>
Or a big ProgressRing :D


(I like the splash screen :P)
Please sign in to reply.