Page 7 of 7
Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-
Posted: Wed Nov 07, 2012 6:39 am
by bakker_be
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-
Posted: Sun Nov 11, 2012 6:38 pm
by xandora
I'm getting an issue when trying to apply the suggested tags using the Auto-Tag button.
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-
Posted: Wed Nov 14, 2012 4:08 am
by karanits
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-
Posted: Wed Nov 14, 2012 8:17 am
by karanits
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-
Posted: Thu Jan 10, 2013 12:30 pm
by RetroSonic
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-
Posted: Mon Jul 22, 2013 10:30 pm
by Ekaf
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-
Posted: Thu Oct 02, 2014 9:02 am
by wwootton1
Just found and started using this awesome script. The tgread is quite old. Just wondering if there is a more recent version or more current development on this I'm not finding.
Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-
Posted: Mon Oct 26, 2015 3:53 am
by Plotino
Hi,
please, someone can tell me how apply the CUSTOM CODE?
Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-
Posted: Wed Oct 28, 2015 4:45 pm
by Peke
Just follow instructions above.
Re: MusicBrainz NGS + AcoustId Tagger [MM3&4] v1.25 2012-01-
Posted: Sat Apr 02, 2016 2:34 pm
by oeyoeve
I removed the MusicBrainz Tagger [MM3] v2.0 2008-03-29 and installed the NGS Tagger instead, but the result was depressing....
All it does is to add a number of fingerprintID's to my files, then it reports that no album was found in MB (!?)
I am just testing this on a few selected albums, all of which was found in MB using MusicBrainz Tagger [MM3] v2.0 2008-03-29 and Picard and FooBar2k, but fails with the NGS tagger.
I must be doing something wrong since everybody else seems so terribly happy with it....?
First of all, I do not see the point in having these fingerprints added to my tags. What I want is to have the basic MBID's added.
Then I read in the forum that this is impossible with MM4 (?). Well, MusicBrainz Tagger [MM3] v2.0 2008-03-29 did it perfectly well, so that cannot be true.
Can someone please lead me to the light... ?