Help - Search - Members - Calendar
Full Version: Album Art Downloader XUI
Hydrogenaudio Forums > Hydrogenaudio Forum > General Audio
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
AlexVallat
QUOTE(bsleeth @ Mar 26 2008, 04:51) *
With the acknowledgment that every web page will present the thumbnails and images slightly different, has anyone put together a general guideline for writing a script?

<snip/> a new script for the Album Art Exchange site would be a good addition, I would be very interested in seeing a working script.

As far as I know, no-one has put together any general guideline for writing a script - the idea has mostly been to grab one that works and modify it. A strong knowledge of regular expressions is a requirement, and some knowledge of .net in general is handy. If you are serious about wanting to write scripts, and need a hand with them, send me a PM and I can probably help.

Here's an albumartexchange.boo for you, anyway. Not much selection there yet, I found, but hopefully they'll expand in the future.

QUOTE(Razzeli @ Mar 27 2008, 19:50) *
Hi! The program crashes after I have pressed the search button.

Hi, thanks for reporting the crash. I'll put a guard against this into the next version, but I don't really understand why it occurred. Does it happen every time for you, or is there anything you do that makes it reliably happen?

Alex
kkamion
Any chance of making script for this site? smile.gif

http://www.allcdcovers.com/

Razzeli
QUOTE(AlexVallat @ Mar 28 2008, 21:49) *
Hi, thanks for reporting the crash. I'll put a guard against this into the next version, but I don't really understand why it occurred. Does it happen every time for you, or is there anything you do that makes it reliably happen?

Yes, it does crash everytime I press the search button, haven't found a way to fix it.
emfletcher
This program just keeps getting better. The file pattern matching is awesome. The file pattern I am using is \%artist% - %album%\* which works great. But sometimes I will have something like [1994 Remaster] or (Disc 2) after the album name. How would I make it remove everything in parenthesis and brackets?

Also, right now it doesn't detect my various artist albums because the folder name is just the album. Instead of ignoring the folder when it doesn't find a -, would it be possible to make it assume it is a various artist album? When there is no - it could just take the whole folder name as the album name and leave the artist field blank.

One more small suggestion. Could the local files box be a different color so it is easier to find, or maybe an option to pin it always as first result. It is hard to find the existing art mixed in with the search results, and many times you need it to compare it too.

Thanks for the great program.
cartman(2vd)
QUOTE(emfletcher @ Mar 31 2008, 20:53) *

This program just keeps getting better. The file pattern matching is awesome. The file pattern I am using is \%artist% - %album%\* which works great. But sometimes I will have something like [1994 Remaster] or (Disc 2) after the album name. How would I make it remove everything in parenthesis and brackets?

Also, right now it doesn't detect my various artist albums because the folder name is just the album. Instead of ignoring the folder when it doesn't find a -, would it be possible to make it assume it is a various artist album? When there is no - it could just take the whole folder name as the album name and leave the artist field blank.

Thanks for the great program.


i dont know if youre reffering to that folder browser in albumart xui (i dont use it at all) (if so probably ignore the rest of my post biggrin.gif) but you should be able to handle these exceptions inside foobar by simply using complex and sometimes a bit hard titleformating.

for deteciton of "-" you could use $strstr in some kind of this trick: $if($strstr(%path%,'-'), normal, various)

for replacing parenthesis try to find some titleformating gimmick for diming them in cui and adapt these to you needs

these exceptinous shouldnt be harcoded in program for there are probably totaly different for every user, and you should be able to handle them yourself.
AlexVallat
QUOTE(kkamion @ Mar 28 2008, 22:13) *
Any chance of making script for ... http://www.allcdcovers.com/

They provide an API, which might make it interesting to do a script for. I've asked them for a developer key for it, but had no reply yet. If I get one, I'll do a script for it.

QUOTE(emfletcher @ Mar 31 2008, 20:53) *
The file pattern I am using is \%artist% - %album%\* which works great. But sometimes I will have something like [1994 Remaster] or (Disc 2) after the album name. How would I make it remove everything in parenthesis and brackets?

The pattern matching can be made to use regular expressions by enclosing them between " marks. It does not use title formatting at all (sorry, cartman(2vd), your suggestions don't apply in this case, but thanks all the same!).

To do the match you are describing, you could try:
CODE
\%artist% - %album%"( \[.+?\])?( \(.+?\))?"\*
This will ignore the end of the album name if it is separated from the album name with a space, and is enclosed in brackets, or parenthesis, or a term in brackets followed by a space, followed by a term in parenthesis. If any of those assumptions are wrong, it may need tweaking.

QUOTE(emfletcher @ Mar 31 2008, 20:53) *
Also, right now it doesn't detect my various artist albums because the folder name is just the album. Instead of ignoring the folder when it doesn't find a -, would it be possible to make it assume it is a various artist album? When there is no - it could just take the whole folder name as the album name and leave the artist field blank.

You could, yes:
CODE
\"("%artist% - %album%"( \[.+?\])?( \(.+?\))?|%album%)"\*
This adds an alternation that if the first pattern doesn't match, it tries a second, which is just %album%.

QUOTE(emfletcher @ Mar 31 2008, 20:53) *
One more small suggestion. Could the local files box be a different color so it is easier to find, or maybe an option to pin it always as first result. It is hard to find the existing art mixed in with the search results, and many times you need it to compare it too.

Thanks for the suggestion; I'll see how well pinning as the first result works, and it may make it into a future version. I don't like the colouring idea, though.

Thanks for the comments,

Alex
emfletcher
Wow. That pattern works great. Thanks for the fast reply. biggrin.gif

I just noticed that the program stops searching when it runs into a really long folder or file name. I got this error:

QUOTE
Error occurred while searching: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.


Is there any way the program could continue searching after giving the error?
AlexVallat
QUOTE(emfletcher @ Apr 1 2008, 00:26) *
Is there any way the program could continue searching after giving the error?

Possibly. Ideally, of course, the error wouldn't occur at all, but I'm not sure whether there will be any way to work around the character limits. I'll look into it.

Alex
bsleeth
QUOTE(AlexVallat @ Mar 28 2008, 11:49) *
Here's an albumartexchange.boo for you, anyway. Not much selection there yet, I found, but hopefully they'll expand in the future.

Alex,

Wow. Thank you very much. Your script works great. The script is also very clean and would make a great starting point.

Yes, AlbumArtExchange is a hit or miss site. However if they have the cover you are looking for it is generally a quality image.

Sorry for the late reply, but I have been out of town. Although I am (was) serious about writing the script myself, I am finding that I just do not have the time to "play".

Thank you again,
Brian

katoblepa
Hi!
I dowloaded the program. But It crashes at the first serch. No messages. Only if I wante to send the error to Microsoft.... rolleyes.gif

Any idea?

Thanks
arnymars
I have MS .Net 3 and 3.5 installed on a Win XP Home SP2 PC. After installation of AlbumArtDownloader it worked well. Now - similar to above Crash every time after trying the first search. Tried to reinstall or use Non-install version, change search terms like Artist & Album - same crash no matter what.
Crash Log - see the attached file.
katoblepa
Exatly arnymars.
I first donloaded .net 3.0 and Albumart worked well. Then I found the version based on +net3.5 and it crashes at the first search....
NogginJ
i did like this program. downloaded the new version, and now it crashes as soon as it opens.

CODE
Album Art Downloader has encountered a fatal error, and has had to close.
If you wish to report this error, please include this information, which
has been written to the file: C:\Program Files\AlbumArtDownloader\errorlog.txt

App version: 0.15.0.0, running on Microsoft Windows NT 5.1.2600 Service Pack 2

System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
   at AlbumArtDownloader.Arguments..ctor(String[] args, IEnumerable`1 valuedParameters)
   at AlbumArtDownloader.App.ProcessCommandArgs(String[] args)
   at AlbumArtDownloader.App.OnStartup(StartupEventArgs e)
   at System.Windows.Application.<.ctor>b__0(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(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, Boolean isSingleParameter)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at System.Windows.Application.Run()
   at AlbumArtDownloader.App.AlbumArtDownloader.IPriorInstance.Run()
   at AlbumArtDownloader.InstanceMutex.RunAppAsServiceHost(IPriorInstance instance, String channelUri)
   at AlbumArtDownloader.App.Main(String[] args)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

AlexVallat
Oh dear, what a bunch of crashes. I'll answer them individually:

QUOTE(katoblepa @ Apr 5 2008, 20:42) *
crashes at the first serch. No messages.
If the error log does not appear, then I may not be able to figure out why the crash is happening. Could you try looking in the Album Art Downloader folder (usually c:\Program Files\AlbumArtDownloader) for a file called errorlog.txt? If there is one there, please send it to me, and I'll see what I can do. If you could let me know what album and artist you were searching for, that might help too.

QUOTE(arnymars @ Apr 5 2008, 21:53) *
Crash Log - see the attached file.
Thanks for reporting this crash. You say it always occurs, whatever search terms you use? I don't really understand why this is happening, but could you try replacing your AlbumArt.exe version with this test version: AlbumArt.exe. It should stop it crashing, or at least make it crash in a different place, which would give me a clue as to why. Please let me know either way, so I can have it fixed for the next version.

QUOTE(NogginJ @ Apr 5 2008, 22:07) *
downloaded the new version, and now it crashes as soon as it opens.
CODE
System.IO.FileNotFoundException: Could not load file or assembly 'System.Core
This error means you haven't got .net framework 3.5 installed (you probably have only 3.0). Either use the installer, which automatically detects this, or just download the framework here: .NET Framework 3.5

Alex
arnymars
QUOTE(AlexVallat @ Apr 5 2008, 15:35) *

Oh dear, what a bunch of crashes. I'll answer them individually:

QUOTE(arnymars @ Apr 5 2008, 21:53) *
Crash Log - see the attached file.
Thanks for reporting this crash. You say it always occurs, whatever search terms you use? I don't really understand why this is happening, but could you try replacing your AlbumArt.exe version with this test version: AlbumArt.exe. It should stop it crashing, or at least make it crash in a different place, which would give me a clue as to why. Please let me know either way, so I can have it fixed for the next version.

Alex

Hi Alex,

Thanks for the excellent program! I tested the last AlbumArt.exe file of 4/5/08 a bit, and it does work. I also checked again the previous AlbumArt.exe file of 3/24/08 and found:

- when foobar2000 or your latest AlbumArt.exe file of 4/5/08 is running, the previous file version can also be launched and works great;
- when none of these 2 programs is running, the previous AlbumArt.exe crashes after the 1st search;
- when called from foobar2000 via Run Service (I'm using beautiful foo_smooth skin and foo plugins included with it), it works great and gets the right folder to save the pictures. It would help, if AlbumArt window can close automatically after the user returns to Foobar2000 window & hits Play.

Thanks
Arny
katoblepa
QUOTE(AlexVallat @ Apr 5 2008, 15:35) *

Oh dear, what a bunch of crashes. I'll answer them individually:

QUOTE(katoblepa @ Apr 5 2008, 20:42) *
crashes at the first serch. No messages.
If the error log does not appear, then I may not be able to figure out why the crash is happening. Could you try looking in the Album Art Downloader folder (usually c:\Program Files\AlbumArtDownloader) for a file called errorlog.txt? If there is one there, please send it to me, and I'll see what I can do. If you could let me know what album and artist you were searching for, that might help too.

QUOTE(arnymars @ Apr 5 2008, 21:53) *
Crash Log - see the attached file.
Thanks for reporting this crash. You say it always occurs, whatever search terms you use? I don't really understand why this is happening, but could you try replacing your AlbumArt.exe version with this test version: AlbumArt.exe. It should stop it crashing, or at least make it crash in a different place, which would give me a clue as to why. Please let me know either way, so I can have it fixed for the next version.

QUOTE(NogginJ @ Apr 5 2008, 22:07) *
downloaded the new version, and now it crashes as soon as it opens.
CODE
System.IO.FileNotFoundException: Could not load file or assembly 'System.Core
This error means you haven't got .net framework 3.5 installed (you probably have only 3.0). Either use the installer, which automatically detects this, or just download the framework here: .NET Framework 3.5

Alex


Yes I found the error log....
CODE
Album Art Downloader has encountered a fatal error, and has had to close.
If you wish to report this error, please include this information, which
has been written to the file: E:\Programmi\AlbumArtDownloader\errorlog.txt

App version: 0.15.0.0, running on Microsoft Windows NT 5.1.2600 Service Pack 2

System.Reflection.TargetInvocationException: Eccezione generata dalla destinazione di una chiamata. ---> System.NullReferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto.
   in AlbumArtDownloader.Common.MakeSafeForPath(String value)
   in AlbumArtDownloader.ArtSearchWindow.AlbumArtDefaultFilePathPatternSubstitution.Convert(Object value, Type targetType, Object parameter, CultureInfo culture)
   in System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
   in System.Windows.Data.BindingExpression.Activate(Object item)
   in System.Windows.Data.BindingExpression.AttachToContext(AttachAttempt attempt)
   in System.Windows.Data.BindingExpression.AttachOverride(DependencyObject target, DependencyProperty dp)
   in System.Windows.Data.BindingExpressionBase.OnAttach(DependencyObject d, DependencyProperty dp)
   in System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, OperationType operationType, Boolean isInternal)
   in System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
   in System.Windows.Data.BindingOperations.SetBinding(DependencyObject target, DependencyProperty dp, BindingBase binding)
   in AlbumArtDownloader.ArtSearchWindow.BindAlbumArtDefaultFilePath(AlbumArt art)
   in AlbumArtDownloader.ArtSearchWindow.OnResultsChanged(Object sender, NotifyCollectionChangedEventArgs e)
   in System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   in System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   in System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item)
   in System.Collections.ObjectModel.Collection`1.Add(T item)
   in AlbumArtDownloader.Sources.OnSourceResultsChanged(Object sender, NotifyCollectionChangedEventArgs e)
   in System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   in System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item)
   in System.Collections.ObjectModel.Collection`1.Add(T item)
   in AlbumArtDownloader.Source.ScriptResults.<>c__DisplayClass9.<Add>b__7()
   --- Fine dell'analisi dello stack dell'eccezione interna ---
   in System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   in System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   in System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   in System.Delegate.DynamicInvokeImpl(Object[] args)
   in System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   in System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   in System.Windows.Threading.DispatcherOperation.InvokeImpl()
   in System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   in System.Threading.ExecutionContext.runTryCode(Object userData)
   in System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   in System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   in System.Windows.Threading.DispatcherOperation.Invoke()
   in System.Windows.Threading.Dispatcher.ProcessQueue()
   in System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   in MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   in MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   in System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   in System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   in System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
   in System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
   in MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   in MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   in System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   in System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   in System.Windows.Threading.Dispatcher.Run()
   in System.Windows.Application.RunInternal(Window window)
   in System.Windows.Application.Run(Window window)
   in System.Windows.Application.Run()
   in AlbumArtDownloader.App.AlbumArtDownloader.IPriorInstance.Run()
   in AlbumArtDownloader.InstanceMutex.RunAppAsServiceHost(IPriorInstance instance, String channelUri)
   in AlbumArtDownloader.App.Main(String[] args)

I was looking for ABC - Abracadabra cover.With the previous version worked fine. Im starting now to use the program and I have some questions.
1) I imagine that the program can be activated from Foobar. By what menu option?
2) I syncronizing my ipod with foo-dop and it seems to work fine. How are the covers managed by ipod? Are they "loaded" as any mp4 or mp3 file? Any requirements?

Thanks
AlexVallat
QUOTE(arnymars @ Apr 5 2008, 23:16) *
Thanks for the excellent program! I tested the last AlbumArt.exe file of 4/5/08 a bit, and it does work. <snip> It would help, if AlbumArt window can close automatically after the user returns to Foobar2000 window & hits Play.
That's great news! I still don't know why it happened, but I'm glad that guard I put in place seems to fix it. It will be included in the next release.

You can't have the window close automatically when you press Play in Foobar, I'm afraid, but what you can do is have it close automatically when you save an album art. The flow then goes something like: click Get Art in foobar, look at results, double click best result. The result is then saved and the search window closes. To get this auto-close behaviour, add /autoclose to your command line, or click the "Automatically close after saving" checkbox in the Options area of the search window.

QUOTE(katoblepa @ Apr 6 2008, 00:20) *
Yes I found the error log....
<snip>
1) I imagine that the program can be activated from Foobar. By what menu option?
2) I syncronizing my ipod with foo-dop and it seems to work fine. How are the covers managed by ipod? Are they "loaded" as any mp4 or mp3 file? Any requirements?
It looks like you have the same crash as arnymars. Could you verify that replacing your AlbumArt.exe with this test version: AlbumArt.exe fixes the problem?

In answer to your other questions, foo_run is generally used for launching programs like this from Foobar. For foo_dop, you should probably ask in the foo_dop thread. According to the wiki, it should support it.

Alex
arnymars
QUOTE(AlexVallat @ Apr 6 2008, 01:17) *

Click Get Art in foobar, look at results, double click best result. The result is then saved and the search window closes.

Thanks Alex!
In this case, can you modify AAD a bit, so that a single click on the Floppy Icon can Save an Album Cover without closing AAD window (allowing to add more Cover variants for the same album), but a double click on the Cover in search results will Close AAD? And what are the naming rules for saving several Covers for the same Album to show them all in foobar2000 when the Album is placed in a Playlist?

Also, a few of other things:

- When an Album Cover is saved by AAD, called from foobar2000 via Run service, why that Cover is not updated right away in the Playlist window, and also other foobar windows - like AlbumArt and Graphical Browser Panels and Row (I'm using Foo_Smooth Skin), and how to synch them without restarting foobar? Would better integration btw AAD, foobar2000 and its plugins help?
- Can you add a Prefs Option or a Link next to each Cover in search results to open the Cover source page in a default web browser? It'll help to get mote info about the Album and check the Cover match more accurately when needed;
- While AAD Interface is clearly designed, some functionality may need clarification for novices. Is there any Help, Readme or FAQ file about AAD anywere?
- Processor load is very high, when searching for Covers in local PC folders with AAD File Browser. Can it be optimized a bit for that operation?
- Can you add some skinning, or at least Interface color matching options to AAD, f.e. to auto or manually match its window color scheme & element appearance with current foobar2000 skin color scheme?

Thanks again.
AlexVallat
QUOTE(arnymars @ Apr 6 2008, 14:53) *

In this case, can you modify AAD a bit, so that a single click on the Floppy Icon can Save an Album Cover without closing AAD window (allowing to add more Cover variants for the same album), but a double click on the Cover in search results will Close AAD?
Interesting idea. I'm not sure how intuitive that would be, but if I can think of a good way of presenting it, it might make it in to a future version.

QUOTE(arnymars @ Apr 6 2008, 14:53) *

And what are the naming rules for saving several Covers for the same Album to show them all in foobar2000 when the Album is placed in a Playlist?
There aren't any, really. I've had a long-standing idea of using a preset system so you can click a dropper arrow next to the save button to save as things like "album name - front" and "- back" and so on, but haven't got round to it yet.

QUOTE(arnymars @ Apr 6 2008, 14:53) *
When an Album Cover is saved by AAD, called from foobar2000 via Run service, why that Cover is not updated right away in the Playlist window, and also other foobar windows
I guess because they have no way of knowing to look for new art files, and don't constantly refresh themselves. Not much I can do about that, but you shouldn't have to restart foobar, the art panels should have some sort of refresh command. If they don't, try asking them for one. If an art display panel had an integrated "run cover fetching tool" command that could run an external tool, then update itself once that tool exited, then you could use AAD for that. Just pass the /separateInstance command line arg so that it doesn't re-use an existing instance, and only exits when you close it.

QUOTE(arnymars @ Apr 6 2008, 14:53) *
Can you add a Prefs Option or a Link next to each Cover in search results to open the Cover source page in a default web browser?
No. That information is not provided by the sources, and I have no intention of re-writing all of them to provide it.

QUOTE(arnymars @ Apr 6 2008, 14:53) *
While AAD Interface is clearly designed, some functionality may need clarification for novices. Is there any Help, Readme or FAQ file about AAD anywere?
There's the wiki page, I guess. But no, there is no proper documentation for it, and I agree that there should be. That doesn't mean that I intend to write any any time soon, but if anyone else fancies putting some together, I'll certainly integrate it.

QUOTE(arnymars @ Apr 6 2008, 14:53) *
Processor load is very high, when searching for Covers in local PC folders with AAD File Browser. Can it be optimized a bit for that operation?
I'll look into it, but could you check if you find the same issue with using pattern matching as ID3 tag matching? It would be useful to know how much of it is due to the MediaInfo tag reading. Mostly, the file browser searching is optimised for speed, so I would expect a high processor load while it is working.

QUOTE(arnymars @ Apr 6 2008, 14:53) *
Can you add some skinning, or at least Interface color matching options to AAD, f.e. to auto or manually match its window color scheme & element appearance with current foobar2000 skin color scheme?
Automatic colour matching to foobar is never going to happen. A colour scheme 'skin' file could be a possibility, though. Any actual skin would need to be a xaml file, and would be closer to development than skinning, but if there is any real interest in this, it might be doable. If anyone is interested in designing xaml skins, the best way to start would be to grab the source off the public SVN and modify the xaml files there.

Alex
arnymars
QUOTE(AlexVallat @ Apr 6 2008, 09:44) *

Web links information is not provided by the sources, and I have no intention of re-writing all of them to provide it.

It's quite a useful feature though. People may want to look at the found by AAD Album's info on its source page, but - no way... And, I guess, a nice way to make extra money on referals to Amazon etc. to keep AAD development going. Just keep your mind open for it pls.
QUOTE
It would be useful to know how much of the processor load is due to the MediaInfo tag reading.

About 90% of P4 full load on file path pattern matching for a short time, and feels OK, and 75-85% with ID3 tags matching, but quite lengthy, resulting eventually in overheating & extreme fan noize when searching larger archives. Surprisingly, at idle AAD also uses variable processor power 2 to 6% continuosly. Some tweaking may help here.
QUOTE
An xaml colour scheme 'skin' file could be a possibility

May be just a simple way for a user to manually change in AAD Options its windows & border & text colors and font to visually match with current foobar2000 color scheme?

Again, thanks for very fast excellent program!
arnymars
Can anyone suggest an Album Collection Editor, which can find automatically on the web and offer to the user or auto add as a Prefs Option missing info to Albums like Artist & Title or Album name, and also sort & move such Collection music files to the right Album Folders based on song names & other data.
AlexVallat
AlbumArt Downloader XUI v0.16 Released

Small bug fixing issue, but they seemed to be cropping up frequently, so I thought it was worth pushing out a release with the fixes in.

List of changes for this version:
  • Better handling of file path errors when searching for files
  • Fixed strange MakeSafeForPath crash
  • Added detection for missing .net 3.5 framework at application startup
  • Added Album Art Exchange script
Download:
AlbumArtDownloaderXUI.exe (Installer. Recommended)
AlbumArtDownloaderXUI.zip (zip archive for those who don't like installers)
.NET Framework 3.5 (required)
AlbumArtDownloaderXUI-MediaInfoX64Upgrade.exe (x64 version of MediaInfo - must be installed if you are running a 64 bit version of Windows)
arnymars
Alex,

Great news! What's Album Art Exchange Script and how to use it?

Also, would you intertain an AAD version in a form of foobar2000 Plugin - possibly for better UI and appearance integration, and auto update of foobar windows after selecting or saving new Covers found by AAD. A standalone AAD version will still be useful with other players, and may have broader functionality, like finding & adding missing Album description info, sorting & auto moving files btw Album folders, and some money making referal mechanism.
AlexVallat
QUOTE(arnymars @ Apr 6 2008, 21:24) *
Great news! What's Album Art Exchange Script and how to use it?
Album Art Exchange is a website that has cover art available, and the Script lets Album Art Downloader search it for covers. I'd posted the script a few days ago, after someone requested it - the change here is just to bundle it with the installer and zip file. To use it, just make sure the checkbox for it in the list of sources is checked.

QUOTE(arnymars @ Apr 6 2008, 21:24) *
Also, would you intertain an AAD version in a form of foobar2000 Plugin
No. AAD is written in C#, and has a WPF UI. Neither of these are in the least bit compatible with the foobar2000 plug-in system. I don't like C++, and have no intention of writing anything extensive in that language.

I've already outlined the only suggestion I would have for automatically updating after running an external cover fetching tool.

QUOTE(arnymars @ Apr 6 2008, 21:24) *
finding & adding missing Album description info, sorting & auto moving files btw Album folders, and some money making referal mechanism.
That's an entirely different sort of application. This is not a music manager, or organiser. This is a tool for getting artwork for albums, and it's not going to creep into becoming a music management tool. At best it could be a plug-in to a music management tool, if that tool had some sort of .net plug-in interface.

As for a money making referral mechanism, I'm not sure that there would be much point to that. Surely you only search for cover art for albums you already have, and would therefore not be buying? If the app ever becomes polished enough to warrant being called a 1.0 release (which would include proper website and documentation, at least), I've been considering adding a donate link to it, probably under the Help menu is traditional, I think.

Alex

arnymars
QUOTE(AlexVallat @ Apr 6 2008, 15:39) *

You only search for cover art for albums you already have

Some people may still want to open the linked to a Cover web page to clarify, if that's the exact Cover they need, and find more info about the Album. Some may have incomplete or low quality version of the Album, and may want to purchase the geniune Album upon review. Regardless of outcome, referal is paid per click, and will support AAD development. Users will be glad as well, as clicking on Cover links is a matter of choice, and adds a real convenience.

As to finding missing basic Album descriptions, I thought it may employee similar search mechanism you already have, allowing users to deal with just one application. BTW, do you have any priority system for Album Art found, in which order they are presented to the user? If you add such search accuracy prioritization (which may use Album descriptions and feels quite logical), similar sorting mechanism may possibly be applied to music collections in general. A lot of music collections are not well organized (like some of this Forum posts), so songs from the same Album may be scattered in various HD folders based on download date. Of course, it's up to you, what features to implement.

Could you explain, why AAD consumes 4 to 6% of processor power at idle? Foobar2000 seldom goes that far when playing music.
AlexVallat
QUOTE(arnymars @ Apr 7 2008, 15:19) *

You can't sort results by accuracy, because there isn't anything generally meaningful to test against for accuracy. The sources just return the results, there is no measure of certainty about the results they return.

I can see that linking to a web page for a cover might come in handy occasionally, but it would need every source to determine and provide an Info url for each result, and I don't think it's worth it. I don't object to the functionality in principle, though.

As for the other idea, I'll re-iterate that this tool is not, and will not become, a music organization or library management tool. I can see that such an application is a useful thing to have, but this is not that application. It could be an external tool or plugin used by one for finding art, though.

I'm not sure why you are getting 5% CPU utilisation when it isn't doing anything. It's pegged at 0 on my machine here, but then my CPU is a bit faster than a P4, so I guess it might just be that the utilisation isn't high enough to register, without actually being 0. Without being able to measure the effect, I can't do much about it. There are no background threads or tasks running (until a search or browse is performed, of course), so there aren't even any specific areas to look at.

Alex
arnymars
QUOTE(AlexVallat @ Apr 7 2008, 09:12) *

I'm not sure why you are getting 5% CPU utilisation when it isn't doing anything. It's pegged at 0 on my machine here.

After downloading search results AAD uses 15 to 26% P4 capacity continuosly without visibly doing anything - see the attached screenshoot archive. It looks like fixable unnessessary .Net 3.5 WPF related activity.

Is it related to below quote from http://en.wikipedia.org/wiki/Windows_Presentation_Foundation or something different:
"Periodically, MIL walks the tree and executes the rendering instructions in each node, thus compositing each element on to a DirectX surface, which is then rendered on screen. ..Microsoft recommends that the event handlers only update the properties to reflect new content for application responsiveness; the new content be generated or retrieved in a background thread."
AlexVallat
QUOTE(arnymars @ Apr 7 2008, 23:27) *
the new content be generated or retrieved in a background thread."
This is already the way Album Art Downloader is architected. You can tell by the way the application UI stays responsive while it is searching and downloading images. The responsiveness talked about in the Microsoft article linked to from the Wikipedia article you mentioned refers to the responsiveness of the UI - making sure that while content is generated or retrieved the buttons and controls still work, and nothing locks up. It has nothing to do with CPU utilisation, other than if it were pegged at 100% that would probably impact responsiveness a bit!

Neither WPF, nor, by extension, Album Art Downloader, have CPU utilisation as a primary concern. If there is a bug or problem that it is doing unnecessary work when it shouldn't be, or stuck in some sort of loop, I will try and fix that, but when there is no non-framework code running (and I have checked that at idle, AAD is running no code), there is nothing to fix.

Alex
arnymars
QUOTE(AlexVallat @ Apr 8 2008, 01:26) *

There is nothing to fix.

Alex, did you look at the screenshoot files on AAD CPU usage at idle I attached above? How do you explain these results? What are these linked to AAD processes continuosly running in the background using 10% + 15% CPU after 20+ Album Covers were found and the search stoped? Do you still say, after looking at the Sysinternals Process Explorer documented pics, AAD uses 0% CPU at idle? How about 25% of P4 continuosly after an extensive Cover search. And foobar2000 was designed for and works well with minor CPU usage with even P2 PCs.

In addition, when I started AAD yesterday while foobar was playing, intence CPU & power usage resulted in my MS USB Wireless Desktop Receiver been kicked off, and no longer recognized by the PC, so I lost both Keyboard and Mouse. It may well be a bug in .Net 3.5, or just insufficient resulting voltage on the USB port due to a weak (fearly standard) Power Supply, but the worst thing is - there seems to be no XP driver found anywere for the Receiver 3.1, so major Registry cleanups & reinstalls are due now, and there is no guarantee, its not damaged permanently, as its recognized now as Unknown Device, no matter what I do.
AlexVallat
QUOTE(arnymars @ Apr 9 2008, 15:18) *

Yes, I looked at your screenshots. No, I don't have any specific explanation of them. All I can tell you is that once all the sources have finished searching, and all the images are downloaded (including full sized, if you have that option turned on), and assuming the mouse is outside the window area, then Album Art Downloader is doing absolutely nothing. That is why there is nothing to fix. It isn't doing anything, no code is running. I can't fix code that isn't there.

If the WPF rendering system, or the garbage collector, any other subsytem of the .net framework or anything even further down is doing other work, that's not going to get fixed by me.

I am aware that foobar2000 uses very little CPU, which is is a very useful goal for an application whose purpose is to be continually running in the background without impacting system performance, and the way they have achieved it is to be admired. Album Art Downloader has different goals and priorities. If a primary goal of an application was minimal CPU and resource usage, I wouldn't write it in WPF, for a start!

I'm sorry to hear about your mouse. If your hardware is so unstable that using a high percentage of CPU is enough to break it, then that is a serious problem. It's only be a matter of time before some poorly written application or javascript hits an infinite loop and you get CPU pegged at 100% until you kill the process! It would seem unlikely that anything short of a major mains power spike would damage a USB wireless receiver - and would probably fry the motherboard on its way, so my guess would be you are all right there. Good luck with getting the driver for it.

Alex
arnymars
QUOTE(AlexVallat @ Apr 9 2008, 09:03) *

my guess would be you are all right there. Good luck with getting the driver for it.

Alex
Just to let you know - the wireless tranceiver is dead, confirmed by MS today. It's under warranty though. Regardless, another guy may not be so lucky. I'd suggest you to investigate thoroughthly with MS help, what exactly is going on at idle with your program instead of a flat denial. There should be a processor usage restriction Option when searching through local ID3 Tags, otherwise the fan circuit may fry and PC end up dead. I just checked - its running up to 25% P4 at idle after a start without search terms.
AlexVallat
QUOTE(arnymars @ Apr 10 2008, 04:44) *
the wireless tranceiver is dead, confirmed by MS today
Shame, unlucky. As you seem to be implying that this is somehow my fault, let me make one thing absolutely clear. Using CPU is not a fault. If your PC cannot tolerate having the CPU running at high loads without dying, *your PC has a fault*.

While it may be of benefit to all if MS were to optimise and reduce the resource usage of WPF, and I hope they have a team working on exactly that, it is nothing to do with me. I am prepared to investigate and resolve faults in my own code, but draw the line at other people's.

If you want to restrict processor usage, try bringing up Task Manager, click the Processes tab, find AlbumArt.exe in the list of processes, right click on it and choose "Set Priority", then "Low". Although I suspect that if nothing else is wanting to use the CPU at the same time, Windows will still assign it a high load anyway - CPU is there to be used, after all.

If it is constantly running at 24% CPU after starting before doing anything other than showing the main window, something has probably gone wrong. I would suggest removing it and the .net framework, then re-installing both, but suspect that you may prefer to stop at step 1.

Alex
mobyduck
QUOTE(AlexVallat @ Apr 9 2008, 23:11) *
If it is constantly running at 24% CPU after starting before doing anything other than showing the main window, something has probably gone wrong.
Not sure if this is a request for more information, anyway...

I also have a similar problem with AAD XUI.

I use it almost exclusively through foo_run (searching one album for each request - all sources selected except Local files and Trivialbeing) and usually after 2 or 3 searches it hogs my CPU at 100% and I have to stop it.

AAD is still responsive (for example, it works if I run another search) but I obviously can't do much with my PC in these conditions.

Note that the high load is there also when AAD isn't (apparently?) searching; I also just tried to open AAD (currently using v0.15.0.0) from Win Explorer and it's using from 30 to 40% of the CPU (as reported by Win Task Manager).

I didn't bother to mention it before because I thought (and I still think) my setup (Celeron 2.4 with 512MB of RAM) isn't exactly the ideal configuration for the .Net framework; nevertheless, maybe something can be done on your side to at least ease, if not solve, the issue.

Regards and thanks for your time.

Alessandro
thuan
I notice this problem, too and it's quite troubling (it might be the fault of WPF) that you said you have checked everything on your side. Here's an image showing AAD XUI 0.16.0.0 when it's just started with no query.
IPB Image
AlexVallat
QUOTE(mobyduck @ Apr 10 2008, 19:02) *
I use it almost exclusively through foo_run (searching one album for each request - all sources selected except Local files and Trivialbeing) and usually after 2 or 3 searches it hogs my CPU at 100% and I have to stop it.

Now that's interesting - are you saying each time you exit Album Art Downloader and start a new instance of it, it uses more CPU? Very curious... Other than the very first time it is run and compiles the scripts, there shouldn't be any difference whether it has been run before or not.

I don't suppose any of you experiencing this problem have a development environment (Visual Studio 2008) available by any chance?

Some things to try:

1) Make sure AAD is not running. Probably best to restart windows, if some strange memory effect between runs is happening, so it is completely clear. Then, run AAD with the "/separateInstance" command arg, and see if it exhibits the same behaviour, and same memory effect between runs.

2) Enable tracing using this config file: AlbumArt.exe.config - put it in your AAD program folder next to AlbumArt.exe. Without doing any searches, leave AAD running for a bit, then close it, and have a look to see if there is anything in the trace log (which will be called tracelog.txt), or send it to me to look at.

I'm still not convinced there will be anything that can be done about this, though. Thuan, could you let me know what CPU and memory you have? It would be useful to know if this is a problem for anyone on a reasonably high spec machine, say Core2 with 1Gb of RAM or upwards.

Alex
mobyduck
QUOTE(AlexVallat @ Apr 10 2008, 12:32) *
are you saying each time you exit Album Art Downloader and start a new instance of it, it uses more CPU?
Not exactly, sorry for not being clear. Actually after the first search I do NOT close AAD, I simply go back to foobar2000 and launch another search (which displays its results in the already running AAD instance).
QUOTE
I don't suppose any of you experiencing this problem have a development environment (Visual Studio 2008) available by any chance?
Nope, sorry, but I'm willing to try if you think it may help (provided you give me some guidance and my PC has enough power for that).
QUOTE
run AAD with the "/separateInstance" command arg, and see if it exhibits the same behaviour, and same memory effect between runs.
1) first run: AAD CPU between 19 and 27
2) run 2nd instance with same command arg without closing the first: both tasks between 27 and 33
3) closed 2nd instance: first instance back to initial values
4) closed first instance and run one more time: no difference
QUOTE
2) Enable tracing using this config file
It only contains the following line:

AlbumArt.exe Information: 0 : Successfully read application version from settings: 0.15.0.0

Even after a reboot I'm unable to reproduce the high load reported in my previous post: now running AAD without doing any search only consumes 20 - 30% of my CPU. blink.gif

One more clue perhaps; if I minimize AAD its CPU usage goes down to 5 - 8%.

HTH.

Alessandro
thuan
Then I guess this computer is suffice, it's a Core 2 4300 1.8GHz, 3GB of RAM, ATI HD2400XT, running Vista SP1 and everything is up to date. I have never noticed this before as I haven't actually taken a look at those monitor software when using AAD and my computer is fast enough to feel nothing. Usability wise I don't really care, but it should indeed be checked IMHO. BTW IIRC, when I reported the freeze problems before, there's no CPU usage with ghost instances.
I don't code on VS so of course I don't have it. I wonder if there's a VS2008 express as of now and if it is sufficient to work on AAD. If so I can install it.

EDIT: atiumdag.dll is ATI directx universal driver (this makes me think it's a redrawn issue). Also this program also load DXVA dll of my graphic card and some other DirectX dlls that normal Windows program doesn't load. Is this because it's a WPF program? I don't know much about .NET desktop application.
AlexVallat
QUOTE(mobyduck @ Apr 10 2008, 23:20) *
AlbumArt.exe Information: 0 : Successfully read application version from settings: 0.15.0.0

Hmm... can you confirm you are running version 0.15, not 0.16 then?

The fact that nothing else appears in the log suggests that AAD itself is not doing anything unexpected, which unfortunately doesn't give me a target to fix.

The /separateInstance test indicates that the problem is not with the cross-process communication pipe, but as I'd misunderstood mobyduck's report this was much less likely anyway.

What is interesting is the minimising thing. That would strongly suggest that the CPU usage is coming from WPF rendering.

Thuan's system specs indicate that this is nothing to do with CPU or memory limitations, but do point to this being a WPF rendering issue.

WPF does use hardware acceleration for rendering itself, falling back on software rendering where necessary, which would explain why it is loading the DirectX dlls thuan mentioned.

I think there is no need to look at it in Visual Studio now, as I'm confident we've narrowed down the problem to the WPF rendering. My idea would have been to run under the debugger, then see if any code was actually running while the CPU usage was up, but I'm pretty sure there won't be, as the CPU usage will just be from the WPF rendering. You are, of course, welcome to try anyway, the source can be downloaded from the "XUI" subfolder of the SVN tree.

Thanks for the information,

Alex
arnymars
QUOTE(AlexVallat @ Apr 11 2008, 03:22) *

The fact that nothing else appears in the log suggests that AAD itself is not doing anything unexpected, which unfortunately doesn't give me a target to fix.

The point however remains:

- most developers take care of their customers by NOT-IMPLEMENTING MS latest software releases until they are relatively bug free with fixes available. Large pull of foobar2000 fans would be just as happy with AAD based on .Net 2.0 or 3.0, if it doesn't cripple their low end PCs;

- When searching local files with AAD File Browser using ID3 Tags, a "Work in Background" OR "Limit CPU Usage" option in AAD Prefs would prevent a low end PC from being fried or hanged on searching large music archives, and feels like a mandatory option to avoid client liability. So far AAD doesn't even have a proper warning in Readme about this gream reality.
AlexVallat
QUOTE(arnymars @ Apr 11 2008, 17:11) *

OK, a few points to answer here.
  1. I have no customers. I have users, who became users of the software as offered, in all its .NET 3.5 WPF glory. This is not a nasty surprise I have sprung on them.

  2. I'm not really that concerned about what other different software people might want, whether that is a low-resource CPU optimised .net 2.0 (or C++, or assembler) album art utility, or a foobar plugin for downloading art, or a even music management and library application.

    What I wanted to write was a C#, WPF, rich, dynamic UI, album art downloading software that would be backwards compatible with the old CoverDownloader scripts and command line. This, I have achieved, and am pleased with the result. Pretty much the primary goal of the whole exercise was to be written in WPF, as I liked the look of it as a new technology, and wanted to try it out on a real project.

  3. CPU is there to be used. Separate to the potential issue of CPU usage when it isn't doing any useful work, when it *is* doing useful, foreground work (i.e., scanning the file system for ID3 tags), using as much CPU as is available to make the task complete as quickly as possible is entirely correct behaviour. It does not hang, and a cancel button is available and responsive at all times during the operation. It is not a 'grim reality', and no warning about using the CPU while performing a task is required.

    A PC that cannot cope with high CPU loads without being 'fried' is faulty, and should be repaired or replaced.

  4. 'client liability'. This, like every other piece of software I've come across, including those you pay for, is provided "as is", entirely free of any warranty of any kind, express or implied, and no liability of any sort is assumed. Check sections 11 and 12 of the GPL(v2) under which this software is licensed.

Alex
arnymars
QUOTE(AlexVallat @ Apr 11 2008, 10:48) *

I'm not really that concerned about what other different software people might want.

It's not about new features users may suggest - and normally developers say "Thank you" for those. It's about safety of using your program. Basically you say - use it on a high end PC if you want, or don't use at all. AAD will control user's PC experience, and not the other way around. Stop AAD, when you feel your PC is about to fry when you hear extreme fan noize.

Would it be more reasonable to allow USER to choose still run AAD but at slower pace by adding such option in Prefs?

There is nothing personal here. As I said, I like your program. All foobar plugins & extras are some kind of creativity & experience gain & Resume improvement exersize. But most developers are smart enough to still care about those who are supposed to use their fruit. Otherwise - the outcome may be just opposite.
thuan
QUOTE(arnymars @ Apr 12 2008, 00:19) *
Stop AAD, when you feel your PC is about to fry when you hear extreme fan noize.

It is your reponsibility to provide your computer with adequate cooling system. You will run into trouble sooner or later anyway if you keep your computer that way.

QUOTE(arnymars @ Apr 12 2008, 00:19) *

Would it be more reasonable to allow USER to choose still run AAD but at slower pace by adding such option in Prefs?

Yeah, he might do it, or he might not. If he won't then stop pestering him. But to be honest, if your computer satisfy point above then is this really important.
AlexVallat
QUOTE(arnymars @ Apr 11 2008, 18:19) *

Oh, I'm happy for feature suggestions, bug reports, and other comments, and am grateful for those received. Many feature suggestions that have been made in this thread have been implemented, and all bug reports have been addressed. Where something is not a feature suggestion, but is instead a suggestion for an entirely different piece of software, I have said so.

For the final time, and I won't bother saying it again: using high CPU load to performing a task quickly is not unsafe, or even undesirable. If your PC has extreme fan noise or overheating problems at high CPU loads, then you need to fix your PC.

No software that I am aware of, except some of those designed to run continuously in the background, offers the user the option to have it perform slowly, and I see no reason that this software should be different.

I never said that you have to use AAD on a high end PC, or not at all. Obviously, if you do, it will run better, though. I'm not sure what the minimum specs for running it are. If anyone wants to list here (or PM me) the lowest specced machine they've run it on and, whether they consider it to be usable on it, I'll collate the results and put a minimum recommended spec to the first post and wiki page. CPU, Memory and Graphics Card will be the biggest factors, so if you are going to send me a spec, please include those details.

Alex
Mondo
i'm running a 2.17ghz amd athlon with 512MB of ram and the program is almost completely unusable. it opens up at about 30MB of memory and escalates from there until it gets into 400+MB 10 seconds later. interface is almost completely unresponsive, usually i click something and sit there hoping my mouse click went through. i know my computer is pretty outdated, but is the program supposed to be using this much memory? if so, i'd say a minimum at 1gb of memory is pretty safe to put on your site.
arnymars
QUOTE(thuan @ Apr 11 2008, 11:52) *

It is your reponsibility to provide your computer with adequate cooling system.

This is NOT a really old Win98 PC, like many foobar2000 users still enjou playing music on. If it were a self-assembled box modded by a clueless teen, I wouldn't even mention this problem.

I am running AAD on a stock non-modified huge production volume Medion PC: P4 2.66 Mgz, NVIDIA Ti4, 512 Mb, Win XP SP2. It's somewhat outdated, but hopefully correctly balance-engineered and still adequate for most home user's tasks except for some HD Video Playback & Editing. It's definitely adequate for Audio Playback, and should be sufficient for related MINOR service tasks like an Album Cover search. Such service programs should be correctly designed to not interfere with the prime task of Music Playback enjoument or become a safety or property loss hazard. In fact, same System Requirements or User adjustment options are expected to harmonize it with foobar2000 and other players.

And to be fully objective, some AAD behaviour may be a result of MS .Net code bugs, but other - resulting from limited developer knowledge of new .Net functions. Communication with MS developer teams - and there are many ways for that, including MS programmers' blogs - can help more in alleviating the issues found in beta testing like this then simply flat denials to improve the program.
AlexVallat
QUOTE(arnymars @ Apr 11 2008, 21:20) *
P4 2.66 Mgz, NVIDIA Ti4, 512 Mb, Win XP SP2
Thanks, arnymars - would you like me to note those down as 'barely usable' or 'unusable'?

QUOTE(Mondo @ Apr 11 2008, 20:29) *
2.17ghz amd athlon with 512MB of ram and the program is almost completely unusable.
Thanks, Mondo - could you tell your graphics card too, if you know it?

QUOTE(Mondo @ Apr 11 2008, 20:29) *
is the program supposed to be using this much memory?
Memory usage is very hard to measure properly for .net apps, as the framework will tend to only release it when something else needs it. As a very rough guide, my figures are that AAD, with all bundled scripts present, should use up to about 40Mb at startup, and be stable at that figure until a search is performed. Each additional open (empty) search or browse window adds about 2Mb.

After searching, it will use an additional 1Mb or so for each displayed thumbnail, plus a small amount for each result not within view. As a thumbnail is scrolled out of view, the memory used by it is reclaimed, so although memory usage will spike while scrolling, it should settle back down once only the a few thumbnails are visible again.

For each full size image downloaded (of which there may be several if the "download full size images automatically", add on around 10-20Mb, depending on the size of the image. This is reclaimed when the search window is closed, or the results discarded by a new search being performed in that window.

With that in mind, your opening figure of 30Mb is entirely within expectation (better than I see here, in fact). 400Mb is higher than I would expect, but I suppose is possible depending on the number of open search windows, number of thumbnails displayed, and number of full size images downloaded.

If you have only 512Mb of memory, I would recommend deselecting all but your favourite one or two sources, and set those to return only 3 or 4 results each, and turning off any automatic downloading of full size images. Your memory usage should then be far more manageable, and if you don't find a good art result for a search with those settings, you can always select additional sources for that particular search, and just click Search again to search those too.

For anyone who finds their system is not up to the task of running the Album Art Downloader XUI ui (or who finds that the UI is too bloated and takes up too much of their resources, if you prefer), then you might like to consider using the command line interface, aad.exe. You won't be able to pick a cover from a list of thumbnail previews, or scan media files for missing artwork, but it will perform the basic service task of finding and fetching a cover without using much CPU or memory. It is best suited to being called as an external tool by another program, like foobar's foo_run.

Alex
KarnEvil9
FWIW, the program uses a fair amount of CPU here (~20%) when open, but idle. However, when minimized, the CPU usage all but disappears.

Memory usage is more than what I would think (~23K), but no big deal on a modern computer.

This is not the type of program to leave running, so I honestly don't see the problem. Just close it when you're done. dry.gif
thuan
@Alex: I'm thinking that is it possible to deactivate refresh on certain UI control in WPF?

@arnymars: Likely you have a Prescott CPU, I have seen ppl try to use it to cook omelet so it's not surprising (a better choice at the time you bought your computer is one with Athlon XP or better Athlon 64 single core which beat this CPU hand down). Both the intel fan and heatsink come with this CPU iteration and a lot of brand name computers do not have sufficient cooling systems for it (CPU automatic throttles down and extreme fan noise). You're better off with an after market heatsink and fan if it's possible to install them (certain brand name computer makes it impossible to do this). This is why I always self-assemble my box as I have a freedom to choose good components that last me long with a stable computer. In any case, if you have enough knowledge on computer parts and building your own computer is possible (not in the case building thousand of computers for your office which is impossible to assemble on your own), a self-assembled box is infinitely better than any brand name box whether the invidual is a teen or not IMHO. As far as serious .NET application out there, most of them you will need to have 1GB or above to run them adequately.

EDIT: arnymars, forgot to tell you this, likely this is the last time we should talk about it. No need to beat a dead horse to dead anymore.
arnymars
QUOTE(thuan @ Apr 11 2008, 19:56) *

this is the last time we should talk about it. No need to beat a dead horse to dead anymore.

My dear, if you believe Forum Rules were violated, you are free to ask the thread moderator to take action. Otherwise, pls don't tell others what to do. Some people may consider just opposite - continuosly alert users about possible damage to their PCs from using this soft. Whether you consider this program adequate or not to fit mass market PCs, and in harmony with foobar2000 in system resources use - you are free and welcome to express your opinion. Beyond that - usually people give advice when they are asked to.
AlexVallat
Possible fix for CPU usage while idle: AlbumArtDownloaderXUI-test_cpu_fix.zip.

Could someone who's experiencing CPU usage while idle please try extracting the contents of the above zip over their AAD program folder and letting me know if it has made any difference? My profiling tools say that it theoretically ought to.

Thanks,

Alex
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.