Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Foo_uie_albumart (Read 1106384 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Foo_uie_albumart

Reply #525
ok, I suspected this was actually the case. I just wanted to justify the use of id3lib.dll, someone said above it wasnt need in fb2k. You can always delay load the .dll such that it doesnt even load if you dont use it if you are unsure about supporting id3v2 in this way in a plugin. Though I recommend making a slight modifcation to the headers, as it includes all the genre text into your binaries even when you dynamic link otherwise.

Foo_uie_albumart

Reply #526
Quote
Quote
Where is the id3v2 support in foobar for getting cover images? there is some tag reading support in there, but I couldnt see anything relating to getting cover images from id3v2.[a href="index.php?act=findpost&pid=275989"][{POST_SNAPBACK}][/a]
You cannot retrieve binary data using the tag support in foobar2000.
[a href="index.php?act=findpost&pid=276009"][{POST_SNAPBACK}][/a]
  Is that capability planned for a future release of foobar?  It hasn't been updated in a long time, now.

Foo_uie_albumart

Reply #527
Quote
Quote
Where is the id3v2 support in foobar for getting cover images? there is some tag reading support in there, but I couldnt see anything relating to getting cover images from id3v2.[a href="index.php?act=findpost&pid=275989"][{POST_SNAPBACK}][/a]
You cannot retrieve binary data using the tag support in foobar2000.
[a href="index.php?act=findpost&pid=276009"][{POST_SNAPBACK}][/a]

Lame. 

Foo_uie_albumart

Reply #528
does anyone know where to get MSVCP71.dll? i just had to reinstall and dont have it this time round.

Foo_uie_albumart

Reply #529
Quote
does anyone know where to get MSVCP71.dll? i just had to reinstall and dont have it this time round.
[{POST_SNAPBACK}][/a]


[a href="http://www.google.com/search?hl=fr&q=MSVCP71.dll&btnG=Rechercher&lr=]G o o g l e ![/url]

Foo_uie_albumart

Reply #530
Quote
Quote
It's only me, or using this plugin (v0.045) is impossible to move/delete/rename the album folder if you don't exit from foobar?
I tried going to another album, removing the playlist from foobar, removing the album art panel ... nothing.
I don't think this is a needed feauture... or is due to some M$ Windows llimitation?
[{POST_SNAPBACK}][/a]


I confirm, this is due only to this plugin, from the 2-3 latest update.
Nobody will fix this problem? 
[a href="index.php?act=findpost&pid=274841"][{POST_SNAPBACK}][/a]

That's interesting. I would think that the image file should be inaccessible anyway, but what I find interesting is that it began in recent updates. I wonder what caused this. I might look into this and change, because I guess it'll be a lot more convinient to be able to modify the image while the album is being played. But it does make sens that it should be inaccessible... I'll see what I decide to do with this.

Quote
Quote
Quote
Here's an albumart related question:

How does one assign album art to an audio CD in foobar?  Is it posible?

I've tried, and I can't seem to find out how to do it.[a href="index.php?act=findpost&pid=274876"][{POST_SNAPBACK}][/a]

Code: [Select]
$if($stricmp($left(%_path%,5),cdda:),path_of_audio_cd_cover_here)

[a href="index.php?act=findpost&pid=274878"][{POST_SNAPBACK}][/a]



:-)  Thanks!

Now how do you assign a path?  I'd like to set it up so my cover art goes to:  /playlists/Albums/(Artist)/(Album Title)/folder.jpg.
[a href="index.php?act=findpost&pid=274886"][{POST_SNAPBACK}][/a]

If playlists is a folder on the C partition then you'd proably use something like
Code: [Select]
C:\playlists\Albums\%artist%\%album%\folder.jpg
so because you can't put an image file inside the audio cd, you just use the artist and album tags to get an image from the local hard drive.

Quote
I just read through all the pages and didn't see this addressed: when shuffling through my playlist, album art will revert back to some other album cover between tracks. This happens whether or not i have that "revert back to" box checked.

thanks a TON for this, rexy
[a href="index.php?act=findpost&pid=275114"][{POST_SNAPBACK}][/a]

That's peculiar. It's intended that there is no way to make the image always revert, because I didn't think anyone would like that, but if you have the "revert back to..." check box unchecked, then it should never revert on its own. I'll have to look into this.

Quote
I think this might be useful for displaying id3v2 embedded art
[a href="http://id3lib.sourceforge.net/]http://id3lib.sourceforge.net/[/url]
[a href="index.php?act=findpost&pid=275575"][{POST_SNAPBACK}][/a]

I am aware of id3lib's support for embedded image files and have no plans of using it. If you'll implement it, I guess I could create a base foobar services for albumart sources which you could use to create sources.

Quote
You cannot retrieve binary data using the tag support in foobar2000.
[a href="index.php?act=findpost&pid=276009"][{POST_SNAPBACK}][/a]

Just wondering, is this a limitation of kode's id3v2 reader or foobar's API? Does kode's id3v2 reader even use id3lib?

Foo_uie_albumart

Reply #531
Quote
Quote
Quote
It's only me, or using this plugin (v0.045) is impossible to move/delete/rename the album folder if you don't exit from foobar?
I tried going to another album, removing the playlist from foobar, removing the album art panel ... nothing.
I don't think this is a needed feauture... or is due to some M$ Windows llimitation?
[a href="index.php?act=findpost&pid=273145"][{POST_SNAPBACK}][/a]


I confirm, this is due only to this plugin, from the 2-3 latest update.
Nobody will fix this problem? 
[a href="index.php?act=findpost&pid=274841"][{POST_SNAPBACK}][/a]

That's interesting. I would think that the image file should be inaccessible anyway, but what I find interesting is that it began in recent updates. I wonder what caused this. I might look into this and change, because I guess it'll be a lot more convinient to be able to modify the image while the album is being played. But it does make sens that it should be inaccessible... I'll see what I decide to do with this.

I think linus is implying this happens even when a file is not currently displayed, which shouldn't happen.

Quote
Quote
You cannot retrieve binary data using the tag support in foobar2000.
[a href="index.php?act=findpost&pid=276009"][{POST_SNAPBACK}][/a]

Just wondering, is this a limitation of kode's id3v2 reader or foobar's API?
[a href="index.php?act=findpost&pid=276181"][{POST_SNAPBACK}][/a]

Of the API (see file_info class). I guess you could (if you were insane) do some funky UUEncode/Decode stuff to store images in a file.

Foo_uie_albumart

Reply #532
But no other programs will be able to read it. Only that plugin.

The point of standards is so that different programs can read and write the same tags, to give the user a choice.

There is a POPM field to write RATING and PLAYCOUNT data. Writing these fields in a completely different way in which the plugins combined with foobar Ive seen do, means other programs cannot read those tags as it does not adhere to a standard.

With regards to the file locking, see this resource:
http://www.bobpowell.net/imagefileconvert.htm

However, if you free the Image object, the file should be unlocked. I use a quite different method to whats described in that doc, with the use of buffered layeredwindows for files,  and globalstream cruft etc for id3v2 tags.

Foo_uie_albumart

Reply #533
Quote
Quote

That's interesting. I would think that the image file should be inaccessible anyway, but what I find interesting is that it began in recent updates. I wonder what caused this. I might look into this and change, because I guess it'll be a lot more convinient to be able to modify the image while the album is being played. But it does make sens that it should be inaccessible... I'll see what I decide to do with this.

I think linus is implying this happens even when a file is not currently displayed, which shouldn't happen.[{POST_SNAPBACK}][/a]

Exact!
The problem is not with the image file but with the folder: I can't move/delete/rename the album folder, even if the folder contains only mp3, and no images; even if I remove the album from the playlist; even if I remove the playlist...
I must close Foobar...
If I  remove the albumart plugin, the problem is gone...
(obviously I am not playing songs)

See also this topic: [a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=31577]Foobar Locking Folders[/url]

edit: added link

Foo_uie_albumart

Reply #534
Quote
Exact!
The problem is not with the image file but with the folder: I can't move/delete/rename the album folder, even if the folder contains only mp3, and no images; even if I remove the album from the playlist; even if I remove the playlist...
I must close Foobar...
If I  remove the albumart plugin, the problem is gone...
(obviously I am not playing songs)[a href="index.php?act=findpost&pid=276240"][{POST_SNAPBACK}][/a]
Just a guess, but I think there could be an unclosed search handle (from FindFirstFile or similar).

Foo_uie_albumart

Reply #535
first of all , thanks for great plugin

i have a question and could be a request .

for some albums that have cover arts saved in the parent folder i could not config the plugin to show them . sample of directory structure

Album
|_album.jpg
|_cd1
|_cd2


i tried this (modifiled from the original one) but it doesn't work ,  even though the return path is right

Code: [Select]
-match:$replace($cut(%_path%,$sub($len2(%_path%),$add($len2(%_directoryname%),$len2(%_filename_ext%),2))),%_filename_ext%,)*



thanks for any solution

Foo_uie_albumart

Reply #536
Quote
first of all , thanks for great plugin

i have a question and could be a request .

for some albums that have cover arts saved in the parent folder i could not config the plugin to show them . sample of directory structure[a href="index.php?act=findpost&pid=276318"][{POST_SNAPBACK}][/a]


I mentioned earlier that it seems like two backslashes next to each other in the path seem to be ignored, so something like:

Code: [Select]
match:$replace(%_path%,%_filename_ext%,,%_directoryname%,)*


should work just fine.

Foo_uie_albumart

Reply #537
@dreamweaver:
If your image is named exactly "album.jpg" try:
Code: [Select]
$replace(%_path%,%_directoryname%'\'%_filename_ext%,)album.jpg

or this if you want any image from the parent directory.
Code: [Select]
match:$replace(%_path%,%_directoryname%'\'%_filename_ext%,)*


Edit: Just forget the part below, I should learn to read more carefully...
Btw: gfngfgf forgot a backslash in the code. Add one in quotes either before %_filename_ext% or after %_directoryname%. Turning it into e.g.
Code: [Select]
$replace(%_path%,'\'%_filename_ext%,,%_directoryname%,)*

Foo_uie_albumart

Reply #538
works great ,  thanks both

Foo_uie_albumart

Reply #539
I have this same issue with not being able to move or do anything with a dir until closing foobar.  I can confirm it doesn't matter if the art is in the dir or not since all my album art is in a seperate directory.  Seems like a strange issue to me.  I can modify the files and rename the files within the dir, I just can't move or rename the dir.

Foo_uie_albumart

Reply #540
@dreamweaver: I also posted the formatting strings required to do this. IMHO these are going to be a fair bit more efficient and safer than the 'replace' methods.

$left(%_path%,$strrchr(%_path%,'\'))folder.jpg
$left(%_path%,$strrchr(%_path%,'\'))..\folder.jpg

ie, you might have a path like:

C:\mysong.mp3\artist\mysong.mp3

unlikely, but its best to have a foolproof and more efficient string imho.

Foo_uie_albumart

Reply #541
Quote
ie, you might have a path like:

C:\mysong.mp3\artist\mysong.mp3

unlikely, but its best to have a foolproof and more efficient string imho.
[a href="index.php?act=findpost&pid=276475"][{POST_SNAPBACK}][/a]


Oh wow, I didn't even think of that.  And now that you mention it, I do have some albums for which my string doesn't work (I use C:\Music\%artist%\%album%\ for my folder organization, and sometimes the album is the same as the artist).  Thanks for pointing it out.

edit: added why my string doesn't work sometimes for me

Foo_uie_albumart

Reply #542
All right, I have a challenge for you guys.  Try and fix my rashness!

Before going around and grabbing a bunch of album images, I noticed that the default string will display anything in the same folder named "folder.[ext]"

Then I thought, why not make them more manageable and not have them interefere with my iRiver when drag'n'dropping folders into said iRiver?

Set up a folder D:/Music/_pics/, set up a search string in Album Art config,
Code: [Select]
D:/Music/_pics/%album%.jpg
(and gif, png, etc)... (the importance here being place on the album name)

I tested it on three albums, seems to work fine (deleted old folder.jpg from respective folders).  I have 136 images left to process (thankfully only a part of the whole library, I didn't bother acquiring very many).  Foobar can't add image files to a playlist, so... how to rename and move all these image file?  Suggestions (proper software)?

The folders containing said folder.jpg images are named and organized neatly, by
Code: [Select]
/%artist%/%album%/%volume (of series) if exist%/%cd # if exist%/


Anyone know of anything that will grab a file out of a folder, and name the output file the same as the containing folder, elsewhere?

If someone solves this you'll get a huge w00t from me.  And some cookies.

Foo_uie_albumart

Reply #543
Will ya look at that?

I did exactly what I wanted within an acceptable margin of error (had to manually rename 5 of them).

!

(so, disregard)

Foo_uie_albumart

Reply #544
Does the developer of this plugin realise that it is re-reading the image file on every WM_PAINT?

Every time you drag another window over the top of the panel, it will refresh several times, or if you resize foobar etc.

the call

Bitmap m_bmp("filename")

causes a file load read parse etc of the file every single time. This image should be cached.

Foo_uie_albumart

Reply #545
Yes, I am aware. It's not good practice to keep a GDI+ Bitmap object global and initialized. There's a reason why it doesn't have a public default constructor. Besides, it would be daft to think that initialization of the Bitmap object is any problem. If anything, the interpolation is a problem. So if you insist, you can save the window's display and redraw it without refiltering it. Go ahead. The code is open.

Foo_uie_albumart

Reply #546
Surely the initialisation of the Bitmap from file would be a problem, causing a disk read,seek access etc with every WM_PAINT (sent many times in a simple window resize). Whereas buffering the image in memory means you are just drawing it from memory everytime.

I dont see why its a problem to have a GDI+ Image object in memory. A graphics object maybe, as that is basically a device context. Ive seen many examples of double buffering that use Image objects, or HBITMAPs. Id say the lack of a default constructor has more to do with the fact it doesnt make sense to have an Image object without any image bits or a device context to make it compatible with. I really dont see how not having a default constructor is any indication it shouldnt be kept global (at least as a dynamically allocated one). It just means the object itself cant be static.

/EDIT: Even if it were a problem (I havent seen any evidence of this?) I guess the CachedBitmap object would be purpose built for this scenario.

Foo_uie_albumart

Reply #547
Guys,

sorry to just jump in here...but using the panel the following question came to my mind.

I installed the .dll, did get the tool to work with folder.jpg. I did use so far sumarize, which offers an instance, which automatically loads albumcovers from the web.

This (automatic load) is not possible with this tool, is it ??

Foo_uie_albumart

Reply #548
Quote
I did use so far sumarize, which offers an instance, which automatically loads albumcovers from the web.

This (automatic load) is not possible with this tool, is it ?? [a href="index.php?act=findpost&pid=278232"][{POST_SNAPBACK}][/a]
Correct, that's not possible.

Foo_uie_albumart

Reply #549
I use http://www.slothradio.com/covers/ to find albumcovers once in a while, so I put a quick and dirty menu_item that will launch the url with the correct search string for artist and album.

it might be a nice addition to albumart if rexy's interested... it could probably use some tweaking...

Code: [Select]
class albumart_menu_items : public menu_item_context
{
private:
    enum
    {
 AA_FIND,
 AA_MENU_LAST
    };

    virtual unsigned get_num_items()
    {
 return AA_MENU_LAST;
    }

    virtual void enum_item(unsigned n,string_base & out)
    {
 switch (n)
 {
 case AA_FIND:
     out = "Albumart/Find Albumart";
     break;
 }
    }

    virtual void context_command(unsigned n,const ptr_list_base<metadb_handle> & data,const GUID& caller)
    {
 if (data.get_count()<1)
     return;

 switch (n)
 {
 case AA_FIND:
     {
   string8 temp;
   string8 artist;
   string8 album;

   data[0]->handle_format_title(temp, "%artist%", NULL);
   uReplaceChar(artist, temp, temp.length(), ' ', '+', true);

   data[0]->handle_format_title(temp, "%album%", NULL);
   uReplaceChar(album, temp, temp.length(), ' ', '+', true);

   string8 url = string_printf("http://www.slothradio.com/covers/?adv=&artist=%s&album=%s",artist.get_ptr(), album.get_ptr());

   uShellExecute(NULL, "open", url, NULL, NULL,SW_SHOWNORMAL);
     }
     break;
 }
    }
};

static service_factory_single_t<menu_item,albumart_menu_items> albumart_menu;
There used to be a link to my website here.