@jtarrio/webrtlsdr 2.0.3 → 2.0.5

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 (37) hide show
  1. package/dist/demod/demod-am.d.ts +10 -1
  2. package/dist/demod/demod-am.d.ts.map +1 -1
  3. package/dist/demod/demod-am.js +9 -4
  4. package/dist/demod/demod-am.js.map +1 -1
  5. package/dist/demod/demod-cw.d.ts +13 -1
  6. package/dist/demod/demod-cw.d.ts.map +1 -1
  7. package/dist/demod/demod-cw.js +12 -7
  8. package/dist/demod/demod-cw.js.map +1 -1
  9. package/dist/demod/demod-nbfm.d.ts +10 -1
  10. package/dist/demod/demod-nbfm.d.ts.map +1 -1
  11. package/dist/demod/demod-nbfm.js +9 -4
  12. package/dist/demod/demod-nbfm.js.map +1 -1
  13. package/dist/demod/demod-ssb.d.ts +11 -1
  14. package/dist/demod/demod-ssb.d.ts.map +1 -1
  15. package/dist/demod/demod-ssb.js +10 -5
  16. package/dist/demod/demod-ssb.js.map +1 -1
  17. package/dist/demod/demod-wbfm.d.ts +21 -3
  18. package/dist/demod/demod-wbfm.d.ts.map +1 -1
  19. package/dist/demod/demod-wbfm.js +17 -10
  20. package/dist/demod/demod-wbfm.js.map +1 -1
  21. package/dist/demod/empty-demodulator.d.ts +20 -0
  22. package/dist/demod/empty-demodulator.d.ts.map +1 -1
  23. package/dist/demod/empty-demodulator.js +10 -6
  24. package/dist/demod/empty-demodulator.js.map +1 -1
  25. package/dist/demod/modes.d.ts +2 -2
  26. package/dist/demod/modes.d.ts.map +1 -1
  27. package/dist/demod/modes.js +2 -2
  28. package/dist/demod/modes.js.map +1 -1
  29. package/dist/dsp/demodulators.d.ts +2 -1
  30. package/dist/dsp/demodulators.d.ts.map +1 -1
  31. package/dist/dsp/demodulators.js +2 -2
  32. package/dist/dsp/demodulators.js.map +1 -1
  33. package/dist/radio/radio.d.ts +16 -1
  34. package/dist/radio/radio.d.ts.map +1 -1
  35. package/dist/radio/radio.js +12 -8
  36. package/dist/radio/radio.js.map +1 -1
  37. package/package.json +1 -1
@@ -5,6 +5,13 @@ export type ModeAM = {
5
5
  bandwidth: number;
6
6
  squelch: number;
7
7
  };
8
+ /** Mode options for AM. */
9
+ export type OptionsAM = {
10
+ /** Number of taps for the downsampler filter. Must be an odd number. 151 by default. */
11
+ downsamplerTaps?: number;
12
+ /** Number of taps for the RF filter. Must be an odd number. 151 by default. */
13
+ rfTaps?: number;
14
+ };
8
15
  /** A demodulator for amplitude modulated signals. */
9
16
  export declare class DemodAM implements Demod<ModeAM> {
10
17
  private outRate;
@@ -13,8 +20,10 @@ export declare class DemodAM implements Demod<ModeAM> {
13
20
  * @param inRate The sample rate of the input samples.
14
21
  * @param outRate The sample rate of the output audio.
15
22
  * @param mode The mode to use initially.
23
+ * @param options Options for the demodulator.
16
24
  */
17
- constructor(inRate: number, outRate: number, mode: ModeAM);
25
+ constructor(inRate: number, outRate: number, mode: ModeAM, options?: OptionsAM);
26
+ private rfTaps;
18
27
  private shifter;
19
28
  private downsampler;
20
29
  private filterI;
@@ -1 +1 @@
1
- {"version":3,"file":"demod-am.d.ts","sourceRoot":"","sources":["../../src/demod/demod-am.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,8BAA8B;AAC9B,MAAM,MAAM,MAAM,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,qDAAqD;AACrD,qBAAa,OAAQ,YAAW,KAAK,CAAC,MAAM,CAAC;IAMf,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,IAAI;IALjE;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM,EAAU,IAAI,EAAE,MAAM;IASzE,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,MAAM;IAIjB,OAAO,CAAC,IAAI,EAAE,MAAM;IAOpB;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAef;AAED,oCAAoC;AACpC,qBAAa,QAAS,SAAQ,YAAY,CAAC,MAAM,CAAC;gBACpC,IAAI,EAAE,MAAM,GAAG,MAAM;IAGjC,SAAS,CAAC,MAAM,IAAI,MAAM;IAG1B,YAAY,IAAI,OAAO;IAGvB,YAAY,IAAI,MAAM;IAGtB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ;IAOzC,UAAU,IAAI,OAAO;IAGrB,UAAU,IAAI,MAAM;IAGpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;CAItC"}
1
+ {"version":3,"file":"demod-am.d.ts","sourceRoot":"","sources":["../../src/demod/demod-am.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,8BAA8B;AAC9B,MAAM,MAAM,MAAM,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,2BAA2B;AAC3B,MAAM,MAAM,SAAS,GAAG;IACtB,wFAAwF;IACxF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qDAAqD;AACrD,qBAAa,OAAQ,YAAW,KAAK,CAAC,MAAM,CAAC;IASzC,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IATd;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,SAAS;IAgBrB,OAAO,CAAC,MAAM,CAAS;IACvB,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,MAAM;IAIjB,OAAO,CAAC,IAAI,EAAE,MAAM;IAWpB;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAef;AAED,oCAAoC;AACpC,qBAAa,QAAS,SAAQ,YAAY,CAAC,MAAM,CAAC;gBACpC,IAAI,EAAE,MAAM,GAAG,MAAM;IAGjC,SAAS,CAAC,MAAM,IAAI,MAAM;IAG1B,YAAY,IAAI,OAAO;IAGvB,YAAY,IAAI,MAAM;IAGtB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ;IAOzC,UAAU,IAAI,OAAO;IAGrB,UAAU,IAAI,MAAM;IAGpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;CAItC"}
@@ -1,3 +1,4 @@
1
+ // Copyright 2026 Jacobo Tarrio Barreiro. All rights reserved.
1
2
  // Copyright 2014 Google Inc. All rights reserved.
2
3
  //
3
4
  // Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,17 +26,21 @@ export class DemodAM {
25
26
  * @param inRate The sample rate of the input samples.
26
27
  * @param outRate The sample rate of the output audio.
27
28
  * @param mode The mode to use initially.
29
+ * @param options Options for the demodulator.
28
30
  */
29
- constructor(inRate, outRate, mode) {
31
+ constructor(inRate, outRate, mode, options) {
30
32
  this.outRate = outRate;
31
33
  this.mode = mode;
34
+ const downsamplerTaps = options?.downsamplerTaps || 151;
35
+ this.rfTaps = options?.rfTaps || 151;
32
36
  this.shifter = new FrequencyShifter(inRate);
33
- this.downsampler = new ComplexDownsampler(inRate, outRate, 151);
34
- const kernel = makeLowPassKernel(outRate, this.mode.bandwidth / 2, 151);
37
+ this.downsampler = new ComplexDownsampler(inRate, outRate, downsamplerTaps);
38
+ const kernel = makeLowPassKernel(outRate, this.mode.bandwidth / 2, this.rfTaps);
35
39
  this.filterI = new FIRFilter(kernel);
36
40
  this.filterQ = new FIRFilter(kernel);
37
41
  this.demodulator = new AMDemodulator(outRate);
38
42
  }
43
+ rfTaps;
39
44
  shifter;
40
45
  downsampler;
41
46
  filterI;
@@ -46,7 +51,7 @@ export class DemodAM {
46
51
  }
47
52
  setMode(mode) {
48
53
  this.mode = mode;
49
- const kernel = makeLowPassKernel(this.outRate, mode.bandwidth / 2, 151);
54
+ const kernel = makeLowPassKernel(this.outRate, mode.bandwidth / 2, this.rfTaps);
50
55
  this.filterI.setCoefficients(kernel);
51
56
  this.filterQ.setCoefficients(kernel);
52
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"demod-am.js","sourceRoot":"","sources":["../../src/demod/demod-am.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"demod-am.js","sourceRoot":"","sources":["../../src/demod/demod-am.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,kDAAkD;AAClD,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,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAsB,MAAM,YAAY,CAAC;AAa9D,qDAAqD;AACrD,MAAM,OAAO,OAAO;IASR;IACA;IATV;;;;;OAKG;IACH,YACE,MAAc,EACN,OAAe,EACf,IAAY,EACpB,OAAmB;QAFX,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAQ;QAGpB,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,GAAG,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,GAAG,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,iBAAiB,CAC9B,OAAO,EACP,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,EACvB,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAEO,MAAM,CAAS;IACf,OAAO,CAAmB;IAC1B,WAAW,CAAqB;IAChC,OAAO,CAAY;IACnB,OAAO,CAAY;IACnB,WAAW,CAAgB;IAEnC,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,MAAM,GAAG,iBAAiB,CAC9B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,GAAG,CAAC,EAClB,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CACR,QAAsB,EACtB,QAAsB,EACtB,UAAkB;QAElB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,WAAW,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACxE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC;YAC1B,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,WAAW,GAAG,QAAQ;SAC5B,CAAC;IACJ,CAAC;CACF;AAED,oCAAoC;AACpC,MAAM,OAAO,QAAS,SAAQ,YAAoB;IAChD,YAAY,IAAqB;QAC/B,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IACS,MAAM;QACd,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACxD,CAAC;IACD,YAAY;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IACD,YAAY,CAAC,SAAiB;QAC5B,IAAI,CAAC,IAAI,GAAG;YACV,GAAG,IAAI,CAAC,IAAI;YACZ,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;SACrD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IACD,UAAU,CAAC,OAAe;QACxB,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;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -4,6 +4,15 @@ export type ModeCW = {
4
4
  scheme: "CW";
5
5
  bandwidth: number;
6
6
  };
7
+ /** Mode options for CW. */
8
+ export type OptionsCW = {
9
+ /** Tone frequency of the zero-beat CW signals, in Hertz. 600 by default. */
10
+ toneFrequency?: number;
11
+ /** Number of taps for the downsampler filter. Must be an odd number. 151 by default. */
12
+ downsamplerTaps?: number;
13
+ /** Number of taps for the audio filter. Must be an odd number. 351 by default. */
14
+ audioTaps?: number;
15
+ };
7
16
  /** A demodulator for continuous wave signals. */
8
17
  export declare class DemodCW implements Demod<ModeCW> {
9
18
  private outRate;
@@ -12,13 +21,16 @@ export declare class DemodCW implements Demod<ModeCW> {
12
21
  * @param inRate The sample rate of the input samples.
13
22
  * @param outRate The sample rate of the output audio.
14
23
  * @param mode The mode to use initially.
24
+ * @param options Options for the demodulator.
15
25
  */
16
- constructor(inRate: number, outRate: number, mode: ModeCW);
26
+ constructor(inRate: number, outRate: number, mode: ModeCW, options?: OptionsCW);
27
+ private audioTaps;
17
28
  private shifter;
18
29
  private downsampler;
19
30
  private filterI;
20
31
  private filterQ;
21
32
  private toneShifter;
33
+ private toneFrequency;
22
34
  private agc;
23
35
  getMode(): ModeCW;
24
36
  setMode(mode: ModeCW): void;
@@ -1 +1 @@
1
- {"version":3,"file":"demod-cw.d.ts","sourceRoot":"","sources":["../../src/demod/demod-cw.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,8BAA8B;AAC9B,MAAM,MAAM,MAAM,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAKzD,iDAAiD;AACjD,qBAAa,OAAQ,YAAW,KAAK,CAAC,MAAM,CAAC;IAMf,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,IAAI;IALjE;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM,EAAU,IAAI,EAAE,MAAM;IAUzE,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,MAAM;IAIjB,OAAO,CAAC,IAAI,EAAE,MAAM;IAOpB,8DAA8D;IAC9D,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAgBf;AAED,oCAAoC;AACpC,qBAAa,QAAS,SAAQ,YAAY,CAAC,MAAM,CAAC;gBACpC,IAAI,EAAE,MAAM,GAAG,MAAM;IAGjC,SAAS,CAAC,MAAM,IAAI,MAAM;IAG1B,YAAY,IAAI,OAAO;IAGvB,YAAY,IAAI,MAAM;IAGtB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ;CAO1C"}
1
+ {"version":3,"file":"demod-cw.d.ts","sourceRoot":"","sources":["../../src/demod/demod-cw.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,8BAA8B;AAC9B,MAAM,MAAM,MAAM,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,2BAA2B;AAC3B,MAAM,MAAM,SAAS,GAAG;IACtB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,iDAAiD;AACjD,qBAAa,OAAQ,YAAW,KAAK,CAAC,MAAM,CAAC;IASzC,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IATd;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,SAAS;IAmBrB,OAAO,CAAC,SAAS,CAAS;IAC1B,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,aAAa,CAAS;IAC9B,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,IAAI,MAAM;IAIjB,OAAO,CAAC,IAAI,EAAE,MAAM;IAWpB,8DAA8D;IAC9D,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAgBf;AAED,oCAAoC;AACpC,qBAAa,QAAS,SAAQ,YAAY,CAAC,MAAM,CAAC;gBACpC,IAAI,EAAE,MAAM,GAAG,MAAM;IAGjC,SAAS,CAAC,MAAM,IAAI,MAAM;IAG1B,YAAY,IAAI,OAAO;IAGvB,YAAY,IAAI,MAAM;IAGtB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ;CAO1C"}
@@ -16,8 +16,6 @@ import { AGC, FIRFilter, FrequencyShifter } from "../dsp/filters.js";
16
16
  import { getPower } from "../dsp/power.js";
17
17
  import { ComplexDownsampler } from "../dsp/resamplers.js";
18
18
  import { Configurator } from "./modes.js";
19
- /** Output frequency of the zero-beat CW signals. */
20
- const ToneFrequency = 600;
21
19
  /** A demodulator for continuous wave signals. */
22
20
  export class DemodCW {
23
21
  outRate;
@@ -26,30 +24,37 @@ export class DemodCW {
26
24
  * @param inRate The sample rate of the input samples.
27
25
  * @param outRate The sample rate of the output audio.
28
26
  * @param mode The mode to use initially.
27
+ * @param options Options for the demodulator.
29
28
  */
30
- constructor(inRate, outRate, mode) {
29
+ constructor(inRate, outRate, mode, options) {
31
30
  this.outRate = outRate;
32
31
  this.mode = mode;
32
+ const downsamplerTaps = options?.downsamplerTaps || 151;
33
+ this.audioTaps = options?.audioTaps || 351;
34
+ const toneFrequency = options?.toneFrequency || 600;
33
35
  this.shifter = new FrequencyShifter(inRate);
34
- this.downsampler = new ComplexDownsampler(inRate, outRate, 151);
35
- const kernel = makeLowPassKernel(outRate, mode.bandwidth / 2, 351);
36
+ this.downsampler = new ComplexDownsampler(inRate, outRate, downsamplerTaps);
37
+ const kernel = makeLowPassKernel(outRate, mode.bandwidth / 2, this.audioTaps);
36
38
  this.filterI = new FIRFilter(kernel);
37
39
  this.filterQ = new FIRFilter(kernel);
38
40
  this.toneShifter = new FrequencyShifter(outRate);
41
+ this.toneFrequency = toneFrequency;
39
42
  this.agc = new AGC(outRate, 10);
40
43
  }
44
+ audioTaps;
41
45
  shifter;
42
46
  downsampler;
43
47
  filterI;
44
48
  filterQ;
45
49
  toneShifter;
50
+ toneFrequency;
46
51
  agc;
47
52
  getMode() {
48
53
  return this.mode;
49
54
  }
50
55
  setMode(mode) {
51
56
  this.mode = mode;
52
- const kernel = makeLowPassKernel(this.outRate, mode.bandwidth / 2, 151);
57
+ const kernel = makeLowPassKernel(this.outRate, mode.bandwidth / 2, this.audioTaps);
53
58
  this.filterI.setCoefficients(kernel);
54
59
  this.filterQ.setCoefficients(kernel);
55
60
  }
@@ -61,7 +66,7 @@ export class DemodCW {
61
66
  this.filterI.inPlace(I);
62
67
  this.filterQ.inPlace(Q);
63
68
  let signalPower = (getPower(I, Q) * this.outRate) / this.mode.bandwidth;
64
- this.toneShifter.inPlace(I, Q, ToneFrequency);
69
+ this.toneShifter.inPlace(I, Q, this.toneFrequency);
65
70
  this.agc.inPlace(I);
66
71
  return {
67
72
  left: I,
@@ -1 +1 @@
1
- {"version":3,"file":"demod-cw.js","sourceRoot":"","sources":["../../src/demod/demod-cw.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,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAsB,MAAM,YAAY,CAAC;AAK9D,oDAAoD;AACpD,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,iDAAiD;AACjD,MAAM,OAAO,OAAO;IAMkB;IAAyB;IAL7D;;;;OAIG;IACH,YAAY,MAAc,EAAU,OAAe,EAAU,IAAY;QAArC,YAAO,GAAP,OAAO,CAAQ;QAAU,SAAI,GAAJ,IAAI,CAAQ;QACvE,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAEO,OAAO,CAAmB;IAC1B,WAAW,CAAqB;IAChC,OAAO,CAAY;IACnB,OAAO,CAAY;IACnB,WAAW,CAAmB;IAC9B,GAAG,CAAM;IAEjB,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,8DAA8D;IAC9D,UAAU,CACR,QAAsB,EACtB,QAAsB,EACtB,UAAkB;QAElB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,WAAW,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACxE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC;YAC1B,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,WAAW,GAAG,QAAQ;SAC5B,CAAC;IACJ,CAAC;CACF;AAED,oCAAoC;AACpC,MAAM,OAAO,QAAS,SAAQ,YAAoB;IAChD,YAAY,IAAqB;QAC/B,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IACS,MAAM;QACd,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACzC,CAAC;IACD,YAAY;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IACD,YAAY,CAAC,SAAiB;QAC5B,IAAI,CAAC,IAAI,GAAG;YACV,GAAG,IAAI,CAAC,IAAI;YACZ,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SAClD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"demod-cw.js","sourceRoot":"","sources":["../../src/demod/demod-cw.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,13 @@ export type ModeNBFM = {
5
5
  maxF: number;
6
6
  squelch: number;
7
7
  };
8
+ /** Mode options for NBFM. */
9
+ export type OptionsNBFM = {
10
+ /** Number of taps for the downsampler filter. Must be an odd number. 151 by default. */
11
+ downsamplerTaps?: number;
12
+ /** Number of taps for the RF filter. Must be an odd number. 151 by default. */
13
+ rfTaps?: number;
14
+ };
8
15
  /** A demodulator for narrowband FM signals. */
9
16
  export declare class DemodNBFM implements Demod<ModeNBFM> {
10
17
  private outRate;
@@ -13,8 +20,10 @@ export declare class DemodNBFM implements Demod<ModeNBFM> {
13
20
  * @param inRate The sample rate of the input samples.
14
21
  * @param outRate The sample rate of the output audio.
15
22
  * @param mode The mode to use initially.
23
+ * @param options Options for the demodulator.
16
24
  */
17
- constructor(inRate: number, outRate: number, mode: ModeNBFM);
25
+ constructor(inRate: number, outRate: number, mode: ModeNBFM, options?: OptionsNBFM);
26
+ private rfTaps;
18
27
  private shifter;
19
28
  private downsampler;
20
29
  private filterI;
@@ -1 +1 @@
1
- {"version":3,"file":"demod-nbfm.d.ts","sourceRoot":"","sources":["../../src/demod/demod-nbfm.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE,+CAA+C;AAC/C,qBAAa,SAAU,YAAW,KAAK,CAAC,QAAQ,CAAC;IAMnB,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,IAAI;IALjE;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM,EAAU,IAAI,EAAE,QAAQ;IAS3E,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,QAAQ;IAInB,OAAO,CAAC,IAAI,EAAE,QAAQ;IAQtB;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAef;AAED,sCAAsC;AACtC,qBAAa,UAAW,SAAQ,YAAY,CAAC,QAAQ,CAAC;gBACxC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAGnC,SAAS,CAAC,MAAM,IAAI,QAAQ;IAG5B,YAAY,IAAI,OAAO;IAGvB,YAAY,IAAI,MAAM;IAGtB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU;IAO3C,UAAU,IAAI,OAAO;IAGrB,UAAU,IAAI,MAAM;IAGpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;CAIxC"}
1
+ {"version":3,"file":"demod-nbfm.d.ts","sourceRoot":"","sources":["../../src/demod/demod-nbfm.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE,6BAA6B;AAC7B,MAAM,MAAM,WAAW,GAAG;IACxB,wFAAwF;IACxF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,+CAA+C;AAC/C,qBAAa,SAAU,YAAW,KAAK,CAAC,QAAQ,CAAC;IAS7C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IATd;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,QAAQ,EACtB,OAAO,CAAC,EAAE,WAAW;IAYvB,OAAO,CAAC,MAAM,CAAS;IACvB,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,QAAQ;IAInB,OAAO,CAAC,IAAI,EAAE,QAAQ;IAQtB;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAef;AAED,sCAAsC;AACtC,qBAAa,UAAW,SAAQ,YAAY,CAAC,QAAQ,CAAC;gBACxC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAGnC,SAAS,CAAC,MAAM,IAAI,QAAQ;IAG5B,YAAY,IAAI,OAAO;IAGvB,YAAY,IAAI,MAAM;IAGtB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU;IAO3C,UAAU,IAAI,OAAO;IAGrB,UAAU,IAAI,MAAM;IAGpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;CAIxC"}
@@ -1,3 +1,4 @@
1
+ // Copyright 2026 Jacobo Tarrio Barreiro. All rights reserved.
1
2
  // Copyright 2014 Google Inc. All rights reserved.
2
3
  //
3
4
  // Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,17 +26,21 @@ export class DemodNBFM {
25
26
  * @param inRate The sample rate of the input samples.
26
27
  * @param outRate The sample rate of the output audio.
27
28
  * @param mode The mode to use initially.
29
+ * @param options Options for the demodulator.
28
30
  */
29
- constructor(inRate, outRate, mode) {
31
+ constructor(inRate, outRate, mode, options) {
30
32
  this.outRate = outRate;
31
33
  this.mode = mode;
34
+ const downsamplerTaps = options?.downsamplerTaps || 151;
35
+ this.rfTaps = options?.rfTaps || 151;
32
36
  this.shifter = new FrequencyShifter(inRate);
33
- this.downsampler = new ComplexDownsampler(inRate, outRate, 151);
34
- const kernel = makeLowPassKernel(outRate, mode.maxF, 151);
37
+ this.downsampler = new ComplexDownsampler(inRate, outRate, downsamplerTaps);
38
+ const kernel = makeLowPassKernel(outRate, mode.maxF, this.rfTaps);
35
39
  this.filterI = new FIRFilter(kernel);
36
40
  this.filterQ = new FIRFilter(kernel);
37
41
  this.demodulator = new FMDemodulator(mode.maxF / outRate);
38
42
  }
43
+ rfTaps;
39
44
  shifter;
40
45
  downsampler;
41
46
  filterI;
@@ -46,7 +51,7 @@ export class DemodNBFM {
46
51
  }
47
52
  setMode(mode) {
48
53
  this.mode = mode;
49
- const kernel = makeLowPassKernel(this.outRate, mode.maxF, 151);
54
+ const kernel = makeLowPassKernel(this.outRate, mode.maxF, this.rfTaps);
50
55
  this.filterI.setCoefficients(kernel);
51
56
  this.filterQ.setCoefficients(kernel);
52
57
  this.demodulator.setMaxDeviation(mode.maxF / this.outRate);
@@ -1 +1 @@
1
- {"version":3,"file":"demod-nbfm.js","sourceRoot":"","sources":["../../src/demod/demod-nbfm.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,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,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAsB,MAAM,YAAY,CAAC;AAK9D,+CAA+C;AAC/C,MAAM,OAAO,SAAS;IAMgB;IAAyB;IAL7D;;;;OAIG;IACH,YAAY,MAAc,EAAU,OAAe,EAAU,IAAc;QAAvC,YAAO,GAAP,OAAO,CAAQ;QAAU,SAAI,GAAJ,IAAI,CAAU;QACzE,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEO,OAAO,CAAmB;IAC1B,WAAW,CAAqB;IAChC,OAAO,CAAY;IACnB,OAAO,CAAY;IACnB,WAAW,CAAgB;IAEnC,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,IAAc;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CACR,QAAsB,EACtB,QAAsB,EACtB,UAAkB;QAElB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,WAAW,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC;YAC1B,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,WAAW,GAAG,QAAQ;SAC5B,CAAC;IACJ,CAAC;CACF;AAED,sCAAsC;AACtC,MAAM,OAAO,UAAW,SAAQ,YAAsB;IACpD,YAAY,IAAuB;QACjC,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IACS,MAAM;QACd,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACpD,CAAC;IACD,YAAY;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,YAAY;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IACD,YAAY,CAAC,SAAiB;QAC5B,IAAI,CAAC,IAAI,GAAG;YACV,GAAG,IAAI,CAAC,IAAI;YACZ,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;SACpD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IACD,UAAU,CAAC,OAAe;QACxB,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;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"demod-nbfm.js","sourceRoot":"","sources":["../../src/demod/demod-nbfm.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,15 @@ export type ModeSSB = {
5
5
  bandwidth: number;
6
6
  squelch: number;
7
7
  };
8
+ /** Mode options for SSB. */
9
+ export type OptionsSSB = {
10
+ /** Number of taps for the downsampler filter. Must be an odd number. 151 by default. */
11
+ downsamplerTaps?: number;
12
+ /** Number of taps for the RF filter. Must be an odd number. 151 by default. */
13
+ rfTaps?: number;
14
+ /** Number of taps for the Hilbert filter. Must be an odd number. 151 by default. */
15
+ hilbertTaps?: number;
16
+ };
8
17
  /** A demodulator for single-sideband modulated signals. */
9
18
  export declare class DemodSSB implements Demod<ModeSSB> {
10
19
  private outRate;
@@ -14,7 +23,8 @@ export declare class DemodSSB implements Demod<ModeSSB> {
14
23
  * @param outRate The sample rate of the output audio.
15
24
  * @param mode The mode to use initially.
16
25
  */
17
- constructor(inRate: number, outRate: number, mode: ModeSSB);
26
+ constructor(inRate: number, outRate: number, mode: ModeSSB, options?: OptionsSSB);
27
+ private rfTaps;
18
28
  private shifter;
19
29
  private downsampler;
20
30
  private filter;
@@ -1 +1 @@
1
- {"version":3,"file":"demod-ssb.d.ts","sourceRoot":"","sources":["../../src/demod/demod-ssb.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,+BAA+B;AAC/B,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,2DAA2D;AAC3D,qBAAa,QAAS,YAAW,KAAK,CAAC,OAAO,CAAC;IAMjB,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,IAAI;IALjE;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM,EAAU,IAAI,EAAE,OAAO;IAW1E,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,OAAO;IAIlB,OAAO,CAAC,IAAI,EAAE,OAAO;IAMrB;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAgBf;AAED,8CAA8C;AAC9C,qBAAa,SAAU,SAAQ,YAAY,CAAC,OAAO,CAAC;gBACtC,IAAI,EAAE,OAAO,GAAG,MAAM;IAGlC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAGzC,YAAY,IAAI,OAAO;IAGvB,YAAY,IAAI,MAAM;IAGtB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IAO1C,UAAU,IAAI,OAAO;IAGrB,UAAU,IAAI,MAAM;IAGpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;CAIvC"}
1
+ {"version":3,"file":"demod-ssb.d.ts","sourceRoot":"","sources":["../../src/demod/demod-ssb.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,+BAA+B;AAC/B,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,4BAA4B;AAC5B,MAAM,MAAM,UAAU,GAAG;IACvB,wFAAwF;IACxF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,2DAA2D;AAC3D,qBAAa,QAAS,YAAW,KAAK,CAAC,OAAO,CAAC;IAQ3C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IARd;;;;OAIG;gBAED,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EACrB,OAAO,CAAC,EAAE,UAAU;IAoBtB,OAAO,CAAC,MAAM,CAAS;IACvB,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,OAAO;IAIlB,OAAO,CAAC,IAAI,EAAE,OAAO;IAUrB;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAgBf;AAED,8CAA8C;AAC9C,qBAAa,SAAU,SAAQ,YAAY,CAAC,OAAO,CAAC;gBACtC,IAAI,EAAE,OAAO,GAAG,MAAM;IAGlC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAGzC,YAAY,IAAI,OAAO;IAGvB,YAAY,IAAI,MAAM;IAGtB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IAO1C,UAAU,IAAI,OAAO;IAGrB,UAAU,IAAI,MAAM;IAGpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;CAIvC"}
@@ -1,3 +1,4 @@
1
+ // Copyright 2026 Jacobo Tarrio Barreiro. All rights reserved.
1
2
  // Copyright 2014 Google Inc. All rights reserved.
2
3
  //
3
4
  // Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,16 +27,20 @@ export class DemodSSB {
26
27
  * @param outRate The sample rate of the output audio.
27
28
  * @param mode The mode to use initially.
28
29
  */
29
- constructor(inRate, outRate, mode) {
30
+ constructor(inRate, outRate, mode, options) {
30
31
  this.outRate = outRate;
31
32
  this.mode = mode;
33
+ const downsamplerTaps = options?.downsamplerTaps || 151;
34
+ this.rfTaps = options?.rfTaps || 151;
35
+ const hilbertTaps = options?.hilbertTaps || 151;
32
36
  this.shifter = new FrequencyShifter(inRate);
33
- this.downsampler = new ComplexDownsampler(inRate, outRate, 151);
34
- const kernel = makeLowPassKernel(this.outRate, mode.bandwidth / 2, 151);
37
+ this.downsampler = new ComplexDownsampler(inRate, outRate, downsamplerTaps);
38
+ const kernel = makeLowPassKernel(this.outRate, mode.bandwidth / 2, this.rfTaps);
35
39
  this.filter = new FIRFilter(kernel);
36
- this.demodulator = new SSBDemodulator(mode.scheme == "USB" ? Sideband.Upper : Sideband.Lower);
40
+ this.demodulator = new SSBDemodulator(mode.scheme == "USB" ? Sideband.Upper : Sideband.Lower, hilbertTaps);
37
41
  this.agc = new AGC(outRate, 3);
38
42
  }
43
+ rfTaps;
39
44
  shifter;
40
45
  downsampler;
41
46
  filter;
@@ -46,7 +51,7 @@ export class DemodSSB {
46
51
  }
47
52
  setMode(mode) {
48
53
  this.mode = mode;
49
- const kernel = makeLowPassKernel(this.outRate, mode.bandwidth / 2, 151);
54
+ const kernel = makeLowPassKernel(this.outRate, mode.bandwidth / 2, this.rfTaps);
50
55
  this.filter.setCoefficients(kernel);
51
56
  }
52
57
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"demod-ssb.js","sourceRoot":"","sources":["../../src/demod/demod-ssb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"demod-ssb.js","sourceRoot":"","sources":["../../src/demod/demod-ssb.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,21 @@ export type ModeWBFM = {
4
4
  scheme: "WBFM";
5
5
  stereo: boolean;
6
6
  };
7
+ /** Mode options for WBFM. */
8
+ export type OptionsWBFM = {
9
+ /**
10
+ * The time constant for the deemphasizer, in microseconds. 50 by default.
11
+ *
12
+ * This should be 75 for the US and South Korea, 50 everywhere else.
13
+ */
14
+ deemphasizerTc?: number;
15
+ /** Number of taps for the downsampler filter. Must be an odd number. 151 by default. */
16
+ downsamplerTaps?: number;
17
+ /** Number of taps for the RF filter. Must be an odd number. 151 by default. */
18
+ rfTaps?: number;
19
+ /** Number of taps for the audio filter. Must be an odd number. 41 by default. */
20
+ audioTaps?: number;
21
+ };
7
22
  /** A demodulator for wideband FM signals. */
8
23
  export declare class DemodWBFM implements Demod<ModeWBFM> {
9
24
  private mode;
@@ -11,8 +26,9 @@ export declare class DemodWBFM implements Demod<ModeWBFM> {
11
26
  * @param inRate The sample rate of the input samples.
12
27
  * @param outRate The sample rate of the output samples.
13
28
  * @param mode The mode to use initially.
29
+ * @param options Options for the demodulator.
14
30
  */
15
- constructor(inRate: number, outRate: number, mode: ModeWBFM);
31
+ constructor(inRate: number, outRate: number, mode: ModeWBFM, options?: OptionsWBFM);
16
32
  private stage1;
17
33
  private stage2;
18
34
  getMode(): ModeWBFM;
@@ -38,8 +54,9 @@ export declare class DemodWBFMStage1 implements Demod<ModeWBFM> {
38
54
  * @param inRate The sample rate of the input samples.
39
55
  * @param outRate The sample rate of the output audio.
40
56
  * @param mode The mode to use initially.
57
+ * @param options Options for the demodulator.
41
58
  */
42
- constructor(inRate: number, outRate: number, mode: ModeWBFM);
59
+ constructor(inRate: number, outRate: number, mode: ModeWBFM, options?: OptionsWBFM);
43
60
  private shifter;
44
61
  private downsampler?;
45
62
  private filterI;
@@ -67,8 +84,9 @@ export declare class DemodWBFMStage2 implements Demod<ModeWBFM> {
67
84
  * @param inRate The sample rate of the input samples.
68
85
  * @param outRate The sample rate of the output audio.
69
86
  * @param mode The mode to use initially.
87
+ * @param options Options for the demodulator.
70
88
  */
71
- constructor(inRate: number, outRate: number, mode: ModeWBFM);
89
+ constructor(inRate: number, outRate: number, mode: ModeWBFM, options?: OptionsWBFM);
72
90
  private monoSampler;
73
91
  private stereoSampler;
74
92
  private stereoSeparator;
@@ -1 +1 @@
1
- {"version":3,"file":"demod-wbfm.d.ts","sourceRoot":"","sources":["../../src/demod/demod-wbfm.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3D,6CAA6C;AAC7C,qBAAa,SAAU,YAAW,KAAK,CAAC,QAAQ,CAAC;IAMF,OAAO,CAAC,IAAI;IALzD;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAU,IAAI,EAAE,QAAQ;IAMnE,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAkB;IAEhC,OAAO,IAAI,QAAQ;IAInB,OAAO,CAAC,IAAI,EAAE,QAAQ;IAMtB;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAOf;AAED;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,KAAK,CAAC,QAAQ,CAAC;IAMzB,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,IAAI;IALjE;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM,EAAU,IAAI,EAAE,QAAQ;IAY3E,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;IAEnC,OAAO,IAAI,QAAQ;IAInB,OAAO,CAAC,IAAI,EAAE,QAAQ;IAItB;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAiBf;AAED;;;;KAIK;AACL,qBAAa,eAAgB,YAAW,KAAK,CAAC,QAAQ,CAAC;IAMR,OAAO,CAAC,IAAI;IALzD;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAU,IAAI,EAAE,QAAQ;IAUnE,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,QAAQ;IAInB,OAAO,CAAC,IAAI,EAAE,QAAQ;IAItB;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW;CA0BhD;AAED,sCAAsC;AACtC,qBAAa,UAAW,SAAQ,YAAY,CAAC,QAAQ,CAAC;gBACxC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAGnC,SAAS,CAAC,MAAM,IAAI,QAAQ;IAG5B,SAAS,IAAI,OAAO;IAGpB,SAAS,IAAI,OAAO;IAGpB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU;IAItC,YAAY,IAAI,MAAM;CAGvB"}
1
+ {"version":3,"file":"demod-wbfm.d.ts","sourceRoot":"","sources":["../../src/demod/demod-wbfm.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3D,6BAA6B;AAC7B,MAAM,MAAM,WAAW,GAAG;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,6CAA6C;AAC7C,qBAAa,SAAU,YAAW,KAAK,CAAC,QAAQ,CAAC;IAU7C,OAAO,CAAC,IAAI;IATd;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACP,IAAI,EAAE,QAAQ,EACtB,OAAO,CAAC,EAAE,WAAW;IAOvB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAkB;IAEhC,OAAO,IAAI,QAAQ;IAInB,OAAO,CAAC,IAAI,EAAE,QAAQ;IAMtB;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAOf;AAED;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,KAAK,CAAC,QAAQ,CAAC;IASnD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IATd;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,QAAQ,EACtB,OAAO,CAAC,EAAE,WAAW;IAmBvB,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;IAEnC,OAAO,IAAI,QAAQ;IAInB,OAAO,CAAC,IAAI,EAAE,QAAQ;IAItB;;;;;;OAMG;IACH,UAAU,CACR,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,WAAW;CAiBf;AAED;;;;KAIK;AACL,qBAAa,eAAgB,YAAW,KAAK,CAAC,QAAQ,CAAC;IAUnD,OAAO,CAAC,IAAI;IATd;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACP,IAAI,EAAE,QAAQ,EACtB,OAAO,CAAC,EAAE,WAAW;IAavB,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,QAAQ;IAInB,OAAO,CAAC,IAAI,EAAE,QAAQ;IAItB;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW;CA0BhD;AAED,sCAAsC;AACtC,qBAAa,UAAW,SAAQ,YAAY,CAAC,QAAQ,CAAC;gBACxC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAGnC,SAAS,CAAC,MAAM,IAAI,QAAQ;IAG5B,SAAS,IAAI,OAAO;IAGpB,SAAS,IAAI,OAAO;IAGpB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU;IAItC,YAAY,IAAI,MAAM;CAGvB"}
@@ -1,3 +1,4 @@
1
+ // Copyright 2026 Jacobo Tarrio Barreiro. All rights reserved.
1
2
  // Copyright 2013 Google Inc. All rights reserved.
2
3
  //
3
4
  // Licensed under the Apache License, Version 2.0 (the "License");
@@ -24,12 +25,13 @@ export class DemodWBFM {
24
25
  * @param inRate The sample rate of the input samples.
25
26
  * @param outRate The sample rate of the output samples.
26
27
  * @param mode The mode to use initially.
28
+ * @param options Options for the demodulator.
27
29
  */
28
- constructor(inRate, outRate, mode) {
30
+ constructor(inRate, outRate, mode, options) {
29
31
  this.mode = mode;
30
32
  let interRate = Math.min(inRate, 336000);
31
- this.stage1 = new DemodWBFMStage1(inRate, interRate, mode);
32
- this.stage2 = new DemodWBFMStage2(interRate, outRate, mode);
33
+ this.stage1 = new DemodWBFMStage1(inRate, interRate, mode, options);
34
+ this.stage2 = new DemodWBFMStage2(interRate, outRate, mode, options);
33
35
  }
34
36
  stage1;
35
37
  stage2;
@@ -67,16 +69,19 @@ export class DemodWBFMStage1 {
67
69
  * @param inRate The sample rate of the input samples.
68
70
  * @param outRate The sample rate of the output audio.
69
71
  * @param mode The mode to use initially.
72
+ * @param options Options for the demodulator.
70
73
  */
71
- constructor(inRate, outRate, mode) {
74
+ constructor(inRate, outRate, mode, options) {
72
75
  this.outRate = outRate;
73
76
  this.mode = mode;
74
77
  const maxF = 75000;
78
+ const downsamplerTaps = options?.downsamplerTaps || 151;
79
+ const rfTaps = options?.rfTaps || 151;
75
80
  this.shifter = new FrequencyShifter(inRate);
76
81
  if (inRate != outRate) {
77
- this.downsampler = new ComplexDownsampler(inRate, outRate, 151);
82
+ this.downsampler = new ComplexDownsampler(inRate, outRate, downsamplerTaps);
78
83
  }
79
- const kernel = makeLowPassKernel(outRate, maxF, 151);
84
+ const kernel = makeLowPassKernel(outRate, maxF, rfTaps);
80
85
  this.filterI = new FIRFilter(kernel);
81
86
  this.filterQ = new FIRFilter(kernel);
82
87
  this.demodulator = new FMDemodulator(maxF / outRate);
@@ -128,13 +133,15 @@ export class DemodWBFMStage2 {
128
133
  * @param inRate The sample rate of the input samples.
129
134
  * @param outRate The sample rate of the output audio.
130
135
  * @param mode The mode to use initially.
136
+ * @param options Options for the demodulator.
131
137
  */
132
- constructor(inRate, outRate, mode) {
138
+ constructor(inRate, outRate, mode, options) {
133
139
  this.mode = mode;
134
140
  const pilotF = 19000;
135
- const deemphTc = 50;
136
- this.monoSampler = new RealDownsampler(inRate, outRate, 41);
137
- this.stereoSampler = new RealDownsampler(inRate, outRate, 41);
141
+ const deemphTc = options?.deemphasizerTc === undefined ? 50 : options.deemphasizerTc;
142
+ const audioTaps = options?.audioTaps || 41;
143
+ this.monoSampler = new RealDownsampler(inRate, outRate, audioTaps);
144
+ this.stereoSampler = new RealDownsampler(inRate, outRate, audioTaps);
138
145
  this.stereoSeparator = new StereoSeparator(inRate, pilotF);
139
146
  this.leftDeemph = new Deemphasizer(outRate, deemphTc);
140
147
  this.rightDeemph = new Deemphasizer(outRate, deemphTc);
@@ -1 +1 @@
1
- {"version":3,"file":"demod-wbfm.js","sourceRoot":"","sources":["../../src/demod/demod-wbfm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"demod-wbfm.js","sourceRoot":"","sources":["../../src/demod/demod-wbfm.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,kDAAkD;AAClD,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,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAsB,MAAM,YAAY,CAAC;AAqB9D,6CAA6C;AAC7C,MAAM,OAAO,SAAS;IAUV;IATV;;;;;OAKG;IACH,YACE,MAAc,EACd,OAAe,EACP,IAAc,EACtB,OAAqB;QADb,SAAI,GAAJ,IAAI,CAAU;QAGtB,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAEO,MAAM,CAAkB;IACxB,MAAM,CAAkB;IAEhC,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,IAAc;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CACR,QAAsB,EACtB,QAAsB,EACtB,UAAkB;QAElB,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAChE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEzC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAShB;IACA;IATV;;;;;OAKG;IACH,YACE,MAAc,EACN,OAAe,EACf,IAAc,EACtB,OAAqB;QAFb,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAU;QAGtB,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,GAAG,CAAC;QACxD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,GAAG,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CACvC,MAAM,EACN,OAAO,EACP,eAAe,CAChB,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;IACvD,CAAC;IAEO,OAAO,CAAmB;IAC1B,WAAW,CAAsB;IACjC,OAAO,CAAY;IACnB,OAAO,CAAY;IACnB,WAAW,CAAgB;IAEnC,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,IAAc;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CACR,QAAsB,EACtB,QAAsB,EACtB,UAAkB;QAElB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW;YAC3B,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC;YACjD,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzB,IAAI,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,WAAW,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;QAC3D,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC;YAC1B,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,WAAW,GAAG,QAAQ;SAC5B,CAAC;IACJ,CAAC;CACF;AAED;;;;KAIK;AACL,MAAM,OAAO,eAAe;IAUhB;IATV;;;;;OAKG;IACH,YACE,MAAc,EACd,OAAe,EACP,IAAc,EACtB,OAAqB;QADb,SAAI,GAAJ,IAAI,CAAU;QAGtB,MAAM,MAAM,GAAG,KAAK,CAAC;QACrB,MAAM,QAAQ,GACZ,OAAO,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;QACtE,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAEO,WAAW,CAAkB;IAC7B,aAAa,CAAkB;IAC/B,eAAe,CAAkB;IACjC,UAAU,CAAe;IACzB,WAAW,CAAe;IAElC,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,IAAc;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,QAAsB;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACvD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;oBAC1C,UAAU,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC9B,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,SAAS;YACjB,GAAG,EAAE,CAAC;SACP,CAAC;IACJ,CAAC;CACF;AAED,sCAAsC;AACtC,MAAM,OAAO,UAAW,SAAQ,YAAsB;IACpD,YAAY,IAAuB;QACjC,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IACS,MAAM;QACd,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IACD,SAAS,CAAC,MAAe;QACvB,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,YAAY;QACV,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -1,6 +1,19 @@
1
1
  import { Mode } from "./modes.js";
2
2
  import { Player } from "./player.js";
3
3
  import { SampleReceiver } from "../radio.js";
4
+ type DemodulatorOptions = {
5
+ /**
6
+ * The player to use. If undefined, an AudioPlayer will be used.
7
+ */
8
+ player?: Player;
9
+ /**
10
+ * Options for each mode. This is an object whose keys are registered mode names
11
+ * and the values are objects sent to the mode constructor.
12
+ */
13
+ modeOptions?: {
14
+ [key: Mode["scheme"]]: object;
15
+ };
16
+ };
4
17
  /**
5
18
  * A class that takes a stream of radio samples and demodulates
6
19
  * it into an audio signal.
@@ -13,6 +26,10 @@ import { SampleReceiver } from "../radio.js";
13
26
  * to observe the demodulator's state.
14
27
  */
15
28
  export declare class Demodulator extends EventTarget implements SampleReceiver {
29
+ /**
30
+ * @param options Options for the demodulator.
31
+ */
32
+ constructor(options?: DemodulatorOptions);
16
33
  /**
17
34
  * @param player The player to use. If undefined, an AudioPlayer will be used.
18
35
  */
@@ -23,6 +40,8 @@ export declare class Demodulator extends EventTarget implements SampleReceiver {
23
40
  private player;
24
41
  /** Controller that silences the output if the SNR is low. */
25
42
  private squelchControl;
43
+ /** Options for the different modes. */
44
+ private modeOptions;
26
45
  /** The modulation parameters as a Mode object. */
27
46
  private mode;
28
47
  /** The demodulator class. */
@@ -59,4 +78,5 @@ export declare class Demodulator extends EventTarget implements SampleReceiver {
59
78
  export declare class StereoStatusEvent extends CustomEvent<boolean> {
60
79
  constructor(stereo: boolean);
61
80
  }
81
+ export {};
62
82
  //# sourceMappingURL=empty-demodulator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"empty-demodulator.d.ts","sourceRoot":"","sources":["../../src/demod/empty-demodulator.ts"],"names":[],"mappings":"AAcA,OAAO,EAAS,IAAI,EAAqC,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,qBAAa,WAAY,SAAQ,WAAY,YAAW,cAAc;IACpE;;OAEG;gBACS,MAAM,CAAC,EAAE,MAAM;IAW3B,uBAAuB;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,+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,KAAK,CAAa;IAC1B,+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,wEAAwE;IACxE,OAAO,CAAC,SAAS;IASjB,+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,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":"empty-demodulator.d.ts","sourceRoot":"","sources":["../../src/demod/empty-demodulator.ts"],"names":[],"mappings":"AAcA,OAAO,EAAS,IAAI,EAAqC,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,KAAK,kBAAkB,GAAG;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;KAAE,CAAC;CACjD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,qBAAa,WAAY,SAAQ,WAAY,YAAW,cAAc;IACpE;;OAEG;gBACS,OAAO,CAAC,EAAE,kBAAkB;IACxC;;OAEG;gBACS,MAAM,CAAC,EAAE,MAAM;IAkB3B,uBAAuB;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,+BAA+B;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,6DAA6D;IAC7D,OAAO,CAAC,cAAc,CAAiB;IACvC,uCAAuC;IACvC,OAAO,CAAC,WAAW,CAAoC;IACvD,kDAAkD;IAClD,OAAO,CAAC,IAAI,CAAO;IACnB,6BAA6B;IAC7B,OAAO,CAAC,KAAK,CAAa;IAC1B,+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,wEAAwE;IACxE,OAAO,CAAC,SAAS;IAcjB,+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,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"}
@@ -25,14 +25,16 @@ import { AudioPlayer } from "../players/audioplayer.js";
25
25
  * to observe the demodulator's state.
26
26
  */
27
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) {
28
+ constructor(playerOrOptions) {
32
29
  super();
30
+ const player = playerOrOptions !== undefined && Object.hasOwn(playerOrOptions, "play")
31
+ ? playerOrOptions
32
+ : playerOrOptions?.player;
33
+ const modeOptions = playerOrOptions?.modeOptions;
33
34
  this.inRate = 1024000;
34
- this.player = player ? player : new AudioPlayer();
35
+ this.player = player || new AudioPlayer();
35
36
  this.squelchControl = new SquelchControl(this.player.sampleRate);
37
+ this.modeOptions = modeOptions || {};
36
38
  this.mode = getMode("WBFM");
37
39
  this.demod = this.getScheme(this.mode);
38
40
  this.frequencyOffset = 0;
@@ -44,6 +46,8 @@ export class Demodulator extends EventTarget {
44
46
  player;
45
47
  /** Controller that silences the output if the SNR is low. */
46
48
  squelchControl;
49
+ /** Options for the different modes. */
50
+ modeOptions;
47
51
  /** The modulation parameters as a Mode object. */
48
52
  mode;
49
53
  /** The demodulator class. */
@@ -89,7 +93,7 @@ export class Demodulator extends EventTarget {
89
93
  demod.setMode(mode);
90
94
  return demod;
91
95
  }
92
- return getDemod(this.inRate, this.player.sampleRate, mode);
96
+ return getDemod(this.inRate, this.player.sampleRate, mode, this.modeOptions[mode.scheme]);
93
97
  }
94
98
  /** Changes the sample rate. */
95
99
  setSampleRate(sampleRate) {
@@ -1 +1 @@
1
- {"version":3,"file":"empty-demodulator.js","sourceRoot":"","sources":["../../src/demod/empty-demodulator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"empty-demodulator.js","sourceRoot":"","sources":["../../src/demod/empty-demodulator.ts"],"names":[],"mappings":"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"}
@@ -66,7 +66,7 @@ export declare function getSchemes(): Array<string>;
66
66
  /** Returns the default mode for the given scheme name. */
67
67
  export declare function getMode(scheme: string): Mode;
68
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
+ export declare function getDemod<M extends Mode>(inRate: number, outRate: number, mode: M, options?: object): Demod<M>;
70
70
  /** Returns accessors for the mode's or scheme's parameters. */
71
71
  export declare function modeParameters<M extends Mode>(mode: M): Configurator<M>;
72
72
  export declare function modeParameters(scheme: string): Configurator<Mode>;
@@ -101,7 +101,7 @@ export declare abstract class Configurator<M extends Mode> {
101
101
  setSquelch(squelch: number): Configurator<M>;
102
102
  }
103
103
  /** The type for a constructor of a Scheme object. */
104
- export type DemodConstructor<M extends Mode> = new (inRate: number, outRate: number, mode: M) => Demod<M>;
104
+ export type DemodConstructor<M extends Mode> = new (inRate: number, outRate: number, mode: M, options?: object) => Demod<M>;
105
105
  /** The type for a constructor of a Configurator object. */
106
106
  export type ConfigConstructor<M extends Mode> = new (base: M | string) => Configurator<M>;
107
107
  //# sourceMappingURL=modes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modes.d.ts","sourceRoot":"","sources":["../../src/demod/modes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modes.d.ts","sourceRoot":"","sources":["../../src/demod/modes.ts"],"names":[],"mappings":"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"}
@@ -34,9 +34,9 @@ export function getMode(scheme) {
34
34
  return new reg.config(scheme).mode;
35
35
  }
36
36
  /** Returns a Scheme object for the given mode. */
37
- export function getDemod(inRate, outRate, mode) {
37
+ export function getDemod(inRate, outRate, mode, options) {
38
38
  let reg = getRegisteredDemod(mode);
39
- return new reg.demod(inRate, outRate, mode);
39
+ return new reg.demod(inRate, outRate, mode, options);
40
40
  }
41
41
  export function modeParameters(mode) {
42
42
  let reg = getRegisteredDemod(mode);
@@ -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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"}
@@ -7,8 +7,9 @@ export declare enum Sideband {
7
7
  export declare class SSBDemodulator {
8
8
  /**
9
9
  * @param sideband The sideband to demodulate.
10
+ * @param kernelLen The length of the Hilbert filter kernel to use.
10
11
  */
11
- constructor(sideband: Sideband);
12
+ constructor(sideband: Sideband, kernelLen: number);
12
13
  private filterDelay;
13
14
  private filterHilbert;
14
15
  private hilbertMul;
@@ -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;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"}
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;;;OAGG;gBACS,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;IAOjD,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"}
@@ -25,9 +25,9 @@ export var Sideband;
25
25
  export class SSBDemodulator {
26
26
  /**
27
27
  * @param sideband The sideband to demodulate.
28
+ * @param kernelLen The length of the Hilbert filter kernel to use.
28
29
  */
29
- constructor(sideband) {
30
- const kernelLen = 151;
30
+ constructor(sideband, kernelLen) {
31
31
  let hilbert = makeHilbertKernel(kernelLen);
32
32
  this.filterDelay = new FIRFilter(hilbert);
33
33
  this.filterHilbert = new FIRFilter(hilbert);
@@ -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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"}
@@ -16,12 +16,27 @@ export type RadioEventType = {
16
16
  export declare class RadioEvent extends CustomEvent<RadioEventType> {
17
17
  constructor(e: RadioEventType);
18
18
  }
19
+ /** Options for the Radio class. */
20
+ export type RadioOptions = {
21
+ /**
22
+ * The number of buffers to process per second.
23
+ *
24
+ * This number controls your processing latency: more buffers per second
25
+ * implies smaller buffers, thus smaller latency. It also increases your
26
+ * CPU requirements, though.
27
+ *
28
+ * The actual number of buffers per second may be slightly different to
29
+ * account for hardware requirements.
30
+ */
31
+ buffersPerSecond?: number;
32
+ };
19
33
  /** Provides controls to play, stop, and tune the radio. */
20
34
  export declare class Radio extends EventTarget {
21
35
  private rtlProvider;
22
36
  private sampleReceiver;
37
+ private options?;
23
38
  /** @param sampleReceiver the object that will receive the radio samples. */
24
- constructor(rtlProvider: RtlDeviceProvider, sampleReceiver: SampleReceiver);
39
+ constructor(rtlProvider: RtlDeviceProvider, sampleReceiver: SampleReceiver, options?: RadioOptions | undefined);
25
40
  /** Current sample rate. */
26
41
  private sampleRate;
27
42
  /** Current state. */
@@ -1 +1 @@
1
- {"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../../src/radio/radio.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,cAAc,EAAa,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEtF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAYtD,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,GAAG,CAAA;CAAE,CAAC;AAEtC,kCAAkC;AAClC,qBAAa,UAAW,SAAQ,WAAW,CAAC,cAAc,CAAC;gBAC7C,CAAC,EAAE,cAAc;CAG9B;AAQD,2DAA2D;AAC3D,qBAAa,KAAM,SAAQ,WAAW;IAGlC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,cAAc;IAHxB,4EAA4E;gBAElE,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,cAAc;IAcxC,2BAA2B;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,qBAAqB;IACrB,OAAO,CAAC,KAAK,CAAQ;IACrB,qDAAqD;IACrD,OAAO,CAAC,OAAO,CAAmB;IAClC,2CAA2C;IAC3C,OAAO,CAAC,mBAAmB,CAAS;IACpC,4CAA4C;IAC5C,OAAO,CAAC,IAAI,CAAgB;IAC5B,iCAAiC;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,+CAA+C;IAC/C,OAAO,CAAC,oBAAoB,CAAiB;IAC7C,uCAAuC;IACvC,OAAO,CAAC,cAAc,CAAU;IAEhC,gCAAgC;IAChC,KAAK;IAIL,+BAA+B;IAC/B,IAAI;IAIJ,0DAA0D;IAC1D,SAAS;IAIT,yCAAyC;IACzC,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB,mCAAmC;IACnC,YAAY,IAAI,MAAM;IAItB,oDAAoD;IACpD,sBAAsB,CAAC,GAAG,EAAE,MAAM;IAIlC,uDAAuD;IACvD,sBAAsB,IAAI,MAAM;IAIhC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B;;;OAGG;IACH,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,uCAAuC;IACvC,uBAAuB,CAAC,MAAM,EAAE,cAAc;IAI9C,kDAAkD;IAClD,uBAAuB,IAAI,cAAc;IAIzC,wFAAwF;IACxF,aAAa,CAAC,UAAU,EAAE,MAAM;IAIhC,uCAAuC;IACvC,aAAa,IAAI,MAAM;IAIvB,wCAAwC;IACxC,aAAa,CAAC,MAAM,EAAE,OAAO;IAI7B,+CAA+C;IAC/C,gBAAgB,IAAI,OAAO;IAI3B,8BAA8B;YAChB,OAAO;IAoFrB,gBAAgB,CACd,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,EACxC,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":"radio.d.ts","sourceRoot":"","sources":["../../src/radio/radio.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,cAAc,EAEd,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAYtD,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,GAAG,CAAA;CAAE,CAAC;AAEtC,kCAAkC;AAClC,qBAAa,UAAW,SAAQ,WAAW,CAAC,cAAc,CAAC;gBAC7C,CAAC,EAAE,cAAc;CAG9B;AAQD,mCAAmC;AACnC,MAAM,MAAM,YAAY,GAAG;IACzB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,2DAA2D;AAC3D,qBAAa,KAAM,SAAQ,WAAW;IAGlC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,OAAO,CAAC;IAJlB,4EAA4E;gBAElE,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,YAAY,YAAA;IAchC,2BAA2B;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,qBAAqB;IACrB,OAAO,CAAC,KAAK,CAAQ;IACrB,qDAAqD;IACrD,OAAO,CAAC,OAAO,CAAmB;IAClC,2CAA2C;IAC3C,OAAO,CAAC,mBAAmB,CAAS;IACpC,4CAA4C;IAC5C,OAAO,CAAC,IAAI,CAAgB;IAC5B,iCAAiC;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,+CAA+C;IAC/C,OAAO,CAAC,oBAAoB,CAAiB;IAC7C,uCAAuC;IACvC,OAAO,CAAC,cAAc,CAAU;IAEhC,gCAAgC;IAChC,KAAK;IAIL,+BAA+B;IAC/B,IAAI;IAIJ,0DAA0D;IAC1D,SAAS;IAIT,yCAAyC;IACzC,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB,mCAAmC;IACnC,YAAY,IAAI,MAAM;IAItB,oDAAoD;IACpD,sBAAsB,CAAC,GAAG,EAAE,MAAM;IAIlC,uDAAuD;IACvD,sBAAsB,IAAI,MAAM;IAIhC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B;;;OAGG;IACH,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,uCAAuC;IACvC,uBAAuB,CAAC,MAAM,EAAE,cAAc;IAI9C,kDAAkD;IAClD,uBAAuB,IAAI,cAAc;IAIzC,wFAAwF;IACxF,aAAa,CAAC,UAAU,EAAE,MAAM;IAIhC,uCAAuC;IACvC,aAAa,IAAI,MAAM;IAIvB,wCAAwC;IACxC,aAAa,CAAC,MAAM,EAAE,OAAO;IAI7B,+CAA+C;IAC/C,gBAAgB,IAAI,OAAO;IAI3B,8BAA8B;YAChB,OAAO;IAqFrB,gBAAgB,CACd,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,EACxC,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"}
@@ -14,7 +14,7 @@
14
14
  /** State machine to orchestrate the RTL2832, demodulation, and audio playing. */
15
15
  import { U8ToFloat32 } from "../dsp/converters.js";
16
16
  import { RadioError, RadioErrorType } from "../errors.js";
17
- import { DirectSampling } from "../rtlsdr/rtldevice.js";
17
+ import { DirectSampling, } from "../rtlsdr/rtldevice.js";
18
18
  import { Channel } from "./msgqueue.js";
19
19
  /** The type of 'radio' events. */
20
20
  export class RadioEvent extends CustomEvent {
@@ -32,11 +32,13 @@ var State;
32
32
  export class Radio extends EventTarget {
33
33
  rtlProvider;
34
34
  sampleReceiver;
35
+ options;
35
36
  /** @param sampleReceiver the object that will receive the radio samples. */
36
- constructor(rtlProvider, sampleReceiver) {
37
+ constructor(rtlProvider, sampleReceiver, options) {
37
38
  super();
38
39
  this.rtlProvider = rtlProvider;
39
40
  this.sampleReceiver = sampleReceiver;
41
+ this.options = options;
40
42
  this.sampleRate = 1024000;
41
43
  this.state = State.OFF;
42
44
  this.channel = new Channel();
@@ -157,7 +159,7 @@ export class Radio extends EventTarget {
157
159
  await rtl.setDirectSamplingMethod(this.directSamplingMethod);
158
160
  await rtl.setCenterFrequency(this.frequency);
159
161
  await rtl.resetBuffer();
160
- transfers = new Transfers(rtl, this.sampleReceiver, this, this.sampleRate);
162
+ transfers = new Transfers(rtl, this.sampleReceiver, this, this.sampleRate, this.options);
161
163
  transfers.startStream();
162
164
  this.state = State.PLAYING;
163
165
  this.dispatchEvent(new RadioEvent({ type: "started" }));
@@ -229,15 +231,17 @@ class Transfers {
229
231
  sampleReceiver;
230
232
  radio;
231
233
  sampleRate;
232
- /** Receive this many buffers per second. */
233
- static BUFS_PER_SEC = 20;
234
- constructor(rtl, sampleReceiver, radio, sampleRate) {
234
+ /** Receive this many buffers per second by default. */
235
+ static DEFAULT_BUFS_PER_SEC = 20;
236
+ constructor(rtl, sampleReceiver, radio, sampleRate, options) {
235
237
  this.rtl = rtl;
236
238
  this.sampleReceiver = sampleReceiver;
237
239
  this.radio = radio;
238
240
  this.sampleRate = sampleRate;
239
- this.samplesPerBuf =
240
- 512 * Math.ceil(sampleRate / Transfers.BUFS_PER_SEC / 512);
241
+ let buffersPerSecond = options?.buffersPerSecond;
242
+ if (buffersPerSecond === undefined || buffersPerSecond <= 0)
243
+ buffersPerSecond = Transfers.DEFAULT_BUFS_PER_SEC;
244
+ this.samplesPerBuf = 512 * Math.ceil(sampleRate / buffersPerSecond / 512);
241
245
  this.buffersWanted = 0;
242
246
  this.buffersRunning = 0;
243
247
  this.iqConverter = new U8ToFloat32(this.samplesPerBuf);
@@ -1 +1 @@
1
- {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../src/radio/radio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../src/radio/radio.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": "2.0.3",
4
+ "version": "2.0.5",
5
5
  "author": "Jacobo Tarrio <jtarrio@gmail.com>",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {