Page 1 of 4

Re: BPM not being interpreted correctly (Magic Nodes)

Posted: Thu Feb 20, 2020 8:23 am
by Erwin Hanzl
Hallo sterling,

da gibt es ein böses Script von MM: "AutoIncTrackN.vbs". Gedacht für die Nummerierung von Album-Tracks.
Dieses nummeriert die Song# aufsteigend.
Dieses Script bezieht sich auch auf "SDB.CurrentSongList" und verändert ALLE sichtbaren Dateien.
Führt zur Katastrophe, wenn man nicht richtig selektiert.
Ich empfehle Dir dringend, in allen Deinen Scripts NUR "Set list = SDB.SelectedSongList " zu verwenden.

There is a bad script from MM: "AutoIncTrackN.vbs". Intended for numbering album-tracks.
This numbered the song # in ascending order.
This script also refers to "SDB.CurrentSongList" and changed ALL visible files.
It leads to catastrophe if you don't make the right selection.
I strongly recommend that you ONLY use "Set list = SDB.SelectedSongList" in all your scripts.

Code: Select all

  Set list = SDB.SelectedSongList 
  if list.count<1 then exit sub

Re: BPM not being interpreted correctly (Magic Nodes)

Posted: Wed Feb 19, 2020 5:29 pm
by sterlingm
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
Set list = SDB.CurrentSongList

' 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 < 82) 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

Re: BPM not being interpreted correctly (Magic Nodes)

Posted: Sat Aug 11, 2012 2:58 pm
by ohneland
Ok, I installed the programme MixMeister BPM Analyser and realised that I could not save the value to tag. But I swear that some years ago I did it with this software. I don't remember how though.

Re: BPM not being interpreted correctly (Magic Nodes)

Posted: Thu Aug 09, 2012 8:04 am
by ohneland

Re: BPM not being interpreted correctly (Magic Nodes)

Posted: Sun Feb 19, 2012 10:31 am
by MusicBringer
@Guest, there an MM field called BPM that can be added as a column to your view.
However to display any results it must first be populated with BPM data - now from where do you obtain reliable BPM data....

I would love all my tracks to have a BPM record and be able to play playlists according to the tempo. I wish :roll:

Re: BPM not being interpreted correctly (Magic Nodes)

Posted: Sun Feb 19, 2012 9:13 am
by Guest
turbo88 wrote:hi , as i said in another of my posts, im new here :P so i dont understand much of mm specially scripts. If i understood correctly this script that is being proposed on this thread reads your whole music database, and inputs a tempo number acording to the "speed" of the track right? you can then organize making playllist for taking a nap, chilling in your couch, or even for the gym right? if thats so, then thats exactly what im looking for therefore im asking , how to do it :P

where do i paste the script, what do i need to execute , can any1 explain for dummies?? ill be extremely thankful it'd be a dream to create playlists including every single track that i posses, in an organize way.
I know it's an old thread, but has anyone found a way to add beats per minute into the media monkey screen please?

Re: BPM not being interpreted correctly (Magic Nodes)

Posted: Mon Mar 01, 2010 12:03 pm
by turbo88
hi , as i said in another of my posts, im new here :P so i dont understand much of mm specially scripts. If i understood correctly this script that is being proposed on this thread reads your whole music database, and inputs a tempo number acording to the "speed" of the track right? you can then organize making playllist for taking a nap, chilling in your couch, or even for the gym right? if thats so, then thats exactly what im looking for therefore im asking , how to do it :P

where do i paste the script, what do i need to execute , can any1 explain for dummies?? ill be extremely thankful it'd be a dream to create playlists including every single track that i posses, in an organize way.

Re: BPM not being interpreted correctly (Magic Nodes)

Posted: Wed Sep 23, 2009 8:41 pm
by bouyancy
paulandreas wrote:hey, Kilowatt I get an error trying to run your script.

I am by no means an expert in scripts, that's why I ask here :)

The error reads:
"Error #500 - Microsoft VBScript Runtime error
Variable is undefined: 'i'
File: "C:\Program files\Mediamonkey\Scripts\Auto\Temposetter.vbs",line: 18, Column: 6
"
Do you have any solution to this?

You need to add i to the end of the define variables section like this

Code: Select all

' Define variables
  Dim list, itm, i

Re: BPM not being interpreted correctly (Magic Nodes)

Posted: Mon Aug 17, 2009 5:39 am
by paulandreas
hey, Kilowatt

I get an error trying to run your script.

I am by no means an expert in scripts, that's why I ask here :)

The error reads:
"Error #500 - Microsoft VBScript Runtime error
Variable is undefined: 'i'
File: "C:\Program files\Mediamonkey\Scripts\Auto\Temposetter.vbs",line: 18, Column: 6
"
Do you have any solution to this?

Re: BPM not being interpreted correctly (Magic Nodes)

Posted: Tue Jul 21, 2009 4:13 pm
by Kilowatt
Hi,

after reading your Post on my search for some Script to make Tempo-Tags from BMPs i found nothing to work with the new MediaMonkey Version.

I took some Ideas from other Scripts and here is my result :

Code: Select all

Option Explicit

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
End Sub

  ' Define variables
  Dim list, itm 

  ' Get list of selected tracks from MediaMonkey
  Set list = SDB.CurrentSongList

  ' 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 ="Sehr Langsam"
    If (itm.BPM >= 40) and (itm.BPM < 82) Then itm.Tempo ="Langsam"
    If (itm.BPM >= 83) and (itm.BPM < 145) Then itm.Tempo ="Moderat"
    If (itm.BPM >= 145) and (itm.BPM < 200) Then itm.Tempo ="Schnell"
    If (itm.BPM >= 200) Then itm.Tempo ="Sehr Schnell"
    ' Clear the other Tags if you want    
    ' itm.Quality = ""
    ' itm.mood = ""
    ' itm.occasion = ""
  Next
  ' Write all back to DB and update tags
  list.UpdateAll
Maybe somebody can use the Script. I tried it today with all my MP3s. It took some time, but worked :-)

Greetings,

Kilowatt

Re: BPM not being interpreted correctly (Magic Nodes)

Posted: Thu Jan 29, 2009 4:38 pm
by rovingcowboy
audacity has a beat finder feature just import your ogg mp3 or wav in to it like your going to edit it.

select all and then use the beat finder in it to find the beat for the one song. write it down on notepad if you don't want to add it to the song. then just close the song with out saving anything it does not do anything to the file you import from. so you still have the same quality of mp3 or ogg or wav you had before but now you know the beat per minute for it.

just one song at a time is a bummer. still you could find the beat for a style of song, and then use that script in the script forum that is for setting the bpm and the one setting the tempo, the ones i re modded to work on my 98. then you will be able to select all the songs of the same style you know the beat for, and set them all to the same one with that script.

not a fully automatic way of doing it but it will be faster then one song at a time. :D

Re: BPM not being interpreted correctly (Magic Nodes)

Posted: Wed Jan 28, 2009 10:00 pm
by mistresso
Theoretically with BPM Detector Pro, you *could* use the option for writing the BPM to the filename itself. One could do this and then use an appropriate mask in "Get tags from file name" to get the BPM back out.

I find the program rather hard to use though - the interface is clunky and doesn't even remember the previous folder I was working in when navigating my file structure. And it shows VERY little information; for example, I'd at least like to see the existing BPM value! I know it's fairly cheap shareware, but it FEELS cheap. And there's been almost nothing done to it for several years... the demo definitely does NOT write to the tag.

Has anyone else looked at beaTunes? It requires an ITunes db, as do most BPM detectors, but it has built in functionality to half/double the findings as well as do tap-outs. It's pretty slick, and the author is working on a verson 2.0 as we speak. His in-progress copies of 2.0 are free to download and test via the blog/news, but expire in 2 weeks. It also will have a Key finder in the next version.

Honestly what the community NEEDS is for the bpm to end up as a common field/tag shared stored on the public databases we all use, so we're not all doing the same work over and over. I know Revolution was trying to do this, but again only with THEIR database, only used by other people with Revolution.

Re:

Posted: Mon Jan 26, 2009 10:58 pm
by deusdiabolus
Guest wrote:just so you can know what style of music is what according to this key.

VerySlow BPM between 0 and 56 = lots of kids songs fit this one like the song : ten little indians

Slow BPM between 57 and 82 = some blues and jazz but this is almost too slow for them.

Moderate BPM between 83 and 145 = some Jazz and blues but it is almost too fast for them. most country and rock and roll and disco.


Fast BPM between 146 and 200 = most marches and bluegrass breakdowns are around 120-155 bpm's which are here.

VeryFast BPM faster then 200 = breakneck acid rock and people on rocket ship speed songs. very few of these songs are around as they tend to give the drummers heartattacks.
An alternate way of looking at it, just for phun:

VerySlow BPM between 0 and 56 = ambient music (i.e. Global Communication, Brian Eno), noise (i.e. Merzbow)

Slow BPM between 57 and 82 = some trip-hop/downtempo/ambient with beats (i.e. Portishead, some things on Ninja Tune)

Moderate BPM between 83 and 145 = most things will fall into this range: pop, rock, dance, jazz, blues, world music.

Fast BPM between 146 and 200 = in addition to bluegrass, most drum & bass and psychedelic trance will fall into this range.

VeryFast BPM faster then 200 = more recent drum & bass tracks, gabber/hardcore techno/speed metal.

Posted: Sun Jan 13, 2008 6:16 pm
by Big_Berny
Well, it just happens that MixMeister or any other BPM Analyzer detects double or half BPM, because it doesn't know wich is the most important beat. But this happens with every BPM Analyzer AFAIK.

Posted: Sun Jan 13, 2008 5:55 pm
by jonp
limex - I am also not convinced about the results of Mixmeister BPM Analyzer. Did you find a solution for using Mixmeister BPM Analyzer or did you find a better solution?