speaker-calibration 2.0.0 → 2.1.0

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.
Files changed (126) hide show
  1. package/.eslintignore +72 -0
  2. package/.eslintrc.json +40 -0
  3. package/.gitignore +78 -0
  4. package/.prettierignore +70 -0
  5. package/.prettierrc +15 -0
  6. package/LICENSE +20 -20
  7. package/README.md +133 -133
  8. package/__mocks__/fileMock.js +1 -0
  9. package/__mocks__/styleMock.js +1 -0
  10. package/babel.config.js +3 -0
  11. package/coverage/clover.xml +71 -0
  12. package/coverage/coverage-final.json +224 -0
  13. package/coverage/lcov-report/PythonServerInterface.js.html +265 -0
  14. package/coverage/lcov-report/base.css +354 -0
  15. package/coverage/lcov-report/block-navigation.js +82 -0
  16. package/coverage/lcov-report/favicon.png +0 -0
  17. package/coverage/lcov-report/index.html +123 -0
  18. package/coverage/lcov-report/prettify.css +101 -0
  19. package/coverage/lcov-report/prettify.js +937 -0
  20. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  21. package/coverage/lcov-report/sorter.js +189 -0
  22. package/coverage/lcov-report/src/index.html +121 -0
  23. package/coverage/lcov-report/src/server/PythonServerInterface.js.html +268 -0
  24. package/coverage/lcov-report/src/server/index.html +123 -0
  25. package/coverage/lcov-report/src/tasks/audioCalibrator.js.html +499 -0
  26. package/coverage/lcov-report/src/tasks/audioRecorder.js.html +412 -0
  27. package/coverage/lcov-report/src/tasks/index.html +143 -0
  28. package/coverage/lcov-report/src/tasks/volume/index.html +123 -0
  29. package/coverage/lcov-report/src/tasks/volume/volume.js.html +409 -0
  30. package/coverage/lcov-report/src/utils.js.html +172 -0
  31. package/coverage/lcov.info +91 -0
  32. package/dist/example/Queen-Bohemian_Rhapsody.wav +0 -0
  33. package/dist/example/Queen-Bohemian_Rhapsody_g_filtered.wav +0 -0
  34. package/dist/example/index.html +47 -0
  35. package/dist/example/listener.html +89 -0
  36. package/dist/example/server.js +49 -0
  37. package/dist/example/speaker.html +126 -0
  38. package/dist/example/speakerUI.js +217 -0
  39. package/dist/example/styles.css +40 -0
  40. package/dist/main.js +1 -1
  41. package/dist/mlsGen.js +6814 -6814
  42. package/dist/mlsGen.wasm +0 -0
  43. package/doc/AudioCalibrator.html +417 -0
  44. package/doc/AudioPeer.html +251 -0
  45. package/doc/AudioRecorder.html +195 -0
  46. package/doc/ImpulseResponse.html +215 -0
  47. package/doc/Listener.html +308 -0
  48. package/doc/MlsGenInterface.html +226 -0
  49. package/doc/MyEventEmitter.html +274 -0
  50. package/doc/PythonServerAPI.html +109 -0
  51. package/doc/Speaker-Calibration-UML-Diagram.png +0 -0
  52. package/doc/Speaker.html +276 -0
  53. package/doc/Takes%20a%20target%20element%20where%20html%20elements%20will%20be%20appended..html +128 -0
  54. package/doc/Takes%20the%20url%20of%20the%20current%20site%0Aand%20a%20target%20element%20where%20html%20elements%20will%20be%20appended..html +138 -0
  55. package/doc/Takes%20the%20url%20of%20the%20current%20site%20and%20a%20target%20element%20where%20html%20elements%20will%20be%20appended..html +137 -0
  56. package/doc/Volume.html +88 -0
  57. package/doc/audioCalibrator.js.html +179 -0
  58. package/doc/audioPeer.js.html +175 -0
  59. package/doc/audioRecorder.js.html +163 -0
  60. package/doc/creates%20a%20new%20AudioRecorder%20instance.%20%0ASets%20up%20the%20audio%20context%20and%20file%20reader..html +114 -0
  61. package/doc/fonts/OpenSans-Bold-webfont.eot +0 -0
  62. package/doc/fonts/OpenSans-Bold-webfont.svg +1830 -0
  63. package/doc/fonts/OpenSans-Bold-webfont.woff +0 -0
  64. package/doc/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  65. package/doc/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
  66. package/doc/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  67. package/doc/fonts/OpenSans-Italic-webfont.eot +0 -0
  68. package/doc/fonts/OpenSans-Italic-webfont.svg +1830 -0
  69. package/doc/fonts/OpenSans-Italic-webfont.woff +0 -0
  70. package/doc/fonts/OpenSans-Light-webfont.eot +0 -0
  71. package/doc/fonts/OpenSans-Light-webfont.svg +1831 -0
  72. package/doc/fonts/OpenSans-Light-webfont.woff +0 -0
  73. package/doc/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  74. package/doc/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
  75. package/doc/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  76. package/doc/fonts/OpenSans-Regular-webfont.eot +0 -0
  77. package/doc/fonts/OpenSans-Regular-webfont.svg +1831 -0
  78. package/doc/fonts/OpenSans-Regular-webfont.woff +0 -0
  79. package/doc/global.html +308 -0
  80. package/doc/index.html +58 -0
  81. package/doc/listener.js.html +170 -0
  82. package/doc/mlsGen_mlsGenInterface.js.html +117 -0
  83. package/doc/myEventEmitter.js.html +124 -0
  84. package/doc/peer-connection_audioPeer.js.html +188 -0
  85. package/doc/peer-connection_listener.js.html +311 -0
  86. package/doc/peer-connection_speaker.js.html +381 -0
  87. package/doc/sc-activity-diagram.png +0 -0
  88. package/doc/scripts/linenumber.js +25 -0
  89. package/doc/scripts/prettify/Apache-License-2.0.txt +202 -0
  90. package/doc/scripts/prettify/lang-css.js +24 -0
  91. package/doc/scripts/prettify/prettify.js +640 -0
  92. package/doc/server_PythonServerAPI.js.html +160 -0
  93. package/doc/speaker.js.html +248 -0
  94. package/doc/styles/jsdoc-default.css +371 -0
  95. package/doc/styles/prettify-jsdoc.css +111 -0
  96. package/doc/styles/prettify-tomorrow.css +163 -0
  97. package/doc/tasks_audioCalibrator.js.html +207 -0
  98. package/doc/tasks_audioRecorder.js.html +190 -0
  99. package/doc/tasks_impulse-response_impulseResponse.js.html +442 -0
  100. package/doc/tasks_impulse-response_mlsGen_mlsGenInterface.js.html +175 -0
  101. package/doc/tasks_volume_volume.js.html +185 -0
  102. package/doc/utils.js.html +105 -0
  103. package/jest.config.js +173 -0
  104. package/netlify.toml +27 -0
  105. package/package.json +67 -66
  106. package/src/index.html +21 -0
  107. package/src/main.js +21 -0
  108. package/src/myEventEmitter.js +83 -0
  109. package/src/peer-connection/audioPeer.js +151 -0
  110. package/src/peer-connection/listener.js +251 -0
  111. package/src/peer-connection/peerErrors.js +25 -0
  112. package/src/peer-connection/speaker.js +346 -0
  113. package/src/server/PythonServerAPI.js +117 -0
  114. package/src/tasks/audioCalibrator.js +218 -0
  115. package/src/tasks/audioRecorder.js +148 -0
  116. package/src/tasks/impulse-response/impulseResponse.js +436 -0
  117. package/src/tasks/impulse-response/mlsGen/mlsGen.cpp +99 -0
  118. package/src/tasks/impulse-response/mlsGen/mlsGen.hpp +304 -0
  119. package/src/tasks/impulse-response/mlsGen/mlsGenInterface.js +131 -0
  120. package/src/tasks/impulse-response/mlsGen/mlsGenTest.cpp +181 -0
  121. package/src/tasks/volume/volume.cpp +3 -0
  122. package/src/tasks/volume/volume.hpp +23 -0
  123. package/src/tasks/volume/volume.js +157 -0
  124. package/src/utils.js +55 -0
  125. package/webpack.config.js +37 -0
  126. package/README +0 -3
@@ -0,0 +1,195 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>JSDoc: Class: AudioRecorder</title>
6
+
7
+ <script src="scripts/prettify/prettify.js"></script>
8
+ <script src="scripts/prettify/lang-css.js"></script>
9
+ <!--[if lt IE 9]>
10
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
11
+ <![endif]-->
12
+ <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css" />
13
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css" />
14
+ </head>
15
+
16
+ <body>
17
+ <div id="main">
18
+ <h1 class="page-title">Class: AudioRecorder</h1>
19
+
20
+ <section>
21
+ <header>
22
+ <h2>
23
+ <span class="attribs"><span class="type-signature"></span></span>AudioRecorder<span
24
+ class="signature"
25
+ >()</span
26
+ ><span class="type-signature"></span>
27
+ </h2>
28
+
29
+ <div class="class-description">
30
+ provides a simple interface for recording audio from a microphone using the Media
31
+ Recorder API.
32
+ </div>
33
+ </header>
34
+
35
+ <article>
36
+ <div class="container-overview">
37
+ <h2>Constructor</h2>
38
+
39
+ <h4 class="name" id="AudioRecorder">
40
+ <span class="type-signature"></span>new AudioRecorder<span class="signature">()</span
41
+ ><span class="type-signature"></span>
42
+ </h4>
43
+
44
+ <dl class="details">
45
+ <dt class="tag-source">Source:</dt>
46
+ <dd class="tag-source">
47
+ <ul class="dummy">
48
+ <li>
49
+ <a href="tasks_audioRecorder.js.html">tasks/audioRecorder.js</a>,
50
+ <a href="tasks_audioRecorder.js.html#line7">line 7</a>
51
+ </li>
52
+ </ul>
53
+ </dd>
54
+ </dl>
55
+ </div>
56
+
57
+ <h3 class="subsection-title">Members</h3>
58
+
59
+ <h4 class="name" id="getAllRecordedSignals">
60
+ <span class="type-signature"></span>getAllRecordedSignals<span
61
+ class="type-signature"
62
+ ></span>
63
+ </h4>
64
+
65
+ <div class="description">Public method to get all the recorded audio signals</div>
66
+
67
+ <dl class="details">
68
+ <dt class="tag-source">Source:</dt>
69
+ <dd class="tag-source">
70
+ <ul class="dummy">
71
+ <li>
72
+ <a href="tasks_audioRecorder.js.html">tasks/audioRecorder.js</a>,
73
+ <a href="tasks_audioRecorder.js.html#line115">line 115</a>
74
+ </li>
75
+ </ul>
76
+ </dd>
77
+ </dl>
78
+
79
+ <h4 class="name" id="getLastRecordedSignal">
80
+ <span class="type-signature"></span>getLastRecordedSignal<span
81
+ class="type-signature"
82
+ ></span>
83
+ </h4>
84
+
85
+ <div class="description">Public method to get the last recorded audio signal</div>
86
+
87
+ <dl class="details">
88
+ <dt class="tag-source">Source:</dt>
89
+ <dd class="tag-source">
90
+ <ul class="dummy">
91
+ <li>
92
+ <a href="tasks_audioRecorder.js.html">tasks/audioRecorder.js</a>,
93
+ <a href="tasks_audioRecorder.js.html#line109">line 109</a>
94
+ </li>
95
+ </ul>
96
+ </dd>
97
+ </dl>
98
+
99
+ <h4 class="name" id="setSinkSamplingRate">
100
+ <span class="type-signature"></span>setSinkSamplingRate<span
101
+ class="type-signature"
102
+ ></span>
103
+ </h4>
104
+
105
+ <div class="description">
106
+ Public method to set the sampling rate used by the capture device
107
+ </div>
108
+
109
+ <dl class="details">
110
+ <dt class="tag-source">Source:</dt>
111
+ <dd class="tag-source">
112
+ <ul class="dummy">
113
+ <li>
114
+ <a href="tasks_audioRecorder.js.html">tasks/audioRecorder.js</a>,
115
+ <a href="tasks_audioRecorder.js.html#line121">line 121</a>
116
+ </li>
117
+ </ul>
118
+ </dd>
119
+ </dl>
120
+
121
+ <h4 class="name" id="startRecording">
122
+ <span class="type-signature"></span>startRecording<span class="type-signature"></span>
123
+ </h4>
124
+
125
+ <div class="description">Public method to start the recording process.</div>
126
+
127
+ <dl class="details">
128
+ <dt class="tag-source">Source:</dt>
129
+ <dd class="tag-source">
130
+ <ul class="dummy">
131
+ <li>
132
+ <a href="tasks_audioRecorder.js.html">tasks/audioRecorder.js</a>,
133
+ <a href="tasks_audioRecorder.js.html#line73">line 73</a>
134
+ </li>
135
+ </ul>
136
+ </dd>
137
+ </dl>
138
+
139
+ <h4 class="name" id="stopRecording">
140
+ <span class="type-signature"></span>stopRecording<span class="type-signature"></span>
141
+ </h4>
142
+
143
+ <div class="description">Method to stop the recording process.</div>
144
+
145
+ <dl class="details">
146
+ <dt class="tag-source">Source:</dt>
147
+ <dd class="tag-source">
148
+ <ul class="dummy">
149
+ <li>
150
+ <a href="tasks_audioRecorder.js.html">tasks/audioRecorder.js</a>,
151
+ <a href="tasks_audioRecorder.js.html#line88">line 88</a>
152
+ </li>
153
+ </ul>
154
+ </dd>
155
+ </dl>
156
+ </article>
157
+ </section>
158
+ </div>
159
+
160
+ <nav>
161
+ <h2><a href="index.html">Home</a></h2>
162
+ <h3>Classes</h3>
163
+ <ul>
164
+ <li><a href="AudioCalibrator.html">AudioCalibrator</a></li>
165
+ <li><a href="AudioPeer.html">AudioPeer</a></li>
166
+ <li><a href="AudioRecorder.html">AudioRecorder</a></li>
167
+ <li><a href="ImpulseResponse.html">ImpulseResponse</a></li>
168
+ <li><a href="Listener.html">Listener</a></li>
169
+ <li><a href="MlsGenInterface.html">MlsGenInterface</a></li>
170
+ <li><a href="MyEventEmitter.html">MyEventEmitter</a></li>
171
+ <li><a href="PythonServerAPI.html">PythonServerAPI</a></li>
172
+ <li><a href="Speaker.html">Speaker</a></li>
173
+ <li><a href="Volume.html">Volume</a></li>
174
+ </ul>
175
+ <h3>Global</h3>
176
+ <ul>
177
+ <li><a href="global.html#csvToArray">csvToArray</a></li>
178
+ <li><a href="global.html#saveToCSV">saveToCSV</a></li>
179
+ <li><a href="global.html#sleep">sleep</a></li>
180
+ </ul>
181
+ </nav>
182
+
183
+ <br class="clear" />
184
+
185
+ <footer>
186
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> on Fri
187
+ Jul 29 2022 15:09:48 GMT-0400 (Eastern Daylight Time)
188
+ </footer>
189
+
190
+ <script>
191
+ prettyPrint();
192
+ </script>
193
+ <script src="scripts/linenumber.js"></script>
194
+ </body>
195
+ </html>
@@ -0,0 +1,215 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>JSDoc: Class: ImpulseResponse</title>
6
+
7
+ <script src="scripts/prettify/prettify.js"></script>
8
+ <script src="scripts/prettify/lang-css.js"></script>
9
+ <!--[if lt IE 9]>
10
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
11
+ <![endif]-->
12
+ <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css" />
13
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css" />
14
+ </head>
15
+
16
+ <body>
17
+ <div id="main">
18
+ <h1 class="page-title">Class: ImpulseResponse</h1>
19
+
20
+ <section>
21
+ <header>
22
+ <h2>
23
+ <span class="attribs"><span class="type-signature"></span></span>ImpulseResponse<span
24
+ class="signature"
25
+ >(param0)</span
26
+ ><span class="type-signature"></span>
27
+ </h2>
28
+ </header>
29
+
30
+ <article>
31
+ <div class="container-overview">
32
+ <h4 class="name" id="ImpulseResponse">
33
+ <span class="type-signature"></span>new ImpulseResponse<span class="signature"
34
+ >(param0)</span
35
+ ><span class="type-signature"></span>
36
+ </h4>
37
+
38
+ <div class="description">
39
+ Default constructor. Creates an instance with any number of paramters passed or the
40
+ default parameters defined here.
41
+ </div>
42
+
43
+ <h5>Parameters:</h5>
44
+
45
+ <table class="params">
46
+ <thead>
47
+ <tr>
48
+ <th>Name</th>
49
+
50
+ <th>Type</th>
51
+
52
+ <th class="last">Description</th>
53
+ </tr>
54
+ </thead>
55
+
56
+ <tbody>
57
+ <tr>
58
+ <td class="name"><code>param0</code></td>
59
+
60
+ <td class="type">
61
+ <span class="param-type">*</span>
62
+ </td>
63
+
64
+ <td class="description last"></td>
65
+ </tr>
66
+ </tbody>
67
+ </table>
68
+
69
+ <dl class="details">
70
+ <dt class="tag-source">Source:</dt>
71
+ <dd class="tag-source">
72
+ <ul class="dummy">
73
+ <li>
74
+ <a href="tasks_impulse-response_impulseResponse.js.html"
75
+ >tasks/impulse-response/impulseResponse.js</a
76
+ >, <a href="tasks_impulse-response_impulseResponse.js.html#line9">line 9</a>
77
+ </li>
78
+ </ul>
79
+ </dd>
80
+ </dl>
81
+ </div>
82
+
83
+ <h3 class="subsection-title">Members</h3>
84
+
85
+ <h4 class="name" id="createSCurveBuffer">
86
+ <span class="type-signature"></span>createSCurveBuffer<span
87
+ class="type-signature"
88
+ ></span>
89
+ </h4>
90
+
91
+ <div class="description">Created an S Curver Buffer to taper the signal onset</div>
92
+
93
+ <dl class="details">
94
+ <dt class="tag-source">Source:</dt>
95
+ <dd class="tag-source">
96
+ <ul class="dummy">
97
+ <li>
98
+ <a href="tasks_impulse-response_impulseResponse.js.html"
99
+ >tasks/impulse-response/impulseResponse.js</a
100
+ >, <a href="tasks_impulse-response_impulseResponse.js.html#line149">line 149</a>
101
+ </li>
102
+ </ul>
103
+ </dd>
104
+ </dl>
105
+
106
+ <h4 class="name" id="sendImpulseResponsesToServerForProcessing">
107
+ <span class="type-signature"></span>sendImpulseResponsesToServerForProcessing<span
108
+ class="type-signature"
109
+ ></span>
110
+ </h4>
111
+
112
+ <div class="description">
113
+ Sends all the computed impulse responses to the backend server for processing
114
+ </div>
115
+
116
+ <dl class="details">
117
+ <dt class="tag-source">Source:</dt>
118
+ <dd class="tag-source">
119
+ <ul class="dummy">
120
+ <li>
121
+ <a href="tasks_impulse-response_impulseResponse.js.html"
122
+ >tasks/impulse-response/impulseResponse.js</a
123
+ >, <a href="tasks_impulse-response_impulseResponse.js.html#line51">line 51</a>
124
+ </li>
125
+ </ul>
126
+ </dd>
127
+ </dl>
128
+
129
+ <h4 class="name" id="sendRecordingToServerForProcessing">
130
+ <span class="type-signature"></span>sendRecordingToServerForProcessing<span
131
+ class="type-signature"
132
+ ></span>
133
+ </h4>
134
+
135
+ <div class="description">
136
+ Sends the recorded signal, or a given csv string of a signal, to the back end server for
137
+ processing
138
+ </div>
139
+
140
+ <dl class="details">
141
+ <dt class="tag-source">Source:</dt>
142
+ <dd class="tag-source">
143
+ <ul class="dummy">
144
+ <li>
145
+ <a href="tasks_impulse-response_impulseResponse.js.html"
146
+ >tasks/impulse-response/impulseResponse.js</a
147
+ >, <a href="tasks_impulse-response_impulseResponse.js.html#line72">line 72</a>
148
+ </li>
149
+ </ul>
150
+ </dd>
151
+ </dl>
152
+
153
+ <h4 class="name" id="startCalibration">
154
+ <span class="type-signature"></span>startCalibration<span class="type-signature"></span>
155
+ </h4>
156
+
157
+ <div class="description">
158
+ Public method to start the calibration process. Objects intialized from webassembly
159
+ allocate new memory and must be manually freed. This function is responsible for
160
+ intializing the MlsGenInterface, and wrapping the calibration steps with a garbage
161
+ collection safe gaurd.
162
+ </div>
163
+
164
+ <dl class="details">
165
+ <dt class="tag-source">Source:</dt>
166
+ <dd class="tag-source">
167
+ <ul class="dummy">
168
+ <li>
169
+ <a href="tasks_impulse-response_impulseResponse.js.html"
170
+ >tasks/impulse-response/impulseResponse.js</a
171
+ >, <a href="tasks_impulse-response_impulseResponse.js.html#line344">line 344</a>
172
+ </li>
173
+ </ul>
174
+ </dd>
175
+ </dl>
176
+ </article>
177
+ </section>
178
+ </div>
179
+
180
+ <nav>
181
+ <h2><a href="index.html">Home</a></h2>
182
+ <h3>Classes</h3>
183
+ <ul>
184
+ <li><a href="AudioCalibrator.html">AudioCalibrator</a></li>
185
+ <li><a href="AudioPeer.html">AudioPeer</a></li>
186
+ <li><a href="AudioRecorder.html">AudioRecorder</a></li>
187
+ <li><a href="ImpulseResponse.html">ImpulseResponse</a></li>
188
+ <li><a href="Listener.html">Listener</a></li>
189
+ <li><a href="MlsGenInterface.html">MlsGenInterface</a></li>
190
+ <li><a href="MyEventEmitter.html">MyEventEmitter</a></li>
191
+ <li><a href="PythonServerAPI.html">PythonServerAPI</a></li>
192
+ <li><a href="Speaker.html">Speaker</a></li>
193
+ <li><a href="Volume.html">Volume</a></li>
194
+ </ul>
195
+ <h3>Global</h3>
196
+ <ul>
197
+ <li><a href="global.html#csvToArray">csvToArray</a></li>
198
+ <li><a href="global.html#saveToCSV">saveToCSV</a></li>
199
+ <li><a href="global.html#sleep">sleep</a></li>
200
+ </ul>
201
+ </nav>
202
+
203
+ <br class="clear" />
204
+
205
+ <footer>
206
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> on Fri
207
+ Jul 29 2022 15:09:48 GMT-0400 (Eastern Daylight Time)
208
+ </footer>
209
+
210
+ <script>
211
+ prettyPrint();
212
+ </script>
213
+ <script src="scripts/linenumber.js"></script>
214
+ </body>
215
+ </html>