chromaprint-fixed
Version:
A JavaScript implementation of AcoustID Chromaprint
158 lines (130 loc) • 17.7 kB
HTML
<html>
<head>
<title>algorithms.coffee</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
<link rel="stylesheet" media="all" href="../docco.css" />
</head>
<body>
<div id="container">
<div id="background"></div>
<ul id="jump_to">
<li>
<a class="large" href="javascript:void(0);">Jump To …</a>
<a class="small" href="javascript:void(0);">+</a>
<div id="jump_wrapper">
<div id="jump_page_wrapper">
<div id="jump_page">
<a class="source" href="algorithms.html">
src/algorithms.coffee
</a>
<a class="source" href="calculator.html">
src/calculator.coffee
</a>
<a class="source" href="chroma.html">
src/chroma.coffee
</a>
<a class="source" href="fpcalc.html">
src/fpcalc.coffee
</a>
<a class="source" href="silenceRemover.html">
src/silenceRemover.coffee
</a>
</div>
</div>
</li>
</ul>
<ul class="sections">
<li id="title">
<div class="annotation">
<h1>algorithms.coffee</h1>
</div>
</li>
<li id="section-1">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-1">¶</a>
</div>
<p>Algorithms for chromaprint. These are ripped shamelessly from
<a href="https://bitbucket.org/acoustid/chromaprint/src">AcoustID Chromaprint</a></p>
</div>
<div class="content"><div class='highlight'><pre>
@chromaprint ?= {}
filterCoefficients = [ <span class="hljs-number">0.25</span>, <span class="hljs-number">0.75</span>, <span class="hljs-number">1</span>, <span class="hljs-number">0.75</span>, <span class="hljs-number">0.25</span> ]
algorithms =
<span class="hljs-number">1</span>:
filterCoefficients: filterCoefficients
interpolate: <span class="hljs-literal">false</span>
classifierCoefficients: [
{ f: [<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">3</span>, <span class="hljs-number">15</span>], q: [<span class="hljs-number">2.10543</span>, <span class="hljs-number">2.45354</span>, <span class="hljs-number">2.69414</span>] }
{ f: [<span class="hljs-number">1</span>, <span class="hljs-number">0</span>, <span class="hljs-number">4</span>, <span class="hljs-number">14</span>], q: [<span class="hljs-number">-0.345922</span>, <span class="hljs-number">0.0463746</span>, <span class="hljs-number">0.446251</span>] }
{ f: [<span class="hljs-number">1</span>, <span class="hljs-number">4</span>, <span class="hljs-number">4</span>, <span class="hljs-number">11</span>], q: [<span class="hljs-number">-0.392132</span>, <span class="hljs-number">0.0291077</span>, <span class="hljs-number">0.443391</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">0</span>, <span class="hljs-number">4</span>, <span class="hljs-number">14</span>], q: [<span class="hljs-number">-0.192851</span>, <span class="hljs-number">0.00583535</span>, <span class="hljs-number">0.204053</span>] }
{ f: [<span class="hljs-number">2</span>, <span class="hljs-number">8</span>, <span class="hljs-number">2</span>, <span class="hljs-number">4</span>], q: [<span class="hljs-number">-0.0771619</span>, <span class="hljs-number">-0.00991999</span>, <span class="hljs-number">0.0575406</span>] }
{ f: [<span class="hljs-number">5</span>, <span class="hljs-number">6</span>, <span class="hljs-number">2</span>, <span class="hljs-number">15</span>], q: [<span class="hljs-number">-0.710437</span>, <span class="hljs-number">-0.518954</span>, <span class="hljs-number">-0.330402</span>] }
{ f: [<span class="hljs-number">1</span>, <span class="hljs-number">9</span>, <span class="hljs-number">2</span>, <span class="hljs-number">16</span>], q: [<span class="hljs-number">-0.353724</span>, <span class="hljs-number">-0.0189719</span>, <span class="hljs-number">0.289768</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">2</span>, <span class="hljs-number">10</span>], q: [<span class="hljs-number">-0.128418</span>, <span class="hljs-number">-0.0285697</span>, <span class="hljs-number">0.0591791</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">9</span>, <span class="hljs-number">2</span>, <span class="hljs-number">16</span>], q: [<span class="hljs-number">-0.139052</span>, <span class="hljs-number">-0.0228468</span>, <span class="hljs-number">0.0879723</span>] }
{ f: [<span class="hljs-number">2</span>, <span class="hljs-number">1</span>, <span class="hljs-number">3</span>, <span class="hljs-number">6</span>], q: [<span class="hljs-number">-0.133562</span>, <span class="hljs-number">0.00669205</span>, <span class="hljs-number">0.155012</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">3</span>, <span class="hljs-number">6</span>, <span class="hljs-number">2</span>], q: [<span class="hljs-number">-0.0267</span>, <span class="hljs-number">0.00804829</span>, <span class="hljs-number">0.0459773</span>] }
{ f: [<span class="hljs-number">2</span>, <span class="hljs-number">8</span>, <span class="hljs-number">1</span>, <span class="hljs-number">10</span>], q: [<span class="hljs-number">-0.0972417</span>, <span class="hljs-number">0.0152227</span>, <span class="hljs-number">0.129003</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">4</span>, <span class="hljs-number">14</span>], q: [<span class="hljs-number">-0.141434</span>, <span class="hljs-number">0.00374515</span>, <span class="hljs-number">0.149935</span>] }
{ f: [<span class="hljs-number">5</span>, <span class="hljs-number">4</span>, <span class="hljs-number">2</span>, <span class="hljs-number">15</span>], q: [<span class="hljs-number">-0.64035</span>, <span class="hljs-number">-0.466999</span>, <span class="hljs-number">-0.285493</span>] }
{ f: [<span class="hljs-number">5</span>, <span class="hljs-number">9</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>], q: [<span class="hljs-number">-0.322792</span>, <span class="hljs-number">-0.254258</span>, <span class="hljs-number">-0.174278</span>] }
{ f: [<span class="hljs-number">2</span>, <span class="hljs-number">1</span>, <span class="hljs-number">8</span>, <span class="hljs-number">4</span>], q: [<span class="hljs-number">-0.0741375</span>, <span class="hljs-number">-0.00590933</span>, <span class="hljs-number">0.0600357</span>] }
]
<span class="hljs-number">2</span>:
filterCoefficients: filterCoefficients
interpolate: <span class="hljs-literal">false</span>
classifierCoefficients: [
{ f: [<span class="hljs-number">0</span>, <span class="hljs-number">4</span>, <span class="hljs-number">3</span>, <span class="hljs-number">15</span>], q: [<span class="hljs-number">1.98215</span>, <span class="hljs-number">2.35817</span>, <span class="hljs-number">2.63523</span>] }
{ f: [<span class="hljs-number">4</span>, <span class="hljs-number">4</span>, <span class="hljs-number">6</span>, <span class="hljs-number">15</span>], q: [<span class="hljs-number">-1.03809</span>, <span class="hljs-number">-0.651211</span>, <span class="hljs-number">-0.282167</span>] }
{ f: [<span class="hljs-number">1</span>, <span class="hljs-number">0</span>, <span class="hljs-number">4</span>, <span class="hljs-number">16</span>], q: [<span class="hljs-number">-0.298702</span>, <span class="hljs-number">0.119262</span>, <span class="hljs-number">0.558497</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">8</span>, <span class="hljs-number">2</span>, <span class="hljs-number">12</span>], q: [<span class="hljs-number">-0.105439</span>, <span class="hljs-number">0.0153946</span>, <span class="hljs-number">0.135898</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">4</span>, <span class="hljs-number">8</span>], q: [<span class="hljs-number">-0.142891</span>, <span class="hljs-number">0.0258736</span>, <span class="hljs-number">0.200632</span>] }
{ f: [<span class="hljs-number">4</span>, <span class="hljs-number">0</span>, <span class="hljs-number">3</span>, <span class="hljs-number">5</span>], q: [<span class="hljs-number">-0.826319</span>, <span class="hljs-number">-0.590612</span>, <span class="hljs-number">-0.368214</span>] }
{ f: [<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">2</span>, <span class="hljs-number">9</span>], q: [<span class="hljs-number">-0.557409</span>, <span class="hljs-number">-0.233035</span>, <span class="hljs-number">0.0534525</span>] }
{ f: [<span class="hljs-number">2</span>, <span class="hljs-number">7</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>], q: [<span class="hljs-number">-0.0646826</span>, <span class="hljs-number">0.00620476</span>, <span class="hljs-number">0.0784847</span>] }
{ f: [<span class="hljs-number">2</span>, <span class="hljs-number">6</span>, <span class="hljs-number">2</span>, <span class="hljs-number">16</span>], q: [<span class="hljs-number">-0.192387</span>, <span class="hljs-number">-0.029699</span>, <span class="hljs-number">0.215855</span>] }
{ f: [<span class="hljs-number">2</span>, <span class="hljs-number">1</span>, <span class="hljs-number">3</span>, <span class="hljs-number">2</span>], q: [<span class="hljs-number">-0.0397818</span>, <span class="hljs-number">-0.00568076</span>, <span class="hljs-number">0.0292026</span>] }
{ f: [<span class="hljs-number">5</span>, <span class="hljs-number">10</span>, <span class="hljs-number">1</span>, <span class="hljs-number">15</span>], q: [<span class="hljs-number">-0.53823</span>, <span class="hljs-number">-0.369934</span>, <span class="hljs-number">-0.190235</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">6</span>, <span class="hljs-number">2</span>, <span class="hljs-number">10</span>], q: [<span class="hljs-number">-0.124877</span>, <span class="hljs-number">0.0296483</span>, <span class="hljs-number">0.139239</span>] }
{ f: [<span class="hljs-number">2</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">14</span>], q: [<span class="hljs-number">-0.101475</span>, <span class="hljs-number">0.0225617</span>, <span class="hljs-number">0.231971</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">5</span>, <span class="hljs-number">6</span>, <span class="hljs-number">4</span>], q: [<span class="hljs-number">-0.0799915</span>, <span class="hljs-number">-0.00729616</span>, <span class="hljs-number">0.063262</span>] }
{ f: [<span class="hljs-number">1</span>, <span class="hljs-number">9</span>, <span class="hljs-number">2</span>, <span class="hljs-number">12</span>], q: [<span class="hljs-number">-0.272556</span>, <span class="hljs-number">0.019424</span>, <span class="hljs-number">0.302559</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">2</span>, <span class="hljs-number">14</span>], q: [<span class="hljs-number">-0.164292</span>, <span class="hljs-number">-0.0321188</span>, <span class="hljs-number">0.0846339</span>] }
]
<span class="hljs-number">3</span>:
filterCoefficients: filterCoefficients
interpolate: <span class="hljs-literal">false</span>
classifierCoefficients: [
{ f: [<span class="hljs-number">0</span>, <span class="hljs-number">4</span>, <span class="hljs-number">3</span>, <span class="hljs-number">15</span>], q: [<span class="hljs-number">1.98215</span>, <span class="hljs-number">2.35817</span>, <span class="hljs-number">2.63523</span>] }
{ f: [<span class="hljs-number">4</span>, <span class="hljs-number">4</span>, <span class="hljs-number">6</span>, <span class="hljs-number">15</span>], q: [<span class="hljs-number">-1.03809</span>, <span class="hljs-number">-0.651211</span>, <span class="hljs-number">-0.282167</span>] }
{ f: [<span class="hljs-number">1</span>, <span class="hljs-number">0</span>, <span class="hljs-number">4</span>, <span class="hljs-number">16</span>], q: [<span class="hljs-number">-0.298702</span>, <span class="hljs-number">0.119262</span>, <span class="hljs-number">0.558497</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">8</span>, <span class="hljs-number">2</span>, <span class="hljs-number">12</span>], q: [<span class="hljs-number">-0.105439</span>, <span class="hljs-number">0.0153946</span>, <span class="hljs-number">0.135898</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">4</span>, <span class="hljs-number">8</span>], q: [<span class="hljs-number">-0.142891</span>, <span class="hljs-number">0.0258736</span>, <span class="hljs-number">0.200632</span>] }
{ f: [<span class="hljs-number">4</span>, <span class="hljs-number">0</span>, <span class="hljs-number">3</span>, <span class="hljs-number">5</span>], q: [<span class="hljs-number">-0.826319</span>, <span class="hljs-number">-0.590612</span>, <span class="hljs-number">-0.368214</span>] }
{ f: [<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">2</span>, <span class="hljs-number">9</span>], q: [<span class="hljs-number">-0.557409</span>, <span class="hljs-number">-0.233035</span>, <span class="hljs-number">0.0534525</span>] }
{ f: [<span class="hljs-number">2</span>, <span class="hljs-number">7</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>], q: [<span class="hljs-number">-0.0646826</span>, <span class="hljs-number">0.00620476</span>, <span class="hljs-number">0.0784847</span>] }
{ f: [<span class="hljs-number">2</span>, <span class="hljs-number">6</span>, <span class="hljs-number">2</span>, <span class="hljs-number">16</span>], q: [<span class="hljs-number">-0.192387</span>, <span class="hljs-number">-0.029699</span>, <span class="hljs-number">0.215855</span>] }
{ f: [<span class="hljs-number">2</span>, <span class="hljs-number">1</span>, <span class="hljs-number">3</span>, <span class="hljs-number">2</span>], q: [<span class="hljs-number">-0.0397818</span>, <span class="hljs-number">-0.00568076</span>, <span class="hljs-number">0.0292026</span>] }
{ f: [<span class="hljs-number">5</span>, <span class="hljs-number">10</span>, <span class="hljs-number">1</span>, <span class="hljs-number">15</span>], q: [<span class="hljs-number">-0.53823</span>, <span class="hljs-number">-0.369934</span>, <span class="hljs-number">-0.190235</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">6</span>, <span class="hljs-number">2</span>, <span class="hljs-number">10</span>], q: [<span class="hljs-number">-0.124877</span>, <span class="hljs-number">0.0296483</span>, <span class="hljs-number">0.139239</span>] }
{ f: [<span class="hljs-number">2</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">14</span>], q: [<span class="hljs-number">-0.101475</span>, <span class="hljs-number">0.0225617</span>, <span class="hljs-number">0.231971</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">5</span>, <span class="hljs-number">6</span>, <span class="hljs-number">4</span>], q: [<span class="hljs-number">-0.0799915</span>, <span class="hljs-number">-0.00729616</span>, <span class="hljs-number">0.063262</span>] }
{ f: [<span class="hljs-number">1</span>, <span class="hljs-number">9</span>, <span class="hljs-number">2</span>, <span class="hljs-number">12</span>], q: [<span class="hljs-number">-0.272556</span>, <span class="hljs-number">0.019424</span>, <span class="hljs-number">0.302559</span>] }
{ f: [<span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">2</span>, <span class="hljs-number">14</span>], q: [<span class="hljs-number">-0.164292</span>, <span class="hljs-number">-0.0321188</span>, <span class="hljs-number">0.0846339</span>] }
]
<span class="hljs-number">4</span>:
removeSilence: <span class="hljs-literal">true</span>
silenceThreshold: <span class="hljs-number">50</span>
<span class="hljs-keyword">for</span> own k, v <span class="hljs-keyword">of</span> algorithms
algorithms[Number(k)] = v
algorithms.<span class="hljs-keyword">default</span> = algorithms[<span class="hljs-number">2</span>]
@chromaprint.ALGORITHMS = algorithms</pre></div></div>
</li>
</ul>
</div>
</body>
</html>