Embeded Album Art

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • thinktink
    Forum King
    • May 2009
    • 3372

    Embeded Album Art

    I got sick and tired of testing one of my other plugin's album art embedding with code kludges so I made a plugin to take Winamp's head and rape it's left ear out and force it to embed art instead of saving it to the directory. I then decided permanently raping Winamp might not be advantageous so I put in a function to give the user a choice whether to use Winamp's handler or mine. See attached screenshots to work out how to use the plugin.


    Do this:



    Viola!


    Installer attached inside a 7z file. You'll need to restart Winamp for it to work.

    Don't ask how I did it.

    Updated version

    _____________________________
    Attached Files
    Last edited by thinktink; 19 March 2013, 00:55.
    | Opus Audio Codec plugins 2.0 | Embedded Album Art | DiskWrite |
    | Save your playlist first! | Live voice-over | X-Fade 2.5 |
    | AterKast (Source DSP) | More of my stuff... |
  • MrSinatra
    Forum King
    • Dec 2004
    • 5899

    #2
    wow, this will make a lot of people happy. (altho i won't need it myself)

    does it work with all formats that support tags?

    EDIT: also, does it affect the image in any way? what i mean is, that when you use "regular" winamp to add art via alt+3, it will do so, but it literally reduces the image quality in doing so. don't know how or why or what rules govern it doing that, i just know it does do it. so is that image quality reduction function part of your embed as well? or is it totally separate from what winamp does?
    PENN STATE Radio or http://www.LION-Radio.org/
    --
    BUG #1 = Winamp skips short tracks
    Wish #1 = Multiple Column Sorting
    Wish #2 = Add TCMP/Compilation editing

    Comment

    • thinktink
      Forum King
      • May 2009
      • 3372

      #3
      Originally Posted by MrSinatra View Post
      wow, this will make a lot of people happy. (altho i won't need it myself)

      does it work with all formats that support tags?
      If Winamp supported it before, it will support it, and that depends on a number of things that are completely external to the plugin. Thus far I've tested it with, in_bpopus, in_mp3, and in_wm all seem to work fine.
      | Opus Audio Codec plugins 2.0 | Embedded Album Art | DiskWrite |
      | Save your playlist first! | Live voice-over | X-Fade 2.5 |
      | AterKast (Source DSP) | More of my stuff... |

      Comment

      • thinktink
        Forum King
        • May 2009
        • 3372

        #4
        Originally Posted by MrSinatra View Post
        ...EDIT: also, does it affect the image in any way? what i mean is, that when you use "regular" winamp to add art via alt+3, it will do so, but it literally reduces the image quality in doing so. don't know how or why or what rules govern it doing that, i just know it does do it. so is that image quality reduction function part of your embed as well? or is it totally separate from what winamp does?
        I'm using what's already in Winamp for art reading/writing/handling/what-not so if there's any image quality reduction, it's in Winamp. At the moment I've hard-coded it to use the JPG format when Winamp sends it some kind of raw RGB format, which Winamp seems to do more often than not. I could've used PNG instead of JPG but JPG has more support with the various file formats.
        | Opus Audio Codec plugins 2.0 | Embedded Album Art | DiskWrite |
        | Save your playlist first! | Live voice-over | X-Fade 2.5 |
        | AterKast (Source DSP) | More of my stuff... |

        Comment

        • MrSinatra
          Forum King
          • Dec 2004
          • 5899

          #5
          just FYI in case anyone is wondering what i mean:

          Howzit....Whatzit...what tha...? How to tune up, and keep your Winamp player humming along. Search this Forum to find others who have driven down your road and have advice and tips to help you out.


          http://forums.winamp.com/showthread.php?t=348480 mainly post 13 and on
          PENN STATE Radio or http://www.LION-Radio.org/
          --
          BUG #1 = Winamp skips short tracks
          Wish #1 = Multiple Column Sorting
          Wish #2 = Add TCMP/Compilation editing

          Comment

          • thinktink
            Forum King
            • May 2009
            • 3372

            #6
            I just tested a build of the plugin for configuring Winamp's internal JPG handler to do 100(% I assume from out of a 0 to 100 range indicated in the comments section of the SDK) and saw that the retained image quality was much better, however, I'm reluctant to publish that test build because the size of the higher quality JPG was egregious. Maybe if I supplied a complementary plugin to interface with it so as to allow a user to configure it to their desires would I do it. However, that's a ways off and I don't think I want to unless enough people ask me to if the plugin becomes appropriately popular.
            | Opus Audio Codec plugins 2.0 | Embedded Album Art | DiskWrite |
            | Save your playlist first! | Live voice-over | X-Fade 2.5 |
            | AterKast (Source DSP) | More of my stuff... |

            Comment

            • MrSinatra
              Forum King
              • Dec 2004
              • 5899

              #7
              i post these questions just b/c i am interested in the nuts and bolts of this, but i'll admit i don't embed and i don't even use winamp to save art to a folder via its own UI. in addition, when i did my own tests, i did not see a reduction in resolution, nor visiible to the eye, (to me), in quality, just filesize, so its kind of academic in a sense anyway, but i do think people should know about it.

              however, can u explain what winamp is actually doing? how does it achieve the reduction in filesize? does it do it "the same way" regardless of if its to folder or via your embed plugin? will it reduce a given filesize the same amount via either method?

              and in your answer above, i'm a bit confused, does either way ever result in a filesize bigger than the source?

              i understand why winamp does this kind of thing under the hood, but i watch my filesizes as is, i don't want them tampered with. i wish there was a way to defeat the tampering via ini option or something like that.
              PENN STATE Radio or http://www.LION-Radio.org/
              --
              BUG #1 = Winamp skips short tracks
              Wish #1 = Multiple Column Sorting
              Wish #2 = Add TCMP/Compilation editing

              Comment

              • Mertcan
                Junior Member
                • Mar 2013
                • 1

                #8
                Thank you for your plugin! This was my biggest wish for Winamp at least 10 years. I remember the times I just use iTunes for this reason. Now I don't have to use any other programs for just embeding album art.

                Comment

                • Aminifu
                  Forum King
                  • Aug 2011
                  • 4967

                  #9
                  Originally Posted by thinktink View Post
                  I just tested a build of the plugin for configuring Winamp's internal JPG handler to do 100(% I assume from out of a 0 to 100 range indicated in the comments section of the SDK) and saw that the retained image quality was much better, however, I'm reluctant to publish that test build because the size of the higher quality JPG was egregious. Maybe if I supplied a complementary plugin to interface with it so as to allow a user to configure it to their desires would I do it. However, that's a ways off and I don't think I want to unless enough people ask me to if the plugin becomes appropriately popular.
                  Hi thinktink,

                  I'm very excited about your contribution! I only use embedded art. As you know, Winamp no longer downloads art. But I never liked the low res images it provided anyway and long ago found alternative sources. I've been mostly using MediaMonkey to do the embedding (and sometimes the art look-up as well), so being able to do embedding with Winamp is something I wanted for a long time. Thank you very much for coding this.

                  I ran your installer. I did not see a plug-in, but I did see that a w5s file was added to the Winamp System folder and the embed option added to the Winamp <Alt>+3 tag editor. I've not had time to play around with it yet, but will do so in a couple of days and post my results.

                  I am concerned about the reduction in image quality. I would like to be able to configure the quality range. Hopefully you will get enough requests so that you will release the add-on that allows this. Or maybe if I use a source image with a large enough resolution, the current reduction in quality will be acceptable. I'll know soon. Thanks again.
                  Last edited by Aminifu; 17 March 2013, 17:25.
                  Winamp v5.9.2.10042 - Quinto Black CT v4.1 skin
                  Windows 11 Home 64-bit v23H2 desktop - Logitech Z906 5.1 speaker system

                  Comment

                  • lostinsound
                    Senior Member
                    • Jul 2009
                    • 136

                    #10
                    If you want an example where using Load Artwork shows a very noticeable decrease in quality use it to load the cover of Rage Against the Machine's Renegades from here:



                    This is actually the cover that made me first notice that Winamp changes the image. I've attached the 'after' image and if you compare it to the original in the link I provided there's a very noticeable difference.
                    Attached Files

                    Comment

                    • Aminifu
                      Forum King
                      • Aug 2011
                      • 4967

                      #11
                      Hi lostinsound,

                      Have you been able to tell exactly where the change is? Different compression ratio, different file format, or something else?
                      Winamp v5.9.2.10042 - Quinto Black CT v4.1 skin
                      Windows 11 Home 64-bit v23H2 desktop - Logitech Z906 5.1 speaker system

                      Comment

                      • thinktink
                        Forum King
                        • May 2009
                        • 3372

                        #12
                        It's going to be in Winamp's default configuration for JPG compression. What Winamp outputs for the cover art directory is also what will get chucked into the file embed. Unless the input plugin reformats what Winamp hands over to it before doing the actual filespec specific embed it should be the same.

                        I wonder if the Winamp devs could say what configuration they set for the default cover art directory output.

                        And yes, it's a w5s (Winamp 5 System component) plugin and not a standard dll plugin like a gen, in, out, ml, or dsp with a .dll extension. It has to be done that way for it to work and since it's just a WASBI implementation it makes sense to do it that way anyway. And since there is no UI it stays (relatively) smaller than most of my other plugins.
                        Last edited by thinktink; 17 March 2013, 21:46. Reason: grammar
                        | Opus Audio Codec plugins 2.0 | Embedded Album Art | DiskWrite |
                        | Save your playlist first! | Live voice-over | X-Fade 2.5 |
                        | AterKast (Source DSP) | More of my stuff... |

                        Comment

                        • lostinsound
                          Senior Member
                          • Jul 2009
                          • 136

                          #13
                          From what I can tell it does look like it saves it with a lower compression ratio. It seems to be much more noticeable if the image has very sharp edges, like the sharp transition from red to blue in the Renegades image.

                          For a few different albums I opened up the covers in paint.NET, and when I selected 'Save As...' I set the jpeg quality to around 80 and it gave me approximately the same size image as the image Winamp puts in the folder with 'Load Artwork'. I also did an image subtraction comparison with this lower quality image from paint.NET and the Winamp generated image, and they were essentially the same image.

                          I should also note that even with saving the image in paint.NET with a quality of 100 I still noticed a decrease in the sharpness of the edges, although not as much.

                          Edit: I should clarify when I say "same size image", I mean the file size. The dimensions don't change.

                          Comment

                          • DrO
                            • Sep 2003
                            • 27868

                            #14
                            the original link is for a 600x600 image, the attached one is a 100x100 image. bit-depth (24) and format (jpeg) are the same otherwise.

                            re-saving jpeg files will lead to a decrease in quality as jpeg is a lossy image format, so the more you alter the file, the more image data that will be lost.

                            and from what i've tried, i still get a 600x600 image via the 'load artwork' option, but the difference is the original is 126x126dpi and the saved copy in the folder is 96x96dpi (which would explain the main drop in the image quality and the fact that it's re-encoding the image).

                            this re-encoding is because there was no GetAlbumArtData(..) method when the feature was added so it has to read the file. decode it, save the decoded data and with jpeg files (as mentioned above) that leads to a loss in quality. will look into getting it to use the raw un-decoded data.

                            Originally Posted by thinktink View Post
                            it some kind of raw RGB format
                            is an ARGB value - is like a COLORREF value but with the added means to store the alpha channel. it's what the read image data is expanded to unless when using GetAlbumArtData(..) which gets the raw image data before it is read and decoded into an ARGB32 ** buffer.
                            WACUP Project <‖> "Winamp Ramblings" - Indie Winamp Dev Blog

                            Comment

                            • lostinsound
                              Senior Member
                              • Jul 2009
                              • 136

                              #15
                              Originally Posted by DrO View Post
                              the original link is for a 600x600 image, the attached one is a 100x100 image. bit-depth (24) and format (jpeg) are the same otherwise.
                              Are you referring to the image I attached? When I click on the thumbnail, it opens up a new tab with a 600x600 image. That is the size of the image I attached, as Winamp doesn't change the dimensions when using 'Load Artwork'.

                              Comment

                              Working...
                              X