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
|
// This is read and used by `site.js`
var Module = {
noInitialRun: true,
noExitRuntime: true,
onRuntimeInitialized: main
};
function jsArrayToF32ArrayPtr(jsArray, callback) {
var data = new Float32Array(jsArray);
var nDataBytes = data.length * data.BYTES_PER_ELEMENT;
var dataPtr = Module._malloc(nDataBytes);
var dataHeap = new Uint8Array(Module.HEAPU8.buffer, dataPtr, nDataBytes);
dataHeap.set(new Uint8Array(data.buffer));
var result = callback(dataHeap.byteOffset, jsArray.length);
Module._free(dataPtr);
return result;
}
function find_fundamental_frequency(data, samplingRate) {
return jsArrayToF32ArrayPtr(data, function(dataPtr, dataLength) {
return Module._find_fundamental_frequency(dataPtr, dataLength, samplingRate);
});
}
function main() {
var data = [1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0];
var fundamental = find_fundamental_frequency(data, 44100.0);
console.log("Javascript here. Our fundamental frequency according to Rust is " + fundamental + "Hz");
}
|