@e04/ft8ts 0.0.6 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -18
- package/dist/{ft8js.cjs → cli.js} +1856 -660
- package/dist/cli.js.map +1 -0
- package/dist/ft8ts.cjs +1467 -569
- package/dist/ft8ts.cjs.map +1 -1
- package/dist/ft8ts.d.ts +48 -12
- package/dist/ft8ts.mjs +1465 -569
- package/dist/ft8ts.mjs.map +1 -1
- package/example/browser/index.html +3 -2
- package/package.json +4 -1
- package/src/cli.ts +171 -0
- package/src/ft4/constants.ts +41 -0
- package/src/ft4/decode.ts +1018 -0
- package/src/ft4/encode.ts +40 -0
- package/src/ft4/scramble.ts +9 -0
- package/src/ft8/constants.ts +18 -0
- package/src/ft8/decode.ts +22 -31
- package/src/ft8/encode.ts +6 -5
- package/src/index.ts +6 -0
- package/src/util/constants.ts +4 -13
- package/src/util/hashcall.ts +2 -2
- package/src/util/waveform.ts +92 -20
- package/dist/ft8js.cjs.map +0 -1
- package/dist/ft8js.mjs +0 -2116
- package/dist/ft8js.mjs.map +0 -1
- package/example/decode-ft8-wav.ts +0 -78
- package/example/generate-ft8-wav.ts +0 -82
package/dist/ft8ts.d.ts
CHANGED
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
* Usage:
|
|
14
14
|
* ```ts
|
|
15
15
|
* const book = new HashCallBook();
|
|
16
|
-
* const decoded = decodeFT8(samples, sampleRate,
|
|
16
|
+
* const decoded = decodeFT8(samples, { sampleRate, hashCallBook: book });
|
|
17
17
|
* // `book` now contains callsigns learned from decoded messages.
|
|
18
18
|
* // Subsequent calls reuse the same book to resolve hashed callsigns:
|
|
19
|
-
* const decoded2 = decodeFT8(samples2, sampleRate,
|
|
19
|
+
* const decoded2 = decodeFT8(samples2, { sampleRate, hashCallBook: book });
|
|
20
20
|
* ```
|
|
21
21
|
*
|
|
22
22
|
* You can also pre-populate the book with known callsigns:
|
|
@@ -46,6 +46,47 @@ declare class HashCallBook {
|
|
|
46
46
|
clear(): void;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
interface DecodedMessage$1 {
|
|
50
|
+
freq: number;
|
|
51
|
+
dt: number;
|
|
52
|
+
snr: number;
|
|
53
|
+
msg: string;
|
|
54
|
+
sync: number;
|
|
55
|
+
}
|
|
56
|
+
interface DecodeOptions$1 {
|
|
57
|
+
/** Sample rate (Hz), default 12000 */
|
|
58
|
+
sampleRate?: number;
|
|
59
|
+
/** Lower frequency bound (Hz), default 200 */
|
|
60
|
+
freqLow?: number;
|
|
61
|
+
/** Upper frequency bound (Hz), default 3000 */
|
|
62
|
+
freqHigh?: number;
|
|
63
|
+
/** Minimum sync threshold, default 1.2 */
|
|
64
|
+
syncMin?: number;
|
|
65
|
+
/** Decoding depth: 1=fast BP only, 2=BP+OSD, 3=deep */
|
|
66
|
+
depth?: number;
|
|
67
|
+
/** Maximum candidates to process */
|
|
68
|
+
maxCandidates?: number;
|
|
69
|
+
/**
|
|
70
|
+
* Hash call book for resolving hashed callsigns.
|
|
71
|
+
* Reuse the same instance across frames to accumulate callsign knowledge.
|
|
72
|
+
*/
|
|
73
|
+
hashCallBook?: HashCallBook;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Decode all FT4 signals in a buffer.
|
|
77
|
+
* Input: mono audio samples at `sampleRate` Hz, duration ~6s.
|
|
78
|
+
*/
|
|
79
|
+
declare function decode$1(samples: Float32Array | Float64Array, options?: DecodeOptions$1): DecodedMessage$1[];
|
|
80
|
+
|
|
81
|
+
interface WaveformOptions {
|
|
82
|
+
sampleRate?: number;
|
|
83
|
+
samplesPerSymbol?: number;
|
|
84
|
+
bt?: number;
|
|
85
|
+
baseFrequency?: number;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
declare function encode$1(msg: string, options?: WaveformOptions): Float32Array;
|
|
89
|
+
|
|
49
90
|
interface DecodedMessage {
|
|
50
91
|
freq: number;
|
|
51
92
|
dt: number;
|
|
@@ -54,6 +95,8 @@ interface DecodedMessage {
|
|
|
54
95
|
sync: number;
|
|
55
96
|
}
|
|
56
97
|
interface DecodeOptions {
|
|
98
|
+
/** Sample rate (Hz), default 12000 */
|
|
99
|
+
sampleRate?: number;
|
|
57
100
|
/** Lower frequency bound (Hz), default 200 */
|
|
58
101
|
freqLow?: number;
|
|
59
102
|
/** Upper frequency bound (Hz), default 3000 */
|
|
@@ -77,16 +120,9 @@ interface DecodeOptions {
|
|
|
77
120
|
* Decode all FT8 signals in an audio buffer.
|
|
78
121
|
* Input: mono audio samples at `sampleRate` Hz, duration ~15s.
|
|
79
122
|
*/
|
|
80
|
-
declare function decode(samples: Float32Array | Float64Array,
|
|
81
|
-
|
|
82
|
-
interface WaveformOptions {
|
|
83
|
-
sampleRate?: number;
|
|
84
|
-
samplesPerSymbol?: number;
|
|
85
|
-
bt?: number;
|
|
86
|
-
baseFrequency?: number;
|
|
87
|
-
}
|
|
123
|
+
declare function decode(samples: Float32Array | Float64Array, options?: DecodeOptions): DecodedMessage[];
|
|
88
124
|
|
|
89
125
|
declare function encode(msg: string, options?: WaveformOptions): Float32Array;
|
|
90
126
|
|
|
91
|
-
export { HashCallBook, decode as decodeFT8, encode as encodeFT8 };
|
|
92
|
-
export type { DecodeOptions, DecodedMessage };
|
|
127
|
+
export { HashCallBook, decode$1 as decodeFT4, decode as decodeFT8, encode$1 as encodeFT4, encode as encodeFT8 };
|
|
128
|
+
export type { DecodeOptions$1 as DecodeFT4Options, DecodeOptions, DecodedMessage$1 as DecodedFT4Message, DecodedMessage };
|