bionic-audio 1.0.0 → 1.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.
- package/dist/AudioRecorder.d.ts +16 -8
- package/dist/AudioRecorder.d.ts.map +1 -1
- package/dist/AudioRecorder.js +23 -12
- package/dist/AudioRecorder.js.map +1 -1
- package/lib/AudioRecorder.ts +36 -20
- package/package.json +63 -63
package/dist/AudioRecorder.d.ts
CHANGED
|
@@ -78,19 +78,27 @@ export declare class AudioRecorder extends EventEmitter {
|
|
|
78
78
|
pipe(destination: NodeJS.WritableStream): void;
|
|
79
79
|
}
|
|
80
80
|
/**
|
|
81
|
-
* Convenience function:
|
|
81
|
+
* Convenience function: create and optionally start file recording
|
|
82
|
+
* Pass `autoStart=true` to automatically start and return promise
|
|
83
|
+
* Pass `autoStart=false` to return recorder instance for manual control
|
|
82
84
|
*/
|
|
83
|
-
export declare function recordToFile(output: string, durationSeconds?: number, options?: Partial<RecorderOptions
|
|
85
|
+
export declare function recordToFile(output: string, durationSeconds?: number, options?: Partial<RecorderOptions>, autoStart?: boolean): Promise<RecorderResult> | AudioRecorder;
|
|
84
86
|
/**
|
|
85
|
-
* Convenience function:
|
|
87
|
+
* Convenience function: create microphone recorder
|
|
88
|
+
* Pass `autoStart=true` to start immediately (default)
|
|
89
|
+
* Pass `autoStart=false` to return recorder for manual control
|
|
86
90
|
*/
|
|
87
|
-
export declare function recordMicrophone(output: string, durationSeconds?: number, gain?: number): Promise<RecorderResult
|
|
91
|
+
export declare function recordMicrophone(output: string, durationSeconds?: number, gain?: number, autoStart?: boolean): Promise<RecorderResult> | AudioRecorder;
|
|
88
92
|
/**
|
|
89
|
-
* Convenience function:
|
|
93
|
+
* Convenience function: create system audio (loopback) recorder
|
|
94
|
+
* Pass `autoStart=true` to start immediately (default)
|
|
95
|
+
* Pass `autoStart=false` to return recorder for manual control
|
|
90
96
|
*/
|
|
91
|
-
export declare function recordLoopback(output: string, durationSeconds?: number, gain?: number): Promise<RecorderResult
|
|
97
|
+
export declare function recordLoopback(output: string, durationSeconds?: number, gain?: number, autoStart?: boolean): Promise<RecorderResult> | AudioRecorder;
|
|
92
98
|
/**
|
|
93
|
-
* Convenience function:
|
|
99
|
+
* Convenience function: create dual-stream (microphone + loopback) recorder
|
|
100
|
+
* Pass `autoStart=true` to start immediately (default)
|
|
101
|
+
* Pass `autoStart=false` to return recorder for manual control
|
|
94
102
|
*/
|
|
95
|
-
export declare function recordBoth(output: string, durationSeconds?: number, gain?: number): Promise<RecorderResult
|
|
103
|
+
export declare function recordBoth(output: string, durationSeconds?: number, gain?: number, autoStart?: boolean): Promise<RecorderResult> | AudioRecorder;
|
|
96
104
|
//# sourceMappingURL=AudioRecorder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioRecorder.d.ts","sourceRoot":"","sources":["../lib/AudioRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wBAAwB;IACxB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,yDAAyD;IACzD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAc;gBAEtB,OAAO,GAAE,eAAoB;IAoBzC,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,OAAO,CAAC,SAAS;IA0CjB;;OAEG;IACI,KAAK,IAAI,IAAI;IAkDpB;;OAEG;IACI,IAAI,IAAI,OAAO;IAQtB;;OAEG;IACI,WAAW,IAAI,OAAO;IAI7B;;OAEG;IACI,UAAU,IAAI,YAAY,GAAG,IAAI;IAIxC;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAQ9C;;OAEG;IACI,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI;CAStD;AAED
|
|
1
|
+
{"version":3,"file":"AudioRecorder.d.ts","sourceRoot":"","sources":["../lib/AudioRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wBAAwB;IACxB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,yDAAyD;IACzD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAc;gBAEtB,OAAO,GAAE,eAAoB;IAoBzC,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,OAAO,CAAC,SAAS;IA0CjB;;OAEG;IACI,KAAK,IAAI,IAAI;IAkDpB;;OAEG;IACI,IAAI,IAAI,OAAO;IAQtB;;OAEG;IACI,WAAW,IAAI,OAAO;IAI7B;;OAEG;IACI,UAAU,IAAI,YAAY,GAAG,IAAI;IAIxC;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAQ9C;;OAEG;IACI,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI;CAStD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,MAAW,EAC5B,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM,EACtC,SAAS,GAAE,OAAc,GACxB,OAAO,CAAC,cAAc,CAAC,GAAG,aAAa,CAWzC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,MAAW,EAC5B,IAAI,GAAE,MAAY,EAClB,SAAS,GAAE,OAAc,GACxB,OAAO,CAAC,cAAc,CAAC,GAAG,aAAa,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,MAAW,EAC5B,IAAI,GAAE,MAAY,EAClB,SAAS,GAAE,OAAc,GACxB,OAAO,CAAC,cAAc,CAAC,GAAG,aAAa,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,MAAW,EAC5B,IAAI,GAAE,MAAY,EAClB,SAAS,GAAE,OAAc,GACxB,OAAO,CAAC,cAAc,CAAC,GAAG,aAAa,CAEzC"}
|
package/dist/AudioRecorder.js
CHANGED
|
@@ -225,32 +225,43 @@ class AudioRecorder extends events_1.EventEmitter {
|
|
|
225
225
|
}
|
|
226
226
|
exports.AudioRecorder = AudioRecorder;
|
|
227
227
|
/**
|
|
228
|
-
* Convenience function:
|
|
228
|
+
* Convenience function: create and optionally start file recording
|
|
229
|
+
* Pass `autoStart=true` to automatically start and return promise
|
|
230
|
+
* Pass `autoStart=false` to return recorder instance for manual control
|
|
229
231
|
*/
|
|
230
|
-
|
|
232
|
+
function recordToFile(output, durationSeconds = 10, options = {}, autoStart = true) {
|
|
231
233
|
const recorder = new AudioRecorder({
|
|
232
234
|
output,
|
|
233
235
|
duration: durationSeconds,
|
|
234
236
|
...options,
|
|
235
237
|
});
|
|
236
|
-
|
|
238
|
+
if (autoStart) {
|
|
239
|
+
return recorder.record();
|
|
240
|
+
}
|
|
241
|
+
return recorder;
|
|
237
242
|
}
|
|
238
243
|
/**
|
|
239
|
-
* Convenience function:
|
|
244
|
+
* Convenience function: create microphone recorder
|
|
245
|
+
* Pass `autoStart=true` to start immediately (default)
|
|
246
|
+
* Pass `autoStart=false` to return recorder for manual control
|
|
240
247
|
*/
|
|
241
|
-
|
|
242
|
-
return recordToFile(output, durationSeconds, { mic: true, gain });
|
|
248
|
+
function recordMicrophone(output, durationSeconds = 10, gain = 1.0, autoStart = true) {
|
|
249
|
+
return recordToFile(output, durationSeconds, { mic: true, gain }, autoStart);
|
|
243
250
|
}
|
|
244
251
|
/**
|
|
245
|
-
* Convenience function:
|
|
252
|
+
* Convenience function: create system audio (loopback) recorder
|
|
253
|
+
* Pass `autoStart=true` to start immediately (default)
|
|
254
|
+
* Pass `autoStart=false` to return recorder for manual control
|
|
246
255
|
*/
|
|
247
|
-
|
|
248
|
-
return recordToFile(output, durationSeconds, { loopback: true, gain });
|
|
256
|
+
function recordLoopback(output, durationSeconds = 10, gain = 1.0, autoStart = true) {
|
|
257
|
+
return recordToFile(output, durationSeconds, { loopback: true, gain }, autoStart);
|
|
249
258
|
}
|
|
250
259
|
/**
|
|
251
|
-
* Convenience function:
|
|
260
|
+
* Convenience function: create dual-stream (microphone + loopback) recorder
|
|
261
|
+
* Pass `autoStart=true` to start immediately (default)
|
|
262
|
+
* Pass `autoStart=false` to return recorder for manual control
|
|
252
263
|
*/
|
|
253
|
-
|
|
254
|
-
return recordToFile(output, durationSeconds, { both: true, gain });
|
|
264
|
+
function recordBoth(output, durationSeconds = 10, gain = 1.0, autoStart = true) {
|
|
265
|
+
return recordToFile(output, durationSeconds, { both: true, gain }, autoStart);
|
|
255
266
|
}
|
|
256
267
|
//# sourceMappingURL=AudioRecorder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioRecorder.js","sourceRoot":"","sources":["../lib/AudioRecorder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"AudioRecorder.js","sourceRoot":"","sources":["../lib/AudioRecorder.ts"],"names":[],"mappings":"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"}
|
package/lib/AudioRecorder.ts
CHANGED
|
@@ -243,50 +243,66 @@ export class AudioRecorder extends EventEmitter {
|
|
|
243
243
|
}
|
|
244
244
|
|
|
245
245
|
/**
|
|
246
|
-
* Convenience function:
|
|
246
|
+
* Convenience function: create and optionally start file recording
|
|
247
|
+
* Pass `autoStart=true` to automatically start and return promise
|
|
248
|
+
* Pass `autoStart=false` to return recorder instance for manual control
|
|
247
249
|
*/
|
|
248
|
-
export
|
|
250
|
+
export function recordToFile(
|
|
249
251
|
output: string,
|
|
250
252
|
durationSeconds: number = 10,
|
|
251
|
-
options: Partial<RecorderOptions> = {}
|
|
252
|
-
|
|
253
|
+
options: Partial<RecorderOptions> = {},
|
|
254
|
+
autoStart: boolean = true
|
|
255
|
+
): Promise<RecorderResult> | AudioRecorder {
|
|
253
256
|
const recorder = new AudioRecorder({
|
|
254
257
|
output,
|
|
255
258
|
duration: durationSeconds,
|
|
256
259
|
...options,
|
|
257
260
|
});
|
|
258
|
-
|
|
261
|
+
|
|
262
|
+
if (autoStart) {
|
|
263
|
+
return recorder.record();
|
|
264
|
+
}
|
|
265
|
+
return recorder;
|
|
259
266
|
}
|
|
260
267
|
|
|
261
268
|
/**
|
|
262
|
-
* Convenience function:
|
|
269
|
+
* Convenience function: create microphone recorder
|
|
270
|
+
* Pass `autoStart=true` to start immediately (default)
|
|
271
|
+
* Pass `autoStart=false` to return recorder for manual control
|
|
263
272
|
*/
|
|
264
|
-
export
|
|
273
|
+
export function recordMicrophone(
|
|
265
274
|
output: string,
|
|
266
275
|
durationSeconds: number = 10,
|
|
267
|
-
gain: number = 1.0
|
|
268
|
-
|
|
269
|
-
|
|
276
|
+
gain: number = 1.0,
|
|
277
|
+
autoStart: boolean = true
|
|
278
|
+
): Promise<RecorderResult> | AudioRecorder {
|
|
279
|
+
return recordToFile(output, durationSeconds, { mic: true, gain }, autoStart);
|
|
270
280
|
}
|
|
271
281
|
|
|
272
282
|
/**
|
|
273
|
-
* Convenience function:
|
|
283
|
+
* Convenience function: create system audio (loopback) recorder
|
|
284
|
+
* Pass `autoStart=true` to start immediately (default)
|
|
285
|
+
* Pass `autoStart=false` to return recorder for manual control
|
|
274
286
|
*/
|
|
275
|
-
export
|
|
287
|
+
export function recordLoopback(
|
|
276
288
|
output: string,
|
|
277
289
|
durationSeconds: number = 10,
|
|
278
|
-
gain: number = 1.0
|
|
279
|
-
|
|
280
|
-
|
|
290
|
+
gain: number = 1.0,
|
|
291
|
+
autoStart: boolean = true
|
|
292
|
+
): Promise<RecorderResult> | AudioRecorder {
|
|
293
|
+
return recordToFile(output, durationSeconds, { loopback: true, gain }, autoStart);
|
|
281
294
|
}
|
|
282
295
|
|
|
283
296
|
/**
|
|
284
|
-
* Convenience function:
|
|
297
|
+
* Convenience function: create dual-stream (microphone + loopback) recorder
|
|
298
|
+
* Pass `autoStart=true` to start immediately (default)
|
|
299
|
+
* Pass `autoStart=false` to return recorder for manual control
|
|
285
300
|
*/
|
|
286
|
-
export
|
|
301
|
+
export function recordBoth(
|
|
287
302
|
output: string,
|
|
288
303
|
durationSeconds: number = 10,
|
|
289
|
-
gain: number = 1.0
|
|
290
|
-
|
|
291
|
-
|
|
304
|
+
gain: number = 1.0,
|
|
305
|
+
autoStart: boolean = true
|
|
306
|
+
): Promise<RecorderResult> | AudioRecorder {
|
|
307
|
+
return recordToFile(output, durationSeconds, { both: true, gain }, autoStart);
|
|
292
308
|
}
|
package/package.json
CHANGED
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "bionic-audio",
|
|
3
|
-
"version": "1.
|
|
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
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "bionic-audio",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"author": "",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": ""
|
|
8
|
+
},
|
|
9
|
+
"main": "dist/AudioRecorder.js",
|
|
10
|
+
"devDependencies": {
|
|
11
|
+
"@types/node": "^20.0.0",
|
|
12
|
+
"typescript": "^5.0.0"
|
|
13
|
+
},
|
|
14
|
+
"bin": {
|
|
15
|
+
"bionic-audio": "./recorder.exe"
|
|
16
|
+
},
|
|
17
|
+
"bugs": {
|
|
18
|
+
"url": ""
|
|
19
|
+
},
|
|
20
|
+
"cpu": [
|
|
21
|
+
"x64",
|
|
22
|
+
"ia32"
|
|
23
|
+
],
|
|
24
|
+
"description": "Professional Windows WASAPI audio recorder library for Node.js and Bun - record microphone and system audio with advanced features",
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=14.0.0",
|
|
27
|
+
"npm": ">=6.0.0"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist/",
|
|
31
|
+
"recorder.exe",
|
|
32
|
+
"lib/",
|
|
33
|
+
"README.md",
|
|
34
|
+
"LICENSE"
|
|
35
|
+
],
|
|
36
|
+
"homepage": "",
|
|
37
|
+
"keywords": [
|
|
38
|
+
"audio",
|
|
39
|
+
"recording",
|
|
40
|
+
"WASAPI",
|
|
41
|
+
"windows",
|
|
42
|
+
"loopback",
|
|
43
|
+
"microphone",
|
|
44
|
+
"audio-recording",
|
|
45
|
+
"system-audio",
|
|
46
|
+
"capture",
|
|
47
|
+
"wav",
|
|
48
|
+
"stereo",
|
|
49
|
+
"nodejs",
|
|
50
|
+
"bun",
|
|
51
|
+
"bionic"
|
|
52
|
+
],
|
|
53
|
+
"license": "MIT",
|
|
54
|
+
"os": [
|
|
55
|
+
"win32"
|
|
56
|
+
],
|
|
57
|
+
"scripts": {
|
|
58
|
+
"build": "tsc",
|
|
59
|
+
"prepare": "npm run build",
|
|
60
|
+
"prepublishOnly": "npm run build"
|
|
61
|
+
},
|
|
62
|
+
"types": "dist/AudioRecorder.d.ts"
|
|
63
|
+
}
|