speaker-calibration 2.2.210 → 2.2.211
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +71 -71
- package/.eslintrc.json +40 -40
- package/.gitignore +81 -81
- package/.prettierignore +69 -69
- package/.prettierrc +14 -14
- package/LICENSE +20 -20
- package/README.md +133 -133
- package/__mocks__/fileMock.js +1 -1
- package/__mocks__/styleMock.js +1 -1
- package/babel.config.js +3 -3
- package/coverage/clover.xml +71 -71
- package/coverage/coverage-final.json +224 -224
- package/coverage/lcov-report/PythonServerInterface.js.html +265 -265
- package/coverage/lcov-report/base.css +354 -354
- package/coverage/lcov-report/block-navigation.js +82 -82
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +123 -123
- package/coverage/lcov-report/prettify.css +101 -101
- package/coverage/lcov-report/prettify.js +937 -937
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +189 -189
- package/coverage/lcov-report/src/index.html +121 -121
- package/coverage/lcov-report/src/server/PythonServerInterface.js.html +268 -268
- package/coverage/lcov-report/src/server/index.html +123 -123
- package/coverage/lcov-report/src/tasks/audioCalibrator.js.html +499 -499
- package/coverage/lcov-report/src/tasks/audioRecorder.js.html +412 -412
- package/coverage/lcov-report/src/tasks/index.html +143 -143
- package/coverage/lcov-report/src/tasks/volume/index.html +123 -123
- package/coverage/lcov-report/src/tasks/volume/volume.js.html +409 -409
- package/coverage/lcov-report/src/utils.js.html +172 -172
- package/coverage/lcov.info +91 -91
- package/dist/Procfile +0 -0
- package/dist/example/NoSleep.min.js +1 -1
- package/dist/example/credentials.json.gpg +0 -0
- package/dist/example/fetch-languages-sheets.js +77 -77
- package/dist/example/i18n.js +27366 -27366
- package/dist/example/index.html +47 -47
- package/dist/example/listener.html +79 -79
- package/dist/example/listener.js +152 -152
- package/dist/example/server.js +51 -51
- package/dist/example/speaker.html +145 -145
- package/dist/example/speakerUI.js +273 -273
- package/dist/example/styles.css +99 -99
- package/dist/main.js +1223 -1223
- package/dist/main.js.LICENSE.txt +118 -118
- package/dist/mlsGen.js +6814 -6814
- package/dist/mlsGen.wasm +0 -0
- package/dist/package-lock.json +1018 -1018
- package/dist/package.json +18 -18
- package/doc/AudioCalibrator.html +417 -417
- package/doc/AudioPeer.html +251 -251
- package/doc/AudioRecorder.html +195 -195
- package/doc/ImpulseResponse.html +215 -215
- package/doc/Listener.html +308 -308
- package/doc/MlsGenInterface.html +226 -226
- package/doc/MyEventEmitter.html +274 -274
- package/doc/PythonServerAPI.html +109 -109
- package/doc/Speaker-Calibration-UML-Diagram.png +0 -0
- package/doc/Speaker.html +276 -276
- package/doc/Takes%20a%20target%20element%20where%20html%20elements%20will%20be%20appended..html +128 -128
- package/doc/Takes%20the%20url%20of%20the%20current%20site%0Aand%20a%20target%20element%20where%20html%20elements%20will%20be%20appended..html +138 -138
- package/doc/Takes%20the%20url%20of%20the%20current%20site%20and%20a%20target%20element%20where%20html%20elements%20will%20be%20appended..html +137 -137
- package/doc/Volume.html +88 -88
- package/doc/audioCalibrator.js.html +179 -179
- package/doc/audioPeer.js.html +175 -175
- package/doc/audioRecorder.js.html +163 -163
- package/doc/creates%20a%20new%20AudioRecorder%20instance.%20%0ASets%20up%20the%20audio%20context%20and%20file%20reader..html +114 -114
- package/doc/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/doc/fonts/OpenSans-Bold-webfont.svg +1829 -1829
- package/doc/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/doc/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/doc/fonts/OpenSans-BoldItalic-webfont.svg +1829 -1829
- package/doc/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/doc/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/doc/fonts/OpenSans-Italic-webfont.svg +1829 -1829
- package/doc/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/doc/fonts/OpenSans-Light-webfont.eot +0 -0
- package/doc/fonts/OpenSans-Light-webfont.svg +1830 -1830
- package/doc/fonts/OpenSans-Light-webfont.woff +0 -0
- package/doc/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/doc/fonts/OpenSans-LightItalic-webfont.svg +1834 -1834
- package/doc/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/doc/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/doc/fonts/OpenSans-Regular-webfont.svg +1830 -1830
- package/doc/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/doc/global.html +308 -308
- package/doc/index.html +58 -58
- package/doc/listener.js.html +170 -170
- package/doc/mlsGen_mlsGenInterface.js.html +117 -117
- package/doc/myEventEmitter.js.html +124 -124
- package/doc/peer-connection_audioPeer.js.html +188 -188
- package/doc/peer-connection_listener.js.html +311 -311
- package/doc/peer-connection_speaker.js.html +381 -381
- package/doc/sc-activity-diagram.png +0 -0
- package/doc/scripts/linenumber.js +25 -25
- package/doc/scripts/prettify/Apache-License-2.0.txt +202 -202
- package/doc/scripts/prettify/lang-css.js +24 -24
- package/doc/scripts/prettify/prettify.js +640 -640
- package/doc/server_PythonServerAPI.js.html +160 -160
- package/doc/speaker.js.html +248 -248
- package/doc/styles/jsdoc-default.css +371 -371
- package/doc/styles/prettify-jsdoc.css +111 -111
- package/doc/styles/prettify-tomorrow.css +163 -163
- package/doc/tasks_audioCalibrator.js.html +207 -207
- package/doc/tasks_audioRecorder.js.html +190 -190
- package/doc/tasks_impulse-response_impulseResponse.js.html +442 -442
- package/doc/tasks_impulse-response_mlsGen_mlsGenInterface.js.html +175 -175
- package/doc/tasks_volume_volume.js.html +185 -185
- package/doc/utils.js.html +105 -105
- package/jest.config.js +173 -173
- package/netlify.toml +26 -26
- package/package.json +73 -73
- package/src/config/firebase.js +26 -26
- package/src/index.html +21 -21
- package/src/main.js +23 -23
- package/src/myEventEmitter.js +83 -83
- package/src/peer-connection/audioPeer.js +183 -183
- package/src/peer-connection/listener.js +364 -364
- package/src/peer-connection/peerErrors.js +25 -25
- package/src/peer-connection/speaker.js +738 -738
- package/src/powerCheck.js +98 -98
- package/src/server/PythonServerAPI.js +869 -869
- package/src/tasks/audioCalibrator.js +351 -351
- package/src/tasks/audioRecorder.js +315 -315
- package/src/tasks/combination/combination.js +3030 -3030
- package/src/tasks/combination/mlsGen/mlsGen.cpp +98 -98
- package/src/tasks/combination/mlsGen/mlsGen.hpp +303 -303
- package/src/tasks/combination/mlsGen/mlsGenInterface.js +131 -131
- package/src/tasks/combination/mlsGen/mlsGenTest.cpp +180 -180
- package/src/tasks/impulse-response/impulseResponse.js +610 -610
- package/src/tasks/impulse-response/mlsGen/mlsGen.cpp +98 -98
- package/src/tasks/impulse-response/mlsGen/mlsGen.hpp +303 -303
- package/src/tasks/impulse-response/mlsGen/mlsGenInterface.js +131 -131
- package/src/tasks/impulse-response/mlsGen/mlsGenTest.cpp +180 -180
- package/src/tasks/volume/volume.cpp +2 -2
- package/src/tasks/volume/volume.hpp +22 -22
- package/src/tasks/volume/volume.js +279 -279
- package/src/utils.js +205 -205
- package/webpack.config.js +37 -37
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
#include "mlsGen.hpp"
|
|
2
|
-
#include <sanitizer/lsan_interface.h>
|
|
3
|
-
|
|
4
|
-
#ifdef __cplusplus
|
|
5
|
-
extern "C" {
|
|
6
|
-
#endif
|
|
7
|
-
|
|
8
|
-
MLSGen::MLSGen(long N, long srcSR, long sinkSR) {
|
|
9
|
-
MLSGen::N = N;
|
|
10
|
-
MLSGen::srcSR = srcSR;
|
|
11
|
-
MLSGen::sinkSR = sinkSR;
|
|
12
|
-
P = (1 << N) - 1;
|
|
13
|
-
mls = new bool[P];
|
|
14
|
-
tagL = new long[P];
|
|
15
|
-
tagS = new long[P];
|
|
16
|
-
generatedSignal = new float[P];
|
|
17
|
-
recordedSignal = new float[P];
|
|
18
|
-
perm = new float[P + 1];
|
|
19
|
-
resp = new float[P + 1];
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
#ifndef __EMSCRIPTEN__
|
|
23
|
-
MLSGen::~MLSGen() {
|
|
24
|
-
delete[] mls;
|
|
25
|
-
delete[] tagL;
|
|
26
|
-
delete[] tagS;
|
|
27
|
-
delete[] generatedSignal;
|
|
28
|
-
delete[] recordedSignal;
|
|
29
|
-
delete[] perm;
|
|
30
|
-
delete[] resp;
|
|
31
|
-
}
|
|
32
|
-
#endif
|
|
33
|
-
|
|
34
|
-
#ifdef __EMSCRIPTEN__
|
|
35
|
-
|
|
36
|
-
using namespace emscripten;
|
|
37
|
-
|
|
38
|
-
void MLSGen::Destruct() {
|
|
39
|
-
delete[] mls;
|
|
40
|
-
delete[] tagL;
|
|
41
|
-
delete[] tagS;
|
|
42
|
-
delete[] generatedSignal;
|
|
43
|
-
delete[] recordedSignal;
|
|
44
|
-
delete[] perm;
|
|
45
|
-
delete[] resp;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
emscripten::val MLSGen::getMLS() {
|
|
49
|
-
// if mls is not generated, generate it
|
|
50
|
-
if (*(&mls + 1) - mls != P) {
|
|
51
|
-
generateMls();
|
|
52
|
-
}
|
|
53
|
-
for (int i = 0; i < P; i++) {
|
|
54
|
-
generatedSignal[i] = -2 * mls[i] + 1;
|
|
55
|
-
}
|
|
56
|
-
return emscripten::val(typed_memory_view(P, generatedSignal));
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
emscripten::val MLSGen::setRecordedSignalsMemoryView(long sizeRecordedSignals) {
|
|
60
|
-
C = sizeRecordedSignals;
|
|
61
|
-
recordedSignals = new float[C];
|
|
62
|
-
return emscripten::val(typed_memory_view(C, recordedSignals));
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
emscripten::val MLSGen::getRecordedSignalsMemoryView() {
|
|
66
|
-
return emscripten::val(typed_memory_view(C, recordedSignals));
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
emscripten::val MLSGen::getImpulseResponse() {
|
|
70
|
-
generateTagL(); // Generate tagL for the L matrix
|
|
71
|
-
generateTagS(); // Generate tagS for the S matrix
|
|
72
|
-
GenerateSignal(); // Generate the signal TEST PURPOSES
|
|
73
|
-
permuteSignal(); // Permute the signal according to tagS
|
|
74
|
-
fastHadamard(); // Do a Hadamard transform in place
|
|
75
|
-
permuteResponse(); // Permute the impulseresponse according to tagL
|
|
76
|
-
return emscripten::val(typed_memory_view(P + 1, resp));
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// Binding code
|
|
80
|
-
EMSCRIPTEN_BINDINGS(mls_gen_module) {
|
|
81
|
-
class_<MLSGen>("MLSGen")
|
|
82
|
-
.constructor<long, long, long>()
|
|
83
|
-
.function("Destruct", &MLSGen::Destruct)
|
|
84
|
-
.function("getMLS", &MLSGen::getMLS)
|
|
85
|
-
.function("getRecordedSignalsMemoryView",
|
|
86
|
-
&MLSGen::getRecordedSignalsMemoryView)
|
|
87
|
-
.function("setRecordedSignalsMemoryView",
|
|
88
|
-
&MLSGen::setRecordedSignalsMemoryView)
|
|
89
|
-
.function("getImpulseResponse", &MLSGen::getImpulseResponse);
|
|
90
|
-
function("doLeakCheck", &__lsan_do_recoverable_leak_check);
|
|
91
|
-
};
|
|
92
|
-
#endif
|
|
93
|
-
|
|
94
|
-
#ifdef __cplusplus
|
|
95
|
-
}
|
|
96
|
-
#endif
|
|
97
|
-
|
|
98
|
-
// https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html
|
|
1
|
+
#include "mlsGen.hpp"
|
|
2
|
+
#include <sanitizer/lsan_interface.h>
|
|
3
|
+
|
|
4
|
+
#ifdef __cplusplus
|
|
5
|
+
extern "C" {
|
|
6
|
+
#endif
|
|
7
|
+
|
|
8
|
+
MLSGen::MLSGen(long N, long srcSR, long sinkSR) {
|
|
9
|
+
MLSGen::N = N;
|
|
10
|
+
MLSGen::srcSR = srcSR;
|
|
11
|
+
MLSGen::sinkSR = sinkSR;
|
|
12
|
+
P = (1 << N) - 1;
|
|
13
|
+
mls = new bool[P];
|
|
14
|
+
tagL = new long[P];
|
|
15
|
+
tagS = new long[P];
|
|
16
|
+
generatedSignal = new float[P];
|
|
17
|
+
recordedSignal = new float[P];
|
|
18
|
+
perm = new float[P + 1];
|
|
19
|
+
resp = new float[P + 1];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
#ifndef __EMSCRIPTEN__
|
|
23
|
+
MLSGen::~MLSGen() {
|
|
24
|
+
delete[] mls;
|
|
25
|
+
delete[] tagL;
|
|
26
|
+
delete[] tagS;
|
|
27
|
+
delete[] generatedSignal;
|
|
28
|
+
delete[] recordedSignal;
|
|
29
|
+
delete[] perm;
|
|
30
|
+
delete[] resp;
|
|
31
|
+
}
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
#ifdef __EMSCRIPTEN__
|
|
35
|
+
|
|
36
|
+
using namespace emscripten;
|
|
37
|
+
|
|
38
|
+
void MLSGen::Destruct() {
|
|
39
|
+
delete[] mls;
|
|
40
|
+
delete[] tagL;
|
|
41
|
+
delete[] tagS;
|
|
42
|
+
delete[] generatedSignal;
|
|
43
|
+
delete[] recordedSignal;
|
|
44
|
+
delete[] perm;
|
|
45
|
+
delete[] resp;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
emscripten::val MLSGen::getMLS() {
|
|
49
|
+
// if mls is not generated, generate it
|
|
50
|
+
if (*(&mls + 1) - mls != P) {
|
|
51
|
+
generateMls();
|
|
52
|
+
}
|
|
53
|
+
for (int i = 0; i < P; i++) {
|
|
54
|
+
generatedSignal[i] = -2 * mls[i] + 1;
|
|
55
|
+
}
|
|
56
|
+
return emscripten::val(typed_memory_view(P, generatedSignal));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
emscripten::val MLSGen::setRecordedSignalsMemoryView(long sizeRecordedSignals) {
|
|
60
|
+
C = sizeRecordedSignals;
|
|
61
|
+
recordedSignals = new float[C];
|
|
62
|
+
return emscripten::val(typed_memory_view(C, recordedSignals));
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
emscripten::val MLSGen::getRecordedSignalsMemoryView() {
|
|
66
|
+
return emscripten::val(typed_memory_view(C, recordedSignals));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
emscripten::val MLSGen::getImpulseResponse() {
|
|
70
|
+
generateTagL(); // Generate tagL for the L matrix
|
|
71
|
+
generateTagS(); // Generate tagS for the S matrix
|
|
72
|
+
GenerateSignal(); // Generate the signal TEST PURPOSES
|
|
73
|
+
permuteSignal(); // Permute the signal according to tagS
|
|
74
|
+
fastHadamard(); // Do a Hadamard transform in place
|
|
75
|
+
permuteResponse(); // Permute the impulseresponse according to tagL
|
|
76
|
+
return emscripten::val(typed_memory_view(P + 1, resp));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Binding code
|
|
80
|
+
EMSCRIPTEN_BINDINGS(mls_gen_module) {
|
|
81
|
+
class_<MLSGen>("MLSGen")
|
|
82
|
+
.constructor<long, long, long>()
|
|
83
|
+
.function("Destruct", &MLSGen::Destruct)
|
|
84
|
+
.function("getMLS", &MLSGen::getMLS)
|
|
85
|
+
.function("getRecordedSignalsMemoryView",
|
|
86
|
+
&MLSGen::getRecordedSignalsMemoryView)
|
|
87
|
+
.function("setRecordedSignalsMemoryView",
|
|
88
|
+
&MLSGen::setRecordedSignalsMemoryView)
|
|
89
|
+
.function("getImpulseResponse", &MLSGen::getImpulseResponse);
|
|
90
|
+
function("doLeakCheck", &__lsan_do_recoverable_leak_check);
|
|
91
|
+
};
|
|
92
|
+
#endif
|
|
93
|
+
|
|
94
|
+
#ifdef __cplusplus
|
|
95
|
+
}
|
|
96
|
+
#endif
|
|
97
|
+
|
|
98
|
+
// https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html
|
|
99
99
|
// https://web.dev/webassembly-memory-debugging/
|