BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limited ]

Post a reply

Smilies
:D :) :( :o :-? 8) :lol: :x :P :oops: :cry: :evil: :roll: :wink:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limited ]

Re: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limit

by MarineBrat » Fri Mar 15, 2013 9:15 am

It doesn't work in 4.0.7 for me. Yes, the screen comes up, and the [TAP] button records the timing of your taps, but when I click on [Save] nothing happens. BPM is not written to the database nor the file tag.

Any hope of getting this updated for 4.0.7?

Re: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limit

by surfer » Fri Apr 13, 2012 1:57 pm

it works again with the newest ver 4

Re: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limit

by beg » Fri Apr 13, 2012 12:27 pm

Hi,

what about BPM-Tapper and latest version of MM 4?

I used this tool a lot and I do miss it! Any chance to geet it - is there an alternativ? (for a portable installation btw..)

thx,
Bernhard

Re: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limited ]

by surfer » Sat Aug 15, 2009 5:03 am

I have a strange issue wit the this script:

BPMtapper does not work on a fresh install of MM 3.1 an a new winXP sp3.

But also on my old PC BPMtapper does not work with MM 3.1 when i delete from the harddisk the older version of MM 3.05:
originally i had the script working in MM 3.0.5. Afterwords i installed the new version of MM 3.1 into a different directory and did not uninstall MM 3.0.5.
I istalled BPNtapper to the new MM 3.1 as well and it is working with MM 3.1 without problems but only when the old directory of MM 3.0.5 is still there. When i delete it the BPMtapper panel is not shown anymore in the new MM 3.1. i get an error instead: "the web seite cannot be shown".

The same error nstead of the panel shows on the new PC with only the new MM 3.1.

Re: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limited ]

by surfer » Thu Feb 05, 2009 4:42 am

mistresso wrote:
What I've seen with some integrated tappers though - ie, ones accompanying apps that did BPM analysis - was that they would actually look at the "original" BPM field, assume if you were tapping it out that it was inaccurate, and then try to contextually determine if you were hitting a fractional value of the stored value. IE, say the track was set to 120 incorrectly. The tapper will then "see" any tapped average of 60bpm +/- 10 beats as 60, and lock onto that value.

I like that idea.
good one, I will try and incorporate it.
Yes, it's very often so that BPM software like "Mixmeister BPM Analyser" finds a BPM value half or double of the correct one.

An option like that suggested by mistresso would be exactly the thing to "round up" the BPM.tapper and make it a "perfect thing" :-)

Re: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limited ]

by Just JP » Wed Jan 21, 2009 9:55 pm

DaledeSilva wrote:
I will give it a background image that you can replace.
Thanks!

I believe there are several scripts like this that were written a while ago which are very useful but get "lost" unless you stumble across them. Just the fact that we are discussing it now will bring this script to the attention of a whole group of users.

Keep up the good work.

Jim

Re: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limited ]

by mistresso » Wed Jan 21, 2009 1:04 am

Heh, well the search is still on for a seasoned BPM analyzer that actually does everything we want without making a big mess or running off the Itunes library. It's funny that with all the music apps we have for the PC, there is simply nothing out there that writes to the ID3 tag and isn't totally half-assed. Heck, most of the apps haven't even been updated since 2005.

I think most people look at the calculus required to actually figure out BPM's - which is still only 60% accurate at best - and flee in terror.

I just wish some of the audio engineers out there would put their heads together and come out with an open source library that could be shared.I can't blame the folks who want to make a buck off their hard work, but the fact is that the science still does not work reliably - which seems to scream for a cooperative and not capitalistic solution at this point.

Re: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limited ]

by DaledeSilva » Tue Jan 20, 2009 10:28 pm

mistresso wrote:What I've seen with some integrated tappers though - ie, ones accompanying apps that did BPM analysis - was that they would actually look at the "original" BPM field, assume if you were tapping it out that it was inaccurate, and then try to contextually determine if you were hitting a fractional value of the stored value. IE, say the track was set to 120 incorrectly. The tapper will then "see" any tapped average of 60bpm +/- 10 beats as 60, and lock onto that value.
I like that idea.
good one, I will try and incorporate it.
Just JP wrote:One thing I find myself wishing for is the ability to skin the script. I use the Eclipse skin which is a dark skin and BPM.Tapper is very white.
Jim
I will give it a background image that you can replace.


I guess the reason that I haven't fixed / worked on this script is because i've always got another script in int he back of my mind that will incorporate this into it. However, that script also hasn't been addressed yet.
I will see what I can do to get these small edits happening.

thanks for commenting on my script!

:)

Re: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limited ]

by Just JP » Tue Jan 20, 2009 9:42 pm

The script works great for my needs in MM 3.1 also. I don't use the "save" button but it would be nice if I could.

I use it either manually check a BPM value determined by MixMeister or when I'm to lazy to open MixMeister for an individual tracks. One thing I find myself wishing for is the ability to skin the script. I use the Eclipse skin which is a dark skin and BPM.Tapper is very white.

Jim

Re: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limited ]

by mistresso » Tue Jan 20, 2009 10:14 am

Hrm, maybe what we need then is just a simple script to rewrite existing BPM's that are selected. It wouldn't make as much sense in combination with the BPM tapper.

What I've seen with some integrated tappers though - ie, ones accompanying apps that did BPM analysis - was that they would actually look at the "original" BPM field, assume if you were tapping it out that it was inaccurate, and then try to contextually determine if you were hitting a fractional value of the stored value. IE, say the track was set to 120 incorrectly. The tapper will then "see" any tapped average of 60bpm +/- 10 beats as 60, and lock onto that value. Really helps for some of us rhythmically-challeneged people.

Re: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limited ]

by surfer » Tue Jan 20, 2009 2:41 am

It works excelently with MM 3.1:-)

Re: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limited ]

by mistresso » Mon Jan 19, 2009 6:26 pm

Just wondering on the current status of this script, as the last poster said it wasn't working on MM3 very well.

External programs still seem to be the way to go - due to all the math that goes into guesstimating beats - but with the ever present doubling/halving issue with BPM calculations, having a batchable button to quickly override the false calcs would be very useful. To date I think I've only seen it in ONE app, (beaTunes?), even though it's requested numerous times on forums.

Still though, no one has even written a good external app that works well enough for us non-DJ's. Beatunes seems to have the most features, but like Rapid Evolution and most other apps, it works only off playlists and Itunes databases. Other apps are Mac-only (the main OS used by DJ's and musicians), or write to the comments field and hork up tags in other ways.

I'd use MixMeister but it's TOO simple, and its speed means it reports a lot of the doubled/halved figures - but with no easy way to correct them save manual editing.

Re: BPM.tapper [v1.0] - time BPM 's in MM [MM 2 / MM 3 limited ]

by molnium » Wed Oct 08, 2008 8:06 am

Hello!

Many thanks for this extremely useful script!! I used it a lot, but now with MM 3.0.3++ it seems that it doesnt work anymore (doesn't save the BPM into the file), at least on my machine!?

On another take, i would like to add some features:
* read the BPM tag, if there is one, and put the value into the field
* buttons for dividing / multipliyng the value with 2 and 3

Like this, one can easily fix wrong BPMs wich are half or doubles of the real PBM, or in rare cases a third....

I tried to work on the html script, but since it didnt work on my machine, i couldn't test anything and gave up.

Many Thanks!!!
greetings
m


++edit: btw here is the modified BPMtapper.html

Code: Select all

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>
<HEAD>

<SCRIPT Language='VBScript'>

	Sub setBPM(value,skip)
		Dim SDB : Set SDB = CreateObject("SongsDB.SDBApplication")
		Dim curSong : Set curSong = SDB.Player.CurrentSong
		
		curSong.BPM = value
		curSong.UpdateDB
		curSong.WriteTags
		
		If skip Then
        	SDB.Player.Next()
			SDB.Player.PlaybackTime = SDB.Player.CurrentSongLength*0.1
		End If 
		
		Set curSong = Nothing
		Set SDB = Nothing
	End Sub
	
</SCRIPT>


<SCRIPT language=JavaScript>
	<!-- Original:  Derek Chilcote-Batto (dac-b@usa.net) -->
	<!-- Web Site:  http://www.mixed.net -->
	<!-- Modified by:  Ronnie T. Moore, Editor -->
	<!-- Later Modified into this version by Dale de Silva (www.oiltinman.net) for use in the programming MediaMonkey (www.mediamonkey.com)
	<!-- Ronnie T's script and many more are available free online at -->
	<!-- The JavaScript Source!! http://javascript.internet.com -->
	
	<!-- Netscape 4.x+ and MSIE 4.x+ compatible. --!>
	
	
	<!-- Begin
	ns = (navigator.appName == 'Netscape');
	ie = (navigator.appName == 'Microsoft Internet Explorer');
	
	secs2 = 0;
	count = 0;
	allBpm = 0;
	avgBpm = 0;
	bpm = 0;
	
	function resetAll() {
		<!--reset all--!>
		secs2 = 0;
		count = 0;
		allBpm = 0;
		bpm = 0;
		
		BPMtoSave = avgBpm
		avgBpm = 0;
		
		document.BEATSPERMINUTE.AVG.value = "";
		document.BEATSPERMINUTE.HIT.value = "";
		document.BEATSPERMINUTE.ACG.value = "";
	}
	
	function multB(e){
		if(avgBpm>0){
			avgBpm = avgBpm * e;
			// document.BEATSPERMINUTE.AVG.value = avgBpm;
			document.BEATSPERMINUTE.AVG.value = (Math.round(avgBpm * 100)) / 100;
			}
		return true;
	}
	
	function divB(e){
		if(avgBpm>0){
			avgBpm = avgBpm / e;
			// document.BEATSPERMINUTE.AVG.value = avgBpm;
			document.BEATSPERMINUTE.AVG.value = (Math.round(avgBpm * 100)) / 100;
			}
		return true;
	}	
	
	function saveBPM(){
		if(avgBpm>0){
			resetAll();
			document.BEATSPERMINUTE.AVG.value = "Saved";
			document.BEATSPERMINUTE.HIT.value = "";
			document.BEATSPERMINUTE.ACG.value = "";
			//VBscript call MUST go at end or the other actions wont complete
			if(document.BEATSPERMINUTE.SKIP.checked == true){
				setBPM(BPMtoSave,true);
			} else {
				setBPM(BPMtoSave,false);
			}
		} else {

		}
	}
	
	function bpmCounter(e) {

		//if (ns) clearBpm = e.which;
		//else if (ie) clearBpm = event.button;
		
		timeSeconds = new Date;
		secs = timeSeconds.getTime();
		
		if (count == 0) {
			document.BEATSPERMINUTE.AVG.value = "Begin When Ready";
			document.BEATSPERMINUTE.HIT.value = "";
			document.BEATSPERMINUTE.ACG.value = "";
			count = "start"
		} else if (count == "start"){
			document.BEATSPERMINUTE.AVG.value = "1st Click";
			document.BEATSPERMINUTE.HIT.value = "";
			document.BEATSPERMINUTE.ACG.value = "";
			count = 1
			secs2 = secs;
		} else {
			oldBpm = bpm;
			bpm = (1 / ((secs - secs2) / 1000)) * 60;
			bpmChg = (Math.round((bpm - oldBpm) * 10)) / 10;
			count++;
			allBpm = allBpm + bpm;
			oldAvg = avgBpm;
			avgBpm = allBpm / (count - 1);
			avgChg = (Math.round((avgBpm - oldAvg) * 10)) / 10;
			secs2 = secs;
			if (bpmChg >= 0) {
				PbpmChg = "+" + bpmChg
			} else {
				PbpmChg = bpmChg
			}
			if (avgChg >= 0) {
				PavgChg = "+" + avgChg
			} else {
				PavgChg = avgChg
			}
			document.BEATSPERMINUTE.AVG.value = (Math.round(avgBpm * 100)) / 100;
			document.BEATSPERMINUTE.ACG.value = PavgChg;
			document.BEATSPERMINUTE.HIT.value = count;
		}
		return true;
	}
	//document.onkeydown = bpmCounter;
	//document.onmousedown = bpmCounter;
	//  End -->
	
</SCRIPT>

<STYLE type="text/css">
	
	h1 {
		font-size: 11px;
		font-family:Verdana, Arial, Helvetica, sans-serif;
		text-align: center;
		color: #999999;
		
	}
	
	h2 {
		font-size: 10px;
		font-family:Verdana, Arial, Helvetica, sans-serif;
		text-align: center;
		color: #999999;
	}
	
	h3 {
		font-size: 9px;
		font-family:Verdana, Arial, Helvetica, sans-serif;
		text-align: center;
		color: #BBBBBB;
	}
	
	feedback {
		font-size: 15px;
		font-family:Verdana, Arial, Helvetica, sans-serif;
		color: #000000;
		text-align: right;
	}
		
	html {
	   overflow:false;
	}
	
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
</STYLE>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD>
<BODY bgColor=#FFFFFF>

<FORM name=BEATSPERMINUTE>
	<table width="100%" height="100%" border="0">
      <tr>
        <td>
		  <h2>
		  <input name="tap" type=button value="        TAP        " onMouseDown="bpmCounter(null)" onKeyPress="bpmCounter(null)">
		  <BR/>
		  <input name="Button" type=button value=" Clear " onClick="resetAll()">
		  <input name="save" type=button value=" Save " onClick="saveBPM()">
		  <BR/>
		  <INPUT size=14 name=AVG>
		  <br>
		  <input name="mult2" type=button value=" &#8226; 2" onClick="multB(2)">
          <input name="div2" type=button value=" &divide; 2" onClick="divB(2)">
          <br/>
          <input name="mult3" type=button value=" &#8226; 3" onClick="multB(3)">
          <input name="div3" type=button value=" &divide; 3" onClick="divB(3)">
          <BR/>
		  Diff.<input size=2 name=ACG>No.<INPUT size=2 name=HIT>
		  <BR/>
		  Skip Song On Save 
		  <input name=SKIP type="checkbox" value="skip">
		  </h2>
	    <h3>If clicking "TAP" with your mouse doesn't seem to be registering every hit.. use your spacebar		  </h3>		</td>
      </tr>
    </table>
</FORM>

</BODY></HTML>

by Bex » Sun Nov 11, 2007 9:16 am

I also use this for filetypes not supported by MixMeister! :)

by DaledeSilva » Sun Nov 11, 2007 8:43 am

you're right.. if you music get's acurate bpms from that program, it's alot more efficient to use that.

however, the reason I created this script is that while that program can return an 'acurate' bpm, with slower music, it's usually not the beat we're interested in that mixmeister uses...
eg. for a song which we'd want to know is 60bpm, it would probably return 120bpm

so the timing is acurate.. but doesn't give any indication of the "speed" of the song.

Dale.

Top