@jtarrio/webrtlsdr 0.0.2 → 0.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 (42) hide show
  1. package/README.md +25 -7
  2. package/dist/demod/demodulator.d.ts +1 -1
  3. package/dist/demod/demodulator.d.ts.map +1 -1
  4. package/dist/demod/demodulator.js.map +1 -1
  5. package/dist/demod/{scheme.d.ts → modes.d.ts} +29 -10
  6. package/dist/demod/modes.d.ts.map +1 -0
  7. package/dist/demod/modes.js +141 -0
  8. package/dist/demod/modes.js.map +1 -0
  9. package/dist/demod/sample-counter.d.ts +8 -3
  10. package/dist/demod/sample-counter.d.ts.map +1 -1
  11. package/dist/demod/sample-counter.js +23 -5
  12. package/dist/demod/sample-counter.js.map +1 -1
  13. package/dist/demod/scheme-am.d.ts +1 -1
  14. package/dist/demod/scheme-am.d.ts.map +1 -1
  15. package/dist/demod/scheme-cw.d.ts +1 -1
  16. package/dist/demod/scheme-cw.d.ts.map +1 -1
  17. package/dist/demod/scheme-nbfm.d.ts +1 -1
  18. package/dist/demod/scheme-nbfm.d.ts.map +1 -1
  19. package/dist/demod/scheme-ssb.d.ts +1 -1
  20. package/dist/demod/scheme-ssb.d.ts.map +1 -1
  21. package/dist/demod/scheme-wbfm.d.ts +1 -1
  22. package/dist/demod/scheme-wbfm.d.ts.map +1 -1
  23. package/dist/demod/spectrum.d.ts +6 -0
  24. package/dist/demod/spectrum.d.ts.map +1 -1
  25. package/dist/demod/spectrum.js +6 -0
  26. package/dist/demod/spectrum.js.map +1 -1
  27. package/dist/radio/sample_receiver.d.ts +4 -0
  28. package/dist/radio/sample_receiver.d.ts.map +1 -1
  29. package/dist/radio/sample_receiver.js +4 -0
  30. package/dist/radio/sample_receiver.js.map +1 -1
  31. package/dist/radio.d.ts +2 -0
  32. package/dist/radio.d.ts.map +1 -0
  33. package/dist/radio.js +2 -0
  34. package/dist/radio.js.map +1 -0
  35. package/dist/rtlsdr.d.ts +3 -0
  36. package/dist/rtlsdr.d.ts.map +1 -0
  37. package/dist/rtlsdr.js +3 -0
  38. package/dist/rtlsdr.js.map +1 -0
  39. package/package.json +2 -2
  40. package/dist/demod/scheme.d.ts.map +0 -1
  41. package/dist/demod/scheme.js +0 -96
  42. package/dist/demod/scheme.js.map +0 -1
package/README.md CHANGED
@@ -30,29 +30,44 @@ I want to write a comprehensive set of documentation, but in the meantime, here
30
30
  > - You must connect to the RTL-SDR device in response to a user gesture (a click or tap, generally.) You cannot, for example, connect to it automatically on opening a webpage or after a timeout.
31
31
  > - Your web page must be served through a secure context. That means a HTTPS connection or a connection to `localhost`.
32
32
 
33
+ > [!NOTE]
34
+ > This is a new library and the API is still being refined. For `0.x.y` versions, the `x` component will be incremented when there are incompatible API changes.
35
+
33
36
  ### High-level access to RTL-SDR (demodulate and play through the computer's speakers)
34
37
 
38
+ This program is a complete stereo FM radio receiver tuned for 88.5 MHz.
39
+
35
40
  ```typescript
36
41
  import { Demodulator } from "@jtarrio/webrtlsdr/demod/demodulator";
37
- import { getMode } from "@jtarrio/webrtlsdr/demod/scheme";
38
- import { Radio } from "@jtarrio/webrtlsdr/radio/radio";
39
- import { RTL2832U_Provider } from "@jtarrio/webrtlsdr/rtlsdr/rtl2832u";
42
+ import { getMode } from "@jtarrio/webrtlsdr/demod/modes";
43
+ import { Radio } from "@jtarrio/webrtlsdr/radio";
44
+ import { RTL2832U_Provider } from "@jtarrio/webrtlsdr/rtlsdr";
40
45
 
41
46
  const sampleRate = 1024000;
42
47
  let demodulator = new Demodulator(sampleRate);
43
- let radio = new Radio(new RTL2832U_Provider(), spectrum, sampleRate);
48
+ let radio = new Radio(new RTL2832U_Provider(), demodulator, sampleRate);
44
49
 
45
50
  radio.setFrequency(88500000);
46
51
  demodulator.setVolume(1);
47
52
  demodulator.setMode(getMode("WBFM"));
48
53
 
49
- getElementById("playButton").addEventListener("click", () => radio.start());
50
- getElementById("stopButton").addEventListener("click", () => radio.stop());
54
+ document
55
+ .getElementById("playButton")
56
+ .addEventListener("click", () => radio.start());
57
+ document
58
+ .getElementById("stopButton")
59
+ .addEventListener("click", () => radio.stop());
51
60
  ```
52
61
 
62
+ You can also see a full example at [`examples/highlevel`](examples/highlevel/script.js).
63
+
53
64
  ### Low-level access (read samples straight from the stick)
54
65
 
66
+ This program connects to the RTL-SDR stick, tunes to 88.5 MHz, reads 65536 samples, and closes the connection.
67
+
55
68
  ```typescript
69
+ import { RTL2832U_Provider } from "@jtarrio/webrtlsdr/rtlsdr";
70
+
56
71
  let provider = new RTL2832U_Provider();
57
72
  let device = await provider.get();
58
73
  await device.setSampleRate(1024000);
@@ -60,10 +75,13 @@ await device.setCenterFrequency(88500000);
60
75
  await device.setGain(null);
61
76
  await device.resetBuffer();
62
77
  let samples = await device.readSamples(65536);
78
+ await device.close();
63
79
  ```
64
80
 
81
+ You can also see a full example at [`examples/lowlevel`](examples/lowlevel/script.js).
82
+
65
83
  ## Acknowledgements
66
84
 
67
- This is a spinoff of https://github.com/jtarrio/radioreceiver, which is, in turn, a fork of https://github.com/google/radioreceiver. I am the original author, but I was employed by Google at the time.
85
+ This is a spinoff of https://github.com/jtarrio/radioreceiver, which is, in turn, a fork of https://github.com/google/radioreceiver. (I am the original author, but I was employed by Google at the time.)
68
86
 
69
87
  Kudos and thanks to the [RTL-SDR project](http://sdr.osmocom.org/trac/wiki/rtl-sdr) for figuring out the magic numbers needed to drive the USB tuner.
@@ -9,7 +9,7 @@
9
9
  * 'demodulator' event containing the new value. This makes it easy
10
10
  * to observe the demodulator's state.
11
11
  */
12
- import { Mode } from "./scheme";
12
+ import { Mode } from "./modes";
13
13
  import { SampleReceiver } from "../radio/sample_receiver";
14
14
  /** The demodulator class. */
15
15
  export declare class Demodulator extends EventTarget implements SampleReceiver {
@@ -1 +1 @@
1
- {"version":3,"file":"demodulator.d.ts","sourceRoot":"","sources":["../../src/demod/demodulator.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;GAUG;AAEH,OAAO,EAAoB,IAAI,EAAE,MAAM,UAAU,CAAC;AAOlD,OAAO,EAAwB,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAOhF,6BAA6B;AAC7B,qBAAa,WAAY,SAAQ,WAAY,YAAW,cAAc;IACxD,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAUlC,+BAA+B;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,6DAA6D;IAC7D,OAAO,CAAC,cAAc,CAAiB;IACvC,kDAAkD;IAClD,OAAO,CAAC,IAAI,CAAO;IACnB,6BAA6B;IAC7B,OAAO,CAAC,MAAM,CAAmB;IACjC,+CAA+C;IAC/C,OAAO,CAAC,eAAe,CAAS;IAChC,iDAAiD;IACjD,OAAO,CAAC,YAAY,CAAU;IAC9B,2CAA2C;IAC3C,OAAO,CAAC,kBAAkB,CAAC,CAAY;IAEvC,yCAAyC;IACzC,OAAO,CAAC,IAAI,EAAE,IAAI;IAKlB,iDAAiD;IACjD,OAAO,IAAI,IAAI;IAIf,oCAAoC;IACpC,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAIjC,4CAA4C;IAC5C,kBAAkB;IAIlB,2FAA2F;IAC3F,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAI1D,gDAAgD;IAChD,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,8CAA8C;IAC9C,SAAS;IAIT,kFAAkF;IAClF,OAAO,CAAC,SAAS;IAqBjB,+BAA+B;IAC/B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKvC,8BAA8B;IAC9B,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAmBzE,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc;IAI7C,gBAAgB,CACd,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI,EAC/C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;IACP,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,GAAG,IAAI,EACnD,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;CAYR;AAED,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,OAAO,CAAC;gBAC7C,MAAM,EAAE,OAAO;CAG5B"}
1
+ {"version":3,"file":"demodulator.d.ts","sourceRoot":"","sources":["../../src/demod/demodulator.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;GAUG;AAEH,OAAO,EAAoB,IAAI,EAAE,MAAM,SAAS,CAAC;AAOjD,OAAO,EAAwB,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEhF,6BAA6B;AAC7B,qBAAa,WAAY,SAAQ,WAAY,YAAW,cAAc;IACxD,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAUlC,+BAA+B;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,6DAA6D;IAC7D,OAAO,CAAC,cAAc,CAAiB;IACvC,kDAAkD;IAClD,OAAO,CAAC,IAAI,CAAO;IACnB,6BAA6B;IAC7B,OAAO,CAAC,MAAM,CAAmB;IACjC,+CAA+C;IAC/C,OAAO,CAAC,eAAe,CAAS;IAChC,iDAAiD;IACjD,OAAO,CAAC,YAAY,CAAU;IAC9B,2CAA2C;IAC3C,OAAO,CAAC,kBAAkB,CAAC,CAAY;IAEvC,yCAAyC;IACzC,OAAO,CAAC,IAAI,EAAE,IAAI;IAKlB,iDAAiD;IACjD,OAAO,IAAI,IAAI;IAIf,oCAAoC;IACpC,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAIjC,4CAA4C;IAC5C,kBAAkB;IAIlB,2FAA2F;IAC3F,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAI1D,gDAAgD;IAChD,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,8CAA8C;IAC9C,SAAS;IAIT,kFAAkF;IAClF,OAAO,CAAC,SAAS;IAqBjB,+BAA+B;IAC/B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKvC,8BAA8B;IAC9B,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAmBzE,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc;IAI7C,gBAAgB,CACd,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI,EAC/C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;IACP,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,GAAG,IAAI,EACnD,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;CAYR;AAED,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,OAAO,CAAC;gBAC7C,MAAM,EAAE,OAAO;CAG5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"demodulator.js","sourceRoot":"","sources":["../../src/demod/demodulator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"demodulator.js","sourceRoot":"","sources":["../../src/demod/demodulator.ts"],"names":[],"mappings":"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"}
@@ -66,13 +66,32 @@ export type Scheme = Mode["scheme"];
66
66
  export declare function getSchemes(): Array<Scheme>;
67
67
  /** Returns the default mode for the given scheme. */
68
68
  export declare function getMode(scheme: Scheme): Mode;
69
- export declare function hasStereo(mode: Mode | Scheme): boolean;
70
- export declare function getStereo(mode: Mode): boolean;
71
- export declare function withStereo(stereo: boolean, mode: Mode): Mode;
72
- export declare function hasBandwidth(mode: Mode | Scheme): boolean;
73
- export declare function getBandwidth(mode: Mode): number;
74
- export declare function withBandwidth(bandwidth: number, mode: Mode): Mode;
75
- export declare function hasSquelch(mode: Mode | Scheme): boolean;
76
- export declare function getSquelch(mode: Mode): number;
77
- export declare function withSquelch(squelch: number, mode: Mode): Mode;
78
- //# sourceMappingURL=scheme.d.ts.map
69
+ /** Returns accessors for the mode's or scheme's parameters. */
70
+ export declare function getParameters(mode: Mode): ModeParameters;
71
+ export declare function getParameters(scheme: Scheme): SchemeParameters;
72
+ /** A class to inspect and modify a mode's parameters. */
73
+ export declare class ModeParameters {
74
+ mode: Mode;
75
+ constructor(mode: Mode);
76
+ hasStereo(): boolean;
77
+ getStereo(): boolean;
78
+ setStereo(stereo: boolean): ModeParameters;
79
+ hasBandwidth(): boolean;
80
+ getBandwidth(): number;
81
+ setBandwidth(bandwidth: number): ModeParameters;
82
+ hasSquelch(): boolean;
83
+ getSquelch(): number;
84
+ setSquelch(squelch: number): ModeParameters;
85
+ }
86
+ /** A class to inspect a scheme's parameters. */
87
+ export declare class SchemeParameters {
88
+ scheme: Scheme;
89
+ constructor(scheme: Scheme);
90
+ hasStereo(): boolean;
91
+ setStereo(stereo: boolean): ModeParameters;
92
+ hasBandwidth(): boolean;
93
+ setBandwidth(bandwidth: number): ModeParameters;
94
+ hasSquelch(): boolean;
95
+ setSquelch(squelch: number): ModeParameters;
96
+ }
97
+ //# sourceMappingURL=modes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modes.d.ts","sourceRoot":"","sources":["../../src/demod/modes.ts"],"names":[],"mappings":"AAcA,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,OAAO,IAAI,IAAI,CAAC;IAChB,0DAA0D;IAC1D,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;CAC/E;AAED,0BAA0B;AAC1B,MAAM,MAAM,WAAW,GAAG;IACxB,oBAAoB;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,qBAAqB;IACrB,KAAK,EAAE,YAAY,CAAC;IACpB,+BAA+B;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,IAAI;AACd,qCAAqC;AACnC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE;AACrC,uCAAuC;GACrC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACnD,4BAA4B;GAC1B;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACtD,iCAAiC;GAC/B;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACvD,iCAAiC;GAC/B;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACvD,uBAAuB;GACrB;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,oDAAoD;AACpD,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEpC,yCAAyC;AACzC,wBAAgB,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,CAE1C;AAED,qDAAqD;AACrD,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAe5C;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,CAAC;AAC1D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC;AAQhE,yDAAyD;AACzD,qBAAa,cAAc;IACN,IAAI,EAAE,IAAI;gBAAV,IAAI,EAAE,IAAI;IAE7B,SAAS,IAAI,OAAO;IAIpB,SAAS,IAAI,OAAO;IAIpB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc;IAM1C,YAAY,IAAI,OAAO;IAIvB,YAAY,IAAI,MAAM;IAWtB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAiC/C,UAAU,IAAI,OAAO;IAIrB,UAAU,IAAI,MAAM;IAKpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc;CAK5C;AAED,gDAAgD;AAChD,qBAAa,gBAAgB;IACR,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;IAEjC,SAAS,IAAI,OAAO;IAIpB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc;IAI1C,YAAY,IAAI,OAAO;IAIvB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAI/C,UAAU,IAAI,OAAO;IAIrB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc;CAG5C"}
@@ -0,0 +1,141 @@
1
+ // Copyright 2024 Jacobo Tarrio Barreiro. All rights reserved.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ /** Returns the list of known schemes. */
15
+ export function getSchemes() {
16
+ return ["WBFM", "NBFM", "AM", "USB", "LSB", "CW"];
17
+ }
18
+ /** Returns the default mode for the given scheme. */
19
+ export function getMode(scheme) {
20
+ switch (scheme) {
21
+ case "WBFM":
22
+ return { scheme: "WBFM", stereo: true };
23
+ case "NBFM":
24
+ return { scheme: "NBFM", maxF: 5000, squelch: 0 };
25
+ case "AM":
26
+ return { scheme: "AM", bandwidth: 15000, squelch: 0 };
27
+ case "USB":
28
+ return { scheme: "USB", bandwidth: 2800, squelch: 0 };
29
+ case "LSB":
30
+ return { scheme: "LSB", bandwidth: 2800, squelch: 0 };
31
+ case "CW":
32
+ return { scheme: "CW", bandwidth: 50 };
33
+ }
34
+ }
35
+ export function getParameters(mode) {
36
+ if (typeof mode === "string")
37
+ return new SchemeParameters(mode);
38
+ return new ModeParameters(mode);
39
+ }
40
+ /** A class to inspect and modify a mode's parameters. */
41
+ export class ModeParameters {
42
+ mode;
43
+ constructor(mode) {
44
+ this.mode = mode;
45
+ }
46
+ hasStereo() {
47
+ return this.mode.scheme == "WBFM";
48
+ }
49
+ getStereo() {
50
+ return this.mode.scheme == "WBFM" && this.mode.stereo;
51
+ }
52
+ setStereo(stereo) {
53
+ if (this.mode.scheme == "WBFM")
54
+ this.mode = { ...this.mode, stereo: stereo };
55
+ return this;
56
+ }
57
+ hasBandwidth() {
58
+ return this.mode.scheme != "WBFM";
59
+ }
60
+ getBandwidth() {
61
+ switch (this.mode.scheme) {
62
+ case "WBFM":
63
+ return 150000;
64
+ case "NBFM":
65
+ return 2 * this.mode.maxF;
66
+ default:
67
+ return this.mode.bandwidth;
68
+ }
69
+ }
70
+ setBandwidth(bandwidth) {
71
+ switch (this.mode.scheme) {
72
+ case "WBFM":
73
+ break;
74
+ case "NBFM":
75
+ this.mode = {
76
+ ...this.mode,
77
+ maxF: Math.max(125, Math.min(bandwidth / 2, 15000)),
78
+ };
79
+ break;
80
+ case "AM":
81
+ this.mode = {
82
+ ...this.mode,
83
+ bandwidth: Math.max(250, Math.min(bandwidth, 30000)),
84
+ };
85
+ break;
86
+ case "USB":
87
+ case "LSB":
88
+ this.mode = {
89
+ ...this.mode,
90
+ bandwidth: Math.max(10, Math.min(bandwidth, 15000)),
91
+ };
92
+ break;
93
+ case "CW":
94
+ this.mode = {
95
+ ...this.mode,
96
+ bandwidth: Math.max(5, Math.min(bandwidth, 1000)),
97
+ };
98
+ break;
99
+ }
100
+ return this;
101
+ }
102
+ hasSquelch() {
103
+ return this.mode.scheme != "WBFM" && this.mode.scheme != "CW";
104
+ }
105
+ getSquelch() {
106
+ if (this.mode.scheme == "WBFM" || this.mode.scheme == "CW")
107
+ return 0;
108
+ return this.mode.squelch;
109
+ }
110
+ setSquelch(squelch) {
111
+ if (this.mode.scheme != "WBFM" && this.mode.scheme != "CW")
112
+ this.mode = { ...this.mode, squelch: Math.max(0, Math.min(squelch, 6)) };
113
+ return this;
114
+ }
115
+ }
116
+ /** A class to inspect a scheme's parameters. */
117
+ export class SchemeParameters {
118
+ scheme;
119
+ constructor(scheme) {
120
+ this.scheme = scheme;
121
+ }
122
+ hasStereo() {
123
+ return this.scheme == "WBFM";
124
+ }
125
+ setStereo(stereo) {
126
+ return getParameters(getMode(this.scheme)).setStereo(stereo);
127
+ }
128
+ hasBandwidth() {
129
+ return this.scheme != "WBFM";
130
+ }
131
+ setBandwidth(bandwidth) {
132
+ return getParameters(getMode(this.scheme)).setBandwidth(bandwidth);
133
+ }
134
+ hasSquelch() {
135
+ return this.scheme != "WBFM" && this.scheme != "CW";
136
+ }
137
+ setSquelch(squelch) {
138
+ return getParameters(getMode(this.scheme)).setSquelch(squelch);
139
+ }
140
+ }
141
+ //# sourceMappingURL=modes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modes.js","sourceRoot":"","sources":["../../src/demod/modes.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAgDjC,yCAAyC;AACzC,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1C,KAAK,MAAM;YACT,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACpD,KAAK,IAAI;YACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACxD,KAAK,KAAK;YACR,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACxD,KAAK,KAAK;YACR,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACxD,KAAK,IAAI;YACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,aAAa,CAC3B,IAAmB;IAEnB,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,yDAAyD;AACzD,MAAM,OAAO,cAAc;IACN;IAAnB,YAAmB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAEjC,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IACpC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,MAAe;QACvB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM;YAC5B,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IACpC,CAAC;IAED,YAAY;QACV,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5B;gBACE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,KAAK,MAAM;gBACT,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,IAAI,GAAG;oBACV,GAAG,IAAI,CAAC,IAAI;oBACZ,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;iBACpD,CAAC;gBACF,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,IAAI,GAAG;oBACV,GAAG,IAAI,CAAC,IAAI;oBACZ,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;iBACrD,CAAC;gBACF,MAAM;YACR,KAAK,KAAK,CAAC;YACX,KAAK,KAAK;gBACR,IAAI,CAAC,IAAI,GAAG;oBACV,GAAG,IAAI,CAAC,IAAI;oBACZ,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;iBACpD,CAAC;gBACF,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,IAAI,GAAG;oBACV,GAAG,IAAI,CAAC,IAAI;oBACZ,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;iBAClD,CAAC;gBACF,MAAM;QACV,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IAChE,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI;YAAE,OAAO,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI;YACxD,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,gDAAgD;AAChD,MAAM,OAAO,gBAAgB;IACR;IAAnB,YAAmB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAErC,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,MAAe;QACvB,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;CACF"}
@@ -1,10 +1,12 @@
1
1
  import { SampleReceiver } from "../radio/sample_receiver";
2
- export declare class SampleClickEvent extends Event {
3
- constructor();
4
- }
2
+ /** A SampleReceiver that counts received samples to send a `sample-click` event periodically. */
5
3
  export declare class SampleCounter extends EventTarget implements SampleReceiver {
6
4
  private sampleRate;
7
5
  private clicksPerSecond?;
6
+ /**
7
+ * @param sampleRate The initial sample rate.
8
+ * @param clicksPerSecond The number of events per second.
9
+ */
8
10
  constructor(sampleRate: number, clicksPerSecond?: number | undefined);
9
11
  private samplesPerClick?;
10
12
  private countedSamples;
@@ -15,4 +17,7 @@ export declare class SampleCounter extends EventTarget implements SampleReceiver
15
17
  addEventListener(type: "sample-click", callback: (e: SampleClickEvent) => void | null, options?: boolean | AddEventListenerOptions | undefined): void;
16
18
  addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions | undefined): void;
17
19
  }
20
+ export declare class SampleClickEvent extends Event {
21
+ constructor();
22
+ }
18
23
  //# sourceMappingURL=sample-counter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sample-counter.d.ts","sourceRoot":"","sources":["../../src/demod/sample-counter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEhF,qBAAa,gBAAiB,SAAQ,KAAK;;CAI1C;AAED,qBAAa,aAAc,SAAQ,WAAY,YAAW,cAAc;IAEpE,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,eAAe,CAAC;gBADhB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,YAAA;IAOlC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,kBAAkB;IAM1B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKvC,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI;IAWtD,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc;IAI7C,gBAAgB,CACd,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,GAAG,IAAI,EAC9C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;IACP,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,GAAG,IAAI,EACnD,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;CAYR"}
1
+ {"version":3,"file":"sample-counter.d.ts","sourceRoot":"","sources":["../../src/demod/sample-counter.ts"],"names":[],"mappings":"AAcA,OAAO,EAAwB,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEhF,iGAAiG;AACjG,qBAAa,aAAc,SAAQ,WAAY,YAAW,cAAc;IAK1D,OAAO,CAAC,UAAU;IAAU,OAAO,CAAC,eAAe,CAAC;IAJhE;;;OAGG;gBACiB,UAAU,EAAE,MAAM,EAAU,eAAe,CAAC,EAAE,MAAM,YAAA;IAMxE,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,kBAAkB;IAM1B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKvC,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI;IAWtD,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc;IAI7C,gBAAgB,CACd,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,GAAG,IAAI,EAC9C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;IACP,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,GAAG,IAAI,EACnD,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;CAYR;AAED,qBAAa,gBAAiB,SAAQ,KAAK;;CAI1C"}
@@ -1,12 +1,25 @@
1
+ // Copyright 2024 Jacobo Tarrio Barreiro. All rights reserved.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
1
14
  import { concatenateReceivers } from "../radio/sample_receiver";
2
- export class SampleClickEvent extends Event {
3
- constructor() {
4
- super("sample-click");
5
- }
6
- }
15
+ /** A SampleReceiver that counts received samples to send a `sample-click` event periodically. */
7
16
  export class SampleCounter extends EventTarget {
8
17
  sampleRate;
9
18
  clicksPerSecond;
19
+ /**
20
+ * @param sampleRate The initial sample rate.
21
+ * @param clicksPerSecond The number of events per second.
22
+ */
10
23
  constructor(sampleRate, clicksPerSecond) {
11
24
  super();
12
25
  this.sampleRate = sampleRate;
@@ -40,4 +53,9 @@ export class SampleCounter extends EventTarget {
40
53
  super.addEventListener(type, callback, options);
41
54
  }
42
55
  }
56
+ export class SampleClickEvent extends Event {
57
+ constructor() {
58
+ super("sample-click");
59
+ }
60
+ }
43
61
  //# sourceMappingURL=sample-counter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sample-counter.js","sourceRoot":"","sources":["../../src/demod/sample-counter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAkB,MAAM,0BAA0B,CAAC;AAEhF,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC;QACE,KAAK,CAAC,cAAc,CAAC,CAAC;IACxB,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,WAAW;IAElC;IACA;IAFV,YACU,UAAkB,EAClB,eAAwB;QAEhC,KAAK,EAAE,CAAC;QAHA,eAAU,GAAV,UAAU,CAAQ;QAClB,oBAAe,GAAf,eAAe,CAAS;QAGhC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEO,eAAe,CAAU;IACzB,cAAc,CAAS;IAEvB,kBAAkB;QACxB,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS;YACvC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC;IAED,aAAa,CAAC,UAAkB;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnD,CAAC;IAED,cAAc,CAAC,CAAe,EAAE,CAAe;QAC7C,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,MAAM,CAAC;QAChC,IACE,IAAI,CAAC,eAAe,KAAK,SAAS;YAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc;YAE1C,OAAO;QACT,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,IAAoB;QAC1B,OAAO,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAYD,gBAAgB,CACd,IAAY,EACZ,QAAa,EACb,OAAuD;QAEvD,KAAK,CAAC,gBAAgB,CACpB,IAAI,EACJ,QAAqD,EACrD,OAAO,CACR,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sample-counter.js","sourceRoot":"","sources":["../../src/demod/sample-counter.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,oBAAoB,EAAkB,MAAM,0BAA0B,CAAC;AAEhF,iGAAiG;AACjG,MAAM,OAAO,aAAc,SAAQ,WAAW;IAKxB;IAA4B;IAJhD;;;OAGG;IACH,YAAoB,UAAkB,EAAU,eAAwB;QACtE,KAAK,EAAE,CAAC;QADU,eAAU,GAAV,UAAU,CAAQ;QAAU,oBAAe,GAAf,eAAe,CAAS;QAEtE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEO,eAAe,CAAU;IACzB,cAAc,CAAS;IAEvB,kBAAkB;QACxB,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS;YACvC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC;IAED,aAAa,CAAC,UAAkB;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnD,CAAC;IAED,cAAc,CAAC,CAAe,EAAE,CAAe;QAC7C,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,MAAM,CAAC;QAChC,IACE,IAAI,CAAC,eAAe,KAAK,SAAS;YAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc;YAE1C,OAAO;QACT,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,IAAoB;QAC1B,OAAO,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAYD,gBAAgB,CACd,IAAY,EACZ,QAAa,EACb,OAAuD;QAEvD,KAAK,CAAC,gBAAgB,CACpB,IAAI,EACJ,QAAqD,EACrD,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC;QACE,KAAK,CAAC,cAAc,CAAC,CAAC;IACxB,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { Demodulated, Mode, ModulationScheme } from "./scheme";
1
+ import { Demodulated, Mode, ModulationScheme } from "./modes";
2
2
  /** A demodulator for amplitude modulated signals. */
3
3
  export declare class SchemeAM implements ModulationScheme {
4
4
  private outRate;
@@ -1 +1 @@
1
- {"version":3,"file":"scheme-am.d.ts","sourceRoot":"","sources":["../../src/demod/scheme-am.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE/D,qDAAqD;AACrD,qBAAa,QAAS,YAAW,gBAAgB;IAQ7C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IARd;;;;OAIG;gBAED,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE;IAUvC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,WAAW,CAAgB;IAEnC,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE;IAOrC;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAef"}
1
+ {"version":3,"file":"scheme-am.d.ts","sourceRoot":"","sources":["../../src/demod/scheme-am.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D,qDAAqD;AACrD,qBAAa,QAAS,YAAW,gBAAgB;IAQ7C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IARd;;;;OAIG;gBAED,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE;IAUvC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,WAAW,CAAgB;IAEnC,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE;IAOrC;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAef"}
@@ -1,4 +1,4 @@
1
- import { Demodulated, Mode, ModulationScheme } from "./scheme";
1
+ import { Demodulated, Mode, ModulationScheme } from "./modes";
2
2
  /** A demodulator for continuous wave signals. */
3
3
  export declare class SchemeCW implements ModulationScheme {
4
4
  private outRate;
@@ -1 +1 @@
1
- {"version":3,"file":"scheme-cw.d.ts","sourceRoot":"","sources":["../../src/demod/scheme-cw.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAK/D,iDAAiD;AACjD,qBAAa,QAAS,YAAW,gBAAgB;IAG7C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;gBAFZ,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE;IAWvC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE;IAOrC,8DAA8D;IAC9D,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAgBf"}
1
+ {"version":3,"file":"scheme-cw.d.ts","sourceRoot":"","sources":["../../src/demod/scheme-cw.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAK9D,iDAAiD;AACjD,qBAAa,QAAS,YAAW,gBAAgB;IAG7C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;gBAFZ,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE;IAWvC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE;IAOrC,8DAA8D;IAC9D,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAgBf"}
@@ -1,4 +1,4 @@
1
- import { Demodulated, Mode, ModulationScheme } from "./scheme";
1
+ import { Demodulated, Mode, ModulationScheme } from "./modes";
2
2
  /** A demodulator for narrowband FM signals. */
3
3
  export declare class SchemeNBFM implements ModulationScheme {
4
4
  private outRate;
@@ -1 +1 @@
1
- {"version":3,"file":"scheme-nbfm.d.ts","sourceRoot":"","sources":["../../src/demod/scheme-nbfm.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE/D,+CAA+C;AAC/C,qBAAa,UAAW,YAAW,gBAAgB;IAQ/C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IARd;;;;OAIG;gBAED,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAUzC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,WAAW,CAAgB;IAEnC,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAQvC;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAef"}
1
+ {"version":3,"file":"scheme-nbfm.d.ts","sourceRoot":"","sources":["../../src/demod/scheme-nbfm.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D,+CAA+C;AAC/C,qBAAa,UAAW,YAAW,gBAAgB;IAQ/C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IARd;;;;OAIG;gBAED,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAUzC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,WAAW,CAAgB;IAEnC,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAQvC;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAef"}
@@ -1,4 +1,4 @@
1
- import { Demodulated, Mode, ModulationScheme } from "./scheme";
1
+ import { Demodulated, Mode, ModulationScheme } from "./modes";
2
2
  /** A demodulator for single-sideband modulated signals. */
3
3
  export declare class SchemeSSB implements ModulationScheme {
4
4
  private outRate;
@@ -1 +1 @@
1
- {"version":3,"file":"scheme-ssb.d.ts","sourceRoot":"","sources":["../../src/demod/scheme-ssb.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE/D,2DAA2D;AAC3D,qBAAa,SAAU,YAAW,gBAAgB;IAS9C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IATd;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE;IAYhD,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE;IAM9C;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAgBf"}
1
+ {"version":3,"file":"scheme-ssb.d.ts","sourceRoot":"","sources":["../../src/demod/scheme-ssb.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D,2DAA2D;AAC3D,qBAAa,SAAU,YAAW,gBAAgB;IAS9C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IATd;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE;IAYhD,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE;IAM9C;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAgBf"}
@@ -1,4 +1,4 @@
1
- import { Demodulated, Mode, ModulationScheme } from "./scheme";
1
+ import { Demodulated, Mode, ModulationScheme } from "./modes";
2
2
  /** A demodulator for wideband FM signals. */
3
3
  export declare class SchemeWBFM implements ModulationScheme {
4
4
  private mode;
@@ -1 +1 @@
1
- {"version":3,"file":"scheme-wbfm.d.ts","sourceRoot":"","sources":["../../src/demod/scheme-wbfm.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE/D,6CAA6C;AAC7C,qBAAa,UAAW,YAAW,gBAAgB;IAS/C,OAAO,CAAC,IAAI;IARd;;;;OAIG;gBAED,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACP,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAqBzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,WAAW,CAAC,CAAqB;IACzC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAIvC;;;;;;;OAOG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAmCf"}
1
+ {"version":3,"file":"scheme-wbfm.d.ts","sourceRoot":"","sources":["../../src/demod/scheme-wbfm.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D,6CAA6C;AAC7C,qBAAa,UAAW,YAAW,gBAAgB;IAS/C,OAAO,CAAC,IAAI;IARd;;;;OAIG;gBAED,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACP,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAqBzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,WAAW,CAAC,CAAqB;IACzC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAIvC;;;;;;;OAOG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAmCf"}
@@ -1,4 +1,5 @@
1
1
  import { SampleReceiver } from "../radio/sample_receiver";
2
+ /** A sample receiver that computes the received signal's spectrum. */
2
3
  export declare class Spectrum implements SampleReceiver {
3
4
  constructor(fftSize?: number);
4
5
  private I;
@@ -13,6 +14,11 @@ export declare class Spectrum implements SampleReceiver {
13
14
  receiveSamples(I: Float32Array, Q: Float32Array, frequency: number): void;
14
15
  andThen(next: SampleReceiver): SampleReceiver;
15
16
  frequency(): number | undefined;
17
+ /**
18
+ * Populates the given array with the spectrum of the latest received signals.
19
+ * For best results, the array should have at least `size` entries; if it's smaller,
20
+ * it will be filled with whatever fits.
21
+ */
16
22
  getSpectrum(spectrum: Float32Array): void;
17
23
  }
18
24
  //# sourceMappingURL=spectrum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spectrum.d.ts","sourceRoot":"","sources":["../../src/demod/spectrum.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAwB,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEhF,qBAAa,QAAS,YAAW,cAAc;gBACjC,OAAO,CAAC,EAAE,MAAM;IAc5B,OAAO,CAAC,CAAC,CAAoB;IAC7B,OAAO,CAAC,CAAC,CAAoB;IAC7B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,KAAK,CAAU;IAEvB,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAKvB;IAED,IAAI,IAAI,IAPU,MAAM,CASvB;IAED,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAE9B,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAOzE,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc;IAI7C,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B,WAAW,CAAC,QAAQ,EAAE,YAAY;CAanC"}
1
+ {"version":3,"file":"spectrum.d.ts","sourceRoot":"","sources":["../../src/demod/spectrum.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAwB,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEhF,sEAAsE;AACtE,qBAAa,QAAS,YAAW,cAAc;gBACjC,OAAO,CAAC,EAAE,MAAM;IAc5B,OAAO,CAAC,CAAC,CAAoB;IAC7B,OAAO,CAAC,CAAC,CAAoB;IAC7B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,KAAK,CAAU;IAEvB,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAKvB;IAED,IAAI,IAAI,IAPU,MAAM,CASvB;IAED,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAE9B,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAOzE,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc;IAI7C,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,YAAY;CAanC"}
@@ -16,6 +16,7 @@ import { Float32RingBuffer } from "../dsp/buffers";
16
16
  import { makeBlackmanWindow } from "../dsp/coefficients";
17
17
  import { FFT } from "../dsp/fft";
18
18
  import { concatenateReceivers } from "../radio/sample_receiver";
19
+ /** A sample receiver that computes the received signal's spectrum. */
19
20
  export class Spectrum {
20
21
  constructor(fftSize) {
21
22
  if (fftSize === undefined) {
@@ -59,6 +60,11 @@ export class Spectrum {
59
60
  frequency() {
60
61
  return this.lastFrequency;
61
62
  }
63
+ /**
64
+ * Populates the given array with the spectrum of the latest received signals.
65
+ * For best results, the array should have at least `size` entries; if it's smaller,
66
+ * it will be filled with whatever fits.
67
+ */
62
68
  getSpectrum(spectrum) {
63
69
  if (this.dirty) {
64
70
  let fft = this.fft.transformCircularBuffers(this.I, this.Q);
@@ -1 +1 @@
1
- {"version":3,"file":"spectrum.js","sourceRoot":"","sources":["../../src/demod/spectrum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spectrum.js","sourceRoot":"","sources":["../../src/demod/spectrum.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,gCAAgC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAkB,MAAM,0BAA0B,CAAC;AAEhF,sEAAsE;AACtE,MAAM,OAAO,QAAQ;IACnB,YAAY,OAAgB;QAC1B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEO,CAAC,CAAoB;IACrB,CAAC,CAAoB;IACrB,aAAa,CAAqB;IAClC,GAAG,CAAM;IACT,UAAU,CAAe;IACzB,KAAK,CAAU;IAEvB,IAAI,IAAI,CAAC,OAAe;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,aAAa,CAAC,CAAS,IAAS,CAAC;IAEjC,cAAc,CAAC,CAAe,EAAE,CAAe,EAAE,SAAiB;QAChE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,IAAoB;QAC1B,OAAO,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,QAAsB;QAChC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAChB,EAAE;wBACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -7,5 +7,9 @@ export interface SampleReceiver {
7
7
  /** Sets a sample receiver to be executed right after this one. */
8
8
  andThen(next: SampleReceiver): SampleReceiver;
9
9
  }
10
+ /**
11
+ * A function that returns a sample receiver that executes the given receivers in sequence.
12
+ * Use it in your implementation of SampleReceiver.andThen.
13
+ */
10
14
  export declare function concatenateReceivers(prev: SampleReceiver, next: SampleReceiver): SampleReceiver;
11
15
  //# sourceMappingURL=sample_receiver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sample_receiver.d.ts","sourceRoot":"","sources":["../../src/radio/sample_receiver.ts"],"names":[],"mappings":"AAcA,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC,mDAAmD;IACnD,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1E,kEAAkE;IAClE,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAAC;CAC/C;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,cAAc,GACnB,cAAc,CAahB"}
1
+ {"version":3,"file":"sample_receiver.d.ts","sourceRoot":"","sources":["../../src/radio/sample_receiver.ts"],"names":[],"mappings":"AAcA,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC,mDAAmD;IACnD,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1E,kEAAkE;IAClE,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAAC;CAC/C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,cAAc,GACnB,cAAc,CAahB"}
@@ -11,6 +11,10 @@
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
+ /**
15
+ * A function that returns a sample receiver that executes the given receivers in sequence.
16
+ * Use it in your implementation of SampleReceiver.andThen.
17
+ */
14
18
  export function concatenateReceivers(prev, next) {
15
19
  let list = [];
16
20
  if (prev instanceof ReceiverSequence) {
@@ -1 +1 @@
1
- {"version":3,"file":"sample_receiver.js","sourceRoot":"","sources":["../../src/radio/sample_receiver.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAcjC,MAAM,UAAU,oBAAoB,CAClC,IAAoB,EACpB,IAAoB;IAEpB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,IAAI,YAAY,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,YAAY,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,gBAAgB;IACD;IAAnB,YAAmB,SAA2B;QAA3B,cAAS,GAAT,SAAS,CAAkB;IAAG,CAAC;IAElD,aAAa,CAAC,UAAkB;QAC9B,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,cAAc,CAAC,CAAe,EAAE,CAAe,EAAE,SAAiB;QAChE,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,QAAQ,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAoB;QAC1B,OAAO,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"sample_receiver.js","sourceRoot":"","sources":["../../src/radio/sample_receiver.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAcjC;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAoB,EACpB,IAAoB;IAEpB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,IAAI,YAAY,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,YAAY,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,gBAAgB;IACD;IAAnB,YAAmB,SAA2B;QAA3B,cAAS,GAAT,SAAS,CAAkB;IAAG,CAAC;IAElD,aAAa,CAAC,UAAkB;QAC9B,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,cAAc,CAAC,CAAe,EAAE,CAAe,EAAE,SAAiB;QAChE,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,QAAQ,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAoB;QAC1B,OAAO,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from "./radio/radio";
2
+ //# sourceMappingURL=radio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../src/radio.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
package/dist/radio.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from "./radio/radio";
2
+ //# sourceMappingURL=radio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio.js","sourceRoot":"","sources":["../src/radio.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './rtlsdr/rtldevice';
2
+ export * from './rtlsdr/rtl2832u';
3
+ //# sourceMappingURL=rtlsdr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtlsdr.d.ts","sourceRoot":"","sources":["../src/rtlsdr.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
package/dist/rtlsdr.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './rtlsdr/rtldevice';
2
+ export * from './rtlsdr/rtl2832u';
3
+ //# sourceMappingURL=rtlsdr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtlsdr.js","sourceRoot":"","sources":["../src/rtlsdr.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jtarrio/webrtlsdr",
3
3
  "description": "Access RTL-SDR devices and receive and demodulate radio signals from your web application",
4
- "version": "0.0.2",
4
+ "version": "0.1.0",
5
5
  "author": "Jacobo Tarrio <jtarrio@gmail.com>",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "files": ["./dist"],
15
15
  "scripts": {
16
- "build": "tsc"
16
+ "build": "rm -fR dist/ && tsc"
17
17
  },
18
18
  "devDependencies": {
19
19
  "typescript": "^5.6.3"
@@ -1 +0,0 @@
1
- {"version":3,"file":"scheme.d.ts","sourceRoot":"","sources":["../../src/demod/scheme.ts"],"names":[],"mappings":"AAcA,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,OAAO,IAAI,IAAI,CAAC;IAChB,0DAA0D;IAC1D,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;CAC/E;AAED,0BAA0B;AAC1B,MAAM,MAAM,WAAW,GAAG;IACxB,oBAAoB;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,qBAAqB;IACrB,KAAK,EAAE,YAAY,CAAC;IACpB,+BAA+B;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,IAAI;AACd,qCAAqC;AACnC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE;AACrC,uCAAuC;GACrC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACnD,4BAA4B;GAC1B;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACtD,iCAAiC;GAC/B;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACvD,iCAAiC;GAC/B;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACvD,uBAAuB;GACrB;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,oDAAoD;AACpD,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEpC,yCAAyC;AACzC,wBAAgB,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,CAE1C;AAED,qDAAqD;AACrD,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAe5C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,WAE5C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,WAEnC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAI5D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,WAE/C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,UAStC;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAoBjE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,WAG7C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAG7C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAK7D"}
@@ -1,96 +0,0 @@
1
- // Copyright 2024 Jacobo Tarrio Barreiro. All rights reserved.
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
- /** Returns the list of known schemes. */
15
- export function getSchemes() {
16
- return ["WBFM", "NBFM", "AM", "USB", "LSB", "CW"];
17
- }
18
- /** Returns the default mode for the given scheme. */
19
- export function getMode(scheme) {
20
- switch (scheme) {
21
- case "WBFM":
22
- return { scheme: "WBFM", stereo: true };
23
- case "NBFM":
24
- return { scheme: "NBFM", maxF: 5000, squelch: 0 };
25
- case "AM":
26
- return { scheme: "AM", bandwidth: 15000, squelch: 0 };
27
- case "USB":
28
- return { scheme: "USB", bandwidth: 2800, squelch: 0 };
29
- case "LSB":
30
- return { scheme: "LSB", bandwidth: 2800, squelch: 0 };
31
- case "CW":
32
- return { scheme: "CW", bandwidth: 50 };
33
- }
34
- }
35
- export function hasStereo(mode) {
36
- return (typeof mode === "string" ? mode : mode.scheme) == "WBFM";
37
- }
38
- export function getStereo(mode) {
39
- return mode.scheme == "WBFM" && mode.stereo;
40
- }
41
- export function withStereo(stereo, mode) {
42
- mode = { ...mode };
43
- if (mode.scheme == "WBFM")
44
- mode.stereo = stereo;
45
- return mode;
46
- }
47
- export function hasBandwidth(mode) {
48
- return (typeof mode === "string" ? mode : mode.scheme) != "WBFM";
49
- }
50
- export function getBandwidth(mode) {
51
- switch (mode.scheme) {
52
- case "WBFM":
53
- return 150000;
54
- case "NBFM":
55
- return mode.maxF * 2;
56
- default:
57
- return mode.bandwidth;
58
- }
59
- }
60
- export function withBandwidth(bandwidth, mode) {
61
- mode = { ...mode };
62
- switch (mode.scheme) {
63
- case "WBFM":
64
- break;
65
- case "NBFM":
66
- mode.maxF = Math.max(125, Math.min(bandwidth / 2, 15000));
67
- break;
68
- case "AM":
69
- mode.bandwidth = Math.max(250, Math.min(bandwidth, 30000));
70
- break;
71
- case "USB":
72
- case "LSB":
73
- mode.bandwidth = Math.max(10, Math.min(bandwidth, 15000));
74
- break;
75
- case "CW":
76
- mode.bandwidth = Math.max(5, Math.min(bandwidth, 1000));
77
- break;
78
- }
79
- return mode;
80
- }
81
- export function hasSquelch(mode) {
82
- const scheme = typeof mode === "string" ? mode : mode.scheme;
83
- return scheme != "WBFM" && scheme != "CW";
84
- }
85
- export function getSquelch(mode) {
86
- if (mode.scheme == "WBFM" || mode.scheme == "CW")
87
- return 0;
88
- return mode.squelch;
89
- }
90
- export function withSquelch(squelch, mode) {
91
- mode = { ...mode };
92
- if (mode.scheme != "WBFM" && mode.scheme != "CW")
93
- mode.squelch = Math.max(0, Math.min(squelch, 6));
94
- return mode;
95
- }
96
- //# sourceMappingURL=scheme.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scheme.js","sourceRoot":"","sources":["../../src/demod/scheme.ts"],"names":[],"mappings":"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"}