MediaMonkey, this is not good enough!

Community forum for discussions completely unrelated to MediaMonkey.

Moderator: Gurus

paulmt
Posts: 1170
Joined: Tue Jul 18, 2006 6:06 pm

MediaMonkey, this is not good enough!

Post by paulmt »

Since upgrading to MM v2.5.5.980

I have nearly all my files correctly tagged and with good quality album art.
I can edit without any breakup or distortion of the player
MediaMonkey hardly ever crashes now unless I screw up
My iPOD shuffle sync's without any problems
My new Motorola RAZR V3i setup easily with MM and sync's without any issues
The scripters have provided a way to do just about everything I need
I love my MediaMonkey Silver Skin

This is very boring indeed, there's nothing to do except sit back and enjoy my wonderful music collection...

I'm looking forward to v3 if only to provide some challenges and distractions! :lol:
psyXonova
Posts: 785
Joined: Fri May 20, 2005 3:57 am
Location: Nicosia, Cyprus
Contact:

Re: MediaMonkey, this is not good enough!

Post by psyXonova »

paulmt wrote: This is very boring indeed, there's nothing to do except sit back and enjoy my wonderful music collection...
You could delete all your tags and remove the info from inside MM too and start all over again.

This will take you some time :D
Peke
Posts: 17573
Joined: Tue Jun 10, 2003 7:21 pm
Location: Earth
Contact:

Post by Peke »

Hmmmm... Maybe I should also do that :) 8) :lol: :wink:
Best regards,
Peke
MediaMonkey Team lead QA/Tech Support guru
Admin of Free MediaMonkey addon Site HappyMonkeying
Image
Image
Image
How to attach PICTURE/SCREENSHOTS to forum posts
Steegy
Posts: 3452
Joined: Sat Nov 05, 2005 7:17 pm

Post by Steegy »

Hey Paul

Have you ever visited Europe? Belgium?
If you want to come on holiday here, maybe you can take care of my collection then... :wink: (I'll take care of the food, parties and the roof above your head)

Oh, do we have another candidate, Peke?
:D
Extensions: ExternalTools, ExtractFields, SongPreviewer, LinkedTracks, CleanImport, and some other scripts (Need Help with Addons > List of All Scripts).
Bex
Posts: 6316
Joined: Fri May 21, 2004 5:44 am
Location: Sweden

Post by Bex »

And then you are welocome to me! I would really appreciate some help with my collection.

I give the same offer as Steegy but I also throw in some dates with nice chicks which I set up for you!

What flight do you come with?

:D :D
Advanced Duplicate Find & Fix Find More From Same - Custom Search. | Transfer PlayStat & Copy-Paste Tags/AlbumArt between any tracks.
Tagging Inconsistencies Do you think you have your tags in order? Think again...
Play History & Stats Node Like having your Last-FM account stored locally, but more advanced.
Case & Leading Zero Fixer Works on filenames too!

All My Scripts
Lowlander
Posts: 56871
Joined: Sat Sep 06, 2003 5:53 pm
Location: MediaMonkey 5

Post by Lowlander »

Or write some scripts/skins.
paulmt
Posts: 1170
Joined: Tue Jul 18, 2006 6:06 pm

Post by paulmt »

Psyxonova
Umm thanks, but I don’t think I will do that, I wake from nightmares where that accidentally happens! :D

@ Steegy & Bex
Thanks for your generous offers, very tempting :roll: :D Steegy are you offering Chicks as well :wink:

@ Lowlander
I’m not THAT bored, :lol: but I do look forward to developing skins after we have a look at v3


Anyway, I have had 6 Month’s off work and have to go back in January so that will take care of 12 hours a day from then on for a while...
It took the 6 Mth's to get my collection organised, what would it have taken without MM? Years I suspect.
FurAnt
Posts: 165
Joined: Thu Jul 17, 2003 3:38 pm
Location: Atlanta, GA

Post by FurAnt »

Try to Auto-organize all of the files in your library using the following mask:
<Genre>

Ignore the warnings and have fun!!!
psyXonova
Posts: 785
Joined: Fri May 20, 2005 3:57 am
Location: Nicosia, Cyprus
Contact:

Post by psyXonova »

paulmt wrote: It took the 6 Mth's to get my collection organised, what would it have taken without MM? Years I suspect.
So... how did you convinced your boss to give you such a long time off??
Is he/she an MM user too??

Hypothetical dialog between Paulmt and his/her boss
Paulmt: Hey boss, I need 6 months to organize my music collection
Boss: Sure, no problem... just remember to call us every now and then, see you in 6 months

Real dialog between me and my professor
psyXonova: Hey Dr., I need 6 months to organize my music collection
Professor: Sure, no problem, just remember to give me your office keys after you have finished packing...

:lol:
Bex
Posts: 6316
Joined: Fri May 21, 2004 5:44 am
Location: Sweden

Post by Bex »

:lol: :D
Advanced Duplicate Find & Fix Find More From Same - Custom Search. | Transfer PlayStat & Copy-Paste Tags/AlbumArt between any tracks.
Tagging Inconsistencies Do you think you have your tags in order? Think again...
Play History & Stats Node Like having your Last-FM account stored locally, but more advanced.
Case & Leading Zero Fixer Works on filenames too!

All My Scripts
paulmt
Posts: 1170
Joined: Tue Jul 18, 2006 6:06 pm

Post by paulmt »

:lol: Almost Psyxonova
I am a fixed term contract worker, so I dictate when and where I want time off, assuming I have had a lucrative previous contract.
Wife was the hard one to convince! :roll:

@ FurAnt

Genre is an area I have no desire to go into - I think it's better to leave it that way :D
DiddeLeeDoo
Posts: 1017
Joined: Wed Mar 01, 2006 1:09 am
Location: In a jungle down under
Contact:

Post by DiddeLeeDoo »

I feel a bit 'anti-climaxed' too at the moment.

Everything is organized, and even the Album Art is now finally in fine order.

Made a script that took about 70 minutes to run. It had a rather big task to do, like figure out if an image was likely to be a front or back cover, rename accordingly to a set pattern, delete duplicate front images (after auto checking which were the better one), auto extract embedded images to disk if the embedded was better/bigger than the on-disk one. Delete every embedded image. Link up the Folder.jpg and Back.jpg to the database with full path and type... and the end result is rather nice.

Guess it's time to put the feet up, chew a straw, to let new ideas flow by. :)
Image
Steegy
Posts: 3452
Joined: Sat Nov 05, 2005 7:17 pm

Post by Steegy »

Made a script ...
Do you want to share it?
Extensions: ExternalTools, ExtractFields, SongPreviewer, LinkedTracks, CleanImport, and some other scripts (Need Help with Addons > List of All Scripts).
DiddeLeeDoo
Posts: 1017
Joined: Wed Mar 01, 2006 1:09 am
Location: In a jungle down under
Contact:

Post by DiddeLeeDoo »

I've been thinking about it Steegy, but I'm not quite sure what to do.

While running those 70 minutes, it deleted about 4,000 unwanted album arts, renamed some thousand, added about 40,000 records to the Cover table. Exactly what I wanted, but..... there's a lot of deleting going on, and it feels a bit uncomfortable to share something like that.

Another problem is that I now I have like 5 different versions, and I believe this is one of those that I took that long. Have improved on the code, and maybe over some time something more 'public' may come out of it.

Dump of a totally unsupported script for 'viewing' only, and might not even be the right one. I'll dump a couple just to make it confusing... hehe.

UNSUPPORTED, for viewing only

Code: Select all

Dim dbT,dbS,dbA,dbI,HDDHeight,MP3Height,LastLooser

Set SDB=CreateObject("SongsDB.SDBApplication")
Set dbT=SDB.Database.QuerySongs("And SongPath like '%.mp3'")

Set fso = CreateObject("Scripting.FileSystemObject")
On Error Resume Next

LastLooser=""
While Not dbT.EOF
    Set dbS=dbT.Item
    Set dbA=dbS.AlbumArt

    HDDHeight=0
    MP3Height=0

    'First find what is biggest of them all
    For j=0 To dbA.Count-1
        Set dbI=dbA.Item(j)
        
        'If HDD, remember size
        If dbI.ItemStorage=1 Then
           If dbI.ItemType=3 Or dbI.ItemType=0 Then 
              If dbI.Image.Height > HDDHeight Then HDDHeight=dbI.Image.Height
           End If
        End If
        
        'If MP3, remember size
        If dbI.ItemStorage=0 Then
           If dbI.Image.Height > MP3Height Then MP3Height=dbI.Image.Height
        End If
    Next


    'MP3 Exist, but lost the height test to the HDD image
    If MP3Height > 0 And MP3Height <= HDDHeight Then 
          For j=0 To dbA.Count-1
             Set dbI=dbA.Item(j)
              If dbI.ItemStorage=0 Then
                 dbA.Delete(j)
                 dbA.UpdateDB
                 MP3Height=0
              End If   
          Next
    End If   


    'MP3 Won the fight, replace the existing 'Folder.jpg'
    If MP3Height > HDDHeight Then 
       For j=0 To dbA.Count-1
          Set dbI=dbA.Item(j)
           If dbI.ItemStorage=0 Then
  
              'Find what folder To write the 'Folder.jpg'
               LooserImage=fso.GetParentFolderName(dbS.Path) & "\Folder.jpg"
               If LastLooser<>LooserImage Then
               LooserImage=fso.GetParentFolderName(dbS.Path) & "\Folder.jpg"
               Set output=SDB.Tools.FileSystem.CreateTextFile(LooserImage, True)
                   output.WriteData dbI.Image.ImageData,dbI.Image.ImageDataLen
                   output.Close
                   LastLooser=LooserImage
               Set output=Nothing
               End If
               dbA.Delete(j)
               dbA.UpdateDB
           End If
       Next 
    End If 

    dbT.Next
Wend

Set dbA=Nothing
Set dbS=Nothing
Set dbT=Nothing
Set SDB=Nothing

UNSUPPORTED, for viewing only

Code: Select all

Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H0001
Const ForReading = 1
Dim   con,rec,dic,tmd,fso

Set con = CreateObject("ADODB.Connection")
Set rec = CreateObject("ADODB.Recordset")
Set dic = CreateObject("Scripting.Dictionary")
Set tmd = CreateObject("Scripting.Dictionary")
Set fso = CreateObject("Scripting.FileSystemObject")

Set FileType            = New RegExp
    FileType.Global     = True
    FileType.IgnoreCase = True
    FileType.Pattern    = "\.jpeg$|\.jpg$"

    'Connect to the database
    dbF = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=D:\Docs\MediaMonkey\MediaMonkey.mdb"
    con.Open dbF
    
    'Open a query containing all the song paths
    SQL = "SELECT SongPath FROM Songs ORDER BY SongPath"
    rec.Open SQL, con, adOpenStatic, adLockOptimistic, adCmdText

    'Read unique partent folders into a dictionary as keys
    While Not rec.EOF    
       n = "M" & rec.Fields.Item(0)
                     If  InStrRev(n,"\")>0 Then
                         n=Left(n,InStrRev(n,"\")-1)
                         If dic.Exists(n)=False Then dic.Add n,"none"
                     End If
                 rec.MoveNext
    Wend
    rec.Close
    
    For Each AlbumFolder in dic.Keys
        SeeIf=fso.FolderExists(AlbumFolder)
        If  SeeIf Then
            Set Folder  = fso.GetFolder(AlbumFolder)
            Set Files   = Folder.Files
                FirstFile=""
                Counter=0
                
            For Each file In files
                If FileType.Test(file.Name) Then
                   tmd.Add file.Name, file.Size
                End If
            Next
            
                If tmd.Count=1 Then
                   For Each Tmp In tmd.Keys
                       If RenameWinningFile(Folder, Tmp, "Folder.jpg")=True Then 
                          UpdateTheCoverTable Folder,"Folder.jpg",3,0
                          WScript.Echo Folder
                          WScript.Echo "Old: " & Tmp
                          WScript.Echo "New: " & "Folder.jpg"
                       End If
                   Next
                End If
                   
                   'Done the single file in folder already.
'            ElseIf tmd.Count=2 Then
'                   WScript.Echo Folder
'                   WinningFolderSize=0
'                   WinningFolderFile=""
'                   LoosingFolderFile=""
'                   BackFolderFile=""

'                   For Each Tmp In tmd.Keys
                   
'                            lowtmp=LCase(Tmp)
'                          If InStr(lowtmp,"back")   =0 And _
'                             InStr(lowtmp,"inlay")  =0 And _
'                             InStr(lowtmp," cd")    =0 And _
'                             InStr(lowtmp,"inside") =0 And _
'                             InStr(lowtmp,"_cd")    =0 And _
'                             InStr(lowtmp,"-cd")    =0 And _
'                             InStr(lowtmp,"(cd")    =0 And _
'                             InStr(lowtmp,"whole")  =0 Then 

'                             If WinningFolderSize <= tmd.Item(Tmp) Then
'                                WinningFolderSize = tmd.Item(Tmp)
'                                If WinningFolderFile <> "" Then
'                                   LoosingFolderFile = WinningFolderFile
'                                   WinningFolderFile = Tmp
'                                Else 
'                                   WinningFolderFile = Tmp
'                                End If
'                             Else
'                                   LoosingFolderFile = Tmp
'                             End If
'                          Else
'                             BackFolderFile = Tmp
'                          End If
'                    Next   
                   
'            ElseIf tmd.Count>2 Then
                             'Do nothing at this point.
'            End If
'          If tmd.Count=2 Then 
'             If LoosingFolderFile = "" Then 
'                   If RenameWinningFile(Folder, WinningFolderFile, "Folder.jpg")=True Then 
'                      UpdateTheCoverTable Folder,                  "Folder.jpg", 3, 0
'                   End If
'                If BackFolderFile <> "" Then
'                   If RenameWinningFile(Folder, BackFolderFile,    "Back.jpg")=True Then
'                      UpdateTheCoverTable Folder,                  "Back.jpg", 4, 1
'                   End If
'                End If
'             Else
'                   DeleteLooserFile Folder, LoosingFolderFile
'                If RenameWinningFile(Folder, WinningFolderFile,    "Folder.jpg")=True Then 
'                   UpdateTheCoverTable Folder,                     "Folder.jpg", 3, 0
'                End If
'             End If
'          End If
          
    
    tmd.RemoveAll
    End If
    
    Next


Sub DeleteLooserFile(XFolder,XFile)
    XFF=XFolder & "\" & XFile
    If fso.FileExists(XFF) Then fso.DeleteFile(XFF)
End Sub

Function RenameWinningFile(XFolder,XFile,NFile)
    RenameWinningFile=False
     O=XFolder & "\" & XFile
     T=XFolder & "\" & "XX__XX.jpg"
     N=XFolder & "\" & NFile
    If fso.FileExists(O) Then fso.MoveFile O, T
    If fso.FileExists(T) Then fso.MoveFile T, N
    If fso.FileExists(N) Then RenameWinningFile=True 
End Function

Sub UpdateTheCoverTable(xFolder,nFile,xType,xOrder)
    SQLName=Replace(xFolder & "\" & nFile,"'", "''")
    SQL="SELECT Count(*) FROM Covers Where CoverPath='" & SQLName & "'"
    
    rec.Open SQL, con, adOpenStatic, adLockOptimistic, adCmdText
    AlreadyThere = CInt(rec.Fields.Item(0))
    rec.Close
    
    If AlreadyThere > 0 Then
       SQL="DELETE * FROM Covers WHERE CoverPath='" & SQLName & "'"
       Set NRec=con.Execute(SQL)
    End If
    
    SQL="INSERT INTO Covers ( IDSong, CoverOrder, CoverPath, CoverStorage, CoverDescription, CoverType, PictureType ) "&_
        "SELECT Songs.ID, "               & _
        xOrder                            &_
        " AS A, '"                        &_
        SQLName                           &_
        "' AS B, 1 AS C, Null AS D, "     &_
        xType                             &_
        " AS E, 'image/jpeg' AS F "       &_
        "FROM Songs "                     &_
        "WHERE (((Songs.SongPath) Like '" &_
        Replace(Mid(xFolder,2),"'", "''") & "\%'))"
    Set NRec=con.Execute(SQL)
End Sub

Set dic=Nothing
Set fso=Nothing
Set NRec=Nothing
Set rec=Nothing
    con.Close
Set con=Nothing
Image
Lowlander
Posts: 56871
Joined: Sat Sep 06, 2003 5:53 pm
Location: MediaMonkey 5

Post by Lowlander »

But most of you guys cheated, didn't you? If you want your library tagged well you have to listen to each song for artifacts and to rate them. Using auto-rating or pre-defined new track rating as some do is cheating.

You guys have been caught, now go back and start at the beginning of your collection. If you are done within 5 years the RIAA will force you to buy more music. :wink:
Post Reply