@jtarrio/webrtlsdr 1.1.0 → 2.0.0-pre1

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 (52) hide show
  1. package/dist/demod/demod-am.d.ts +45 -0
  2. package/dist/demod/demod-am.d.ts.map +1 -0
  3. package/dist/demod/{scheme-am.js → demod-am.js} +36 -3
  4. package/dist/demod/demod-am.js.map +1 -0
  5. package/dist/demod/demod-cw.d.ts +36 -0
  6. package/dist/demod/demod-cw.d.ts.map +1 -0
  7. package/dist/demod/{scheme-cw.js → demod-cw.js} +30 -2
  8. package/dist/demod/demod-cw.js.map +1 -0
  9. package/dist/demod/demod-nbfm.d.ts +45 -0
  10. package/dist/demod/demod-nbfm.d.ts.map +1 -0
  11. package/dist/demod/{scheme-nbfm.js → demod-nbfm.js} +36 -3
  12. package/dist/demod/demod-nbfm.js.map +1 -0
  13. package/dist/demod/demod-ssb.d.ts +45 -0
  14. package/dist/demod/demod-ssb.d.ts.map +1 -0
  15. package/dist/demod/{scheme-ssb.js → demod-ssb.js} +36 -4
  16. package/dist/demod/demod-ssb.js.map +1 -0
  17. package/dist/demod/demod-wbfm.d.ts +95 -0
  18. package/dist/demod/demod-wbfm.d.ts.map +1 -0
  19. package/dist/demod/demod-wbfm.js +205 -0
  20. package/dist/demod/demod-wbfm.js.map +1 -0
  21. package/dist/demod/demodulator.d.ts +2 -62
  22. package/dist/demod/demodulator.d.ts.map +1 -1
  23. package/dist/demod/demodulator.js +15 -137
  24. package/dist/demod/demodulator.js.map +1 -1
  25. package/dist/demod/empty-demodulator.d.ts +62 -0
  26. package/dist/demod/empty-demodulator.d.ts.map +1 -0
  27. package/dist/demod/empty-demodulator.js +145 -0
  28. package/dist/demod/empty-demodulator.js.map +1 -0
  29. package/dist/demod/modes.d.ts +76 -65
  30. package/dist/demod/modes.d.ts.map +1 -1
  31. package/dist/demod/modes.js +59 -99
  32. package/dist/demod/modes.js.map +1 -1
  33. package/dist/dsp/demodulators.d.ts.map +1 -1
  34. package/dist/dsp/demodulators.js +3 -4
  35. package/dist/dsp/demodulators.js.map +1 -1
  36. package/package.json +1 -1
  37. package/dist/demod/scheme-am.d.ts +0 -32
  38. package/dist/demod/scheme-am.d.ts.map +0 -1
  39. package/dist/demod/scheme-am.js.map +0 -1
  40. package/dist/demod/scheme-cw.d.ts +0 -22
  41. package/dist/demod/scheme-cw.d.ts.map +0 -1
  42. package/dist/demod/scheme-cw.js.map +0 -1
  43. package/dist/demod/scheme-nbfm.d.ts +0 -32
  44. package/dist/demod/scheme-nbfm.d.ts.map +0 -1
  45. package/dist/demod/scheme-nbfm.js.map +0 -1
  46. package/dist/demod/scheme-ssb.d.ts +0 -33
  47. package/dist/demod/scheme-ssb.d.ts.map +0 -1
  48. package/dist/demod/scheme-ssb.js.map +0 -1
  49. package/dist/demod/scheme-wbfm.d.ts +0 -38
  50. package/dist/demod/scheme-wbfm.d.ts.map +0 -1
  51. package/dist/demod/scheme-wbfm.js +0 -106
  52. package/dist/demod/scheme-wbfm.js.map +0 -1
@@ -0,0 +1,145 @@
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
+ import { getDemod, getMode, modeParameters } from "./modes";
15
+ import { AudioPlayer } from "../players/audioplayer";
16
+ /**
17
+ * A class that takes a stream of radio samples and demodulates
18
+ * it into an audio signal.
19
+ *
20
+ * The demodulator parameters (scheme, bandwidth, etc) are settable
21
+ * on the fly.
22
+ *
23
+ * Whenever a parameter is changed, the demodulator emits a
24
+ * 'demodulator' event containing the new value. This makes it easy
25
+ * to observe the demodulator's state.
26
+ */
27
+ export class Demodulator extends EventTarget {
28
+ /**
29
+ * @param player The player to use. If undefined, an AudioPlayer will be used.
30
+ */
31
+ constructor(player) {
32
+ super();
33
+ this.inRate = 1024000;
34
+ this.player = player ? player : new AudioPlayer();
35
+ this.squelchControl = new SquelchControl(this.player.sampleRate);
36
+ this.mode = getMode("WBFM");
37
+ this.demod = this.getScheme(this.mode);
38
+ this.frequencyOffset = 0;
39
+ this.latestStereo = false;
40
+ }
41
+ /** The sample rate. */
42
+ inRate;
43
+ /** The audio output device. */
44
+ player;
45
+ /** Controller that silences the output if the SNR is low. */
46
+ squelchControl;
47
+ /** The modulation parameters as a Mode object. */
48
+ mode;
49
+ /** The demodulator class. */
50
+ demod;
51
+ /** The frequency offset to demodulate from. */
52
+ frequencyOffset;
53
+ /** Whether the latest samples were in stereo. */
54
+ latestStereo;
55
+ /** A frequency change we are expecting. */
56
+ expectingFrequency;
57
+ /** Changes the modulation parameters. */
58
+ setMode(mode) {
59
+ this.demod = this.getScheme(mode, this.demod);
60
+ this.mode = mode;
61
+ }
62
+ /** Returns the current modulation parameters. */
63
+ getMode() {
64
+ return this.mode;
65
+ }
66
+ /** Changes the frequency offset. */
67
+ setFrequencyOffset(offset) {
68
+ this.frequencyOffset = offset;
69
+ }
70
+ /** Returns the current frequency offset. */
71
+ getFrequencyOffset() {
72
+ return this.frequencyOffset;
73
+ }
74
+ /** Waits until samples arrive with the given center frequency and then sets the offset. */
75
+ expectFrequencyAndSetOffset(center, offset) {
76
+ this.expectingFrequency = { center, offset };
77
+ }
78
+ /** Sets the audio volume level, from 0 to 1. */
79
+ setVolume(volume) {
80
+ this.player.setVolume(volume);
81
+ }
82
+ /** Returns the current audio volume level. */
83
+ getVolume() {
84
+ return this.player.getVolume();
85
+ }
86
+ /** Returns an appropriate instance of Scheme for the requested mode. */
87
+ getScheme(mode, demod) {
88
+ if (mode.scheme == demod?.getMode().scheme) {
89
+ demod.setMode(mode);
90
+ return demod;
91
+ }
92
+ return getDemod(this.inRate, this.player.sampleRate, mode);
93
+ }
94
+ /** Changes the sample rate. */
95
+ setSampleRate(sampleRate) {
96
+ this.inRate = sampleRate;
97
+ this.demod = this.getScheme(this.mode, undefined);
98
+ }
99
+ /** Receives radio samples. */
100
+ receiveSamples(I, Q, frequency) {
101
+ if (this.expectingFrequency?.center === frequency) {
102
+ this.frequencyOffset = this.expectingFrequency.offset;
103
+ this.expectingFrequency = undefined;
104
+ }
105
+ let { left, right, stereo, snr } = this.demod.demodulate(I, Q, this.frequencyOffset);
106
+ this.squelchControl.applySquelch(this.mode, left, right, snr);
107
+ this.player.play(left, right);
108
+ if (stereo != this.latestStereo) {
109
+ this.dispatchEvent(new StereoStatusEvent(stereo));
110
+ this.latestStereo = stereo;
111
+ }
112
+ }
113
+ addEventListener(type, callback, options) {
114
+ super.addEventListener(type, callback, options);
115
+ }
116
+ }
117
+ export class StereoStatusEvent extends CustomEvent {
118
+ constructor(stereo) {
119
+ super("stereo-status", { detail: stereo, bubbles: true, composed: true });
120
+ }
121
+ }
122
+ class SquelchControl {
123
+ sampleRate;
124
+ constructor(sampleRate) {
125
+ this.sampleRate = sampleRate;
126
+ }
127
+ countdown = 0;
128
+ applySquelch(mode, left, right, snr) {
129
+ const SQUELCH_TAIL = 0.1;
130
+ let params = modeParameters(mode);
131
+ if (!params.hasSquelch())
132
+ return;
133
+ if (params.getSquelch() < snr) {
134
+ this.countdown = SQUELCH_TAIL * this.sampleRate;
135
+ return;
136
+ }
137
+ if (this.countdown > 0) {
138
+ this.countdown -= left.length;
139
+ return;
140
+ }
141
+ left.fill(0);
142
+ right.fill(0);
143
+ }
144
+ }
145
+ //# sourceMappingURL=empty-demodulator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-demodulator.js","sourceRoot":"","sources":["../../src/demod/empty-demodulator.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,33 @@
1
+ /**
2
+ * Demodulation schemes consist of three parts: a class that does the demodulation
3
+ * (extends `Demod`), a type for the modulation parameters (extends `Mode`),
4
+ * and a class that provides a uniform interface to configure the modulation
5
+ * (extends `Configurator`).
6
+ *
7
+ * The type for the modulation parameters is an object that must contain a
8
+ * field named `scheme`, which contains the name of the modulation scheme.
9
+ * Other than that, your type may contain anything; however, I recommend that
10
+ * you make it JSON serializable.
11
+ *
12
+ * The configurator class lets you use generic code to configure the mode.
13
+ * It provides methods to tell whether some settings are configurable, and to
14
+ * get and set their values. Those methods take care of clamping the minimum
15
+ * and maximum values and other validation.
16
+ *
17
+ * The demodulator class takes I and Q samples and outputs audio samples.
18
+ * It can be configured using the `setMode()` method, which takes an object
19
+ * with the new modulation parameters.
20
+ *
21
+ * Demodulation schemes can be registered using the `registerDemod()` function,
22
+ * which makes them available via the `getSchemes()`, `getMode()`, and `getDemod()`
23
+ * functions. This also lets the `Demodulator` class use your demodulation scheme.
24
+ */
1
25
  /** Interface for classes that demodulate IQ radio streams. */
2
- export interface ModulationScheme {
26
+ export interface Demod<M extends Mode> {
3
27
  /** Returns the current mode parameters. */
4
- getMode(): Mode;
5
- /** Changes the mode parameters for the current scheme. */
6
- setMode(mode: Mode): void;
28
+ getMode(): M;
29
+ /** Changes the mode parameters for the demod. */
30
+ setMode(mode: M): void;
7
31
  /**
8
32
  * Demodulates the signal.
9
33
  * @param samplesI The I components of the samples.
@@ -25,73 +49,60 @@ export type Demodulated = {
25
49
  snr: number;
26
50
  };
27
51
  /** Modulation parameters. */
28
- export type Mode =
29
- /** Wideband frequency modulation. */
30
- {
31
- scheme: "WBFM";
32
- stereo: boolean;
33
- }
34
- /** Narrowband frequency modulation. */
35
- | {
36
- scheme: "NBFM";
37
- maxF: number;
38
- squelch: number;
39
- }
40
- /** Amplitude modulation. */
41
- | {
42
- scheme: "AM";
43
- bandwidth: number;
44
- squelch: number;
45
- }
46
- /** Upper sideband modulation. */
47
- | {
48
- scheme: "USB";
49
- bandwidth: number;
50
- squelch: number;
51
- }
52
- /** Lower sideband modulation. */
53
- | {
54
- scheme: "LSB";
55
- bandwidth: number;
56
- squelch: number;
57
- }
58
- /** Continuous wave. */
59
- | {
60
- scheme: "CW";
61
- bandwidth: number;
52
+ export type Mode = {
53
+ scheme: string;
62
54
  };
63
- /** String representing one of the known schemes. */
64
- export type Scheme = Mode["scheme"];
65
- /** Returns the list of known schemes. */
66
- export declare function getSchemes(): Array<Scheme>;
67
- /** Returns the default mode for the given scheme. */
68
- export declare function getMode(scheme: Scheme): Mode;
55
+ /**
56
+ * Registers a modulation scheme. If a modulation scheme by that name already exists, it is replaced.
57
+ * @param name the name of the modulation scheme. Must match the content of `scheme` in the mode.
58
+ * @param demod the constructor of the Demod class.
59
+ * @param params the constructor of the Parameters class.
60
+ */
61
+ export declare function registerDemod<M extends Mode>(name: M["scheme"], demod: DemodConstructor<M>, params: ParametersConstructor<M>): void;
62
+ /** Unregisters a modulation scheme. */
63
+ export declare function unregisterDemod(name: string): void;
64
+ /** Returns the list of registered modulation schemes, in the order in which they were registered. */
65
+ export declare function getSchemes(): Array<string>;
66
+ /** Returns the default mode for the given scheme name. */
67
+ export declare function getMode(scheme: string): Mode;
68
+ /** Returns a Scheme object for the given mode. */
69
+ export declare function getDemod<M extends Mode>(inRate: number, outRate: number, mode: M): Demod<M>;
69
70
  /** Returns accessors for the mode's or scheme's parameters. */
70
- export declare function modeParameters(mode: Mode): ModeParameters;
71
- export declare function modeParameters(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);
71
+ export declare function modeParameters<M extends Mode>(mode: M): Configurator<M>;
72
+ export declare function modeParameters(scheme: string): Configurator<Mode>;
73
+ /** A base for classes that inspect and modify a mode parameters object. */
74
+ export declare abstract class Configurator<M extends Mode> {
75
+ private base;
76
+ constructor(base: M | string);
77
+ get mode(): M;
78
+ protected set mode(mode: M);
79
+ /** Creates an instance of the mode object for the given scheme with the default parameters. */
80
+ protected abstract create(scheme: string): M;
81
+ /** Returns whether stereo output is settable in this mode. */
76
82
  hasStereo(): boolean;
83
+ /** Returns whether stereo output is enabled. */
77
84
  getStereo(): boolean;
78
- setStereo(stereo: boolean): ModeParameters;
85
+ /** Enables or disables stereo output. */
86
+ setStereo(stereo: boolean): Configurator<M>;
87
+ /** Returns whether the bandwidth is settable in this mode. */
79
88
  hasBandwidth(): boolean;
80
- getBandwidth(): number;
81
- setBandwidth(bandwidth: number): ModeParameters;
89
+ /**
90
+ * Returns the bandwidth used by this mode.
91
+ * You should always override this as every mode uses some bandwidth, even if it's not settable.
92
+ */
93
+ abstract getBandwidth(): number;
94
+ /** Changes the bandwidth used by this mode. */
95
+ setBandwidth(bandwidth: number): Configurator<M>;
96
+ /** Returns whether the squelch level is settable. */
82
97
  hasSquelch(): boolean;
98
+ /** Returns the current squelch level. */
83
99
  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;
100
+ /** Sets the squelch level. */
101
+ setSquelch(squelch: number): Configurator<M>;
96
102
  }
103
+ /** The type for a constructor of a Scheme object. */
104
+ type DemodConstructor<M extends Mode> = new (inRate: number, outRate: number, mode: M) => Demod<M>;
105
+ /** The type for a constructor of a Parameters object. */
106
+ type ParametersConstructor<M extends Mode> = new (base: M | string) => Configurator<M>;
107
+ export {};
97
108
  //# sourceMappingURL=modes.d.ts.map
@@ -1 +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,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,CAAC;AAC3D,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC;AAQjE,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"}
1
+ {"version":3,"file":"modes.d.ts","sourceRoot":"","sources":["../../src/demod/modes.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,8DAA8D;AAC9D,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,IAAI;IACnC,2CAA2C;IAC3C,OAAO,IAAI,CAAC,CAAC;IACb,iDAAiD;IACjD,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB;;;;;;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,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,IAAI,EAC1C,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EACjB,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC1B,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,QAGjC;AAED,uCAAuC;AACvC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,QAE3C;AAED,qGAAqG;AACrG,wBAAgB,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,CAE1C;AAED,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG5C;AAED,kDAAkD;AAClD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,IAAI,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,CAAC,GACN,KAAK,CAAC,CAAC,CAAC,CAGV;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACzE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AAMnE,2EAA2E;AAC3E,8BAAsB,YAAY,CAAC,CAAC,SAAS,IAAI;IACnC,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,CAAC,GAAG,MAAM;IACpC,IAAI,IAAI,IAAI,CAAC,CAKZ;IACD,SAAS,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,EAEzB;IAED,+FAA+F;IAC/F,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC;IAE5C,8DAA8D;IAC9D,SAAS,IAAI,OAAO;IAGpB,gDAAgD;IAChD,SAAS,IAAI,OAAO;IAGpB,yCAAyC;IACzC,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC;IAG3C,8DAA8D;IAC9D,YAAY,IAAI,OAAO;IAGvB;;;OAGG;IACH,QAAQ,CAAC,YAAY,IAAI,MAAM;IAC/B,+CAA+C;IAC/C,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC;IAGhD,qDAAqD;IACrD,UAAU,IAAI,OAAO;IAGrB,yCAAyC;IACzC,UAAU,IAAI,MAAM;IAGpB,8BAA8B;IAC9B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC;CAG7C;AAED,qDAAqD;AACrD,KAAK,gBAAgB,CAAC,CAAC,SAAS,IAAI,IAAI,KACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,CAAC,KACJ,KAAK,CAAC,CAAC,CAAC,CAAC;AAEd,yDAAyD;AACzD,KAAK,qBAAqB,CAAC,CAAC,SAAS,IAAI,IAAI,KAC3C,IAAI,EAAE,CAAC,GAAG,MAAM,KACb,YAAY,CAAC,CAAC,CAAC,CAAC"}
@@ -11,131 +11,91 @@
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
- /** Returns the list of known schemes. */
14
+ /**
15
+ * Registers a modulation scheme. If a modulation scheme by that name already exists, it is replaced.
16
+ * @param name the name of the modulation scheme. Must match the content of `scheme` in the mode.
17
+ * @param demod the constructor of the Demod class.
18
+ * @param params the constructor of the Parameters class.
19
+ */
20
+ export function registerDemod(name, demod, params) {
21
+ registeredDemods.set(name, { demod: demod, params });
22
+ }
23
+ /** Unregisters a modulation scheme. */
24
+ export function unregisterDemod(name) {
25
+ registeredDemods.delete(name);
26
+ }
27
+ /** Returns the list of registered modulation schemes, in the order in which they were registered. */
15
28
  export function getSchemes() {
16
- return ["WBFM", "NBFM", "AM", "USB", "LSB", "CW"];
29
+ return [...registeredDemods.keys()];
17
30
  }
18
- /** Returns the default mode for the given scheme. */
31
+ /** Returns the default mode for the given scheme name. */
19
32
  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
- }
33
+ let reg = getRegisteredDemod(scheme);
34
+ return new reg.params(scheme).mode;
35
+ }
36
+ /** Returns a Scheme object for the given mode. */
37
+ export function getDemod(inRate, outRate, mode) {
38
+ let reg = getRegisteredDemod(mode);
39
+ return new reg.demod(inRate, outRate, mode);
34
40
  }
35
41
  export function modeParameters(mode) {
36
- if (typeof mode === "string")
37
- return new SchemeParameters(mode);
38
- return new ModeParameters(mode);
42
+ let reg = getRegisteredDemod(mode);
43
+ return new reg.params(mode);
39
44
  }
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
+ /** A base for classes that inspect and modify a mode parameters object. */
46
+ export class Configurator {
47
+ base;
48
+ constructor(base) {
49
+ this.base = base;
50
+ }
51
+ get mode() {
52
+ if (typeof this.base === "string") {
53
+ this.base = this.create(this.base);
54
+ }
55
+ return this.base;
56
+ }
57
+ set mode(mode) {
58
+ this.base = mode;
45
59
  }
60
+ /** Returns whether stereo output is settable in this mode. */
46
61
  hasStereo() {
47
- return this.mode.scheme == "WBFM";
62
+ return false;
48
63
  }
64
+ /** Returns whether stereo output is enabled. */
49
65
  getStereo() {
50
- return this.mode.scheme == "WBFM" && this.mode.stereo;
66
+ return false;
51
67
  }
68
+ /** Enables or disables stereo output. */
52
69
  setStereo(stereo) {
53
- if (this.mode.scheme == "WBFM")
54
- this.mode = { ...this.mode, stereo: stereo };
55
70
  return this;
56
71
  }
72
+ /** Returns whether the bandwidth is settable in this mode. */
57
73
  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
- }
74
+ return false;
69
75
  }
76
+ /** Changes the bandwidth used by this mode. */
70
77
  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
78
  return this;
101
79
  }
80
+ /** Returns whether the squelch level is settable. */
102
81
  hasSquelch() {
103
- return this.mode.scheme != "WBFM" && this.mode.scheme != "CW";
82
+ return false;
104
83
  }
84
+ /** Returns the current squelch level. */
105
85
  getSquelch() {
106
- if (this.mode.scheme == "WBFM" || this.mode.scheme == "CW")
107
- return 0;
108
- return this.mode.squelch;
86
+ return 0;
109
87
  }
88
+ /** Sets the squelch level. */
110
89
  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
90
  return this;
114
91
  }
115
92
  }
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 modeParameters(getMode(this.scheme)).setStereo(stereo);
127
- }
128
- hasBandwidth() {
129
- return this.scheme != "WBFM";
130
- }
131
- setBandwidth(bandwidth) {
132
- return modeParameters(getMode(this.scheme)).setBandwidth(bandwidth);
133
- }
134
- hasSquelch() {
135
- return this.scheme != "WBFM" && this.scheme != "CW";
136
- }
137
- setSquelch(squelch) {
138
- return modeParameters(getMode(this.scheme)).setSquelch(squelch);
139
- }
93
+ var registeredDemods = new Map();
94
+ function getRegisteredDemod(mode) {
95
+ let scheme = typeof mode === "string" ? mode : mode.scheme;
96
+ let reg = registeredDemods.get(scheme);
97
+ if (!reg)
98
+ throw `Scheme "${scheme}" was not registered.`;
99
+ return reg;
140
100
  }
141
101
  //# sourceMappingURL=modes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modes.js","sourceRoot":"","sources":["../../src/demod/modes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modes.js","sourceRoot":"","sources":["../../src/demod/modes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"demodulators.d.ts","sourceRoot":"","sources":["../../src/dsp/demodulators.ts"],"names":[],"mappings":"AAmBA,kCAAkC;AAClC,oBAAY,QAAQ;IAClB,KAAK,IAAA;IACL,KAAK,IAAA;CACN;AAED,iDAAiD;AACjD,qBAAa,cAAc;IACzB;;OAEG;gBACS,QAAQ,EAAE,QAAQ;IAQ9B,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,UAAU,CAAS;IAE3B,8DAA8D;IAC9D,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY;CAS/D;AAED,0CAA0C;AAC1C,qBAAa,aAAa;IACxB;;OAEG;gBACS,UAAU,EAAE,MAAM;IAK9B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,gBAAgB,CAAS;IAEjC,8DAA8D;IAC9D,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY;CAa/D;AAED,0CAA0C;AAC1C,qBAAa,aAAa;IACxB;;OAEG;gBACS,YAAY,EAAE,MAAM;IAMhC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,EAAE,CAAS;IAEnB,qCAAqC;IACrC,eAAe,CAAC,YAAY,EAAE,MAAM;IAIpC,8DAA8D;IAC9D,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY;CA4C/D;AAED,0EAA0E;AAC1E,qBAAa,eAAe;IAC1B;;;OAGG;gBACS,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAiBjD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAO;IAE/B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAe;IAE/B;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,YAAY,CAAA;KAAE;CA2BxE"}
1
+ {"version":3,"file":"demodulators.d.ts","sourceRoot":"","sources":["../../src/dsp/demodulators.ts"],"names":[],"mappings":"AAmBA,kCAAkC;AAClC,oBAAY,QAAQ;IAClB,KAAK,IAAA;IACL,KAAK,IAAA;CACN;AAED,iDAAiD;AACjD,qBAAa,cAAc;IACzB;;OAEG;gBACS,QAAQ,EAAE,QAAQ;IAQ9B,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,UAAU,CAAS;IAE3B,8DAA8D;IAC9D,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY;CAS/D;AAED,0CAA0C;AAC1C,qBAAa,aAAa;IACxB;;OAEG;gBACS,UAAU,EAAE,MAAM;IAK9B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,gBAAgB,CAAS;IAEjC,8DAA8D;IAC9D,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY;CAa/D;AAED,0CAA0C;AAC1C,qBAAa,aAAa;IACxB;;OAEG;gBACS,YAAY,EAAE,MAAM;IAMhC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,EAAE,CAAS;IAEnB,qCAAqC;IACrC,eAAe,CAAC,YAAY,EAAE,MAAM;IAIpC,8DAA8D;IAC9D,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY;CA2C/D;AAED,0EAA0E;AAC1E,qBAAa,eAAe;IAC1B;;;OAGG;gBACS,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAiBjD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAO;IAE/B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAe;IAE/B;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,YAAY,CAAA;KAAE;CA2BxE"}
@@ -123,14 +123,13 @@ export class FMDemodulator {
123
123
  div = real / imag;
124
124
  sgn = -sgn;
125
125
  }
126
- const value = circ +
126
+ const angle = circ +
127
127
  sgn *
128
128
  (ang +
129
129
  div /
130
130
  (0.98419158358617365 +
131
- div * (0.093485702629671305 + div * 0.19556307900617517))) *
132
- mul;
133
- out[i] = value;
131
+ div * (0.093485702629671305 + div * 0.19556307900617517)));
132
+ out[i] = angle * mul;
134
133
  }
135
134
  this.lI = lI;
136
135
  this.lQ = lQ;
@@ -1 +1 @@
1
- {"version":3,"file":"demodulators.js","sourceRoot":"","sources":["../../src/dsp/demodulators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"demodulators.js","sourceRoot":"","sources":["../../src/dsp/demodulators.ts"],"names":[],"mappings":"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"}
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": "1.1.0",
4
+ "version": "2.0.0-pre1",
5
5
  "author": "Jacobo Tarrio <jtarrio@gmail.com>",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {