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

Download and get help for different MediaMonkey for Windows 4 Addons.

Moderators: Peke, Gurus

gggirlgeek
Posts: 67
Joined: Mon Feb 11, 2008 4:24 pm
Location: Seattle, WA

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

Post by gggirlgeek »

bluenote wrote:...What I would like to do is select whole swathes of my library and run them through fingerprinting
and write new tags based on that.

It seems like this is designed to be run on a whole album though, because if I select multiples from different artists,
it seems to force the tracks into the resulting "holes"....
Unclear. Are you all saying this addon does not work on files with random album info? If not, I don't understand. Why can't it find each single track by it's AcoustID once it's created? If I had the entire album, and it's name, all that's left is to label the genre, which the script doesn't do. What DOES it do? (I read the first post but possibly misunderstood.)
My current favorite software: MediaMonkey Gold!
bluenote
Posts: 2
Joined: Mon Mar 26, 2012 7:11 pm

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

Post by bluenote »

gggirlgeek wrote:
bluenote wrote:...What I would like to do is select whole swathes of my library and run them through fingerprinting
and write new tags based on that.

It seems like this is designed to be run on a whole album though, because if I select multiples from different artists,
it seems to force the tracks into the resulting "holes"....
Unclear. Are you all saying this addon does not work on files with random album info? If not, I don't understand. Why can't it find each single track by it's AcoustID once it's created? If I had the entire album, and it's name, all that's left is to label the genre, which the script doesn't do. What DOES it do? (I read the first post but possibly misunderstood.)
Yeah thats basically what I'm saying.
gggirlgeek
Posts: 67
Joined: Mon Feb 11, 2008 4:24 pm
Location: Seattle, WA

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

Post by gggirlgeek »

So what does the script find?
My current favorite software: MediaMonkey Gold!
nohitter151
Posts: 23640
Joined: Wed Aug 09, 2006 10:20 am
Location: NJ, USA
Contact:

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

Post by nohitter151 »

gggirlgeek wrote:So what does the script find?
It's a tagger designed for 1 album at a time.
MediaMonkey user since 2006
Need help? Got a suggestion? Can't find something?

Please no PMs in reply to a post. Just reply in the thread.
ripndip
Posts: 38
Joined: Fri Oct 02, 2009 12:54 pm

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

Post by ripndip »

bakker_be wrote:
ripndip wrote:
nohitter151 wrote:Trixmoto made an addon "musicip tagger", but I believe it's not working anymore. That was the only "automatic" tagger that MM ever had.
I cant say the script is completely dead but as of 5/19/12 on MM4 I havent gotten any of my files to retrieve a tag.

I either get 100% Success with no updated tag or ".m4a - unanalyzable!", which I'm guessing doesn't work with any format but .mp3? Sometimes i get pending! which gives me hope. But all in all it's not a successful addon.
m4a is indeed unsupported. If you'd ever used the MusicIP Mixer (their own frontend application for the service), you'd know that. wma is problematic at best, but I see no issues at all with mp3 & flac (up to 24bit/192kHz for flac). I also see no issues with analyzing very recent albums (new releases from march 2012).
Thanks! So does that also mean AAC is not supported by Music Brainz? I heard AAC is the best compression, smaller file size better quality.

This wiki says WMA is support by Picard, http://en.wikipedia.org/wiki/MusicBrainz_Picard

Im trying to make a distinction, MusicIP and MusicBrainz Picard are 2 different things? Because this script only finds whole albums, while the old MusicBrainz script checked single tracks. Has the whole technology changed, for the worse? Im looking for a download that will automatically tag tracks, should I go Mixer or Picard?
cmatte
Posts: 18
Joined: Sat Nov 05, 2011 6:07 am

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

Post by cmatte »

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 worked :D
SteveHarveyUK
Posts: 1
Joined: Sun Jul 01, 2012 6:59 am

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

Post by SteveHarveyUK »

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.]
bakker_be
Posts: 25
Joined: Fri Apr 16, 2010 8:06 am

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

Post by bakker_be »

Did you install the script using the installer (mmip-file), or manually? Did you install it for all users?
Galdoran
Posts: 9
Joined: Mon Jul 27, 2009 9:04 pm

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

Post by Galdoran »

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

Would love to try this.
MMuser2011
Posts: 1308
Joined: Mon Oct 17, 2011 8:28 am
Location: Central Europe

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

Post by MMuser2011 »

http://www.mediafire.com/?p9y6drehuwbmz33 from the first page works fine. Do you get an error message for the 7.51MB file?
Magic Nodes v4.3.3 (2018-10-03) last free version SQL Viewer v2.4 (2009-10-25)
ExternalTools v1.4 (2011-05-09) iTunesMonkey 1.0 + Acoustid
Calculate Cover Size v1.7 (2012-10-23) RegExp Find & Replace v4.4.9 (2018-10-03) last free version
Galdoran
Posts: 9
Joined: Mon Jul 27, 2009 9:04 pm

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

Post by Galdoran »

OK. Tried it again and download worked this time!
cybermaven
Posts: 4
Joined: Wed Jan 09, 2008 10:07 pm

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

Post by cybermaven »

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.
dizman

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

Post by dizman »

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
booblers
Posts: 97
Joined: Sat Sep 27, 2008 6:57 pm

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

Post by booblers »

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.
bakker_be
Posts: 25
Joined: Fri Apr 16, 2010 8:06 am

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

Post by bakker_be »

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
Post Reply