forum

[DEAD] osu!Sync | Share your beatmaps

posted
Total Posts
149
Topic Starter
naseweis520
osu!Sync is no longer maintained!
Thanks to you all for your support and aid. Last release

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.
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.
Esupanitix
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
Oinari-sama
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).
Topic Starter
naseweis520

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
Howl
this. is. awesome.
Oinari-sama
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:
Topic Starter
naseweis520

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...
Secretpipe
It'd be amazing if we can see mapper's name below map's name :D
Topic Starter
naseweis520

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
XinCrin
I really liked the design. Great job!
Topic Starter
naseweis520

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
Oinari-sama
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
Secretpipe
nice bro :p
Topic Starter
naseweis520

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).
Holo-
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! :)
Oinari-sama

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.
Topic Starter
naseweis520

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. :)
Topic Starter
naseweis520
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
Piine
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
Holo-

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)
Oinari-sama
I love how smooth that Exception screen looks, Ctrl+A works too! Nice improvements :D

Dialogue texts can use some improvements but I guess it's low priority at the moment. What's the easiest way to "reset" the app? (so messages like association/extension warning will pop up again)

Btw the app still opens the pop-up location dialogue in C:\Program Files (x86), so it doesn't remember last used folder.

1 more suggestion: can you add options to specify a download path for updates? Frankly I never download stuff directly to my desktop and it sometimes mess up Fences/Rainmeter layouts (though it's not your fault) ;w;
Topic Starter
naseweis520

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).
This indeed sounds useful for downloading and other long taking processes.


Sulker wrote:

Also when try to to select the "Get Beatmap Feature", the application doesn't respond.
Hehe, well this isn't a bug (nor a feature) but like Entrivax said, the programm is still running but not responding untill all beatmap sets are progressed.


Entrivax wrote:

@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.
// Added in next version
Shush, don't spoil my next update. Actually I've already started working at that.
The spinner is implemented since the first version but never really had the chance to be displayed. :oops:


Entrivax wrote:

(I like the splash screen :P)
Yaaay.


Oinari-sama wrote:

Dialogue texts can use some improvements but I guess it's low priority at the moment.
Yeah, as soon as I upload osu!Sync to GitHub everyone's free to edit them.


Oinari-sama wrote:

What's the easiest way to "reset" the app? (so messages like association/extension warning will pop up again)
Automatically. | From the MainWindow Program > Settings > General > Delete/Unregister File Association and Delete Configuration (I recommend this order 'cause Delete Configuration will force osu!Sync to shutdown itself)
Manually. | {WINDOWS-KEY}+{R}, insert %appdata%\naseweis520, {ENTER}, delete the folder osu!Sync.
Then again {WINDOWS-KEY}+{R}, insert %temp%\naseweis520, delete the folder osu!Sync (May not exist).
And again {WINDOWS-KEY}+{R}, insert regedit.exe, now navigate to Computer\HKEY_CLASSES_ROOT. Then delete the keys (= folders): .nw520-osbl, .nw520-osblx, naseweis520.osuSync.compressedOsuBeatmapList, naseweis520.osuSync.osuBeatmapList.


Oinari-sama wrote:

Btw the app still opens the pop-up location dialogue in C:\Program Files (x86), so it doesn't remember last used folder.
// Fixed in next update


Oinari-sama wrote:

1 more suggestion: can you add options to specify a download path for updates? Frankly I never download stuff directly to my desktop and it sometimes mess up Fences/Rainmeter layouts (though it's not your fault) ;w;
Yus, will be added. :D
Topic Starter
naseweis520
Update: 0.0.0.5
A new version of osu!Sync is available
Changelog
Special Mention:
__Added sample OSBLX-files to Forum Thread
__
Added:
__General:
____No need to delete and restart osu!Sync because of update and new setting values
____Select path where to save updates (specified in settings)
__Sync:
____Asynchronous sync (Program won't hang)
____Write Cache-File after sync (will be loaded in next version)
Fixed:
__General:
____Bug in Autoupdater
____Minor Optimizations
____Settings Dialog preselects paths
____Updated About Window
__Importer:
____Importer (via double click) doesn't wait for Sync
__Sync:
____Sync ProgressBar
Improved:
__General:
____File Association (if you've got problems reregister all file extensions in the settings)
[N]ephy
thanks you !
Topic Starter
naseweis520
@[N]ephy Merci d'utiliser mon outil. :D (Ne me réponds pas en français, s'il te plaît. Mon français est terrible.)

Update: 0.0.0.6
A new version of osu!Sync is available
Changelog
Special Mention: Published on GitHub!

Added:
__Sync:
____"Generating interface" progress status
____Load Sync from cache file
Fixed:
__Genereal:
____Optimized code
__Interface:
____Minor fixes and improvements
__Sync:
____Sync ProgressBar maximum value changes each file
Updated:
__Forum:
____Screenhots


GitHub
I finally have uploaded osu!Sync to GitHub. Feel free to edit and optimize my awful and dirty code.
(I don't use native programming languages that often so it's pretty... confusing for others to see my code. I'm sorry :D )
Pawsu
This is a great project, keep up the good work! :)
MN Deus Ex
This is just wow, man. I knew that wandering through development forums will pay off someday, and it looks like it's this day. The coolest concept, I've seen so far here. Keep up the good work!
Strategas
Great work. Reminds me of osu! portable.
Topic Starter
naseweis520

CanadianPaws wrote:

This is a great project, keep up the good work! :)
Thanks. :)


MN Deus Ex wrote:

This is just wow, man. I knew that wandering through development forums will pay off someday, and it looks like it's this day. The coolest concept, I've seen so far here. Keep up the good work!
Yeah, happy that it's useful to you and thank you for the kind words.


Strategas wrote:

Great work. Reminds me of osu! portable.
Mhhh, need to look what this is but thank you ;)
Topic Starter
naseweis520
Update: 0.0.0.7
A new version of osu!Sync is available
Changelog
Added:
__General:
____Converter for file types (removed old OSBL-to-OSBLX-function)
____NotifyIcon
__Settings:
____AutoLoad Cache on start up
____Setting to reset osu!Sync
____Support for Download Mirror Loli.al
____More message settings
__Sync:
____Support of Creator information for OSBL-File-Reader (currently only used for cache file)
Changed:
__SplashScreen
Fixed:
__General:
____Minor Improvements
____Update check on first run
__Importer:
____"Total" counter now shows total beatmap sets in OSBL-file (this always was intended so but, well, I failed :3 )
Optimized:
__Settings:
____Reordered General tab
Removed:
__General:
____Cleanup data of older version
____OSBL-to-OSBLX-function (replaced, see "Added")
Updated:
__Libraries
Alex311360
Are your servers currently down? Having trouble downloading the files.
Topic Starter
naseweis520

Alex311360 wrote:

Are your servers currently down? Having trouble downloading the files.
Well, actually no, I can download it like usual.
However, here is a direct mirror to the latest version from my Dropbox or from GitHub.
:)
Alex311360

naseweis520 wrote:

Thanks. Could I get one for Skype too?

This is the message I get upon trying to download:


EDIT: It's also saying it can't connect on the app either.
Kurokami
Actually I got a different error. o.o
SPOILER
System.Windows.Markup.XamlParseException: 'Provide value on 'System.Windows.Baml2006.TypeConverterMarkupExtension' threw an exception.' Line number '6' and line position '23'. ---> System.IO.FileFormatException: The image format is unrecognized. ---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x88982F07
--- End of inner exception stack trace ---
at System.Windows.Media.PixelFormat.GetPixelFormat(SafeMILHandle bitmapSource)
at System.Windows.Media.Imaging.BitmapSource.UpdateCachedSettings()
at System.Windows.Media.Imaging.BitmapSource.set_WicSourceHandle(BitmapSourceSafeMILHandle value)
at System.Windows.Media.Imaging.BitmapFrameDecode.FinalizeCreation()
at System.Windows.Media.Imaging.BitmapSource.CompleteDelayedCreation()
at System.Windows.Media.Imaging.BitmapSource.get_WicSourceHandle()
at System.Windows.Media.Imaging.BitmapFrameDecode..ctor(Int32 frameNumber, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, BitmapFrameDecode frameDecode)
at System.Windows.Media.Imaging.BitmapDecoder.SetupFrames(BitmapDecoder decoder, ReadOnlyCollection`1 frames)
at System.Windows.Media.Imaging.BitmapDecoder.Initialize(BitmapDecoder decoder)
at System.Windows.Media.Imaging.BitmapDecoder..ctor(SafeMILHandle decoderHandle, BitmapDecoder decoder, Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, Boolean insertInDecoderCache, Boolean isOriginalWritable, Stream uriStream, UnmanagedMemoryStream unmanagedMemoryStream, SafeFileHandle safeFilehandle)
at System.Windows.Media.Imaging.IconBitmapDecoder..ctor(SafeMILHandle decoderHandle, BitmapDecoder decoder, Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, Boolean insertInDecoderCache, Boolean originalWritable, Stream uriStream, UnmanagedMemoryStream unmanagedMemoryStream, SafeFileHandle safeFilehandle)
at System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCache)
at System.Windows.Media.Imaging.BitmapFrame.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy)
at System.Windows.Media.ImageSourceConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
at System.Windows.Baml2006.TypeConverterMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
at MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
--- End of inner exception stack trace ---
at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at osu_Sync.Window_Welcome.InitializeComponent()
at osu_Sync.Window_Welcome..ctor()
at osu_Sync.MainWindow.MainWindow_Loaded(Object sender, RoutedEventArgs e)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
at MS.Internal.LoadedOrUnloadedOperation.DoWork()
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.Resize(ICompositionTarget resizedCompositionTarget)
at System.Windows.Interop.HwndTarget.OnResize()
at System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
And
SPOILER
System.DllNotFoundException: Unable to load DLL 'dwmapi': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
at MahApps.Metro.Native.UnsafeNativeMethods.DwmSetWindowAttribute(IntPtr hwnd, Int32 attr, Int32& attrValue, Int32 attrSize)
at MahApps.Metro.Behaviours.BorderlessWindowBehavior.WindowProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.PublicHooksFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
I tried the latest version of this.
Topic Starter
naseweis520

Kurokami wrote:

Actually I got a different error. o.o
SPOILER
System.Windows.Markup.XamlParseException: 'Provide value on 'System.Windows.Baml2006.TypeConverterMarkupExtension' threw an exception.' Line number '6' and line position '23'. ---> System.IO.FileFormatException: The image format is unrecognized. ---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x88982F07
--- End of inner exception stack trace ---
at System.Windows.Media.PixelFormat.GetPixelFormat(SafeMILHandle bitmapSource)
at System.Windows.Media.Imaging.BitmapSource.UpdateCachedSettings()
at System.Windows.Media.Imaging.BitmapSource.set_WicSourceHandle(BitmapSourceSafeMILHandle value)
at System.Windows.Media.Imaging.BitmapFrameDecode.FinalizeCreation()
at System.Windows.Media.Imaging.BitmapSource.CompleteDelayedCreation()
at System.Windows.Media.Imaging.BitmapSource.get_WicSourceHandle()
And so on...
Oh well... that's a new bug.
May I ask you...
  1. which edition of Windows you're running (e.g. Windows 7 Home Premium)
  2. which version of the Microsoft .NET Framework you've got installed. (Can be found in the list of installed software | e.g. 4.5)
Oh, and I gonna open a new issue on GitHub.

Thank you very much. :)
Kurokami
Its windows XP professional and as for .net, I have 3.5 and 4.0.
Topic Starter
naseweis520

Kurokami wrote:

Its windows XP professional and as for .net, I have 3.5 and 4.0.
Ok, thanks, gonna take a look at it. (Seems as if I need to install Windows XP again)...
:)
Riven_Main
SPOILER
System.Windows.Markup.XamlParseException: Zeilennummer "6" und Zeilenposition "23" von "Die Angabe eines Werts für "System.Windows.Baml2006.TypeConverterMarkupExtension" führte zu einer Ausnahme.". ---> System.IO.FileFormatException: Das Bildformat ist unbekannt. ---> System.Runtime.InteropServices.COMException: Ausnahme von HRESULT: 0x88982F07
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Windows.Media.PixelFormat.GetPixelFormat(SafeMILHandle bitmapSource)
bei System.Windows.Media.Imaging.BitmapSource.UpdateCachedSettings()
bei System.Windows.Media.Imaging.BitmapSource.set_WicSourceHandle(BitmapSourceSafeMILHandle value)
bei System.Windows.Media.Imaging.BitmapFrameDecode.FinalizeCreation()
bei System.Windows.Media.Imaging.BitmapSource.CompleteDelayedCreation()
bei System.Windows.Media.Imaging.BitmapSource.get_WicSourceHandle()
bei System.Windows.Media.Imaging.BitmapFrameDecode..ctor(Int32 frameNumber, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, BitmapFrameDecode frameDecode)
bei System.Windows.Media.Imaging.BitmapDecoder.SetupFrames(BitmapDecoder decoder, ReadOnlyCollection`1 frames)
bei System.Windows.Media.Imaging.BitmapDecoder.Initialize(BitmapDecoder decoder)
bei System.Windows.Media.Imaging.BitmapDecoder..ctor(SafeMILHandle decoderHandle, BitmapDecoder decoder, Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, Boolean insertInDecoderCache, Boolean isOriginalWritable, Stream uriStream, UnmanagedMemoryStream unmanagedMemoryStream, SafeFileHandle safeFilehandle)
bei System.Windows.Media.Imaging.IconBitmapDecoder..ctor(SafeMILHandle decoderHandle, BitmapDecoder decoder, Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, Boolean insertInDecoderCache, Boolean originalWritable, Stream uriStream, UnmanagedMemoryStream unmanagedMemoryStream, SafeFileHandle safeFilehandle)
bei System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCache)
bei System.Windows.Media.Imaging.BitmapFrame.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy)
bei System.Windows.Media.ImageSourceConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
bei System.Windows.Baml2006.TypeConverterMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
bei MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
bei System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
bei System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
bei System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
bei System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
bei osu_Sync.Window_Welcome.InitializeComponent()
bei osu_Sync.Window_Welcome..ctor()
bei osu_Sync.MainWindow.MainWindow_Loaded(Object sender, RoutedEventArgs e)
bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bei System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
bei System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
bei System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
bei System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
bei MS.Internal.LoadedOrUnloadedOperation.DoWork()
bei System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
bei System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
bei System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
bei System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
bei System.Windows.Media.MediaContext.Resize(ICompositionTarget resizedCompositionTarget)
bei System.Windows.Interop.HwndTarget.OnResize()
bei System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
bei MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
So that is coming, if i start it.
Topic Starter
naseweis520

xkeylader78fan wrote:

So that is coming, if i start it.
May I ask you if you use Windows XP.
'Cause it seems as if it's currently not possible to run osu!Sync on it.
Riven_Main
Im using Vista.
Topic Starter
naseweis520
Mhh, ok,... I'll try to fix this.
Zirrhose

xkeylader78fan wrote:

SPOILER
System.Windows.Markup.XamlParseException: Zeilennummer "6" und Zeilenposition "23" von "Die Angabe eines Werts für "System.Windows.Baml2006.TypeConverterMarkupExtension" führte zu einer Ausnahme.". ---> System.IO.FileFormatException: Das Bildformat ist unbekannt. ---> System.Runtime.InteropServices.COMException: Ausnahme von HRESULT: 0x88982F07
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Windows.Media.PixelFormat.GetPixelFormat(SafeMILHandle bitmapSource)
bei System.Windows.Media.Imaging.BitmapSource.UpdateCachedSettings()
bei System.Windows.Media.Imaging.BitmapSource.set_WicSourceHandle(BitmapSourceSafeMILHandle value)
bei System.Windows.Media.Imaging.BitmapFrameDecode.FinalizeCreation()
bei System.Windows.Media.Imaging.BitmapSource.CompleteDelayedCreation()
bei System.Windows.Media.Imaging.BitmapSource.get_WicSourceHandle()
bei System.Windows.Media.Imaging.BitmapFrameDecode..ctor(Int32 frameNumber, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, BitmapFrameDecode frameDecode)
bei System.Windows.Media.Imaging.BitmapDecoder.SetupFrames(BitmapDecoder decoder, ReadOnlyCollection`1 frames)
bei System.Windows.Media.Imaging.BitmapDecoder.Initialize(BitmapDecoder decoder)
bei System.Windows.Media.Imaging.BitmapDecoder..ctor(SafeMILHandle decoderHandle, BitmapDecoder decoder, Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, Boolean insertInDecoderCache, Boolean isOriginalWritable, Stream uriStream, UnmanagedMemoryStream unmanagedMemoryStream, SafeFileHandle safeFilehandle)
bei System.Windows.Media.Imaging.IconBitmapDecoder..ctor(SafeMILHandle decoderHandle, BitmapDecoder decoder, Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, Boolean insertInDecoderCache, Boolean originalWritable, Stream uriStream, UnmanagedMemoryStream unmanagedMemoryStream, SafeFileHandle safeFilehandle)
bei System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCache)
bei System.Windows.Media.Imaging.BitmapFrame.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy)
bei System.Windows.Media.ImageSourceConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
bei System.Windows.Baml2006.TypeConverterMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
bei MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
bei System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
bei System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
bei System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
bei System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
bei osu_Sync.Window_Welcome.InitializeComponent()
bei osu_Sync.Window_Welcome..ctor()
bei osu_Sync.MainWindow.MainWindow_Loaded(Object sender, RoutedEventArgs e)
bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bei System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
bei System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
bei System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
bei System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
bei MS.Internal.LoadedOrUnloadedOperation.DoWork()
bei System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
bei System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
bei System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
bei System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
bei System.Windows.Media.MediaContext.Resize(ICompositionTarget resizedCompositionTarget)
bei System.Windows.Interop.HwndTarget.OnResize()
bei System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
bei MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
So that is coming, if i start it.
same error for me.

Win7 64Bit Ultimate
iCakeMan
If I click "GET BEATMAP SETS" I'm getting this
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei osu_Sync.MainWindow.BGW__Action_Sync_GetIDs_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
bei MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
OSU! was running.

Win7 Ulti 64 bit.
Topic Starter
naseweis520
Update: 0.0.0.8
A new version of osu!Sync is available
Changelog
!!! IMPORTANT !!!
!!! There may be a problem with the internal update patcher tool. If the automatic patch fails you need to download and replace the files from the update package manually. Path: http://j.mp/1NqSo2d

Added:
__ Export
____ New File Format: CSV
Fixed:
__ Sync:
____ Bug with outdated cache file
____ Fixed bug with updater
____ ProgressBar for Sync Progress has wrong maximum
__ Updater:
____ Fixed invalid default path
Updated:
__ General:
____ Library

Note
I'm not sure if all previous bugs are fixed. However, if it occures again please leave a reply on GitHub or here.
AirOneBlack
Damn, source code is in VB... why not use C#...
Kuuhaku722
my sugestion :
1. not just sync the beatmaps but the settings of the user too
2. user A and user B have a different location of syncing
3. if we can sync osu to online storage such as one drive, drop box, google drive, and much more it will be more better

may be just that. we will be supporting this features :)
High tide
Do anyone have a sync file that has every ranked map?
minh_trinh1989
Does anyone have an export file which already has a decent amount of beatmaps?

I've played like a year but only have ~800 (as the start screen says)
Jibzi
Hey thanks for the piece of software. It looks awesome.
However I have a poblem, my songs folder is on a seperate hardrive, linked by osu!.cfg. (Osu installationis on C:\ and Songs is on H:\ to be concrete)
Can you implement a feature that gives you the ability to select the songs folder in Osu!Sync manually? Thank you :)
Kuuhaku722
I am using osu!sync ver. 0.0.0.8
A. my questions :
what is the compability for this program. " is it avaiable for windows 10 64/32 bit, is it avaiable for windows 8 and 8.1 64/32 bit " something like that

B. error massage :
i am geting an error massage when scaning the beatmaps, but nothing happen after i click "close" in the massage


C. sugesstions :

1). interface
i think grid interface is the best for choosing beatmaps. and dont forget to add the thumbnails of all beatmaps ( if you can't select thumbnails photo, just choose thumbnails from the file music. i think it will be more easy in the script of this program. keyword "the longest mp3 file each beatmaps folders" )
you can learn more from windows explorer in windows 8 and windows 8.1




2). osu!sync information version
the information about osu!sync version just visible in updater. almost all program have the information about program version in " about ". i think you must add the osu!sync version like my edited photo
original




edited


3). default main menu for osu!sync
i think this program should be have a main menu. it will be more better

4). what's i can sync
a. the important topic of this program is what for this program created. i think it will be better if we can sync the user settings and the beatmaps too. user A and user B must be have a different syncing locations. but the beatmaps must have just 1 location. it will be more easly if we can choose where we want to syncing it such as to other hard drives, drop box, and one drive.

b. when osu is clicked, make a script to run the osu!sync and delay osu.exe. ask the user about the directory path ( where we want to sync the osu ) *maybe we can choose it as a default directory or just 1x syncing*. after that show how many the osu beatmaps and settings will be syncing to the path or just one of that or just runing the osu!.exe without syncing. maybe 1x per 30 minutes or 1x per 1 hour. after choosing it lounch the osu.exe and minimize osu!sync to system tray. *when the osu is runing hide the notification*

c. and i think we need a feature to convert folder beatmaps to a file with format ".osk" or ".osz" before we sync it or just convert it without syncing the path. *make this feature always request what should to do. and just can be running manual. not automatical*

5). settings
may be you can change the settings like my photo.
original settings :


edited using photoshop :


the feedback button is for reporting a bug, error, or sugestion to your email or maybe your team creator. so you can quickly repair the bug or adding new features to osu!sync

6). team's
this features is so greatfully, players need this feature soon. i think you need a team to make this program more fast and better


if you want to ask something just pm me. but with english language. i am just have a litle bit of deutsch xD
*i cant programing. but have a litle skill in photoshop*
just that's :) thanks for making this feature. i want to use this features in game like osu direct but this feature must be free for all user not just for supporters. hope peppy will allowing this feature as a default feature in osu.
show more
Please sign in to reply.

New reply