MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-29

Post a reply

Visual Confirmation

To prevent automated access and spam, you are required to confirm that you are human. Please place a check mark next to all images of monkeys or apes. If you cannot see any images, please contact the Board Administrator.

Smilies
:D :) :( :o :-? 8) :lol: :x :P :oops: :cry: :evil: :roll: :wink:
BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON
Topic review
   

Expand view Topic review: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-29

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by Ekaf » Mon Jul 22, 2013 10:30 pm

I am probably missing something obvious here... But how can I use this amazing(!) addon to tag my songs with the composer field?! It frequently finds a match that shows me the composers (even labeled as composers:) but then does not tag them as such (all other fields seem to tag fine).

It may be tagging the composers into 'original lyricist'... Is there a way to just have 'composers' tagged as such? Ideally it would be great to also have other fields such as lyricist and writer onto composer.

If it is not possible to tag composers with this addon, are there others that will 'tag' onto the composer field?! How do others do it?

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by RetroSonic » Thu Jan 10, 2013 12:30 pm

MusicBrainz NGS fan wrote:I have also problem with Overflow expcetion on line 4176 and I found that there is problem with decimal separator if your default locale is not en-US. I'm using sk-SK and decimal separator for this culture is comma. then munkresme.xml looks like:
Code: Select all
<matrix><row><col>0,166666666666667</col></row></matrix>

and when munkres.exe is trying to proceed this xml, is throwing an error:
Code: Select all
ValueError: invalid literal for float(): 0,166666666666667

in this case, munkresindexes.xml stays empty and this causes error mentioned in previous post.
Code: Select all
Set objMunkresIndexes = objMunkresXML.selectNodes("/matrix/index")

this line returns empty array and next if statement will be true. foreach loop inside will be never executed and cost and i variables will stay initialized to zero.
logme call on line 4176 throws an exception because it tries to divide by zero:
Code: Select all
logme "cost: " & Round(cost / i, 6)

to fix this I made some changes to the function order_items (marked as CUSTOM CODE)
Code: Select all
Function order_items(items, trackinfo):
    '"""Orders the items based on how they match some canonical track
    'information. Returns a list of Items whose length is equal to the
    'length of ``trackinfo``. This always produces a result if the
    'numbers of items is at most the number of TrackInfo objects
    '(otherwise, returns None). In the case of a partial match, the
    'returned list may contain None in some positions.
    '"""
    '# Make sure lengths match: If there is less items, it might just be that
    '# there is some tracks missing.
    If items.Count > trackinfo.Count Then
         Set order_items = Nothing
         MunkresCost = 200
         Exit Function
      End If

      'to compare the dicts in case of issues:
'      For j = 0 To items.Count - 1
'         logme items.Item(j).Title & " - " & items.Item(j).TrackOrderStr
'      Next
'
'      For j = 0 To trackinfo.Count - 1
'         logme trackinfo.Item(j).Title & " - " & trackinfo.Item(j).TrackOrderStr
'      Next
   'CUSTOM CODE START
   Dim locale
   locale = GetLocale
   SetLocale("en-US")
   'CUSTOM CODE END

    '# Construct the cost matrix.
    j = 0
    Dim costs : Set costs = CreateObject("Scripting.Dictionary")
    xml = "<matrix>"
    For j = 0 To items.Count - 1
       Set cur_item = items.Item(j)
       'Set cur_item = items.Item(key)
       xml = xml & "<row>"
      For i = 0 To trackinfo.Count - 1
      'For i, canon_item in enumerate(trackinfo):
          xml = xml & "<col>" & track_distance(cur_item, trackinfo.Item(i), trackinfo.Item(i).TrackOrderStr, False) & "</col>"
          SDB.ProcessMessages
        'row.append(track_distance(cur_item, canon_item, i+1))
      Next
      'costs.append(row)
       xml = xml & "</row>"
    Next
    xml = xml & "</matrix>"

    Dim objFSO, logf
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Dim tmpXMLPath: tmpXMLPath = SDB.ScriptsPath & sScriptDir & "munkresme.xml"
    Set logf = objFSO.OpenTextFile(tmpXMLPath, 2, True)
    logf.WriteLine xml
      logf.Close
      Set logf = Nothing
      Set objFSO = Nothing
   
    '# Find a minimum-cost bipartite matching.
    'matching = Munkres().compute(costs)
    Set objMunkresXML = Munkres()

    '# Order items based on the matching.
    'ordered_items = [None]*len(trackinfo)
    'for cur_idx, canon_idx in matching:
    '    ordered_items[canon_idx] = items[cur_idx]
    'return ordered_items
    Set objMunkresIndexes = objMunkresXML.selectNodes("/matrix/index")
    If Not objMunkresIndexes Is Nothing Then
         
         'create a blank dict with the correct size
       Dim ordered_items : Set ordered_items = CreateObject("Scripting.Dictionary")
       For i = 0 To trackinfo.Count
          Set objTemp = Nothing
          ordered_items.Add i, objTemp
       Next

         cost = 0.0
         i = 0
       For Each mindex in objMunkresIndexes
          i = i +1
          Set nodeRow = mindex.selectSingleNode("row")
          Set nodeCol = mindex.selectSingleNode("col")
          Set nodeCost = mindex.selectSingleNode("cost")
          rowindex = CInt(nodeRow.Text)
          colindex = CInt(nodeCol.Text)
          'logme nodeCost.Text
          cost = cost + nodeCost.Text
          'Set ordered_items.Item(colindex) = items.Item(rowindex)         'rowindex = index in NewTracks?  colindex= index in mbitems?
          ordered_items.Item(rowindex) = colindex
          'logme mindex.selectSingleNode("row").Text & ", " & mindex.selectSingleNode("col").Text
       Next
      'CUSTOM CODE START
      If i > 0 Then
         logme "cost: " & Round(cost / i, 6)
         MunkresCost = Round(cost / i, 4)
         SetLocale(locale)
         Set order_items = ordered_items
      Else
         MunkresCost = 100
         SetLocale(locale)
         Set order_items = Nothing
      End If   
      'CUSTOM CODE END
    Else
       MunkresCost = 100
      'CUSTOM CODE START
      SetLocale(locale)
      'CUSTOM CODE END
       Set order_items = Nothing
    End If   
End Function


hope it helps.


Many thanks for this. It works like a charm...

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by karanits » Wed Nov 14, 2012 8:17 am

solution found for
Generating AcoustID Fingerprint for: <song path>... Failed

MM is installed in a directory which contains spaces. so putting fpcalc.exe in root of drive and hard-coding the location in the script corrected the problem.

so
Code: Select all
Dim fpcalcexe: fpcalcexe = fso.GetFile(SDB.ScriptsPath & sScriptDir & "fpcalc.exe").ShortPath


is changed to
Code: Select all
Dim fpcalcexe: fpcalcexe = fso.GetFile("d:\fpcalc.exe").ShortPath

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by karanits » Wed Nov 14, 2012 4:08 am

Hey i am getting error while generation AcoustID

Generating AcoustID Fingerprint for: <song path>... Failed

i know this has been asked before. I am using MM4, portable installation and on win 8. can anybody help. Can a portable installation have an effect on this script?
I have already tried replacing fpcalc.exe with chromaprint fpcalc.exe ... didnt work

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by xandora » Sun Nov 11, 2012 6:38 pm

I'm getting an issue when trying to apply the suggested tags using the Auto-Tag button.

Image

I'm using Windows 8, and this is the first time I've tried to tag an album since upgrading. Has anyone else run into this issue? Did you fix it?

EDIT: The issue is pointing to this line here:

Code: Select all
Line 3852:     writetagscmd = "%comspec% /c " & writetagsexe & " write """ & fso.GetFile(mp3).ShortPath & """ """ &  tmpXMLPath & """"

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by bakker_be » Wed Nov 07, 2012 6:39 am

bakker_be wrote:Hi there,
all of a sudden, after months of flawless functioning this has started to act up. I get a message stating:
Code: Select all
Error #457 - This key is already associated with an element of this collection

this happens at line 1666, column 3.
OS: Win Server 2008 R2 (64-bit), fully up to date
MM: 4.0.6.1501 Gold

Update: it must have been something at either the Acoustid or the MusicBrainz end, as it's gone, tested it with the exact same albums that gave me the error.

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by bakker_be » Wed Nov 07, 2012 4:14 am

Hi there,
all of a sudden, after months of flawless functioning this has started to act up. I get a message stating:
Code: Select all
Error #457 - This key is already associated with an element of this collection

this happens at line 1666, column 3.
OS: Win Server 2008 R2 (64-bit), fully up to date
MM: 4.0.6.1501 Gold

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by booblers » Thu Sep 06, 2012 1:21 am

Did you read the security bulletin? At worst the flaw would result in high cpu utilization and that would only be if the hosts on the other side of the requests were compromised and interested in trolling you (musicbrainz, acoustid).

If you're really worried about it you might, in theory, be able to replace the dll with an updated one from 2.7.3 but you'd essentially have to install python to get it or find a replacement dll someone has posted online which is always going to be sketchy. Even after installing python you're likely going to have to generate the dll with py2exe and etc.

Maybe if musicbrainz or acoustid decide to start abusing my processor I'd goto the trouble of tracking down the build utilities and redoing it with 2.7.3 but it's not worth the effort at the moment since the threat is essentially 0.

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by dizman » Wed Sep 05, 2012 11:27 pm

Secunia is reporting the python27.dll is insecure, is there a way to remedy this?
Secunia Advisory
Dll Location on 64-bit Win7 machine:
C:\Users\Name\AppData\Roaming\MediaMonkey\Scripts\MusicBrainzTaggerNGS\munkres\python27.dll

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by cybermaven » Thu Aug 30, 2012 11:40 am

I'm running MM 4.0.6.1501. When installing the addon to my Win 7 Ultimate 64bit machine, MM freezes up. I am SO bummed out. :x This was absolute favorite addon.
ERROR:
Callstack location > user32.dll!75a32822()

Unhandled exception at 0x75a32822 in MediaMonkey.exe: 0xC000041D: An unhandled exception was encountered during a user callback.

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by Galdoran » Thu Jul 12, 2012 2:44 pm

OK. Tried it again and download worked this time!

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by MMuser2011 » Tue Jul 10, 2012 2:05 am

http://www.mediafire.com/?p9y6drehuwbmz33 from the first page works fine. Do you get an error message for the 7.51MB file?

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by Galdoran » Mon Jul 09, 2012 3:22 pm

Can't download the file from Mediafire. Is there another source?

Would love to try this.

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by bakker_be » Sun Jul 01, 2012 9:31 am

Did you install the script using the installer (mmip-file), or manually? Did you install it for all users?

Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-

Post by SteveHarveyUK » Sun Jul 01, 2012 7:13 am

Afternoon Folks,

I'm a noob with MediaMonkey, and I can't seem to get this script to work. I installed in as an administrator, but no matter what type of file I try and tag I get the following errors:

Generating AcoustID Fingerprint for: <song path>... Failed

It then goes on to use the tag to try and find a match so it's almost working, but I'd really like to get the AcoustID working if I can.

Anyone got any ideas what I've done wrong? Fairly sure it's gonna be my fault some how. :-)

I've tried setting the Logging=1 in the [MusicBrainzTaggerNGS] section of the MM ini file but I can't find the log file to take a peak.

Thanks in advance folks.

[Oh, I'm running on Windows 7 Professional with SP1 64bit, with 16GB RAM, if that makes any difference.]

Top