@modplayjs/fmt-sid 0.0.0-stage → 0.2.1
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 +111 -2
- package/dist/c64.d.ts +8 -0
- package/dist/c64.d.ts.map +1 -0
- package/dist/c64.js +325 -0
- package/dist/c64.js.map +1 -0
- package/dist/c64types.d.ts +209 -0
- package/dist/c64types.d.ts.map +1 -0
- package/dist/c64types.js +181 -0
- package/dist/c64types.js.map +1 -0
- package/dist/cia.d.ts +19 -0
- package/dist/cia.d.ts.map +1 -0
- package/dist/cia.js +160 -0
- package/dist/cia.js.map +1 -0
- package/dist/combiwaves.d.ts +9 -0
- package/dist/combiwaves.d.ts.map +1 -0
- package/dist/combiwaves.js +533 -0
- package/dist/combiwaves.js.map +1 -0
- package/dist/config.d.ts +15 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +23 -0
- package/dist/config.js.map +1 -0
- package/dist/cpu.d.ts +12 -0
- package/dist/cpu.d.ts.map +1 -0
- package/dist/cpu.js +848 -0
- package/dist/cpu.js.map +1 -0
- package/dist/filtercurves.d.ts +13 -0
- package/dist/filtercurves.d.ts.map +1 -0
- package/dist/filtercurves.js +546 -0
- package/dist/filtercurves.js.map +1 -0
- package/dist/host.d.ts +4 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +14 -0
- package/dist/host.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/instance.d.ts +119 -0
- package/dist/instance.d.ts.map +1 -0
- package/dist/instance.js +51 -0
- package/dist/instance.js.map +1 -0
- package/dist/loader.d.ts +26 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +383 -0
- package/dist/loader.js.map +1 -0
- package/dist/mem.d.ts +30 -0
- package/dist/mem.d.ts.map +1 -0
- package/dist/mem.js +187 -0
- package/dist/mem.js.map +1 -0
- package/dist/psiddigi.d.ts +3 -0
- package/dist/psiddigi.d.ts.map +1 -0
- package/dist/psiddigi.js +73 -0
- package/dist/psiddigi.js.map +1 -0
- package/dist/settings.d.ts +41 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +64 -0
- package/dist/settings.js.map +1 -0
- package/dist/sid.d.ts +21 -0
- package/dist/sid.d.ts.map +1 -0
- package/dist/sid.js +78 -0
- package/dist/sid.js.map +1 -0
- package/dist/sidadsr.d.ts +9 -0
- package/dist/sidadsr.d.ts.map +1 -0
- package/dist/sidadsr.js +105 -0
- package/dist/sidadsr.js.map +1 -0
- package/dist/sidoscwaves.d.ts +15 -0
- package/dist/sidoscwaves.d.ts.map +1 -0
- package/dist/sidoscwaves.js +475 -0
- package/dist/sidoscwaves.js.map +1 -0
- package/dist/sidoutputs.d.ts +17 -0
- package/dist/sidoutputs.d.ts.map +1 -0
- package/dist/sidoutputs.js +185 -0
- package/dist/sidoutputs.js.map +1 -0
- package/dist/sidplugin.d.ts +18 -0
- package/dist/sidplugin.d.ts.map +1 -0
- package/dist/sidplugin.js +174 -0
- package/dist/sidplugin.js.map +1 -0
- package/dist/sidrouting.d.ts +8 -0
- package/dist/sidrouting.d.ts.map +1 -0
- package/dist/sidrouting.js +560 -0
- package/dist/sidrouting.js.map +1 -0
- package/dist/sidseek.d.ts +8 -0
- package/dist/sidseek.d.ts.map +1 -0
- package/dist/sidseek.js +60 -0
- package/dist/sidseek.js.map +1 -0
- package/dist/sincwindow.d.ts +3 -0
- package/dist/sincwindow.d.ts.map +1 -0
- package/dist/sincwindow.js +78 -0
- package/dist/sincwindow.js.map +1 -0
- package/dist/songlengths.d.ts +20 -0
- package/dist/songlengths.d.ts.map +1 -0
- package/dist/songlengths.js +81 -0
- package/dist/songlengths.js.map +1 -0
- package/dist/vic.d.ts +14 -0
- package/dist/vic.d.ts.map +1 -0
- package/dist/vic.js +63 -0
- package/dist/vic.js.map +1 -0
- package/package.json +48 -4
package/dist/sidseek.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
+
// Copyright (c) 2026 Bitti09 — modplayjs contributors
|
|
3
|
+
// SID engine seek + engine-time reporting.
|
|
4
|
+
//
|
|
5
|
+
// cRSID has no native seek — the tune is a running machine emulation.
|
|
6
|
+
// Seeking = fast-forwarding the engine: render the skipped samples in
|
|
7
|
+
// large chunks into a discard buffer, at whatever speed the CPU manages
|
|
8
|
+
// (typically far faster than realtime). Backwards seeks restart the tune
|
|
9
|
+
// (cRSID_initSIDtune) and then fast-forward — the same approach every
|
|
10
|
+
// machine-based player takes.
|
|
11
|
+
//
|
|
12
|
+
// The engine's clock is cRSID.PlayTime (seconds, advanced by
|
|
13
|
+
// cRSID_emulateC64 per generated second of audio).
|
|
14
|
+
import { cRSID } from './instance.js';
|
|
15
|
+
import { cRSID_initSIDtune, cRSID_generateSample, cRSID_playSIDtune } from './loader.js';
|
|
16
|
+
/** Last-loaded tune bytes — needed to restart for backwards seeks. */
|
|
17
|
+
let sidTuneBytes = null;
|
|
18
|
+
let sidTuneHeader = null;
|
|
19
|
+
let sidTuneSubtune = 1;
|
|
20
|
+
let sidTuneRate = 44100;
|
|
21
|
+
/** Remember the loaded tune for backwards-seek restarts (sidStartTune
|
|
22
|
+
* calls this through sidplugin). */
|
|
23
|
+
export function sidRememberTune(bytes, header, subtune, rate) {
|
|
24
|
+
sidTuneBytes = bytes;
|
|
25
|
+
sidTuneHeader = header;
|
|
26
|
+
sidTuneSubtune = subtune;
|
|
27
|
+
sidTuneRate = rate;
|
|
28
|
+
}
|
|
29
|
+
/** Engine playback time in seconds (cRSID.PlayTime). */
|
|
30
|
+
export function getSidPlayTimeSeconds() {
|
|
31
|
+
return cRSID.PlayTime;
|
|
32
|
+
}
|
|
33
|
+
/** Seek the engine to the given runtime in seconds. */
|
|
34
|
+
export function sidSeek(seconds) {
|
|
35
|
+
if (!sidTuneBytes || !sidTuneHeader)
|
|
36
|
+
return;
|
|
37
|
+
const target = Math.max(0, seconds);
|
|
38
|
+
const now = cRSID.PlayTime;
|
|
39
|
+
if (target < now) {
|
|
40
|
+
// backwards: restart the tune, then fast-forward from 0
|
|
41
|
+
cRSID_initSIDtune(sidTuneHeader, sidTuneSubtune);
|
|
42
|
+
cRSID_playSIDtune();
|
|
43
|
+
}
|
|
44
|
+
// fast-forward the engine to the target in 1-second chunks
|
|
45
|
+
const remainSec = target - cRSID.PlayTime;
|
|
46
|
+
const frames = Math.max(0, Math.round(remainSec * sidTuneRate));
|
|
47
|
+
const CHUNK = 65536; // frames per chunk — discard buffer reused
|
|
48
|
+
const sink = new Int16Array(CHUNK * 2);
|
|
49
|
+
let left = frames;
|
|
50
|
+
while (left > 0) {
|
|
51
|
+
const take = Math.min(left, CHUNK);
|
|
52
|
+
for (let i = 0; i < take; ++i) {
|
|
53
|
+
const s = cRSID_generateSample();
|
|
54
|
+
sink[i * 2] = s.L > 32767 ? 32767 : s.L < -32768 ? -32768 : s.L;
|
|
55
|
+
sink[i * 2 + 1] = s.R > 32767 ? 32767 : s.R < -32768 ? -32768 : s.R;
|
|
56
|
+
}
|
|
57
|
+
left -= take;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=sidseek.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidseek.js","sourceRoot":"","sources":["../src/sidseek.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,sDAAsD;AACtD,2CAA2C;AAC3C,EAAE;AACF,sEAAsE;AACtE,sEAAsE;AACtE,wEAAwE;AACxE,yEAAyE;AACzE,sEAAsE;AACtE,8BAA8B;AAC9B,EAAE;AACF,6DAA6D;AAC7D,mDAAmD;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEzF,sEAAsE;AACtE,IAAI,YAAY,GAAsB,IAAI,CAAC;AAC3C,IAAI,aAAa,GAA+C,IAAI,CAAC;AACrE,IAAI,cAAc,GAAG,CAAC,CAAC;AACvB,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB;qCACqC;AACrC,MAAM,UAAU,eAAe,CAAC,KAAiB,EAAE,MAA2C,EAAE,OAAe,EAAE,IAAY;IAC3H,YAAY,GAAG,KAAK,CAAC;IACrB,aAAa,GAAG,MAAM,CAAC;IACvB,cAAc,GAAG,OAAO,CAAC;IACzB,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,qBAAqB;IACnC,OAAO,KAAK,CAAC,QAAQ,CAAC;AACxB,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa;QAAE,OAAO;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC3B,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QACjB,wDAAwD;QACxD,iBAAiB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACjD,iBAAiB,EAAE,CAAC;IACtB,CAAC;IACD,2DAA2D;IAC3D,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,2CAA2C;IAChE,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACvC,IAAI,IAAI,GAAG,MAAM,CAAC;IAClB,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,oBAAoB,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,IAAI,IAAI,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sincwindow.d.ts","sourceRoot":"","sources":["../src/sincwindow.ts"],"names":[],"mappings":"AAWA,+DAA+D;AAC/D,eAAO,MAAM,UAAU,yBAiErB,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
+
// Copyright (c) 2026 Bitti09 — modplayjs contributors
|
|
3
|
+
// Ported from: cRSID 1.58 libcRSID/C64/SincWindow.h
|
|
4
|
+
// (c) Hermit (Mihaly Horvath), license: WTF ("do what the frick you want").
|
|
5
|
+
//
|
|
6
|
+
// Pre-calculated FIR nyquist-filter Sinc Hanning window for the high-quality
|
|
7
|
+
// resampler (PartCount:6, PartLengths:256 -> 1536 entries, Magnitude:2048).
|
|
8
|
+
// NOTE: the C array literally contains a 1537th value (a trailing "2048,")
|
|
9
|
+
// which is never read (every loop is bounded by SINCWINDOW_SIZE = 1536);
|
|
10
|
+
// it is dropped here.
|
|
11
|
+
/** SincWindow (C: static const signed short, 1536 entries). */
|
|
12
|
+
export const SincWindow = new Int16Array([
|
|
13
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
14
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
15
|
+
1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,
|
|
16
|
+
4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8,
|
|
17
|
+
9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 15,
|
|
18
|
+
15, 15, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 22, 22,
|
|
19
|
+
22, 22, 23, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 28,
|
|
20
|
+
28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
|
|
21
|
+
30, 30, 30, 30, 30, 30, 30, 30, 29, 29, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 27, 27, 27, 26,
|
|
22
|
+
26, 26, 25, 25, 25, 24, 24, 23, 23, 23, 22, 22, 21, 21, 20, 19, 19, 18, 18, 17, 16, 16, 15, 14,
|
|
23
|
+
14, 13, 12, 11, 11, 10, 9, 8, 7, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7,
|
|
24
|
+
-9, -10, -11, -12, -13, -15, -16, -17, -18, -20, -21, -22, -24, -25, -26, -28, -29, -31, -32, -33, -35, -36, -38, -40,
|
|
25
|
+
-41, -43, -44, -46, -47, -49, -51, -52, -54, -56, -57, -59, -61, -63, -64, -66, -68, -70, -71, -73, -75, -77, -79, -81,
|
|
26
|
+
-82, -84, -86, -88, -90, -92, -94, -96, -98, -100, -102, -103, -105, -107, -109, -111, -113, -115, -117, -119, -121, -123, -125, -127,
|
|
27
|
+
-129, -131, -133, -135, -137, -139, -141, -143, -145, -147, -149, -151, -153, -155, -157, -159, -161, -163, -165, -167, -169, -171, -173, -175,
|
|
28
|
+
-177, -178, -180, -182, -184, -186, -188, -189, -191, -193, -195, -196, -198, -200, -202, -203, -205, -207, -208, -210, -211, -213, -214, -216,
|
|
29
|
+
-217, -219, -220, -222, -223, -224, -226, -227, -228, -229, -230, -232, -233, -234, -235, -236, -237, -238, -239, -240, -241, -241, -242, -243,
|
|
30
|
+
-244, -244, -245, -245, -246, -246, -247, -247, -248, -248, -248, -248, -249, -249, -249, -249, -249, -249, -249, -248, -248, -248, -248, -247,
|
|
31
|
+
-247, -246, -246, -245, -244, -244, -243, -242, -241, -240, -239, -238, -237, -236, -235, -233, -232, -231, -229, -228, -226, -224, -223, -221,
|
|
32
|
+
-219, -217, -215, -213, -211, -209, -206, -204, -202, -199, -196, -194, -191, -188, -186, -183, -180, -177, -174, -170, -167, -164, -160, -157,
|
|
33
|
+
-153, -150, -146, -142, -138, -134, -130, -126, -122, -118, -114, -109, -105, -100, -96, -91, -86, -81, -77, -72, -67, -61, -56, -51,
|
|
34
|
+
-46, -40, -35, -29, -23, -18, -12, -6, 0, 6, 12, 18, 25, 31, 37, 44, 50, 57, 64, 71, 77, 84, 91, 98,
|
|
35
|
+
106, 113, 120, 127, 135, 142, 150, 158, 165, 173, 181, 189, 197, 205, 213, 221, 229, 238, 246, 254, 263, 272, 280, 289,
|
|
36
|
+
298, 306, 315, 324, 333, 342, 351, 361, 370, 379, 388, 398, 407, 417, 426, 436, 446, 455, 465, 475, 485, 495, 505, 515,
|
|
37
|
+
525, 535, 545, 555, 565, 575, 586, 596, 606, 617, 627, 638, 648, 659, 669, 680, 691, 701, 712, 723, 733, 744, 755, 766,
|
|
38
|
+
777, 788, 798, 809, 820, 831, 842, 853, 864, 875, 886, 897, 908, 919, 930, 941, 952, 963, 974, 986, 997, 1008, 1019, 1030,
|
|
39
|
+
1041, 1052, 1063, 1074, 1085, 1096, 1107, 1118, 1129, 1140, 1151, 1162, 1173, 1184, 1195, 1206, 1216, 1227, 1238, 1249, 1260, 1270, 1281, 1292,
|
|
40
|
+
1302, 1313, 1323, 1334, 1344, 1355, 1365, 1376, 1386, 1396, 1407, 1417, 1427, 1437, 1447, 1457, 1467, 1477, 1487, 1497, 1506, 1516, 1526, 1535,
|
|
41
|
+
1545, 1554, 1564, 1573, 1582, 1592, 1601, 1610, 1619, 1628, 1637, 1646, 1654, 1663, 1672, 1680, 1688, 1697, 1705, 1713, 1721, 1730, 1737, 1745,
|
|
42
|
+
1753, 1761, 1768, 1776, 1783, 1791, 1798, 1805, 1812, 1819, 1826, 1833, 1840, 1847, 1853, 1860, 1866, 1872, 1878, 1884, 1890, 1896, 1902, 1908,
|
|
43
|
+
1913, 1918, 1924, 1929, 1934, 1939, 1944, 1949, 1954, 1958, 1963, 1967, 1971, 1975, 1979, 1983, 1987, 1991, 1995, 1998, 2001, 2005, 2008, 2011,
|
|
44
|
+
2014, 2016, 2019, 2022, 2024, 2026, 2029, 2031, 2033, 2035, 2036, 2038, 2039, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2047, 2047, 2048, 2048,
|
|
45
|
+
2048, 2048, 2048, 2047, 2047, 2047, 2046, 2045, 2044, 2043, 2042, 2041, 2039, 2038, 2036, 2035, 2033, 2031, 2029, 2026, 2024, 2022, 2019, 2016,
|
|
46
|
+
2014, 2011, 2008, 2005, 2001, 1998, 1995, 1991, 1987, 1983, 1979, 1975, 1971, 1967, 1963, 1958, 1954, 1949, 1944, 1939, 1934, 1929, 1924, 1918,
|
|
47
|
+
1913, 1908, 1902, 1896, 1890, 1884, 1878, 1872, 1866, 1860, 1853, 1847, 1840, 1833, 1826, 1819, 1812, 1805, 1798, 1791, 1783, 1776, 1768, 1761,
|
|
48
|
+
1753, 1745, 1737, 1730, 1721, 1713, 1705, 1697, 1688, 1680, 1672, 1663, 1654, 1646, 1637, 1628, 1619, 1610, 1601, 1592, 1582, 1573, 1564, 1554,
|
|
49
|
+
1545, 1535, 1526, 1516, 1506, 1497, 1487, 1477, 1467, 1457, 1447, 1437, 1427, 1417, 1407, 1396, 1386, 1376, 1365, 1355, 1344, 1334, 1323, 1313,
|
|
50
|
+
1302, 1292, 1281, 1270, 1260, 1249, 1238, 1227, 1216, 1206, 1195, 1184, 1173, 1162, 1151, 1140, 1129, 1118, 1107, 1096, 1085, 1074, 1063, 1052,
|
|
51
|
+
1041, 1030, 1019, 1008, 997, 986, 974, 963, 952, 941, 930, 919, 908, 897, 886, 875, 864, 853, 842, 831, 820, 809, 798, 788,
|
|
52
|
+
777, 766, 755, 744, 733, 723, 712, 701, 691, 680, 669, 659, 648, 638, 627, 617, 606, 596, 586, 575, 565, 555, 545, 535,
|
|
53
|
+
525, 515, 505, 495, 485, 475, 465, 455, 446, 436, 426, 417, 407, 398, 388, 379, 370, 361, 351, 342, 333, 324, 315, 306,
|
|
54
|
+
298, 289, 280, 272, 263, 254, 246, 238, 229, 221, 213, 205, 197, 189, 181, 173, 165, 158, 150, 142, 135, 127, 120, 113,
|
|
55
|
+
106, 98, 91, 84, 77, 71, 64, 57, 50, 44, 37, 31, 25, 18, 12, 6, 0, -6, -12, -18, -23, -29, -35, -40,
|
|
56
|
+
-46, -51, -56, -61, -67, -72, -77, -81, -86, -91, -96, -100, -105, -109, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150,
|
|
57
|
+
-153, -157, -160, -164, -167, -170, -174, -177, -180, -183, -186, -188, -191, -194, -196, -199, -202, -204, -206, -209, -211, -213, -215, -217,
|
|
58
|
+
-219, -221, -223, -224, -226, -228, -229, -231, -232, -233, -235, -236, -237, -238, -239, -240, -241, -242, -243, -244, -244, -245, -246, -246,
|
|
59
|
+
-247, -247, -248, -248, -248, -248, -249, -249, -249, -249, -249, -249, -249, -248, -248, -248, -248, -247, -247, -246, -246, -245, -245, -244,
|
|
60
|
+
-244, -243, -242, -241, -241, -240, -239, -238, -237, -236, -235, -234, -233, -232, -230, -229, -228, -227, -226, -224, -223, -222, -220, -219,
|
|
61
|
+
-217, -216, -214, -213, -211, -210, -208, -207, -205, -203, -202, -200, -198, -196, -195, -193, -191, -189, -188, -186, -184, -182, -180, -178,
|
|
62
|
+
-177, -175, -173, -171, -169, -167, -165, -163, -161, -159, -157, -155, -153, -151, -149, -147, -145, -143, -141, -139, -137, -135, -133, -131,
|
|
63
|
+
-129, -127, -125, -123, -121, -119, -117, -115, -113, -111, -109, -107, -105, -103, -102, -100, -98, -96, -94, -92, -90, -88, -86, -84,
|
|
64
|
+
-82, -81, -79, -77, -75, -73, -71, -70, -68, -66, -64, -63, -61, -59, -57, -56, -54, -52, -51, -49, -47, -46, -44, -43,
|
|
65
|
+
-41, -40, -38, -36, -35, -33, -32, -31, -29, -28, -26, -25, -24, -22, -21, -20, -18, -17, -16, -15, -13, -12, -11, -10,
|
|
66
|
+
-9, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10, 11, 11, 12, 13,
|
|
67
|
+
14, 14, 15, 16, 16, 17, 18, 18, 19, 19, 20, 21, 21, 22, 22, 23, 23, 23, 24, 24, 25, 25, 25, 26,
|
|
68
|
+
26, 26, 27, 27, 27, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30,
|
|
69
|
+
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 29, 29, 29, 29, 29, 29, 29, 29, 28, 28, 28,
|
|
70
|
+
28, 28, 27, 27, 27, 27, 27, 26, 26, 26, 26, 26, 25, 25, 25, 25, 24, 24, 24, 23, 23, 23, 23, 22,
|
|
71
|
+
22, 22, 22, 21, 21, 21, 20, 20, 20, 20, 19, 19, 19, 18, 18, 18, 17, 17, 17, 17, 16, 16, 16, 15,
|
|
72
|
+
15, 15, 15, 14, 14, 14, 13, 13, 13, 13, 12, 12, 12, 12, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9,
|
|
73
|
+
9, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4,
|
|
74
|
+
4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
|
|
75
|
+
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
76
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
77
|
+
]);
|
|
78
|
+
//# sourceMappingURL=sincwindow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sincwindow.js","sourceRoot":"","sources":["../src/sincwindow.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,sDAAsD;AACtD,oDAAoD;AACpD,4EAA4E;AAC5E,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,sBAAsB;AAEtB,+DAA+D;AAC/D,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;IACvC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAC/C,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAC/C,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAC/C,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAC/C,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IACnE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IACvE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IACvE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IACvE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IACvE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IACvE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE;IAC9F,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE;IAC/F,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IAC9G,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IACvH,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IACvH,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IACvH,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IACvH,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IACvH,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IACvH,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE;IAC7G,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IAC5E,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;IAC/F,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;IAC/F,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;IAC/F,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;IAClG,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;IACvH,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;IACvH,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;IACvH,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;IACvH,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;IACvH,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;IACvH,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;IACvH,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;IACvH,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;IACvH,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;IACvH,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;IACvH,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI;IACvH,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;IACnG,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;IAC/F,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;IAC/F,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;IAC/F,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE;IAC5E,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IAC5G,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IACvH,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IACvH,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IACvH,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IACvH,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IACvH,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG;IACvH,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,GAAG,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE;IAC/G,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE;IAC/F,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE;IAC/F,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IAC5D,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IACvE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IACvE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IACvE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IACvE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IACvE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACpE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAC/C,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAC/C,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAC/C,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;CAChD,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Parse "M:SS", "H:MM:SS" or "M:SS.mmm" → seconds (float). */
|
|
2
|
+
export declare function parseSongLength(tok: string): number;
|
|
3
|
+
/**
|
|
4
|
+
* Load a Songlengths.md5 database (the full text of the file). After this,
|
|
5
|
+
* sidStartTune/loads look up the tune by MD5 of its bytes and fill
|
|
6
|
+
* cRSID.SubtuneDurations — exactly like cRSID_getPlaylengths.
|
|
7
|
+
*/
|
|
8
|
+
export declare function loadSidSongLengths(dbText: string): void;
|
|
9
|
+
/**
|
|
10
|
+
* Look up the current tune (by MD5 of its bytes) and populate
|
|
11
|
+
* cRSID.SubtuneDurations + the returned per-subtune seconds array.
|
|
12
|
+
* Call from the loader (processSIDfileData path). Returns seconds per
|
|
13
|
+
* subtune (index 1..N), entries 0 when unknown.
|
|
14
|
+
*/
|
|
15
|
+
export declare function applySongLengthsFor(filedata: Uint8Array, subtuneAmount: number): number[];
|
|
16
|
+
/** Duration of a subtune in seconds (0 = unknown). */
|
|
17
|
+
export declare function getSidSubtuneDuration(subtune: number): number;
|
|
18
|
+
/** Whether a song-length database is loaded. */
|
|
19
|
+
export declare function isSidSongLengthDbLoaded(): boolean;
|
|
20
|
+
//# sourceMappingURL=songlengths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"songlengths.d.ts","sourceRoot":"","sources":["../src/songlengths.ts"],"names":[],"mappings":"AAsBA,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CASvD;AAID;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBzF;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,gDAAgD;AAChD,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
+
// Copyright (c) 2026 Bitti09 — modplayjs contributors
|
|
3
|
+
// HVSC Songlengths.md5 support — per-subtune runtime for SID tunes.
|
|
4
|
+
//
|
|
5
|
+
// The new-format database (HVSC #68+) maps MD5(full file bytes) to a list
|
|
6
|
+
// of per-subtune lengths "M:SS[.mmm] M:SS ...". This mirrors the C host's
|
|
7
|
+
// cRSID_getPlaylengths (host/file.c) which fills cRSID.SubtuneDurations
|
|
8
|
+
// from cRSID.SongLengths — except our hash covers the full file (the
|
|
9
|
+
// modern database format), while the C reference hashes it for the old
|
|
10
|
+
// format; for the new Songlengths.md5 the hash is md5(file bytes).
|
|
11
|
+
//
|
|
12
|
+
// Sources: DOCUMENTS/Songlengths.faq (HVSC) — "The new format has MD5
|
|
13
|
+
// hashes based on the full content".
|
|
14
|
+
import { md5Hex } from '@modplayjs/core';
|
|
15
|
+
import { cRSID } from './instance.js';
|
|
16
|
+
/** seconds per subtune (index 1..N); 0 = unknown. */
|
|
17
|
+
let subtuneDurations = [];
|
|
18
|
+
/** true when a Songlengths.md5 database is loaded. */
|
|
19
|
+
let dbLoaded = false;
|
|
20
|
+
/** Parse "M:SS", "H:MM:SS" or "M:SS.mmm" → seconds (float). */
|
|
21
|
+
export function parseSongLength(tok) {
|
|
22
|
+
const parts = tok.split(':').map((p) => parseFloat(p));
|
|
23
|
+
if (parts.some((n) => Number.isNaN(n)))
|
|
24
|
+
return 0;
|
|
25
|
+
let sec = 0;
|
|
26
|
+
for (const p of parts)
|
|
27
|
+
sec = sec * 60 + p;
|
|
28
|
+
return sec > 0 ? sec : 0;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Load a Songlengths.md5 database (the full text of the file). After this,
|
|
32
|
+
* sidStartTune/loads look up the tune by MD5 of its bytes and fill
|
|
33
|
+
* cRSID.SubtuneDurations — exactly like cRSID_getPlaylengths.
|
|
34
|
+
*/
|
|
35
|
+
export function loadSidSongLengths(dbText) {
|
|
36
|
+
const map = new Map();
|
|
37
|
+
for (const line of dbText.split('\n')) {
|
|
38
|
+
const clean = line.replace(/\r$/, ''); // Songlengths.md5 has CRLF endings
|
|
39
|
+
const m = clean.match(/^([0-9a-f]{32})=(.*)$/i);
|
|
40
|
+
if (m)
|
|
41
|
+
map.set(m[1].toLowerCase(), m[2]);
|
|
42
|
+
}
|
|
43
|
+
songlengthLookup = map;
|
|
44
|
+
dbLoaded = true;
|
|
45
|
+
}
|
|
46
|
+
let songlengthLookup = null;
|
|
47
|
+
/**
|
|
48
|
+
* Look up the current tune (by MD5 of its bytes) and populate
|
|
49
|
+
* cRSID.SubtuneDurations + the returned per-subtune seconds array.
|
|
50
|
+
* Call from the loader (processSIDfileData path). Returns seconds per
|
|
51
|
+
* subtune (index 1..N), entries 0 when unknown.
|
|
52
|
+
*/
|
|
53
|
+
export function applySongLengthsFor(filedata, subtuneAmount) {
|
|
54
|
+
const out = [0];
|
|
55
|
+
cRSID.SubtuneDurations.fill(0);
|
|
56
|
+
const hash = md5Hex(filedata);
|
|
57
|
+
const entry = songlengthLookup?.get(hash);
|
|
58
|
+
if (entry) {
|
|
59
|
+
const toks = entry.trim().split(/\s+/);
|
|
60
|
+
for (let i = 0; i < subtuneAmount && i < toks.length; ++i) {
|
|
61
|
+
const sec = parseSongLength(toks[i]);
|
|
62
|
+
out.push(sec);
|
|
63
|
+
cRSID.SubtuneDurations[i + 1] = Math.round(sec);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
for (let i = 0; i < subtuneAmount; ++i)
|
|
68
|
+
out.push(0);
|
|
69
|
+
}
|
|
70
|
+
subtuneDurations = out;
|
|
71
|
+
return out;
|
|
72
|
+
}
|
|
73
|
+
/** Duration of a subtune in seconds (0 = unknown). */
|
|
74
|
+
export function getSidSubtuneDuration(subtune) {
|
|
75
|
+
return subtuneDurations[subtune] ?? 0;
|
|
76
|
+
}
|
|
77
|
+
/** Whether a song-length database is loaded. */
|
|
78
|
+
export function isSidSongLengthDbLoaded() {
|
|
79
|
+
return dbLoaded;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=songlengths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"songlengths.js","sourceRoot":"","sources":["../src/songlengths.ts"],"names":[],"mappings":"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"}
|
package/dist/vic.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CRC64instance } from './c64types.js';
|
|
2
|
+
/** cRSID_createVICchip (VIC.c:4-12). */
|
|
3
|
+
export declare function cRSID_createVICchip(C64: CRC64instance, baseaddress: number): void;
|
|
4
|
+
/** cRSID_initVICchip (VIC.c:14-21). */
|
|
5
|
+
export declare function cRSID_initVICchip(C64: CRC64instance): void;
|
|
6
|
+
/** cRSID_emulateVIC (VIC.c:37-64) — returns VIC_IRQ (char in C). */
|
|
7
|
+
export declare function cRSID_emulateVIC(C64: CRC64instance, cycles: number): number;
|
|
8
|
+
/** cRSID_acknowledgeVICrasterIRQ (VIC.c:66-76).
|
|
9
|
+
* An 1 is to be written into the IRQ-flag (bit0) of $d019 to clear it and
|
|
10
|
+
* deassert IRQ signal. But oftentimes INC/LSR/etc. RMW commands are used to
|
|
11
|
+
* acknowledge VIC IRQ, they work on real CPU because it writes the
|
|
12
|
+
* unmodified original value itself to memory before writing the modified. */
|
|
13
|
+
export declare function cRSID_acknowledgeVICrasterIRQ(C64: CRC64instance): void;
|
|
14
|
+
//# sourceMappingURL=vic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vic.d.ts","sourceRoot":"","sources":["../src/vic.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,wCAAwC;AACxC,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAMjF;AAED,uCAAuC;AACvC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAM1D;AAYD,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA0B3E;AAED;;;;8EAI8E;AAC9E,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAKtE"}
|
package/dist/vic.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
+
// Copyright (c) 2026 Bitti09 — modplayjs contributors
|
|
3
|
+
// Ported from: cRSID 1.58 libcRSID/C64/VIC.c — VIC-II emulation.
|
|
4
|
+
// (c) Hermit (Mihaly Horvath), license: WTF ("do what the frick you want").
|
|
5
|
+
/** cRSID_createVICchip (VIC.c:4-12). */
|
|
6
|
+
export function cRSID_createVICchip(C64, baseaddress) {
|
|
7
|
+
C64.VIC.ChipModel = 0;
|
|
8
|
+
C64.VIC.BaseAddress = baseaddress;
|
|
9
|
+
C64.VIC.BasePtrWR = baseaddress;
|
|
10
|
+
C64.VIC.BasePtrRD = baseaddress;
|
|
11
|
+
cRSID_initVICchip(C64);
|
|
12
|
+
}
|
|
13
|
+
/** cRSID_initVICchip (VIC.c:14-21). */
|
|
14
|
+
export function cRSID_initVICchip(C64) {
|
|
15
|
+
for (let i = 0; i < 0x3f; ++i) {
|
|
16
|
+
C64.IObankWR[C64.VIC.BasePtrWR + i] = 0x00;
|
|
17
|
+
C64.IObankRD[C64.VIC.BasePtrRD + i] = 0x00;
|
|
18
|
+
}
|
|
19
|
+
C64.VIC.RowCycleCnt = 0;
|
|
20
|
+
}
|
|
21
|
+
// enum VICregisters (VIC.c:29-31)
|
|
22
|
+
const CONTROL = 0x11, RASTERROWL = 0x12 /*, SPRITE_ENABLE = 0x15*/;
|
|
23
|
+
const INTERRUPT = 0x19, INTERRUPT_ENABLE = 0x1a;
|
|
24
|
+
// enum ControlBitVal (VIC.c:33)
|
|
25
|
+
const RASTERROWMSB = 0x80 /*, DISPLAY_ENABLE = 0x10, ROWS = 0x08, YSCROLL_MASK = 0x07*/;
|
|
26
|
+
// enum InterruptBitVal (VIC.c:35)
|
|
27
|
+
const VIC_IRQ = 0x80, RASTERROW_MATCH_IRQ = 0x01;
|
|
28
|
+
/** cRSID_emulateVIC (VIC.c:37-64) — returns VIC_IRQ (char in C). */
|
|
29
|
+
export function cRSID_emulateVIC(C64, cycles) {
|
|
30
|
+
const W = C64.IObankWR;
|
|
31
|
+
const R = C64.IObankRD;
|
|
32
|
+
const vicWR = C64.VIC.BasePtrWR;
|
|
33
|
+
const vicRD = C64.VIC.BasePtrRD;
|
|
34
|
+
let RasterRow;
|
|
35
|
+
C64.VIC.RowCycleCnt += cycles;
|
|
36
|
+
if (C64.VIC.RowCycleCnt >= C64.VIC.RasterRowCycles) {
|
|
37
|
+
C64.VIC.RowCycleCnt -= C64.VIC.RasterRowCycles;
|
|
38
|
+
RasterRow = ((R[vicRD + CONTROL] & RASTERROWMSB) << 1) + R[vicRD + RASTERROWL];
|
|
39
|
+
++RasterRow;
|
|
40
|
+
if (RasterRow >= C64.VIC.RasterLines)
|
|
41
|
+
RasterRow = 0;
|
|
42
|
+
R[vicRD + CONTROL] = (R[vicRD + CONTROL] & ~RASTERROWMSB) | ((RasterRow & 0x100) >> 1);
|
|
43
|
+
R[vicRD + RASTERROWL] = RasterRow & 0xff;
|
|
44
|
+
if (W[vicWR + INTERRUPT_ENABLE] & RASTERROW_MATCH_IRQ) {
|
|
45
|
+
if (RasterRow === ((W[vicWR + CONTROL] & RASTERROWMSB) << 1) + W[vicWR + RASTERROWL]) {
|
|
46
|
+
R[vicRD + INTERRUPT] |= VIC_IRQ | RASTERROW_MATCH_IRQ;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return R[vicRD + INTERRUPT] & VIC_IRQ;
|
|
51
|
+
}
|
|
52
|
+
/** cRSID_acknowledgeVICrasterIRQ (VIC.c:66-76).
|
|
53
|
+
* An 1 is to be written into the IRQ-flag (bit0) of $d019 to clear it and
|
|
54
|
+
* deassert IRQ signal. But oftentimes INC/LSR/etc. RMW commands are used to
|
|
55
|
+
* acknowledge VIC IRQ, they work on real CPU because it writes the
|
|
56
|
+
* unmodified original value itself to memory before writing the modified. */
|
|
57
|
+
export function cRSID_acknowledgeVICrasterIRQ(C64) {
|
|
58
|
+
const vicWR = C64.VIC.BasePtrWR;
|
|
59
|
+
const vicRD = C64.VIC.BasePtrRD;
|
|
60
|
+
C64.IObankWR[vicWR + INTERRUPT] &= ~RASTERROW_MATCH_IRQ; // prepare for next acknowledge-detection
|
|
61
|
+
C64.IObankRD[vicRD + INTERRUPT] &= ~(VIC_IRQ | RASTERROW_MATCH_IRQ); // remove IRQ flag and state
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=vic.js.map
|
package/dist/vic.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vic.js","sourceRoot":"","sources":["../src/vic.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,50 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@modplayjs/fmt-sid",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "Commodore 64 SID music (PSID/RSID) format plugin for modplayjs \u2014 pristine 1:1 TypeScript port of libcRSID 1.58 by Hermit (Mihaly Horvath).",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsc -p tsconfig.build.json",
|
|
19
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@modplayjs/core": "^0.2.1"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"sid",
|
|
26
|
+
"psid",
|
|
27
|
+
"rsid",
|
|
28
|
+
"c64",
|
|
29
|
+
"commodore 64",
|
|
30
|
+
"chiptune",
|
|
31
|
+
"audio",
|
|
32
|
+
"music",
|
|
33
|
+
"crsid"
|
|
34
|
+
],
|
|
35
|
+
"sideEffects": false,
|
|
36
|
+
"engines": {
|
|
37
|
+
"node": ">=18"
|
|
38
|
+
},
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": "git+https://github.com/modplayjs/modplayjs.git",
|
|
42
|
+
"directory": "packages/fmt-sid"
|
|
43
|
+
},
|
|
44
|
+
"bugs": "https://github.com/modplayjs/modplayjs/issues",
|
|
45
|
+
"homepage": "https://github.com/modplayjs/modplayjs#readme",
|
|
46
|
+
"license": "BSD-3-Clause",
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"registry": "https://npm.pkg.github.com"
|
|
49
|
+
}
|
|
50
|
+
}
|