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
AlexVallat
QUOTE(Melomane @ Nov 2 2007, 21:07) *
i have a bug with "local files" display.

image is sometimes wrong but path is correct.



i use this string with foo run and foobar 0.95 b2

C:\Program Files\AlbumArtDownloader\AlbumArt.exe "%artist%" "%album%" "$replace(%path%,%filename_ext%,folder.jpg)"

Could you check what path the Local Files source is searching? To do this, click the ... button on the bottom right of the Local Files source in the list, and see if the "Specify path to find images" checkbox is checked. If it is, then check what the path in the combo box underneath it says - that will be where it looks for images.

If it is not checked, then it will be looking for images in the default path to save to, but with the placeholders %name%, %extension%, %source% and %size% replaced by wildcards (*).

Alex
Melomane
no, isn't checked

if i check it, folder displayed isn't the "path to save art "

i have add this in foo run :
/localImagesPath "$replace(%path%,%filename_ext%,folder.jpg)"

and now work alltimes

also i have problems with somes albums where artist and album are the same: edit box for album is empty.

no problems if i use this:
C:\Program Files\AlbumArtDownloader\AlbumArt.exe
/ar "%artist%"
/al "%album%"
/p "$replace(%path%,%filename_ext%,folder.jpg)"
/localImagesPath "$replace(%path%,%filename_ext%,folder.jpg)"

thank you for your answer Alex
Spirit_of_the_ocean
Can somebody tell me if the Cover-Paradies script works correct?
If I just use it then I get no results although there are covers on cover-paradise.to.

If someone could make this script work again I would be grateful.

Okay I found the fixed version thanks.
I have had some crashes. But as far as I can tell I works like a charm.
shlomomofo
this program looks pretty sweet, but i'm having trouble getting it work right. if search for some artist, it looks like only three of the scripts are actually working (artists.trivialbeing, coverisland, yes24). these are the only ones where the progress bars show any action. i get very few results, even for very popular releases. also, it seems that yes24 is the only script that actually results at all.

any hints? i'm using vista, and the newest albumartdownloader version....


edit: oops, i'm an idiot. all the scripts work, but only if i enter artist AND album. sorry.

edit 2: after spending a bit of time with this software, i must say that it is incredible. powerful and usable! the the only thing i find myself wishing for is a quicker way to save separate front, back, and disc images. my idea is to have maybe three text fields with radio button selectors. you can put a different file name in each text box (e.g. "back.jpg"). select that radio button, and then hitting the little save icons saves the image as "back.jpg" in whatever folder is already selected. then click the "folder.jpg" radio button... now hit save on a front cover to save a "folder.jpg" to the same folder. if you were to put this in the "options..." section, i would leave options open by default... that way you don't have to open options every album if you are going through a long queue. anyway, just an idea to make things easier when grapping multiple images for each album, especially if you are wading through a long queue. thanks again!!!
fuffi
hi,
i like the program very much. it does, what it should :-)
but in some cases, i'm not completly satisfied, i whish it could be a little improved.
so here's a wish, right bevore xmans *<:-)

the "save as" is a wonderful feature, but a lot of times, i'd like to save more than only one file from the list of found pictures, because there are "front" "back" "inlay" "artist picture" etc. available.
typing all the names for all the different files to be saved it is very unhandy. (and useles for me, because i really dont care about the filenames)

so i'd wished, i had a button "save with original filename" which opens the "save as"-dialogue and has the original filename from the origin website already shown, so that i only have to press enter (or change a little bit, instead of personally whiches oder duplicates)

is this possible?

AlexVallat
QUOTE(shlomomofo @ Nov 9 2007, 20:14) *
edit 2: after spending a bit of time with this software, i must say that it is incredible. powerful and usable! the the only thing i find myself wishing for is a quicker way to save separate front, back, and disc images.
Thanks, glad you liked it! For your suggestion, my idea for solving this problem would be a Preset system. I described it in the old thread, but here it is again:

Presets
1. Addition of a new placeholder for the Save Images path, available from the dropper menu: %preset%
2. Addition of a dropper arrows just to the right of the Save buttons, when clicked pops up a menu with: "Save As...", <list of presets>, "More...". List of presets is initially blank, but "More" pops up:
3. "Save with Preset" dialog. Dialog with two column list of Name and Value preset entries, with Add and Delete buttons, and Save and Close buttons. Adding a Name/Value preset entry shows it as it's name on the list of presets in the menu, to avoid having to go through this dialog again. When an entry is selected, the Save button is enabled. Clicking that has the same effect of choosing the entry from the menu, which is to save, but with:
4. %preset% replaced in the path by the value of the preset, with any placeholders in that entry value also processed.

I may even get round to actually writing it sometime, but it probably won't be any time soon, sorry.

QUOTE(fuffi @ Nov 10 2007, 12:34) *

so i'd wished, i had a button "save with original filename" which opens the "save as"-dialogue and has the original filename from the origin website already shown, so that i only have to press enter (or change a little bit, instead of personally whiches oder duplicates)
This would probably also be addressed by the presets idea presented above, but in fact what you are asking for, to use the name of the image in the filename to save as, is already possible.

Open the Options area, then in the Save Images To box, use the placeholder %name% somewhere in the path. For example, C:\AlbumArt\%artist%\%album%\%name%.%extension%. The placeholder will be replaced by the name as displayed in the results list.

Alex
fuffi
alex, thanks for the fast reply.

i've read the "presets"-thing and it sounds quite cool.

i use your program from within foobar run_services (did not mentioned it above, sorry)
with
"x:\foobar2000\components\AlbumArtDownloaderXUI\AlbumArt.exe" "%artist%" "%album%" "$replace(%_path%,%_filename_ext%,)%name%.%extension%"

then, the filemname is "?.?" which is understandable for me, but not solving my problem :-)

i fooled around with single and double quotes ' "
but did not succeed.

i'm not writing all the images into a single directory, but in the directory the music is in. so the directory changes with every album or title.



Purple Monkey
You need to escape the %s otherwise foobar will try to parse them, use %%name%% and %%extension%%.
fuffi
QUOTE(Purple Monkey @ Nov 10 2007, 14:08) *

You need to escape the %s otherwise foobar will try to parse them, use %%name%% and %%extension%%.

thank you very much!
now i only have to change the filenames if they have special characters like in this filename

X:\foo\bar\CAMP, Bob \x26amp; Bob GIBSON --\x26gt; V.A.: ....jpg

anyway,
i was not sure, if for this case there is a help, so i clicked the help-menu in album-art-downloader XUI and was redirected to the souceforge website.
after that (i had to say YES to zonealarm for letting it open my firefox browser)
album-art-downloader XUI crashed.

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:\Programme\foobar2000\components\AlbumArtDownloaderXUI\errorlog.txt

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

System.ComponentModel.Win32Exception: Das System kann die angegebene Datei nicht finden
bei System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
bei System.Diagnostics.Process.Start()
bei System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
bei System.Diagnostics.Process.Start(String fileName)
bei AlbumArtDownloader.Menu.GoToPageExec(Object sender, ExecutedRoutedEventArgs e)
bei System.Windows.Input.CommandBinding.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
bei System.Windows.Input.CommandManager.ExecuteCommandBinding(Object sender, ExecutedRoutedEventArgs e, CommandBinding commandBinding)
bei System.Windows.Input.CommandManager.FindCommandBinding(CommandBindingCollection commandBindings, Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
bei System.Windows.Input.CommandManager.FindCommandBinding(Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
bei System.Windows.Input.CommandManager.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
bei System.Windows.UIElement.OnExecutedThunk(Object sender, ExecutedRoutedEventArgs e)
bei System.Windows.Input.ExecutedRoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object target)
bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
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(RoutedEventArgs args)
bei System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
bei System.Windows.Input.RoutedCommand.ExecuteImpl(Object parameter, IInputElement target, Boolean userInitiated)
bei System.Windows.Input.RoutedCommand.ExecuteCore(Object parameter, IInputElement target, Boolean userInitiated)
bei System.Windows.Input.CommandManager.TransferEvent(IInputElement newSource, ExecutedRoutedEventArgs e)
bei System.Windows.Input.CommandManager.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
bei System.Windows.UIElement.OnExecutedThunk(Object sender, ExecutedRoutedEventArgs e)
bei System.Windows.Input.ExecutedRoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object target)
bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
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(RoutedEventArgs args)
bei System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
bei System.Windows.Input.RoutedCommand.ExecuteImpl(Object parameter, IInputElement target, Boolean userInitiated)
bei System.Windows.Input.RoutedCommand.ExecuteCore(Object parameter, IInputElement target, Boolean userInitiated)
bei MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
bei System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
bei System.Windows.Threading.DispatcherOperation.InvokeImpl()
bei System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
bei System.Threading.ExecutionContext.runTryCode(Object userData)
bei System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Windows.Threading.DispatcherOperation.Invoke()
bei System.Windows.Threading.Dispatcher.ProcessQueue()
bei System.Windows.Threading.Dispatcher.WndProcHook(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, Boolean isSingleParameter)
bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
bei System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
bei System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
bei MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
bei MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
bei System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
bei System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
bei System.Windows.Threading.Dispatcher.Run()
bei System.Windows.Application.RunInternal(Window window)
bei System.Windows.Application.Run(Window window)
bei System.Windows.Application.Run()
bei AlbumArtDownloader.App.AlbumArtDownloader.IPriorInstance.Run()
bei AlbumArtDownloader.InstanceMutex.RunAppAsServiceHost(IPriorInstance instance, String channelUri)
bei AlbumArtDownloader.App.Main(String[] args)
AlexVallat
QUOTE(fuffi @ Nov 10 2007, 16:57) *

i was not sure, if for this case there is a help, so i clicked the help-menu in album-art-downloader XUI and was redirected to the souceforge website.
after that (i had to say YES to zonealarm for letting it open my firefox browser)
album-art-downloader XUI crashed.
Yeah, looks like it wasn't happy about being intercepted by ZoneAlarm there. Thanks for reporting it, it will be fixed in the next version.

As I'm sure you've probably realised by now, there isn't really a help either, sorry! There's a Command Line Reference, and a Wiki page, but not much else.

Alex
shlomomofo
QUOTE(AlexVallat @ Nov 10 2007, 07:05) *

I may even get round to actually writing it sometime, but it probably won't be any time soon, sorry.

word. i like your idea better than mine. hopefully it makes it into the next version, whenever that may be.
Killmaster
Could someone step me through on how to use this program?

I open it up, and none of the sources show. I finally figure out that I need to run it under administrator (I'm using Vista), so now it works. But how do I get it to scan my files? It looks like you can save it to folders according to artist/album; is there a way to add date to the mix? My entire collection is sorted %album artist%/['('%date%')' ]%album%/

The File browser gives me a blank window with "file browser goes here..." and the foobar browser gives me the same. I installed the COM automation plugin for foobar like the OP said. I can't find any documentation and I'm confused huh.gif

edit: I just realized that I didn't have the latest version. It still doesn't work with Foobar though, even though the COM server is installed. Is there anything I have to do to get it working? Oh and the file browser crashes the program..
daniel/L
After clicking the "Get Artwork" button AlbumArt (started using a "AlbumArt.exe /foobarBrowser" shortcut) immediately crashes, no matter how much songs have been selected.

This is the resulting 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: C:\Programme\Foobar2000AlbumArtDownloader\errorlog.txt

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

System.Windows.Markup.XamlParseException: Stack empty. Error at object 'System.Windows.Controls.ControlTemplate', Line 40 Position 9. ---> System.InvalidOperationException: Stack empty.
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Collections.Generic.Stack`1.Pop()
at System.Windows.Markup.OptimizedTemplateContent.CheckElementStartForOptimization(BamlRecord bamlRecord)
at System.Windows.Markup.OptimizedTemplateContent.ReadRecord(BamlRecord bamlRecord)
at System.Windows.Markup.OptimizedTemplateContent.AddContentRecord(BamlRecord bamlRecord)
at System.Windows.Markup.TemplateBamlRecordReader.AddContentRecord(BamlRecord bamlRecord)
at System.Windows.Markup.TemplateBamlRecordReader.ReadElementEndRecord(Boolean fromNestedBamlRecordReader)
at System.Windows.Markup.TemplateBamlRecordReader.ReadRecord(BamlRecord bamlRecord)
at System.Windows.Markup.BamlRecordReader.Read(Boolean singleRecord)
at System.Windows.Markup.TemplateTreeBuilderBamlTranslator.ParseFragment()
at System.Windows.Markup.TreeBuilder.Parse()
at System.Windows.Markup.XamlTemplateSerializer.ConvertBamlToObject(BamlRecordReader reader, BamlRecord bamlRecord, ParserContext context)
at System.Windows.Markup.BamlRecordReader.ReadElementStartRecord(BamlElementStartRecord bamlElementRecord)
at System.Windows.Markup.StyleBamlRecordReader.ReadElementStartRecord(BamlElementStartRecord bamlElementRecord)
at System.Windows.Markup.BamlRecordReader.ReadRecord(BamlRecord bamlRecord)
--- End of inner exception stack trace ---
at System.Windows.Markup.XamlParseException.ThrowException(String message, Exception innerException, Int32 lineNumber, Int32 linePosition, Uri baseUri, XamlObjectIds currentXamlObjectIds, XamlObjectIds contextXamlObjectIds, Type objectType)
at System.Windows.Markup.XamlParseException.ThrowException(ParserContext parserContext, Int32 lineNumber, Int32 linePosition, String message, Exception innerException)
at System.Windows.Markup.BamlRecordReader.ReadRecord(BamlRecord bamlRecord)
at System.Windows.Markup.StyleBamlRecordReader.ReadRecord(BamlRecord bamlRecord)
at System.Windows.Markup.BamlRecordReader.Read(Boolean singleRecord)
at System.Windows.Markup.StyleTreeBuilderBamlTranslator.ParseFragment()
at System.Windows.Markup.TreeBuilder.Parse()
at System.Windows.Markup.XamlStyleSerializer.ConvertBamlToObject(BamlRecordReader reader, BamlRecord bamlRecord, ParserContext context)
at System.Windows.Markup.BamlRecordReader.ReadElementStartRecord(BamlElementStartRecord bamlElementRecord)
at System.Windows.Markup.BamlRecordReader.ReadRecord(BamlRecord bamlRecord)
at System.Windows.Markup.BamlRecordReader.ReadElement(Int64 startPosition, XamlObjectIds contextXamlObjectIds, Object dictionaryKey)
at System.Windows.ResourceDictionary.CreateObject(Int32 valuePosition, Object key)
at System.Windows.ResourceDictionary.RealizeDeferContent(Object key, Object& value, Boolean& canCache)
at System.Windows.ResourceDictionary.GetValueWithoutLock(Object key, Boolean& canCache)
at System.Windows.ResourceDictionary.GetValue(Object key, Boolean& canCache)
at System.Windows.ResourceDictionary.GetValueWithoutLock(Object key, Boolean& canCache)
at System.Windows.ResourceDictionary.GetValue(Object key, Boolean& canCache)
at System.Windows.ResourceDictionary.FetchResource(Object resourceKey, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference, Boolean& canCache)
at System.Windows.SystemResources.LookupResourceInDictionary(ResourceDictionary dictionary, Object key, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference, Boolean& canCache)
at System.Windows.SystemResources.FindDictionaryResource(Object key, Type typeKey, ResourceKey resourceKey, Boolean isTraceEnabled, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference, Boolean& canCache)
at System.Windows.SystemResources.FindResourceInternal(Object key, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference)
at System.Windows.StyleHelper.GetThemeStyle(FrameworkElement fe, FrameworkContentElement fce)
at System.Windows.FrameworkElement.UpdateThemeStyleProperty()
at System.Windows.FrameworkElement.OnInitialized(EventArgs e)
at System.Windows.FrameworkElement.TryFireInitialized()
at System.Windows.FrameworkElement.EndInit()
at System.Windows.Markup.BamlRecordReader.ElementEndInit(Object& element)
at System.Windows.Markup.BamlRecordReader.ReadElementEndRecord(Boolean fromNestedBamlRecordReader)
at System.Windows.Markup.BamlRecordReader.ReadRecord(BamlRecord bamlRecord)
at System.Windows.Markup.BamlRecordReader.Read(Boolean singleRecord)
at System.Windows.Markup.TreeBuilderBamlTranslator.ParseFragment()
at System.Windows.Markup.TreeBuilder.Parse()
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at AlbumArtDownloader.ArtSearchWindow.InitializeComponent()
at AlbumArtDownloader.ArtSearchWindow..ctor()
at AlbumArtDownloader.Common.NewSearchWindow(IAppWindow existingWindow, Boolean forceShown)
at AlbumArtDownloader.BrowserResults.GetArtworkExec(Object sender, ExecutedRoutedEventArgs e)
at System.Windows.Input.CommandBinding.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
at System.Windows.Input.CommandManager.ExecuteCommandBinding(Object sender, ExecutedRoutedEventArgs e, CommandBinding commandBinding)
at System.Windows.Input.CommandManager.FindCommandBinding(CommandBindingCollection commandBindings, Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
at System.Windows.Input.CommandManager.FindCommandBinding(Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
at System.Windows.Input.CommandManager.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
at System.Windows.UIElement.OnExecutedThunk(Object sender, ExecutedRoutedEventArgs e)
at System.Windows.Input.ExecutedRoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object target)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
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(RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
at System.Windows.Input.RoutedCommand.ExecuteImpl(Object parameter, IInputElement target, Boolean userInitiated)
at System.Windows.Input.RoutedCommand.ExecuteCore(Object parameter, IInputElement target, Boolean userInitiated)
at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.ReRaiseEventAs(RoutedEventArgs args, RoutedEvent newEvent)
at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
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(RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(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)



And here's the tracelog:
CODE

AlbumArt.exe Information: 0 : Successfully read application version from settings: 0.10.1.0
Path not found for file search: X:\Musik\!neues\20070415\Evocation--Tales_from_the_Tomb-Promo-2007-UBE\Folder.jpg
Path not found for file search: X:\Musik\Excrementory Grindfuckers\Bitte nicht vor den Gästen\Folder.jpg
Path not found for file search: X:\Musik\!neues\20070305\Emil_Bulls-The_Life_Acoustic-2007-SnS\Folder.jpg
Path not found for file search: X:\Musik\!neues\20061001\Disbelief - 2004 - Spreading The Rage\Folder.jpg
Path not found for file search: X:\Musik\!neues\20061001\Excrementory Grindfuckers - [2002] - Gesammelte Werke\Folder.jpg
Path not found for file search: X:\Musik\!neues\20061001\My_Dying_Bride_-_A_Line_Of_Deathless_Kings-Promo-2006-CMG\Folder.jpg
Path not found for file search: X:\Musik\!neues\20061001\The Accidents\Poison Chalice\Folder.jpg
Path not found for file search: X:\Musik\!neues\20061001\Raised Fist\Sound Of The Republic\Folder.jpg
Path not found for file search: X:\Musik\!neues\20061008\The Turbo A.C.'s - Fuel for Life\Fuel for life\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\Logistics-Now_More_than_Ever-NHS112LP-Vinyl-2006-uC\Logistics-Now_More_than_Ever-NHS112LP-Vinyl-2006-uC\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\Ltj.Bukem.Presents.Some.Blue.Notes.Of.Drum.N.Bass-2004-0mni\LTJ Bukem Presents Some Blue Notes of Drum N Bass-2004-0MNi\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS.www!OSIOLEK!com\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS.www!OSIOLEK!com\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS.www!OSIOLEK!com\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS.www!OSIOLEK!com\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS.www!OSIOLEK!com\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS.www!OSIOLEK!com\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS.www!OSIOLEK!com\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS.www!OSIOLEK!com\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS.www!OSIOLEK!com\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS.www!OSIOLEK!com\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS.www!OSIOLEK!com\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS.www!OSIOLEK!com\VA_-_Fabio_Presents_Liquid_Funk_Volume_Two-Retail_CD-2005-BOSS\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\_einzelne\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\Folder.jpg
Path not found for file search: X:\Musik\!neues\20061019\Nekromantix\Curse Of The Coffin\Folder.jpg
Path not found for file search: X:\Musik\!neues\20061129\Jazzkantine\Heiss & Fettig\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\Folder.jpg
Path not found for file search: X:\Musik\!neues\!Drum & Bass\Folder.jpg
Path not found for file search: X:\Musik\!neues\20060911\Jamie.Cullum.-.Catching.Tales.192kbs\Jamie Cullum\Folder.jpg
Path not found for file search: X:\Musik\!neues\20060911\Kataklysm--In_the_Arms_of_Devastation-Promo-2006-UBE\Folder.jpg
Path not found for file search: X:\Musik\!neues\20060911\Miles Davis - Cookin With The Miles Davis Quintet\(JAZZ)Miles Davis - Cookin' With The Miles Davis Quintet - 320kbps - Lame-3.93.1\Folder.jpg
Path not found for file search: X:\Musik\!neues\20060911\Terrorizer-Darker_Days_Ahead-(Advance)-2006-RNS\Folder.jpg
Path not found for file search: X:\Incoming\Das Silmarillion\Folder.jpg
Path not found for file search: X:\Musik\!neues\20061001\Billy_Talent-Billy_Talent_II-2006-RST\Billy_Talent-Billy_Talent_II-2006-RST\Folder.jpg
Path not found for file search: X:\Musik\!neues\20070218\Keen Of The Crow\Hyborea\Folder.jpg
Path not found for file search: X:\Musik\!neues\20070509\LAK_-_Verdammtes_Leben-DE-2007-YSP\LAK_-_Verdammtes_Leben-DE-2007-YSP\Folder.jpg
Path not found for file search: X:\Musik\!neues\20070214\Leng Tch'e\Marasmus\Folder.jpg
Path not found for file search: X:\Musik\!neues\20070921\Neaera-Armamentarium-2007\Neaera-Armamentarium-2007\armium07\Folder.jpg
Path not found for file search: X:\Musik\!neues\20070921\Age__2007_\pro-pain_-_age_of_tyranny_the_tenth_crusade_2007\Folder.jpg
Path not found for file search: X:\Musik\!neues\20070921\The Pyske Project - Apnea\Folder.jpg
Path not found for file search: X:\Musik\!neues\20070921\Witchcraft.-.The.Alchemist-2007-Cmg\Witchcraft_-_The_Alchemist-Promo-2007-CMG\Folder.jpg
AlbumArt.exe Information: 0 : Successfully read application version from settings: 0.10.1.0

How can I solve this problem? unsure.gif

Thanks in advance!
AlexVallat
QUOTE(daniel/L @ Nov 26 2007, 15:35) *

After clicking the "Get Artwork" button AlbumArt (started using a "AlbumArt.exe /foobarBrowser" shortcut) immediately crashes, no matter how much songs have been selected.

Thanks for reporting this error. Could you tell me, does it work if you don't start from the foobar browser, or does it crash anyway? Does it crash if, instead of clicking the Get Artwork button, you click the File menu and click New, Search Window? Reading the stack trace, another interesting thing to know would be what theme you are using.

Alex
KarnEvil9
First, awesome program!

Second, could you please highlight the Album name when tabbing from Artist? That way you can just start typing in the album name without erasing the previous one first. I'm pretty sure it used to work like that (back when it was much less developed overall).

Thanks! smile.gif
daniel/L
QUOTE(AlexVallat @ Nov 26 2007, 20:45) *

Thanks for reporting this error. Could you tell me, does it work if you don't start from the foobar browser, or does it crash anyway? Does it crash if, instead of clicking the Get Artwork button, you click the File menu and click New, Search Window? Reading the stack trace, another interesting thing to know would be what theme you are using.



Thanks for your reply!

When starting in /FileBrowser mode I'm getting the same result. Opening a new search windows also crashes AlbumArt immediately.
I'm using a completely "naked" Foobar 0.9.5 beta 5 (forgot to mention that) with no themes or stuff.
AlexVallat
QUOTE(daniel/L @ Nov 27 2007, 13:02) *
When starting in /FileBrowser mode I'm getting the same result. Opening a new search windows also crashes AlbumArt immediately.
I'm using a completely "naked" Foobar 0.9.5 beta 5 (forgot to mention that) with no themes or stuff.

Sorry, I should have been more specific - I meant Windows theme, not any sort of Foobar customisation (which should not affect it at all). For example, Vista Aero, Vista Windows Classic, XP Luna, XP Royale, etc...
daniel/L
QUOTE(AlexVallat @ Nov 27 2007, 15:10) *

Sorry, I should have been more specific - I meant Windows theme, not any sort of Foobar customisation (which should not affect it at all). For example, Vista Aero, Vista Windows Classic, XP Luna, XP Royale, etc...

Opps. I'm running WinXP SP2 with the default XP theme in silver. Nothing special.
Snowsfall
two quick requests, a last.fm artist photo .boo to replace the broken trivialbeing one and maybe one that searches flickr for artist photos. Not to sure how doable the flickr one would be but i might as well throw it out there.
thanks for the great program biggrin.gif
Ross1
Sadly, this program seems to crash all the time for me.

When I was writing the default directory to save to while it was searching (twice)
When I clicked 'stop all'
When I clicked 'search'

AlexVallat
QUOTE(daniel/L @ Nov 28 2007, 12:22) *
Opps. I'm running WinXP SP2 with the default XP theme in silver. Nothing special.

I'm out of ideas then, sorry. I don't know why this is happening, and therefore can't fix it.

QUOTE(Ross1 @ Dec 9 2007, 20:02) *
Sadly, this program seems to crash all the time for me.

When I was writing the default directory to save to while it was searching (twice)
When I clicked 'stop all'
When I clicked 'search'

Can you send me the errorlog.txt file created when it crashes? It might let me know what the problem is, usually worth a try anyway.

Oh, and Snowsfall, thanks for the suggestions about the artist searching scripts. I don't think I'll have a chance to try writing one any time soon, and artist image searching isn't really the focus of this app anyway! Perhaps someone else might want to have a go at scripts for these?

Alex
cartman(2vd)
QUOTE(AlexVallat @ Dec 9 2007, 20:17) *

artist image searching isn't really the focus of this app anyway



well well its not but AADXUI is marvelously successfull in it with correct script smile.gif even google script can return some artist pictures but specialized sites are always better. just face the truth that this pgm doesnt have one purpose and that its idea is just usefull for many others wink.gif
Dave_K
Is there any way to get this to search a local directory?

I use REACT with EAC and its ability to embed album art when creating a FLAC image is very useful. Unfortunately there are a fair few album covers that can't be found online by the included search scripts. For those I'd like to be able to download the images manually, yet still be able to select them in the Art Downloader during the REACT ripping process.
AlexVallat
QUOTE(Dave_K @ Dec 11 2007, 00:29) *
Is there any way to get this to search a local directory?

Yes. The "Local Files" source does this. By default it will search in the "save to" folder, but you can change this using the /localImagesPath command line parameter, or by expanding the Local Files source in the UI (click ... in the bottom right of it) and entering the path to search there.

The following variables can be used in paths:
CODE
%artist%     Artist searched for
%album%      Album searched for
*            Wildcard, matches any characters
\**\         Subfolder search. Any folders will match at this point in the path. For example
             "\Art\Unsorted\**\*.jpg" will match:
              \Art\Unsorted\image.jpg
              \Art\Unsorted\misc\image.jpg
              \Art\Unsorted\misc\old\image.jpg
            
             "\Art\Unsorted\*\*.jpg" will match only:
              \Art\Unsorted\misc\image.jpg
dd_wizard
1. I'm using AAD in an AutoIt script on a Windows Vista system, and I've found an annoying bug. It is easily replicated from the command line. I am using the default of three searches active at a time. Do the following from a command window:

cd "c:\program files\albumartdownloader"
albumart "eric clapton" blues
albumart "Joe Satriani" "Live In San Francisco"
albumart "eric clapton" blues
albumart "Joe Satriani" "Live In San Francisco"

The fourth invocation of AAD causes the Queue Manager window to open. If I double click the search, everything is fine. ( Artist and album can be anything, I just happen to like those two CDs. biggrin.gif )

However, if I close the Queue Manager with the search pending, I can't start a new AAD search from the command line or from my script. When I close one of the active AAD search windows, a new one pops up! In fact, the number of windows that pop up equals the number of searches I tried to start after I closed the Queue Manager with the pending search. Plus the one that was pending.

It looks like the Queue Manager isn't closing properly if a search is queued when the window is closed. It's still queueing searches, but it doesn't show up on the task bar and it doesn't open a Queue Manager window. Is this an easy fix?

2. I like how you run all the windows from one process, but it's a trick to find the window handle if AAD is running before my script starts. It appears that the PID for the AAD window I start in my script, AND the PID for the original AAD process both change when the original AAD process inherits the window my script started. This breaks AutoIt's RunWait() function, but it was fun finding a way to know which window handle belongs to my script. Oh, and don't expect the command interpreter to hang around after the PID changes, either. LOL Have I analyzed the PID behavior correctly?

P.S. Queueing is the unique word in the English language with 5 or more consecutive vowels. I got that from one of my CS professors. tongue.gif

Thanks,
dd_wizard
AlexVallat
1. OK, odd as it may be in the circumstances you are describing, this is in fact the correct behaviour of the Queue system. It is there to prevent more than a specified number of simultaneous searches, so after that limit is reached, further searches are held in the queue. They can either be manually triggered by double clicking on them (as you have found), or will automatically run once an existing search is closed.

So, what's happening here is that your fourth search goes on the queue. If you close the Queue Manager window, that doesn't affect the queue at all, just stops showing it to you. (You can see it again by selecting "Queue Manager" from the "Window" menu.) Subsequent searches are also queued up, even though you can't see them if the manager window is closed. As you close existing windows, searches from the queue are popped off the queue and executed.

The important thing is that the Queue Manager window is just the thing that lets see and manipulate the queue, it is not the queue itself.

To avoid queueing behaviour altogether, just set the Simultaneous Windows number in the Queue Manager to a high number (10000 or something).

2. There is no specific PID changing behaviour or anything (I'm not even sure such a thing is possible!). The single-instance behaviour is that if AAD is already running, then any new instance of it started will send its command line parameters to the existing instance (through the named pipe net.pipe://localhost/AlbumArtDownloader/SingleInstance, if that's of any interest), then immediately exit. I can't see any way the PID of the original process would change as a result of this.

There is currently no option to avoid the single instance behaviour and run multiple instances of AAD, sorry. Without this, I can't think of any good way to wait for a specific search to be complete either, as no process will end, only a window will probably close (unless re-used for another search), and it is not programatically obvious which window, either.

Alex
Zoominee
Hi! I just discovered this program, I have installed it (and NET 3.0) because it looks very promising! But on my computer (Windows XP) it does not start. The error message is "This program must be closed, do you want to send the error report to Microsoft?"

According to that window, the error report contains the following information - maybe this is useful to the program developers:

QUOTE
EventType : clr20r3 P1 : albumart.exe P2 : 0.10.1.0 P3 : 47090190
P4 : mscorlib P5 : 2.0.0.0 P6 : 471ebc5b P7 : 1c4c P8 : 0
P9 : system.typeloadexception


The error occurs when I start the program, before anything else happens. I cannot see any program windows. I have tried both installing the program as an administrator and installing it as a normal user, the error message is the same both times.

If there is something else I can do to help identify this error, let me know. With best wishes for 2008!
AlexVallat
QUOTE(Zoominee @ Jan 4 2008, 15:27) *
Hi! I just discovered this program, I have installed it (and NET 3.0) because it looks very promising! But on my computer (Windows XP) it does not start...

Hi, thanks for reporting the error. Unfortunately the information that the error report window contained doesn't say much to me. There is a custom error reporting feature in AAD that should write out any errors to errorlog.txt (in the AAD program folder) then display that file in notepad, should a crash occur, but it looks like the program is failing to even load at all, so this isn't happening.

The only thing I can suggest is installing the latest version of the .net framework (3.5) and hoping for the best.

Alex
Zoominee
Hi AlexVallat, ok, I'll try this! For now I'm using the small tool from this thread to retrieve some album art. http://www.hydrogenaudio.org/forums/index....st&p=529261
dd_wizard
QUOTE(AlexVallat @ Jan 4 2008, 02:34) *

1. OK, odd as it may be in the circumstances you are describing, this is in fact the correct behaviour of the Queue system....

That makes perfect sense now that I know I can reopen the queue manager window.
QUOTE(AlexVallat @ Jan 4 2008, 02:34) *

2. There is no specific PID changing behaviour or anything (I'm not even sure such a thing is possible!)...

There is currently no option to avoid the single instance behaviour and run multiple instances of AAD, sorry. Without this, I can't think of any good way to wait for a specific search to be complete either, as no process will end, only a window will probably close (unless re-used for another search), and it is not programatically obvious which window, either.

I like the single instance a lot! It minimizes AAD's system resource usage. I did a lot of testing, and at least on Vista, the PID for the AAD process started by my script changes when the original process takes it over. The change for the script spawned process makes sense, because that process dies once the single instance takes over. I am about 50% confident the PID for the original process changed, too. This change seems odd, so I may have been sleepy while I was testing.

The easiest way I can think of to identify a script invoked window would be to add a command line argument to AAD along the lines of:

/WinTitle "Whatever you like here"

The script is a back end for EAC, so I'd probably use "Album Art Downloader - EACcompressor - %artist% - %album%" for the window title. Then my script could find the correct window easily.

EDIT: For now, I'm using a temporary file in the destination directory to control AAD's behavior in my script. So the /WinTitle option would be nice, but not urgent.

Thanks,
dd_wizard
Zoominee
QUOTE(AlexVallat @ Jan 4 2008, 17:06) *

QUOTE(Zoominee @ Jan 4 2008, 15:27) *
Hi! I just discovered this program, I have installed it (and NET 3.0) because it looks very promising! But on my computer (Windows XP) it does not start...

Hi, thanks for reporting the error. Unfortunately the information that the error report window contained doesn't say much to me.The only thing I can suggest is installing the latest version of the .net framework (3.5) and hoping for the best.

Follow-up: The Microsoft installer for 3.5 failed with an unspecified error message, so the blame must have been with the .NET setup in my computer. I tried to "repair" it with the .NET 3.0 installer, which failed also. The only option I had was to erase the whole .NET stuff with this tool: http://blogs.msdn.com/astebner/archive/200...04/6659905.aspx . Then I reinstalled .NET version 3.5.
Now the Album Art Downloader works! Looking forward to trying it out.
AlexVallat
QUOTE(Zoominee @ Jan 8 2008, 18:06) *
... I reinstalled .NET version 3.5.
Now the Album Art Downloader works! Looking forward to trying it out.
Great! Thanks for letting me know.

dd_wizard: I'll consider a /WinTitle parameter but it feels a bit ugly. I might try thinking up something more elegant, perhaps a /wait parameter instead...

Alex
poisonborz
Hola,

I've been using the new album art downloader for a few weeks now (another reason to love foobar: great tools on its forum! tongue.gif) . Let me say that this is the first such program I've been settled, and which worked as it promised... also, you're a quite responsive developer, which is sadly rare, especially in foobar territory... I've encountered several problems along the way, so here's the blacklist (using version 0.10.1.0):


- There's a huge memory leak bug - sometimes (quite randomly, in fact) after dropping files in the File browser, AlbumArt instantly starts to consume several hundred megs of ram (eventually, all) *instantly*. I wish I could give a log file, but when I include the config file to create that, the program doesn't start. log for that attached.
- File browser sometimes doesn't recognize dropped folders/files, even if it has tags.
- Tag guessing could be better, and should be mixed with tag info. An album, which has several artist included (eg. mix cd, features etc) shouldn't show up as a different album when searching for art. A simple check whether the files originate from the same folder should help.
- I think the GUI is a bit confusing at first...couldn't you somehow integrate it more into one window? It's a bit awkward to have at least 3-4 windows open while searching for an art... especially since the default open search window count is set to 3... At least file browser/album search should be integrated into one (along with a file browser, perhaps), so user could make a quick browsing/downloading session without the need to drag&drop, which slows down this process considerably.
- In search window, user should be able to turn the sorting off (or include an option to show new results on the bottom). It happened to me several times that the first few matches were allright, wanted to click on the save button, but in that milisecond a new result appeared, and so I've clicked on the wrong pic...
- On the File Browser, there should be a button to clear the contents of the window. It's a bit of a pain to always open new window/close the previous each time the previous one gets too crowded.
AlexVallat
QUOTE(poisonborz @ Jan 13 2008, 19:13) *

Hello, thank you for your kind comments. Let me reply to your points in order:

Memory Leak Oh dear, that's bad news. I've spent a lot of time trying to track down leaks, and thought I'd got all of them. Unfortunately, to track a leak, I need a loop that returns to the same point, but with less memory. Consuming lots of memory after lots of files have been added to the file browser, while undesirable, doesn't necessarily mean it is leaked, it might just be being used to process those files. It would only be leaked if the memory was not recovered once the files were removed from the list, or the file browser closed. I'll have a look around to see if there is any glaring memory inefficiency in the way that files are added to the browser, though.

If it only happens for certain files, or files added in a certain way, then that would indicate a bug and be a starting point to investigate.

Log file The error log you sent me indicates that the config file was not well formed XML. If you send me the AlbumArt.exe.Config file I can let you know why.

Unrecognized tags Is there a specific file you have that has tags which aren't recognized? If so, please try looking at it with MediaInfo, which is what AAD uses internally to read the tags. If that can read Artist and Album tags, but AAD can't, then I will investigate further. In that case it might be helpful if you could send me the file in question.

"Tag guessing could be better, and should be mixed with tag info Sorry, I'm not sure I really understand what you are getting at here. The tags that are read are Artist and Album (as reported by MediaInfo), there is no guessing or other info used.

"A simple check whether the files originate from the same folder should help" That's assuming that each folder contains one album, and there should be only one album image per folder. This is not an assumption I want to limit AAD to making. Various Artists albums are always going to be a bit tricky, as there isn't an easy way to distinguish between that, and a folder full of random singles.

There might be something to be done in this area with Album Artist and Track Artist, but I'm not sure how often a distinction between those fields is actually made.

Multi-window GUI The design to have one window per search is pretty much set in stone now. It would need a pretty fundamental change in architecture to change that, and I don't intend to. Given that constraint, having a separate window for file browser seems the only natural place to put one, given that it could result in several searches.

I'm not sure what you mean about the need to drag and drop - the only time you might use drag and drop would be to drop files on to the browser, and surely that would be the same regardless of whether it was in the same window as the search results or not? Perhaps I'm missing something.

Turning off sorting That makes sense, yes. There would be a performance improvement for not having to sort, too. I'll put it in the next version.

Clearing I'll hook up the Del key to remove selected albums from the list for the next version. Alternatively, if you use the Search button, it will clear the current contents and replace them with what it finds searching the path specified. A quick Search, Esc combination would therefore result in a cleared list :-)

Thanks again for your comments and suggestions,

Alex
emfletcher
Hey, thanks for this program. It works great. I have a couple suggestions for the next relase.

1. In the file browser I would love to have the dimensions of the album art. This way I can sort by dimensions and be able to replace small album art. If that isn't possible file size might do.
2.When searching an album that already has album art it would be nice to have a picture of the album art you already have with the size underneath it. Maybe in the source column, above or below the sources.
3.As previously suggested, it would be great to be in one window with tabs.
4.As previously suggested, various artist albums are a pain. Maybe there could be an option to select 'one album per folder' so it won't search for art for every song of the various artist album.
poisonborz
QUOTE(AlexVallat @ Jan 13 2008, 20:26) *



Memory leak For the config file, I've suspected that there's an xml error, but I couldn't do much, since, I've copied the exact code from your post: http://www.hydrogenaudio.org/forums/index....st&p=521325
(For future releases, couldn't you just implement a simple config switch in the file application data/albumart/config?) Anyway, here's the file: http://poisonborz.extra.hu/aaconfig

Unrecognized tags I've been experimenting with tags, here's all I can suspect: since mediainfo reads the tags properly, at first I've suspected that AAD encountered unexpected values. But as it turned out, a simple overwriting/re-saving of (these kind of) tags is enough. Don't know if it's a good idea, but here's a link of an unedited file that did not get recognized (It's a Taj Mahal track):
http://poisonborz.extra.hu/temp.mp3
If I download, open it in a tag editor, and save it again, it gets recognized. I hope this helps somehow.

Multi-window GUI emfletcher's idea about tabs is also great - if multiple windows are necessary, at least they could be enclosed in a multiple tabbed window...

Various Artist albums Maybe the user could set the pattern of the folder structure of his collection... Don't know if I'm right, but there's already something like this in the [albumart_recognizer_path] section of the config file. Maybe a text field in the options of the File Browser, with a simple "scripting language" assisted with buttons.
AlexVallat
QUOTE(emfletcher @ Jan 13 2008, 21:35) *

1: That would slow things down considerably, as it would have to open and read each art file. File size could work, though, it should be fast enough to query the filesystem for that.

2: Existing album art is returned by the Local Files source (as long as you have it checked), and appears in the main search area. There seems to be a bug with the path it searches under when launched from the file browser, though, so I'll try to fix that for the next version.

3: Not going to happen. Writing a container window to hold all the other windows inside it would be a pain to do, and would mean that you couldn't see them side by side, and they'd all have to be the same size. I just don't see the advantage of it.

4: The File Browser is exclusively tag based, not file system based. It would be possible to write another browser which got artist and album information from a path pattern that you could specify, and that's a useful idea for the future. There's no reason that you should be forced to use tags when filenames can contain the same info, so long as a pattern for it can be specified. I'll keep it as a nice-to-have idea, but it won't be coming any time soon.

QUOTE(poisonborz @ Jan 13 2008, 22:39) *

Config File There was a blank line at the start of that config file, where there shouldn't have been. I've fixed the post you linked so that it doesn't start with a blank line, sorry about that. The very first character in the file should be a <. The reason it is a config file rather than a switch, is that this is functionality built in to the .net CLR, not something specific to AAD. A config file like that works for any .net app.

Unrecognized tags Updating to the latest version of MediaInfo allows me to read that test file, so the next version of AAD (which will use the latest available MediaInfo) should read it too. If you don't want to wait, grab the latest MediaInfo DLL, and extract MediaInfo.dll into the AAD program folder, overwriting the existing one.

Alex
plinni
This little tool is simply amazing! Thanks for this! But I got one question anyhow. When an album is exactly called like the band It doesn't find any cover. The only field filled is the artist one. Is there a solution for this problem?
KarnEvil9
QUOTE(plinni @ Jan 15 2008, 04:03) *

This little tool is simply amazing! Thanks for this! But I got one question anyhow. When an album is exactly called like the band It doesn't find any cover. The only field filled is the artist one. Is there a solution for this problem?

Put the band name in both fields. You'll get a lot of false positives, probably, but you should find your album cover. Leaving the album name blank is not the way to go.
plinni
Yeah I know but what I don't understand is why it's not filled in automatically. It's workin when the album title is different from the band name but otherwise it's not workin when both names are equal.
TedFromAccounting
Can anyone write a script for buy.com? They have a lot of 500x500 images that are often better quality than amazon's. If i knew anything about scripting i would try myself.
poisonborz
Just some additional ideas:

the file browser not refreshing itself (artwork status field) if the Search window option 'close after
saving' is turned on (if that was not working like that before, it should tongue.gif - in every file browser
window instance, if that is possible)

please re-do somehow the row selection mechanism in the file browser. It's very annoying that eg.
you select 6 row, and a sloppy click somewhere besides the checkbox clears all those selections.
User should be able to click anywhere in a row to check/uncheck that row. There's many occassions when I don't use 'select all albums with missing artwork', and individually selecting multiple rows with only a tiny checkbox is stressful.

Also, rows where album art is found should be highlighted somehow (a slightly different background color perhaps), since in a crowded file browser window it's a bit harder to pay attention to a simple icon/field value.

In the 'specify path to find images' field in file browser, are multiple expressions allowed? I don't quite get the mechanism: does AAD uses the same value to look for an album art, and to name a file on save? (the label on the field is confusing) Since filling in 'Folder.jpg' won't detect 'folder.jpg', nor any other file types...

Also, when can we expect the next version?
hendo
FIRST UP GREAT PROGRAM !!! laugh.gif

Now for my question.... the layout is really intuitive to use.... but

I have no idea HOW i can make it just search ONCE for each album which has no album art, not for each song of the album... ???

I know i can go through and a individually select one song from each album... BUT is there a EASIER way?




I have a little free time now and would love to smash through the art in the next couple of hours.


Cheers for your help guys. laugh.gif
AlexVallat
QUOTE(plinni @ Jan 15 2008, 12:03) *
When an album is exactly called like the band It doesn't find any cover. The only field filled is the artist one. Is there a solution for this problem?

I haven't been able to reproduce this. Could you be more specific about what you are doing? Are you starting from the file browser, or the foobar browser, or the command line?

QUOTE(poisonborz @ Jan 19 2008, 21:32) *

I'll look into the file browser refreshing issue, that sounds like a bug.

If you want to click anywhere in a row to select, hold down Ctrl to select individual rows, or Shift to select all rows in a range. This is standard selection behaviour. The problem with making click automatically extend the selection is that there is no obvious way of getting the alternative behaviour of clicking to select just what is clicked on. Keeping the normal click to select behaviour means that the alternative click to extend behaviour can still be accessed either through standard keyboard modifiers, or through the checkboxes.

I like the row colour idea, and will see if some subtle shading would look good. Alternatively, you could always sort by the art status.

For the 'specify path to find images' field in file browser, what do you mean by multiple expressions?
Filling in "Folder.jpg" should certainly detect "folder.jpg" as the search is case-insensitive. For other filetypes, try "folder.*" instead. The path (if not absolute) is relative to the audio file the tags were read from, so "folder.jpg" means "folder.jpg in the same folder as the audio file". The placeholder "/**/" can be used to search arbitrary sub-folders, so "./**/folder.jpg" means "folder.jpg in the same folder as the audio file, or any sub-folder of that folder".

When launching a search for an album from the file browser, the default path to save to is automatically filled in as the path to find images for that file browser, on the grounds that if that's where you were expecting to find images, that's where you would like them to go. There's currently a bug that this will include wildcards, but I'll have that fixed for the next version.

You can expect the next version soon. It was going to be today, as I've finished everything that I had planned, but given the above additional changes to make too, it might not be.

QUOTE(hendo @ Jan 20 2008, 08:30) *

Thanks, I'm glad you like it! I'm afraid if each song on your album has a different artist or album title tag, then there is no way to get it to just choose one of those to display in the file browser and ignore the others. If they all have the same artist and album, then only one entry should appear.

There has been a proposal for a filename based browser rather than tag based, which would mean you could define your album and artist by the path to folder rather than the tags in the files, but that won't be in the next release.

Alex
hendo
Cheers Alex....

Now that i understand why
.... is there a way where you could search and aggregate all the files which have the same (ALBUM) title and then only display one instance of the duplicate (in the search window).

Not that i know anything about writing code for program.... surely this would be a (relatively) simple task....

I may have even overcomplicated the process...?

Just an idea and i would love to see other peoples opinions on a solution.

Thanks again.
AlexVallat
QUOTE(hendo @ Jan 20 2008, 11:46) *

You are right, this would be a relatively simple task. The question, though, is whether it is the right thing to do.

Album name alone is not enough to uniquely identify an album. For a trivial example, how many albums called "Greatest Hits" do you think there are? If you found it impossible to add both your "Greatest Hits" (Spice Girls) and "Greatest Hits" (The Cure) to the file browser without removing one first, with no indication of why the second one wasn't appearing, you'd probably be pretty upset.

Various Artists albums are always going to be a problem, as I mentioned in a previous post. The only solutions I can think of are insisting on a separate Album Artist tag, or doing a filename/folder-based approach. To be honest, this problem is aggravated by my not owning any Various Artists albums, and my being the only developer on this project at present.

Alex
poisonborz
QUOTE
For other filetypes, try "folder.*"


Besides the already mentioned wildcard bug, how would this work if I set it to folder.jpg, and the file I want to save from search window is a png? Without conversion, it would get an incorrect extension... (it would be a nice feature in a future version, if user would have the ability to set saving extension, with automatic conversion afterwards)
AlexVallat
QUOTE(poisonborz @ Jan 20 2008, 12:18) *
QUOTE
For other filetypes, try "folder.*"
Besides the already mentioned wildcard bug, how would this work if I set it to folder.jpg, and the file I want to save from search window is a png? Without conversion, it would get an incorrect extension...

Worry not! This case is already handled by the wildcard bug fix, and would appear in the search window as "folder.%extension%", causing the extension used to save the file to be determined by the type of the file being saved.

Alex
AlexVallat
AlbumArt Downloader XUI v0.11 Released

As promised, here is the new version of Album Art Downloader XUI. This version includes various suggested improvements that were requested on this thread:
  • Added /separateInstance parameter, for optional prevention of the single instance behaviour. Use of this parameter is not generally recommended.
  • Added ability to remove items from the File/Foobar browser using the Delete key
  • Added art file size column to File/Foobar browser
  • Added background colouring to the File/Foobar browser rows to help indicate artwork status (missing gives a red highlight, present gives green)
  • Added the ability to view the results unsorted (in the order in which they are found)
  • Fixed bug where local files search would not be searching the right location when the search window was launched from the file or foobar browser.
  • Fixed bug where the default save path would be populated with wildcards from the file or foobar browser.
  • Fixed scripts: Coveralia, CoverIsland
Download:
AlbumArtDownloaderXUI.exe (Installer. Recommended)
AlbumArtDownloaderXUI.zip (zip archive for those who don't like installers)
.NET Framework 3.0 (required)
poisonborz
The changes are great!
However, I couldn't stop to add some additional notes smile.gif

In the search window, it would be a nice addition if there would be some sort of progress meter, or at least a download notification area. Sometimes images take way too long to download (I mainly use google images) and esp. for an average user, watching a little clock icon for 1 min is not the best indication of stability.

In the queue window, there should be a queue count, displaying the number of items in queue.
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.