-
Notifications
You must be signed in to change notification settings - Fork 0
/
BeatCounter.html
191 lines (163 loc) · 8.27 KB
/
BeatCounter.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>BeatCounter</title>
<link rel="stylesheet" href="/css/reset.css" type="text/css" />
<link rel="stylesheet" href="/css/default.css" type="text/css" />
<link rel="stylesheet" href="/css/button.css" type="text/css" />
<script language="javascript" src="/js/email.js"></script>
<!-- google analytics -->
<script type='text/javascript'>
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type='text/javascript'>
var pageTracker = _gat._getTracker("UA-4400684-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
</head>
<body>
<div id="smallheader">
<div class="wrapper">
<div id="logo">
<a href="/"><img src="/images/ta_logo_inverted.png" alt="Teragon Audio"/></a>
</div>
<!--
<div id="right">
<form method="get" id="searchform" action="#">
<fieldset class="search">
<input type="text" class="box" />
<button class="btn" title="Search">Search</button>
</fieldset>
</form>
</div>
-->
</div>
</div>
<div id="contentpart">
<div class="wrapper">
<ul class="menu">
<li class="menuitem"><a href="index.html">Home</a></li>
<li class="menuitem"><a href="/software.html">Software</a></li>
<li class="menuitem"><a href="/developers.html">Developer Portal</a></li>
<li class="menuitem"><a href="/performers.html">Performer Portal</a></li>
<li class="menuitem"><a href="/contact.html">Contact</a></li>
</ul>
<div id="content">
<div id="main" class="news">
<!-- Start content -->
<h1 id="beatcounter">BeatCounter</h1>
<p><strong>NOTE</strong>: This software is unsupported and is no longer being updated or
maintained. It likely will not work on newer versions of macOS.</p>
<p>BeatCounter is a simple plugin designed to facilitate beatmatching software
and turntables. It displays the current tempo in beats per minute (BPM), and
an accumulated average over the last few seconds. BeatCounter is the perfect
tool for DJ’s that want to integrate computer effects with turntables or a
live band.</p>
<p><img src="http://static.teragonaudio.com/website/ta_beatcounter.jpg" alt="BeatCounter User Interface" /></p>
<h2 id="parameters">Parameters</h2>
<p>BeatCounter has the following controls available in its plugin editor window:</p>
<ul>
<li>Current BPM: Shows the actual tempo in beats per minue, updated every beat.</li>
<li>Running BPM: Shows the average tempo over the last few seconds. The number
of seconds used when calculating this value can be set with the “Period”
knob.</li>
<li>Beat: This light will pulse with the beat. If you don’t see it flashing in
time with music, then try tweaking the filter and tolerance knobs until it
starts to pulse in time.</li>
<li>Reset: Press this button to recalibrate the plugin for the input source. The
BPM display will briefly be reset to 0.0 and all BPM history will be erased.
Other parameters will retain their settings.</li>
<li>Use Host Tempo: When activated, BeatCounter will assume that the input
source is roughly equal to the sequencer’s tempo. This is most appropriate
for experienced DJ’s looking to get a fine-tuned BPM display in order to
match the sequencer’s tempo to this value. When activated, the minimum and
maximum BPM will be forced to +/- 16BPM of the host sequencer’s current
tempo.</li>
<li>Filter: Enables a lowpass filter to improve beat detection. This setting
makes sense when beat-matching with electronic music, and hence is limited
to at most 500 Hz. Users attempting to calculate tempo with a live drummer
may find the filter too restrictive and should try disabling it for best
results.</li>
<li>Tolerance: Determines how loud a beat is relative to the loudest calculated
sample. For music with a prominent and loud kick (like most dance music),
the default value of 75% should be sufficient. For highly compressed music
with little dynamic range, a higher value should be used. When tuning this
knob, pay attention to the beat light, which should pulse in time with the
kick drum when correctly tuned.</li>
<li>Period: Determines how many seconds should be considered when calculating
Running BPM.</li>
</ul>
<h2 id="limitations">Limitations</h2>
<p>As BeatCounter was designed for beat-matching electronic dance music with a
host sequencer, it performs particularly well under these settings but may not
yield accurate results with other types of music. BeatCounter’s calculation
algorithm assumes a 4/4 tempo, and expects either 2 or 4 beats (kick drums) to
be present every bar.</p>
<p>So for standard techno and house tracks, BeatCounter should be quite accurate.
BeatCounter has an internal range of 60-180 BPM, and it will double the BPM
for slow but consistent tempos. That is, if a song is 120BPM but has a kick on
every second beat (ie, on the 2/4), this would technically be 60BPM. However,
BeatCounter will double this value and display 120BPM, which is correct in
most cases.</p>
<p>This means that BeatCounter will not do well with unconventional beat
patterns. A tap BPM feature would be necessary to provide tempo hints, this
<a href="https://github.com/teragonaudio/BeatCounter/issues/16">feature is being considered</a> for a future version of the software.</p>
<h2 id="sending-midi-beat-clock-to-synchronize-a-host">Sending MIDI Beat Clock to Synchronize a Host</h2>
<p>An oft-requested feature for BeatCounter is the ability to send <a href="https://en.wikipedia.org/wiki/MIDI_beat_clock">MIDI beat
clock</a> so that a host could sync directly to this tempo. Unfortunately this
is not possible with the plug-in version of BeatCounter. Although there is no
technical limitation that would prohibit a host from syncing to MIDI beat
clock, no sequencer actually does this. That is, all popular sequencers
(including Ableton Live, Logic Pro X, and Cubase) ignore MIDI beat clock
messages sent from a plugin and cannot synchronize to this.</p>
<p>It would however be possible to send beat clock messages from a standalone
application, this is a <a href="https://github.com/teragonaudio/BeatCounter/issues/6">feature that is being considered</a> but might be
limited to Mac OSX and Linux only, due to the nature of virtual MIDI devices
on Windows.</p>
<hr />
<p>Changelog:</p>
<p>Version 2.1:</p>
<ul>
<li>New GUI built with TeragonGuiComponents 1.4.2</li>
<li>Changing license to GPL2 to match Juce</li>
<li>Fix AU validation problem</li>
<li>Migrate to PluginParameters 3.x API</li>
</ul>
<p>Version 2.0:</p>
<ul>
<li>Improved accuracy of BPM calculation algorithm</li>
<li>New GUI with more controls, clearer button names</li>
<li>64-bit Universal Binary on Mac OSX</li>
<li>Linux binary (32 & 64-bit)</li>
<li>Now using JUCE for plugin wrapper, graphics, etc.</li>
<li>Minor performance improvements</li>
</ul>
<p>Version 1.3:</p>
<ul>
<li>Bugfixes</li>
</ul>
<!-- End content -->
</div>
<div id="sidebar">
<ul class="sidemenu">
<li><a href="http://static.teragonaudio.com/downloads/BeatCounterBeatCounter.zip" class="downloadbutton"><b>Download</b></a><p></p></li>
<li><a href="https://github.com/teragonaudio/BeatCounter/zipball/master">Source code</a></li>
<li><a href="https://github.com/teragonaudio/BeatCounter">Project page</a></li>
</ul>
</div>
</div>
<div style="clear:both;"></div>
<div id="bottom">
<p class="footer">
<b>Having problems with this software?</b> Send an email to
<script>mail2("support", "teragonaudio", 0, "subject=BeatCounter", "support at teragonaudio dot com")</script>.
Copyright (c) 2012 Teragon Audio. All Rights Reserved.
</p>
</div>
</div>
</div>
</body>
</html>