Saw this thread and wanted to relay what worked for me.
I used tuneXplorer from AbyssMedia and had it update the mp3 files of my collection: 7300+ files. Took an hour. This added BPM and "Initial Key" to the MP3 using tag v2. This is native for mp3's but is not currently in MediaMonkey so it also saved the "Initial Key" to the front of the Comment section. As soon MM handles "Initial Key" it'll be available natively since it's in the mp3 tag.
Once that was done, I needed a way to set the TEMPO in MM since that's a more readable way to create playlists.
But first I rescanned the library for good measure even though when looking at properties the tags were showing up.
After the rescan...
The below script was great but it didn't work. I was able to correct the below code and pasted it below. Basically it wasn't inside a Sub / End Sub block, the 'i' variable was added, and I changed the language to be english throughout.
Here's how to make it work as a script:
1 - Create a file called AutoTempoBPM.vbs in the scripts folder of MediaMonkey.
2 - Copy the "TEMPO CODE" code into AutoTempoBPM.vbs - Save this file. (It can now be closed.)
3 - Edit the Scripts.ini file and add the "Scripts INI" code listed below to the bottom of this file.
NOTE: If you have another script with an order of '60' you'll want to change the number to a number not currently used in the INI file.
4 - Save Scripts.ini and close it.
5 - Open MediaMonkey. You should now see a script called AutoTempoBPM in the list for Tools-Scripts. When you select the script it will activate without warning and do its thing in the background. It's super fast. Did all 7300+ files in about 10 minutes
NOTE: It will process on whatever songs are showing in your current window. So if you just want to do a single album select the album on the left and it'll process against that album only - because only those songs from that album are showing in the main window. If you have your entire library (which is what I wanted) showing it'll process all of the files.
That's it. All files in my library now have Tempo, BPM, and "Initial Key" tagged. Again, "Initial Key" is saved in the mp3 tag but it's also placed in the comments of each file, so until this is native in MediaMonkey you'll only see it in the Comments.
It's not as fancy as the other scripts available but the original poster did a good job putting it together and I appreciate the efforts.
Hope this is helpful to someone else.
-Sterling
Scripts INI
Code: Select all
[AutoTempoBPM]
FileName=AutoTempoBPM.vbs
ProcName=AutoTempoBPM
Order=60
DisplayName=Auto TEMPO...
Description=Auto assign TEMPO based on BPM tag value...
Language=VBScript
ScriptType=0
TEMPO CODE
Code: Select all
Sub AutoTempoBPM
' REM Sub SetTempo
' REM "Very Slow" for BPM between 0 and 56
' REM "Slow" for BPM between 57 and 82
' REM "Moderate" for BPM between 83 and 145
' REM "Fast" for BPM between 146 and 200
' REM "Very Fast" for BPM > 200
' REM End Sub
' Define variables
Dim list, itm, i
' Get list of selected tracks from MediaMonkey
' DO NOT USE CurrentSongList to get selected tracks. It can go badly if selections are not done properly. Set list = SDB.CurrentSongList
Set list = SDB.SelectedSongList
if list.count<1 then exit sub
' Process all selected tracks
For i=0 To list.count-1
Set itm = list.Item(i)
' Check the BPM and set Tempo
If (itm.BPM < 40) Then itm.Tempo = "Very Slow"
If (itm.BPM >= 40) and (itm.BPM < 83) Then itm.Tempo = "Slow"
If (itm.BPM >= 83) and (itm.BPM < 145) Then itm.Tempo = "Moderate"
If (itm.BPM >= 145) and (itm.BPM < 200) Then itm.Tempo = "Fast"
If (itm.BPM >= 200) Then itm.Tempo = "Very Fast"
' Clear the other Tags if you want
' itm.Quality = ""
' itm.mood = ""
' itm.occasion = ""
Next
' Write all back to DB and update tags
list.UpdateAll
End Sub
Saw this thread and wanted to relay what worked for me.
I used tuneXplorer from AbyssMedia and had it update the mp3 files of my collection: 7300+ files. Took an hour. This added BPM and "Initial Key" to the MP3 using tag v2. This is native for mp3's but is not currently in MediaMonkey so it also saved the "Initial Key" to the front of the Comment section. As soon MM handles "Initial Key" it'll be available natively since it's in the mp3 tag.
Once that was done, I needed a way to set the TEMPO in MM since that's a more readable way to create playlists.
But first I rescanned the library for good measure even though when looking at properties the tags were showing up.
After the rescan...
The below script was great but it didn't work. I was able to correct the below code and pasted it below. Basically it wasn't inside a Sub / End Sub block, the 'i' variable was added, and I changed the language to be english throughout.
Here's how to make it work as a script:
1 - Create a file called AutoTempoBPM.vbs in the scripts folder of MediaMonkey.
2 - Copy the "TEMPO CODE" code into AutoTempoBPM.vbs - Save this file. (It can now be closed.)
3 - Edit the Scripts.ini file and add the "Scripts INI" code listed below to the bottom of this file.
NOTE: If you have another script with an order of '60' you'll want to change the number to a number not currently used in the INI file.
4 - Save Scripts.ini and close it.
5 - Open MediaMonkey. You should now see a script called AutoTempoBPM in the list for Tools-Scripts. When you select the script it will activate without warning and do its thing in the background. It's super fast. Did all 7300+ files in about 10 minutes
NOTE: It will process on whatever songs are showing in your current window. So if you just want to do a single album select the album on the left and it'll process against that album only - because only those songs from that album are showing in the main window. If you have your entire library (which is what I wanted) showing it'll process all of the files.
That's it. All files in my library now have Tempo, BPM, and "Initial Key" tagged. Again, "Initial Key" is saved in the mp3 tag but it's also placed in the comments of each file, so until this is native in MediaMonkey you'll only see it in the Comments.
It's not as fancy as the other scripts available but the original poster did a good job putting it together and I appreciate the efforts.
Hope this is helpful to someone else.
-Sterling
Scripts INI
[code]
[AutoTempoBPM]
FileName=AutoTempoBPM.vbs
ProcName=AutoTempoBPM
Order=60
DisplayName=Auto TEMPO...
Description=Auto assign TEMPO based on BPM tag value...
Language=VBScript
ScriptType=0
[/code]
TEMPO CODE
[code]Sub AutoTempoBPM
' REM Sub SetTempo
' REM "Very Slow" for BPM between 0 and 56
' REM "Slow" for BPM between 57 and 82
' REM "Moderate" for BPM between 83 and 145
' REM "Fast" for BPM between 146 and 200
' REM "Very Fast" for BPM > 200
' REM End Sub
' Define variables
Dim list, itm, i
' Get list of selected tracks from MediaMonkey
' DO NOT USE CurrentSongList to get selected tracks. It can go badly if selections are not done properly. Set list = SDB.CurrentSongList
Set list = SDB.SelectedSongList
if list.count<1 then exit sub
' Process all selected tracks
For i=0 To list.count-1
Set itm = list.Item(i)
' Check the BPM and set Tempo
If (itm.BPM < 40) Then itm.Tempo = "Very Slow"
If (itm.BPM >= 40) and (itm.BPM < 83) Then itm.Tempo = "Slow"
If (itm.BPM >= 83) and (itm.BPM < 145) Then itm.Tempo = "Moderate"
If (itm.BPM >= 145) and (itm.BPM < 200) Then itm.Tempo = "Fast"
If (itm.BPM >= 200) Then itm.Tempo = "Very Fast"
' Clear the other Tags if you want
' itm.Quality = ""
' itm.mood = ""
' itm.occasion = ""
Next
' Write all back to DB and update tags
list.UpdateAll
End Sub[/code]