@allyhub/sdk 0.0.0-stage → 0.1.0-alpha.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.
- package/LICENSE +241 -0
- package/NOTICE +81 -0
- package/README.md +16 -2
- package/client.d.ts +86 -0
- package/dist/anim.d.ts +41 -0
- package/dist/anim.d.ts.map +1 -0
- package/dist/anim.js +75 -0
- package/dist/anim.js.map +1 -0
- package/dist/define.d.ts +75 -0
- package/dist/define.d.ts.map +1 -0
- package/dist/define.js +95 -0
- package/dist/define.js.map +1 -0
- package/dist/dom.d.ts +210 -0
- package/dist/dom.d.ts.map +1 -0
- package/dist/dom.js +457 -0
- package/dist/dom.js.map +1 -0
- package/dist/fit.d.ts +24 -0
- package/dist/fit.d.ts.map +1 -0
- package/dist/fit.js +60 -0
- package/dist/fit.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/media.d.ts +9 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +27 -0
- package/dist/media.js.map +1 -0
- package/dist/messages.d.ts +39 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +2 -0
- package/dist/messages.js.map +1 -0
- package/dist/noise.d.ts +15 -0
- package/dist/noise.d.ts.map +1 -0
- package/dist/noise.js +233 -0
- package/dist/noise.js.map +1 -0
- package/dist/parts.d.ts +140 -0
- package/dist/parts.d.ts.map +1 -0
- package/dist/parts.js +414 -0
- package/dist/parts.js.map +1 -0
- package/dist/paths.d.ts +85 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +720 -0
- package/dist/paths.js.map +1 -0
- package/dist/piece.d.ts +64 -0
- package/dist/piece.d.ts.map +1 -0
- package/dist/piece.js +38 -0
- package/dist/piece.js.map +1 -0
- package/dist/props.d.ts +81 -0
- package/dist/props.d.ts.map +1 -0
- package/dist/props.js +35 -0
- package/dist/props.js.map +1 -0
- package/dist/text.d.ts +13 -0
- package/dist/text.d.ts.map +1 -0
- package/dist/text.js +38 -0
- package/dist/text.js.map +1 -0
- package/package.json +61 -3
package/dist/media.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { asUrlString, MEDIA_BRAND, MEDIA_RESOLVER, } from "@allyhub/engine/stage";
|
|
2
|
+
// Media imports (`import shot from "./shot.png"`) compile to media(...) with
|
|
3
|
+
// what the build measured. The URL is
|
|
4
|
+
// not known when the code is built: the stage serves the bytes wherever it
|
|
5
|
+
// likes, so `url` asks the runtime, which also records the read. Turned
|
|
6
|
+
// into a string, a media value is its url (`img.src = logo`).
|
|
7
|
+
const RESOLVER = Symbol.for(MEDIA_RESOLVER);
|
|
8
|
+
/** Installed by the runtime before a piece module loads. */
|
|
9
|
+
export function setMediaResolver(resolve) {
|
|
10
|
+
globalThis[RESOLVER] = resolve;
|
|
11
|
+
}
|
|
12
|
+
/** A media value. Used by the code the build generates for media imports. */
|
|
13
|
+
export function media(info) {
|
|
14
|
+
const out = { [MEDIA_BRAND]: true, ...info };
|
|
15
|
+
Object.defineProperty(out, "url", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get() {
|
|
18
|
+
const resolve = globalThis[RESOLVER];
|
|
19
|
+
return resolve ? resolve(info.path) : info.path;
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
return asUrlString(out);
|
|
23
|
+
}
|
|
24
|
+
export function isMedia(v) {
|
|
25
|
+
return typeof v === "object" && v !== null && MEDIA_BRAND in v;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,WAAW,EACX,cAAc,GAEf,MAAM,uBAAuB,CAAC;AAE/B,6EAA6E;AAC7E,sCAAsC;AACtC,2EAA2E;AAC3E,wEAAwE;AACxE,8DAA8D;AAE9D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAI5C,4DAA4D;AAC5D,MAAM,UAAU,gBAAgB,CAAC,OAA6B;IAC3D,UAAsC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;AAC9D,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,KAAK,CAAC,IAA4B;IAChD,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAEzC,CAAC;IACF,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE;QAChC,UAAU,EAAE,IAAI;QAChB,GAAG;YACD,MAAM,OAAO,GAAI,UAAsC,CAAC,QAAQ,CAC1C,CAAC;YACvB,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAClD,CAAC;KACF,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,WAAW,IAAI,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { MessageHint } from "@allyhub/engine/stage";
|
|
2
|
+
/**
|
|
3
|
+
* Every message key of the default language → the inputs s.with() takes
|
|
4
|
+
* for it ({name} variables, plural counts). Filled by the generated types.
|
|
5
|
+
*/
|
|
6
|
+
export interface Messages {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Every prefix s.list() can read (it has numbered keys under it) → the
|
|
10
|
+
* type of one item. Filled by the generated types.
|
|
11
|
+
*/
|
|
12
|
+
export interface MessageLists {
|
|
13
|
+
}
|
|
14
|
+
type Typed = [keyof Messages] extends [never] ? false : true;
|
|
15
|
+
/** A message key: the generated keys, or any string before they exist. */
|
|
16
|
+
export type MessageKey = Typed extends true ? keyof Messages & string : string;
|
|
17
|
+
/** A prefix s.list() reads: the generated prefixes, or any string. */
|
|
18
|
+
export type ListPrefix = [keyof MessageLists] extends [never] ? string : keyof MessageLists & string;
|
|
19
|
+
/** The inputs a key takes in s.with(). */
|
|
20
|
+
export type MessageInputs<K extends string> = K extends keyof Messages ? Messages[K] : Readonly<Record<string, string | number>>;
|
|
21
|
+
/** One item of the list under a prefix. */
|
|
22
|
+
export type ListItem<P extends string> = P extends keyof MessageLists ? MessageLists[P] : string;
|
|
23
|
+
/** ctx.s: the current language's text, with typed keys. */
|
|
24
|
+
export interface MessageReader {
|
|
25
|
+
(key: MessageKey, hint?: MessageHint): string;
|
|
26
|
+
/**
|
|
27
|
+
* Numbered keys under a prefix, in order: `x.0`, `x.1`… Deeper keys make
|
|
28
|
+
* objects (`x.0.name`) and nested lists. The item type comes from the
|
|
29
|
+
* generated types; `s.list<Plan>(prefix)` names it yourself.
|
|
30
|
+
*/
|
|
31
|
+
list<T = never, P extends ListPrefix = ListPrefix>(prefix: P, hint?: MessageHint): [T] extends [never] ? ListItem<P>[] : T[];
|
|
32
|
+
/**
|
|
33
|
+
* The text with its inputs: {name} variables filled, and for plurals and
|
|
34
|
+
* selectors the variant they pick.
|
|
35
|
+
*/
|
|
36
|
+
with<K extends MessageKey>(key: K, inputs: MessageInputs<K>, hint?: MessageHint): string;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAezD;;;GAGG;AAEH,MAAM,WAAW,QAAQ;CAAG;AAE5B;;;GAGG;AAEH,MAAM,WAAW,YAAY;CAAG;AAEhC,KAAK,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAE7D,0EAA0E;AAC1E,MAAM,MAAM,UAAU,GAAG,KAAK,SAAS,IAAI,GAAG,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/E,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,GACzD,MAAM,GACN,MAAM,YAAY,GAAG,MAAM,CAAC;AAEhC,0CAA0C;AAC1C,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,MAAM,QAAQ,GAClE,QAAQ,CAAC,CAAC,CAAC,GACX,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AAE9C,2CAA2C;AAC3C,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,MAAM,YAAY,GACjE,YAAY,CAAC,CAAC,CAAC,GACf,MAAM,CAAC;AAEX,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9C;;;;OAIG;IACH,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,SAAS,UAAU,GAAG,UAAU,EAC/C,MAAM,EAAE,CAAC,EACT,IAAI,CAAC,EAAE,WAAW,GACjB,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAC7C;;;OAGG;IACH,IAAI,CAAC,CAAC,SAAS,UAAU,EACvB,GAAG,EAAE,CAAC,EACN,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,IAAI,CAAC,EAAE,WAAW,GACjB,MAAM,CAAC;CACX"}
|
package/dist/messages.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":""}
|
package/dist/noise.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 2D simplex noise at (x, y) for a seed: a smooth value in [-1, 1] that
|
|
3
|
+
* changes over about one unit. Scale the coordinates to change its speed
|
|
4
|
+
* (`noise2D("cam", t * 0.5, 0)` drifts slowly with time t).
|
|
5
|
+
*/
|
|
6
|
+
export declare function noise2D(seed: string | number, x: number, y: number): number;
|
|
7
|
+
/** 3D simplex noise for a seed, in [-1, 1]: a 2D field that moves smoothly with z. */
|
|
8
|
+
export declare function noise3D(seed: string | number, x: number, y: number, z: number): number;
|
|
9
|
+
/**
|
|
10
|
+
* 4D simplex noise for a seed, in [-1, 1]. Two of its axes on a circle make
|
|
11
|
+
* a loop: `noise4D(seed, x, y, cos(a) * r, sin(a) * r)` comes back to where
|
|
12
|
+
* it started when `a` turns once.
|
|
13
|
+
*/
|
|
14
|
+
export declare function noise4D(seed: string | number, x: number, y: number, z: number, w: number): number;
|
|
15
|
+
//# sourceMappingURL=noise.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noise.d.ts","sourceRoot":"","sources":["../src/noise.ts"],"names":[],"mappings":"AA8EA;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAoC3E;AAcD,sFAAsF;AACtF,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,MAAM,CAkCR;AAuBD;;;;GAIG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,MAAM,CAkDR"}
|
package/dist/noise.js
ADDED
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
// Simplex noise in 2, 3 and 4 dimensions, seeded: the same seed gives the
|
|
2
|
+
// same values on every frame and every run, so a render stays deterministic.
|
|
3
|
+
//
|
|
4
|
+
// The algorithm follows Stefan Gustavson's public-domain reference
|
|
5
|
+
// ("Simplex noise demystified", 2005; SimplexNoise.java, 2012), as the
|
|
6
|
+
// simplex-noise package does (https://github.com/jwagner/simplex-noise.js,
|
|
7
|
+
// Copyright (c) 2022 Jonas Wagner, MIT). The API, a seed then coordinates,
|
|
8
|
+
// is after Remotion's @remotion/noise
|
|
9
|
+
// (https://github.com/remotion-dev/remotion/tree/main/packages/noise, MIT),
|
|
10
|
+
// which wraps simplex-noise. Written again here; see NOTICE.
|
|
11
|
+
import { rand } from "./anim.js";
|
|
12
|
+
const F2 = 0.5 * (Math.sqrt(3) - 1);
|
|
13
|
+
const G2 = (3 - Math.sqrt(3)) / 6;
|
|
14
|
+
const F3 = 1 / 3;
|
|
15
|
+
const G3 = 1 / 6;
|
|
16
|
+
const F4 = (Math.sqrt(5) - 1) / 4;
|
|
17
|
+
const G4 = (5 - Math.sqrt(5)) / 20;
|
|
18
|
+
// The 12 midpoints of a cube's edges; 2D uses their x and y.
|
|
19
|
+
const GRAD3 = new Float64Array([
|
|
20
|
+
1, 1, 0, -1, 1, 0, 1, -1, 0, -1, -1, 0, 1, 0, 1, -1, 0, 1, 1, 0, -1, -1, 0,
|
|
21
|
+
-1, 0, 1, 1, 0, -1, 1, 0, 1, -1, 0, -1, -1,
|
|
22
|
+
]);
|
|
23
|
+
// The 32 midpoints of a tesseract's edges.
|
|
24
|
+
const GRAD4 = new Float64Array([
|
|
25
|
+
0, 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1, 0, -1, 1, 1, 0, -1, 1, -1,
|
|
26
|
+
0, -1, -1, 1, 0, -1, -1, -1, 1, 0, 1, 1, 1, 0, 1, -1, 1, 0, -1, 1, 1, 0, -1,
|
|
27
|
+
-1, -1, 0, 1, 1, -1, 0, 1, -1, -1, 0, -1, 1, -1, 0, -1, -1, 1, 1, 0, 1, 1, 1,
|
|
28
|
+
0, -1, 1, -1, 0, 1, 1, -1, 0, -1, -1, 1, 0, 1, -1, 1, 0, -1, -1, -1, 0, 1, -1,
|
|
29
|
+
-1, 0, -1, 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1, 0, -1, 1, 1, 0,
|
|
30
|
+
-1, 1, -1, 0, -1, -1, 1, 0, -1, -1, -1, 0,
|
|
31
|
+
]);
|
|
32
|
+
const TABLES = new Map();
|
|
33
|
+
const TABLE_CACHE = 32;
|
|
34
|
+
function tableOf(seed) {
|
|
35
|
+
const key = String(seed);
|
|
36
|
+
const found = TABLES.get(key);
|
|
37
|
+
if (found)
|
|
38
|
+
return found;
|
|
39
|
+
const next = rand(seed);
|
|
40
|
+
const p = new Uint8Array(256);
|
|
41
|
+
for (let i = 0; i < 256; i++)
|
|
42
|
+
p[i] = i;
|
|
43
|
+
// Fisher–Yates, driven by the seed.
|
|
44
|
+
for (let i = 255; i > 0; i--) {
|
|
45
|
+
const r = Math.floor(next() * (i + 1));
|
|
46
|
+
const tmp = p[i] ?? 0;
|
|
47
|
+
p[i] = p[r] ?? 0;
|
|
48
|
+
p[r] = tmp;
|
|
49
|
+
}
|
|
50
|
+
const perm = new Uint8Array(512);
|
|
51
|
+
const mod12 = new Uint8Array(512);
|
|
52
|
+
for (let i = 0; i < 512; i++) {
|
|
53
|
+
perm[i] = p[i & 255] ?? 0;
|
|
54
|
+
mod12[i] = (perm[i] ?? 0) % 12;
|
|
55
|
+
}
|
|
56
|
+
const table = { perm, mod12 };
|
|
57
|
+
if (TABLES.size >= TABLE_CACHE) {
|
|
58
|
+
const oldest = TABLES.keys().next();
|
|
59
|
+
if (!oldest.done)
|
|
60
|
+
TABLES.delete(oldest.value);
|
|
61
|
+
}
|
|
62
|
+
TABLES.set(key, table);
|
|
63
|
+
return table;
|
|
64
|
+
}
|
|
65
|
+
// Indices below are always inside the 512-entry tables; `?? 0` only
|
|
66
|
+
// satisfies the type checker.
|
|
67
|
+
/**
|
|
68
|
+
* 2D simplex noise at (x, y) for a seed: a smooth value in [-1, 1] that
|
|
69
|
+
* changes over about one unit. Scale the coordinates to change its speed
|
|
70
|
+
* (`noise2D("cam", t * 0.5, 0)` drifts slowly with time t).
|
|
71
|
+
*/
|
|
72
|
+
export function noise2D(seed, x, y) {
|
|
73
|
+
const { perm, mod12 } = tableOf(seed);
|
|
74
|
+
const s = (x + y) * F2;
|
|
75
|
+
const i = Math.floor(x + s);
|
|
76
|
+
const j = Math.floor(y + s);
|
|
77
|
+
const t = (i + j) * G2;
|
|
78
|
+
const x0 = x - (i - t);
|
|
79
|
+
const y0 = y - (j - t);
|
|
80
|
+
const i1 = x0 > y0 ? 1 : 0;
|
|
81
|
+
const j1 = 1 - i1;
|
|
82
|
+
const x1 = x0 - i1 + G2;
|
|
83
|
+
const y1 = y0 - j1 + G2;
|
|
84
|
+
const x2 = x0 - 1 + 2 * G2;
|
|
85
|
+
const y2 = y0 - 1 + 2 * G2;
|
|
86
|
+
const ii = i & 255;
|
|
87
|
+
const jj = j & 255;
|
|
88
|
+
let n = 0;
|
|
89
|
+
let t0 = 0.5 - x0 * x0 - y0 * y0;
|
|
90
|
+
if (t0 > 0) {
|
|
91
|
+
const g = (mod12[ii + (perm[jj] ?? 0)] ?? 0) * 3;
|
|
92
|
+
t0 *= t0;
|
|
93
|
+
n += t0 * t0 * ((GRAD3[g] ?? 0) * x0 + (GRAD3[g + 1] ?? 0) * y0);
|
|
94
|
+
}
|
|
95
|
+
let t1 = 0.5 - x1 * x1 - y1 * y1;
|
|
96
|
+
if (t1 > 0) {
|
|
97
|
+
const g = (mod12[ii + i1 + (perm[jj + j1] ?? 0)] ?? 0) * 3;
|
|
98
|
+
t1 *= t1;
|
|
99
|
+
n += t1 * t1 * ((GRAD3[g] ?? 0) * x1 + (GRAD3[g + 1] ?? 0) * y1);
|
|
100
|
+
}
|
|
101
|
+
let t2 = 0.5 - x2 * x2 - y2 * y2;
|
|
102
|
+
if (t2 > 0) {
|
|
103
|
+
const g = (mod12[ii + 1 + (perm[jj + 1] ?? 0)] ?? 0) * 3;
|
|
104
|
+
t2 *= t2;
|
|
105
|
+
n += t2 * t2 * ((GRAD3[g] ?? 0) * x2 + (GRAD3[g + 1] ?? 0) * y2);
|
|
106
|
+
}
|
|
107
|
+
return 70 * n;
|
|
108
|
+
}
|
|
109
|
+
function corner3(g, x, y, z) {
|
|
110
|
+
let t = 0.6 - x * x - y * y - z * z;
|
|
111
|
+
if (t <= 0)
|
|
112
|
+
return 0;
|
|
113
|
+
const k = g * 3;
|
|
114
|
+
t *= t;
|
|
115
|
+
return (t *
|
|
116
|
+
t *
|
|
117
|
+
((GRAD3[k] ?? 0) * x + (GRAD3[k + 1] ?? 0) * y + (GRAD3[k + 2] ?? 0) * z));
|
|
118
|
+
}
|
|
119
|
+
/** 3D simplex noise for a seed, in [-1, 1]: a 2D field that moves smoothly with z. */
|
|
120
|
+
export function noise3D(seed, x, y, z) {
|
|
121
|
+
const { perm, mod12 } = tableOf(seed);
|
|
122
|
+
const s = (x + y + z) * F3;
|
|
123
|
+
const i = Math.floor(x + s);
|
|
124
|
+
const j = Math.floor(y + s);
|
|
125
|
+
const k = Math.floor(z + s);
|
|
126
|
+
const t = (i + j + k) * G3;
|
|
127
|
+
const x0 = x - (i - t);
|
|
128
|
+
const y0 = y - (j - t);
|
|
129
|
+
const z0 = z - (k - t);
|
|
130
|
+
let i1, j1, k1, i2, j2, k2;
|
|
131
|
+
if (x0 >= y0) {
|
|
132
|
+
if (y0 >= z0)
|
|
133
|
+
[i1, j1, k1, i2, j2, k2] = [1, 0, 0, 1, 1, 0];
|
|
134
|
+
else if (x0 >= z0)
|
|
135
|
+
[i1, j1, k1, i2, j2, k2] = [1, 0, 0, 1, 0, 1];
|
|
136
|
+
else
|
|
137
|
+
[i1, j1, k1, i2, j2, k2] = [0, 0, 1, 1, 0, 1];
|
|
138
|
+
}
|
|
139
|
+
else if (y0 < z0)
|
|
140
|
+
[i1, j1, k1, i2, j2, k2] = [0, 0, 1, 0, 1, 1];
|
|
141
|
+
else if (x0 < z0)
|
|
142
|
+
[i1, j1, k1, i2, j2, k2] = [0, 1, 0, 0, 1, 1];
|
|
143
|
+
else
|
|
144
|
+
[i1, j1, k1, i2, j2, k2] = [0, 1, 0, 1, 1, 0];
|
|
145
|
+
const ii = i & 255;
|
|
146
|
+
const jj = j & 255;
|
|
147
|
+
const kk = k & 255;
|
|
148
|
+
const g = (a, b, c) => mod12[ii + a + (perm[jj + b + (perm[kk + c] ?? 0)] ?? 0)] ?? 0;
|
|
149
|
+
const n = corner3(g(0, 0, 0), x0, y0, z0) +
|
|
150
|
+
corner3(g(i1, j1, k1), x0 - i1 + G3, y0 - j1 + G3, z0 - k1 + G3) +
|
|
151
|
+
corner3(g(i2, j2, k2), x0 - i2 + 2 * G3, y0 - j2 + 2 * G3, z0 - k2 + 2 * G3) +
|
|
152
|
+
corner3(g(1, 1, 1), x0 - 1 + 3 * G3, y0 - 1 + 3 * G3, z0 - 1 + 3 * G3);
|
|
153
|
+
return 32 * n;
|
|
154
|
+
}
|
|
155
|
+
function corner4(g, x, y, z, w) {
|
|
156
|
+
let t = 0.6 - x * x - y * y - z * z - w * w;
|
|
157
|
+
if (t <= 0)
|
|
158
|
+
return 0;
|
|
159
|
+
const k = g * 4;
|
|
160
|
+
t *= t;
|
|
161
|
+
return (t *
|
|
162
|
+
t *
|
|
163
|
+
((GRAD4[k] ?? 0) * x +
|
|
164
|
+
(GRAD4[k + 1] ?? 0) * y +
|
|
165
|
+
(GRAD4[k + 2] ?? 0) * z +
|
|
166
|
+
(GRAD4[k + 3] ?? 0) * w));
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* 4D simplex noise for a seed, in [-1, 1]. Two of its axes on a circle make
|
|
170
|
+
* a loop: `noise4D(seed, x, y, cos(a) * r, sin(a) * r)` comes back to where
|
|
171
|
+
* it started when `a` turns once.
|
|
172
|
+
*/
|
|
173
|
+
export function noise4D(seed, x, y, z, w) {
|
|
174
|
+
const { perm } = tableOf(seed);
|
|
175
|
+
const s = (x + y + z + w) * F4;
|
|
176
|
+
const i = Math.floor(x + s);
|
|
177
|
+
const j = Math.floor(y + s);
|
|
178
|
+
const k = Math.floor(z + s);
|
|
179
|
+
const l = Math.floor(w + s);
|
|
180
|
+
const t = (i + j + k + l) * G4;
|
|
181
|
+
const x0 = x - (i - t);
|
|
182
|
+
const y0 = y - (j - t);
|
|
183
|
+
const z0 = z - (k - t);
|
|
184
|
+
const w0 = w - (l - t);
|
|
185
|
+
// Which simplex: each coordinate's rank among the four.
|
|
186
|
+
let rx = 0;
|
|
187
|
+
let ry = 0;
|
|
188
|
+
let rz = 0;
|
|
189
|
+
let rw = 0;
|
|
190
|
+
if (x0 > y0)
|
|
191
|
+
rx++;
|
|
192
|
+
else
|
|
193
|
+
ry++;
|
|
194
|
+
if (x0 > z0)
|
|
195
|
+
rx++;
|
|
196
|
+
else
|
|
197
|
+
rz++;
|
|
198
|
+
if (x0 > w0)
|
|
199
|
+
rx++;
|
|
200
|
+
else
|
|
201
|
+
rw++;
|
|
202
|
+
if (y0 > z0)
|
|
203
|
+
ry++;
|
|
204
|
+
else
|
|
205
|
+
rz++;
|
|
206
|
+
if (y0 > w0)
|
|
207
|
+
ry++;
|
|
208
|
+
else
|
|
209
|
+
rw++;
|
|
210
|
+
if (z0 > w0)
|
|
211
|
+
rz++;
|
|
212
|
+
else
|
|
213
|
+
rw++;
|
|
214
|
+
const ii = i & 255;
|
|
215
|
+
const jj = j & 255;
|
|
216
|
+
const kk = k & 255;
|
|
217
|
+
const ll = l & 255;
|
|
218
|
+
const g = (a, b, c, d) => (perm[ii + a + (perm[jj + b + (perm[kk + c + (perm[ll + d] ?? 0)] ?? 0)] ?? 0)] ?? 0) % 32;
|
|
219
|
+
let n = corner4(g(0, 0, 0, 0), x0, y0, z0, w0);
|
|
220
|
+
for (let step = 1; step <= 3; step++) {
|
|
221
|
+
const rank = 4 - step;
|
|
222
|
+
const a = rx >= rank ? 1 : 0;
|
|
223
|
+
const b = ry >= rank ? 1 : 0;
|
|
224
|
+
const c = rz >= rank ? 1 : 0;
|
|
225
|
+
const d = rw >= rank ? 1 : 0;
|
|
226
|
+
const o = step * G4;
|
|
227
|
+
n += corner4(g(a, b, c, d), x0 - a + o, y0 - b + o, z0 - c + o, w0 - d + o);
|
|
228
|
+
}
|
|
229
|
+
const o = 4 * G4;
|
|
230
|
+
n += corner4(g(1, 1, 1, 1), x0 - 1 + o, y0 - 1 + o, z0 - 1 + o, w0 - 1 + o);
|
|
231
|
+
return 27 * n;
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=noise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noise.js","sourceRoot":"","sources":["../src/noise.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,6EAA6E;AAC7E,EAAE;AACF,mEAAmE;AACnE,uEAAuE;AACvE,2EAA2E;AAC3E,2EAA2E;AAC3E,sCAAsC;AACtC,4EAA4E;AAC5E,6DAA6D;AAE7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAEnC,6DAA6D;AAC7D,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC;IAC7B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC1E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CAC3C,CAAC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC;IAC7B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CA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"}
|
package/dist/parts.d.ts
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { type FootageLayer, type FootageOptions, type LayerSpec, type MediaRef, type PartAnchors, type PartSpec, type RoomTone, type SaySpeech, type SoundSpec, type SpeechSpec, type TakeSpeech, type TransitionInput, type WordRef } from "@allyhub/engine/stage";
|
|
2
|
+
export type { BoxKey, FootageBackground, FootageBox, PerOrient, PunchIn, Pullback, Reframe, FootageLayer, FootageOptions, GraphicLayer, LayerSpec, LayerTiming, PartAnchors, PartSpec, Rect, RoomTone, SaySpeech, SoundSpec, SpeechSpec, TakeSpeech, Direction, TransitionChannel, TransitionInput, TransitionPicture, TransitionSpec, TransitionType, WordRef, } from "@allyhub/engine/stage";
|
|
3
|
+
export interface PartOptions {
|
|
4
|
+
/** Unique in the output; stable across combos and formats. */
|
|
5
|
+
key: string;
|
|
6
|
+
/** What the part says: take(file) or say(text). Without it the part is silent. */
|
|
7
|
+
speech?: SpeechSpec;
|
|
8
|
+
/**
|
|
9
|
+
* Seconds, for a part without speech (default 4, or `defaults.part`;
|
|
10
|
+
* on the beat with `music.snap`). A part with speech lasts lead +
|
|
11
|
+
* speech + tail.
|
|
12
|
+
*/
|
|
13
|
+
dur?: number;
|
|
14
|
+
/** Seconds before the first word; default 0.2, or `defaults.part`. */
|
|
15
|
+
lead?: number;
|
|
16
|
+
/** Seconds after the last word; default 0.3, or `defaults.part`. */
|
|
17
|
+
tail?: number;
|
|
18
|
+
/**
|
|
19
|
+
* What it shows, back to front: footage(), components, custom(). Each
|
|
20
|
+
* layer is drawn over those listed before it, so a graphic layer before
|
|
21
|
+
* a footage layer is under it, and one between two is between them.
|
|
22
|
+
*/
|
|
23
|
+
layers?: LayerSpec[];
|
|
24
|
+
/**
|
|
25
|
+
* The still moment (covers, sheets, pages): a word reference, seconds
|
|
26
|
+
* from the part's start, or a function of its length. Default: 0.4 s
|
|
27
|
+
* before its end.
|
|
28
|
+
*/
|
|
29
|
+
still?: WordRef | ((dur: number) => number);
|
|
30
|
+
/** Labels for the matrix's rules (P2). */
|
|
31
|
+
tags?: string[];
|
|
32
|
+
/**
|
|
33
|
+
* J and L cuts: `before` seconds of the speech play under the previous
|
|
34
|
+
* part's picture, `after` seconds under the next part's.
|
|
35
|
+
*/
|
|
36
|
+
overlap?: {
|
|
37
|
+
before?: number;
|
|
38
|
+
after?: number;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Sound effects: `[{ at: "free", sound: "pop" }, { at: 1.2, sound:
|
|
42
|
+
* whoosh, gainDb: -4 }]`, each at a word reference or seconds, a name of
|
|
43
|
+
* the look's sounds (or the built-in whoosh, tick, pop) or an audio
|
|
44
|
+
* file. Nothing plays unless it is placed.
|
|
45
|
+
*/
|
|
46
|
+
sounds?: SoundSpec[];
|
|
47
|
+
/**
|
|
48
|
+
* Named moments of the part, in seconds from its start: `{ press: 7.1,
|
|
49
|
+
* map: [9.6, 13.4] }`, a point or a stretch [from, to]. Wherever a word
|
|
50
|
+
* reference goes, "@press" is the point, "@map" and "@/map" the
|
|
51
|
+
* stretch's start and end ("@press+0.2" shifts one); `ctx.at("@press")`
|
|
52
|
+
* reads one in a layer. A part needs no speech to have them; allyhub
|
|
53
|
+
* timeline prints where each landed, and allyhub frames --at takes them.
|
|
54
|
+
*/
|
|
55
|
+
anchors?: PartAnchors;
|
|
56
|
+
/**
|
|
57
|
+
* How the part comes in from the part before it; without it, a cut.
|
|
58
|
+
* `"fade"`, `"dip"` (through a colour), `"slide"`, `"push"`, `"wipe"`,
|
|
59
|
+
* `"zoom"`, or the type with its options: `{ type: "push", direction:
|
|
60
|
+
* "up", dur: 0.5 }`; `{ type: "custom", out, in }` gives the channels
|
|
61
|
+
* directly. The window (`dur`, default 0.4 s) lies across the join,
|
|
62
|
+
* `split` of it (default half) before; the parts keep their lengths.
|
|
63
|
+
* Outside its own time a part's graphics hold and its footage runs on.
|
|
64
|
+
* The first part's is ignored, and so is a paged output's. Pictures
|
|
65
|
+
* only: place a sound with `sounds`.
|
|
66
|
+
*/
|
|
67
|
+
transition?: TransitionInput;
|
|
68
|
+
}
|
|
69
|
+
/** A part of a video, or a page of a paged output. */
|
|
70
|
+
export declare function part(opts: PartOptions): PartSpec;
|
|
71
|
+
/** A take, narrowed with range() or saying(). */
|
|
72
|
+
export interface Take extends TakeSpeech {
|
|
73
|
+
/**
|
|
74
|
+
* The stretch from the first words `from` to the end of the first `to`
|
|
75
|
+
* after them (case and punctuation ignored); without `to`, to the end.
|
|
76
|
+
*/
|
|
77
|
+
range(from: string, to?: string): Take;
|
|
78
|
+
/**
|
|
79
|
+
* The stretch that says this line (usually s(key)): found by its words,
|
|
80
|
+
* misheard words tolerated; the line's spelling is the caption. Each
|
|
81
|
+
* part that takes the same file searches after the previous one's
|
|
82
|
+
* stretch.
|
|
83
|
+
*/
|
|
84
|
+
saying(text: string): Take;
|
|
85
|
+
/**
|
|
86
|
+
* A cut list: a JSON file relative to the piece (`./edits/<name>.json`)
|
|
87
|
+
* removing word ranges, sounds and long pauses; the preview's
|
|
88
|
+
* transcript editor writes it. The file may not exist yet.
|
|
89
|
+
*/
|
|
90
|
+
edits(path: string): Take;
|
|
91
|
+
/**
|
|
92
|
+
* Reduces the noise in its sound by `db` (default 12) with ffmpeg's FFT
|
|
93
|
+
* denoiser, in the render and the preview (as recorded until the preview
|
|
94
|
+
* has made the denoised sound).
|
|
95
|
+
*/
|
|
96
|
+
denoise(db?: number): Take;
|
|
97
|
+
/**
|
|
98
|
+
* The room tone that fills a part's lead and tail where the take has no
|
|
99
|
+
* silence of its own around the part's words: `false` for none, or
|
|
100
|
+
* `{ from, to, match, gainDb, limitDb, fade }`, each optional. `from`
|
|
101
|
+
* and `to` are the stretch of the file (seconds) to loop; default the
|
|
102
|
+
* quietest steady stretch the build measured. Each fill's level is
|
|
103
|
+
* matched to the floor of the take's kept sound beside the join it
|
|
104
|
+
* meets (at most `limitDb`, default 6 dB, either way) and cross-fades
|
|
105
|
+
* with it over `fade` seconds (default 0.04): `match: false` plays it
|
|
106
|
+
* as recorded, `gainDb` sets its gain yourself.
|
|
107
|
+
*/
|
|
108
|
+
roomTone(tone: false | RoomTone): Take;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Speech from a recording, audio or video, with its word times beside it
|
|
112
|
+
* (`<name>.words.json`: allyhub transcribe <file> makes it). An import, or a
|
|
113
|
+
* path relative to the piece's file.
|
|
114
|
+
*/
|
|
115
|
+
export declare function take(file: MediaRef): Take;
|
|
116
|
+
export interface SayOptions {
|
|
117
|
+
/** The voice tool's voice id. */
|
|
118
|
+
voice?: string;
|
|
119
|
+
/** The voice tool; default tts-elevenlabs-multilingual-v2. */
|
|
120
|
+
tool?: string;
|
|
121
|
+
/**
|
|
122
|
+
* More input for the voice tool, as plain JSON (`allyhub tools describe
|
|
123
|
+
* <tool>` lists what it takes), such as { stability: 0.4 }. Passed with
|
|
124
|
+
* the text and voice; part of the file's hash, so changing it makes a
|
|
125
|
+
* new file.
|
|
126
|
+
*/
|
|
127
|
+
params?: Record<string, unknown>;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Text to speech: `allyhub voice generate` makes the file
|
|
131
|
+
* (assets/media/gen/say/<hash>) with its words; the check reports a say without
|
|
132
|
+
* one (AK-T002). Text from s(key) is read aloud as the message's `speak`.
|
|
133
|
+
*/
|
|
134
|
+
export declare function say(text: string, opts?: SayOptions): SaySpeech;
|
|
135
|
+
/**
|
|
136
|
+
* A video on the part: footage("./broll.mp4", { at: "inbox", dur: 1.5 }).
|
|
137
|
+
* Without a file it is the part's own take, in sync with its speech.
|
|
138
|
+
*/
|
|
139
|
+
export declare function footage(file?: MediaRef | FootageOptions, opts?: FootageOptions): FootageLayer;
|
|
140
|
+
//# sourceMappingURL=parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../src/parts.ts"],"names":[],"mappings":"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"}
|