@motionscript/audio 0.1.0-alpha.6 → 0.1.0-alpha.8
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/CHANGELOG.md +4 -0
- package/NOTICE +15 -14
- package/dist/browser/manifest.json +1 -1
- package/dist/waveform/full-waveform.d.ts +29 -1
- package/dist/waveform/full-waveform.d.ts.map +1 -1
- package/dist/waveform/live-waveform.d.ts +31 -1
- package/dist/waveform/live-waveform.d.ts.map +1 -1
- package/package.json +5 -4
package/CHANGELOG.md
CHANGED
package/NOTICE
CHANGED
|
@@ -4,24 +4,25 @@ Copyright 2026 Motionscript LLC
|
|
|
4
4
|
This product includes the third-party code below, each part under the MIT
|
|
5
5
|
License reproduced at the end of this file.
|
|
6
6
|
|
|
7
|
-
- packages/
|
|
8
|
-
Sine" by David Hoskins (https://www.shadertoy.com/view/4djSRW).
|
|
7
|
+
- packages/renderer/crates/renderer/src/shaders/prim.wgsl (`fn_hash2`):
|
|
8
|
+
"Hash without Sine" by David Hoskins (https://www.shadertoy.com/view/4djSRW).
|
|
9
9
|
Copyright (c) 2014 David Hoskins.
|
|
10
10
|
|
|
11
|
-
- packages/
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2013 Inigo Quilez.
|
|
11
|
+
- packages/renderer/crates/renderer/src/shaders/prim.wgsl (`simplex_noise`): "Noise - simplex - 2D" by Inigo Quilez
|
|
12
|
+
(https://www.shadertoy.com/view/Msf3WH). Copyright (c) 2013 Inigo Quilez.
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
(https://github.com/ashima/webgl-noise). Copyright (C) 2011 by Ashima Arts.
|
|
14
|
+
- packages/renderer/crates/render3d (in @motionscript/renderer's WebAssembly):
|
|
15
|
+
its shaders (src/shaders/mesh.wgsl) port three.js r185's mesh programs and
|
|
16
|
+
src/geometry.rs its primitive generators (https://threejs.org).
|
|
17
|
+
Copyright (c) 2010-2026 three.js authors.
|
|
20
18
|
|
|
21
|
-
@motionscript/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
packages/
|
|
19
|
+
@motionscript/renderer's WebAssembly (dist/ms_renderer_bg.wasm) compiles in
|
|
20
|
+
Rust crates under MIT, Apache-2.0, Zlib and Unicode-3.0 terms (wgpu, naga,
|
|
21
|
+
harfrust, read-fonts, kurbo, wasm-bindgen and others); their notices are in
|
|
22
|
+
packages/renderer/THIRD_PARTY_NOTICES.txt.
|
|
23
|
+
|
|
24
|
+
MP3 export loads @mediabunny/mp3-encoder (MPL-2.0), a WebAssembly build of
|
|
25
|
+
the LAME MP3 encoder (LGPL, https://lame.sourceforge.io), on first use.
|
|
25
26
|
|
|
26
27
|
The browser builds under dist/browser/ bundle each package's npm dependencies;
|
|
27
28
|
dist/browser/THIRD_PARTY_LICENSES.txt in each package lists them with their
|
|
@@ -84,7 +84,35 @@ export declare const FullWaveform: import("@motionscript/sdk").Component<"fullWa
|
|
|
84
84
|
readonly fill: import("@motionscript/sdk").Type<Fill, FillResolved[], false>;
|
|
85
85
|
/** …and the bars behind it. */
|
|
86
86
|
readonly playedFill: import("@motionscript/sdk").Type<Fill, FillResolved[], false>;
|
|
87
|
-
}>, null
|
|
87
|
+
}>, null, import("@motionscript/sdk").BuiltNode<import("@motionscript/sdk").Merge<import("@motionscript/sdk").Box2DState, {
|
|
88
|
+
/** The baked recording. See {@link AudioEnvelope} for why it is baked. */
|
|
89
|
+
readonly envelope: import("@motionscript/sdk").Type<AudioEnvelope, AudioEnvelope, false>;
|
|
90
|
+
/** How many columns the whole file is drawn as. */
|
|
91
|
+
readonly bars: 120;
|
|
92
|
+
/** Space between bars, as a fraction of the pitch. See {@link layOutBars}. */
|
|
93
|
+
readonly gap: 0.3;
|
|
94
|
+
/** Corner radius of a bar, capped at half its width. */
|
|
95
|
+
readonly radius: 2;
|
|
96
|
+
/** How much of the file reads as played, `0`–`1`. Tweenable. */
|
|
97
|
+
readonly progress: 0;
|
|
98
|
+
/** Drive `progress` from the node's own clock instead of the prop. */
|
|
99
|
+
readonly follow: false;
|
|
100
|
+
/** Multiplies every magnitude — a quiet track pulled up to fill its box. */
|
|
101
|
+
readonly gain: 1;
|
|
102
|
+
/** How much of the box a silent bar still occupies, `0`–`1`. */
|
|
103
|
+
readonly floor: 0.015;
|
|
104
|
+
readonly align: import("@motionscript/sdk").Type<"center" | "bottom", "center" | "bottom", false>;
|
|
105
|
+
/** Colour each voice's turns rather than splitting on played / not played. */
|
|
106
|
+
readonly byVoice: false;
|
|
107
|
+
/** A colour per voice index. Short or empty falls back to the palette. */
|
|
108
|
+
readonly voiceColors: import("@motionscript/sdk").Type<string[], string[], false>;
|
|
109
|
+
/** The bars ahead of the playhead. */
|
|
110
|
+
readonly fill: import("@motionscript/sdk").Type<Fill, FillResolved[], false>;
|
|
111
|
+
/** …and the bars behind it. */
|
|
112
|
+
readonly playedFill: import("@motionscript/sdk").Type<Fill, FillResolved[], false>;
|
|
113
|
+
}>, {
|
|
114
|
+
readonly sweep: unknown;
|
|
115
|
+
}, _Node2D<_Node2DProps>>>>;
|
|
88
116
|
export type FullWaveform = NodeOf<typeof FullWaveform>;
|
|
89
117
|
export type FullWaveformProps = NonNullable<Parameters<typeof FullWaveform>[0]>;
|
|
90
118
|
//# sourceMappingURL=full-waveform.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"full-waveform.d.ts","sourceRoot":"","sources":["../../src/waveform/full-waveform.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,MAAM,EAGX,KAAK,MAAM,IAAI,OAAO,EACtB,KAAK,WAAW,IAAI,YAAY,EACjC,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAkC,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAc/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,YAAY;IAGrB,0EAA0E;;IAE1E,mDAAmD;;IAEnD,8EAA8E;;IAE9E,wDAAwD;;IAExD,gEAAgE;;IAEhE,sEAAsE;;IAEtE,4EAA4E;;IAE5E,gEAAgE;;;IAGhE,8EAA8E;;IAE9E,0EAA0E;;IAE1E,sCAAsC;;IAEtC,+BAA+B;;;;;IAvB/B,0EAA0E;;IAE1E,mDAAmD;;IAEnD,8EAA8E;;IAE9E,wDAAwD;;IAExD,gEAAgE;;IAEhE,sEAAsE;;IAEtE,4EAA4E;;IAE5E,gEAAgE;;;IAGhE,8EAA8E;;IAE9E,0EAA0E;;IAE1E,sCAAsC;;IAEtC,+BAA+B;;
|
|
1
|
+
{"version":3,"file":"full-waveform.d.ts","sourceRoot":"","sources":["../../src/waveform/full-waveform.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,MAAM,EAGX,KAAK,MAAM,IAAI,OAAO,EACtB,KAAK,WAAW,IAAI,YAAY,EACjC,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAkC,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAc/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,YAAY;IAGrB,0EAA0E;;IAE1E,mDAAmD;;IAEnD,8EAA8E;;IAE9E,wDAAwD;;IAExD,gEAAgE;;IAEhE,sEAAsE;;IAEtE,4EAA4E;;IAE5E,gEAAgE;;;IAGhE,8EAA8E;;IAE9E,0EAA0E;;IAE1E,sCAAsC;;IAEtC,+BAA+B;;;;;IAvB/B,0EAA0E;;IAE1E,mDAAmD;;IAEnD,8EAA8E;;IAE9E,wDAAwD;;IAExD,gEAAgE;;IAEhE,sEAAsE;;IAEtE,4EAA4E;;IAE5E,gEAAgE;;;IAGhE,8EAA8E;;IAE9E,0EAA0E;;IAE1E,sCAAsC;;IAEtC,+BAA+B;;;IAvB/B,0EAA0E;;IAE1E,mDAAmD;;IAEnD,8EAA8E;;IAE9E,wDAAwD;;IAExD,gEAAgE;;IAEhE,sEAAsE;;IAEtE,4EAA4E;;IAE5E,gEAAgE;;;IAGhE,8EAA8E;;IAE9E,0EAA0E;;IAE1E,sCAAsC;;IAEtC,+BAA+B;;;;2BAwBjC,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,YAAY,CAAC,CAAA;AACtD,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -93,7 +93,37 @@ export declare const LiveWaveform: import("@motionscript/sdk").Component<"liveWa
|
|
|
93
93
|
/** A colour per voice index. Short or empty falls back to the palette. */
|
|
94
94
|
readonly voiceColors: import("@motionscript/sdk").Type<string[], string[], false>;
|
|
95
95
|
readonly fill: import("@motionscript/sdk").Type<Fill, FillResolved[], false>;
|
|
96
|
-
}>, null
|
|
96
|
+
}>, null, import("@motionscript/sdk").BuiltNode<import("@motionscript/sdk").Merge<import("@motionscript/sdk").Box2DState, {
|
|
97
|
+
/** The baked recording. See {@link AudioEnvelope} for why it is baked. */
|
|
98
|
+
readonly envelope: import("@motionscript/sdk").Type<AudioEnvelope, AudioEnvelope, false>;
|
|
99
|
+
/** How many bars the visualiser is made of. */
|
|
100
|
+
readonly bars: 48;
|
|
101
|
+
/** Space between bars, as a fraction of the pitch. */
|
|
102
|
+
readonly gap: 0.35;
|
|
103
|
+
readonly radius: 4;
|
|
104
|
+
/** How many seconds of audio are on screen at once. */
|
|
105
|
+
readonly window: 3;
|
|
106
|
+
/** Seconds into the file the node's first frame shows. */
|
|
107
|
+
readonly offset: 0;
|
|
108
|
+
/** Advance with the scene clock. Off freezes the picture at `offset`. */
|
|
109
|
+
readonly playing: true;
|
|
110
|
+
/** Multiplies every magnitude before it is clamped. */
|
|
111
|
+
readonly gain: 1.4;
|
|
112
|
+
/** How much of the box a silent bar still occupies, `0`–`1`. */
|
|
113
|
+
readonly floor: 0.04;
|
|
114
|
+
readonly align: import("@motionscript/sdk").Type<"center" | "bottom", "center" | "bottom", false>;
|
|
115
|
+
readonly style: import("@motionscript/sdk").Type<"bars" | "line" | "blocks", "bars" | "line" | "blocks", false>;
|
|
116
|
+
/**
|
|
117
|
+
* Show only this voice's activity, by index into the recording's own
|
|
118
|
+
* numbering. `-1` — the default — is every voice.
|
|
119
|
+
*/
|
|
120
|
+
readonly speaker: -1;
|
|
121
|
+
/** Colour each bar by whoever is speaking in it. */
|
|
122
|
+
readonly byVoice: false;
|
|
123
|
+
/** A colour per voice index. Short or empty falls back to the palette. */
|
|
124
|
+
readonly voiceColors: import("@motionscript/sdk").Type<string[], string[], false>;
|
|
125
|
+
readonly fill: import("@motionscript/sdk").Type<Fill, FillResolved[], false>;
|
|
126
|
+
}>, {}, _Node2D<_Node2DProps>>>>;
|
|
97
127
|
export type LiveWaveform = NodeOf<typeof LiveWaveform>;
|
|
98
128
|
export type LiveWaveformProps = NonNullable<Parameters<typeof LiveWaveform>[0]>;
|
|
99
129
|
//# sourceMappingURL=live-waveform.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-waveform.d.ts","sourceRoot":"","sources":["../../src/waveform/live-waveform.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,MAAM,EAGX,KAAK,MAAM,IAAI,OAAO,EACtB,KAAK,WAAW,IAAI,YAAY,EACjC,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,YAAY,CAAA;AAYnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,YAAY;IAGrB,0EAA0E;;IAE1E,+CAA+C;;IAE/C,sDAAsD;;;IAGtD,uDAAuD;;IAEvD,0DAA0D;;IAE1D,yEAAyE;;IAEzE,uDAAuD;;IAEvD,gEAAgE;;;;IAIhE;;;OAGG;;IAEH,oDAAoD;;IAEpD,0EAA0E;;;;IA1B1E,0EAA0E;;IAE1E,+CAA+C;;IAE/C,sDAAsD;;;IAGtD,uDAAuD;;IAEvD,0DAA0D;;IAE1D,yEAAyE;;IAEzE,uDAAuD;;IAEvD,gEAAgE;;;;IAIhE;;;OAGG;;IAEH,oDAAoD;;IAEpD,0EAA0E;;;
|
|
1
|
+
{"version":3,"file":"live-waveform.d.ts","sourceRoot":"","sources":["../../src/waveform/live-waveform.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,MAAM,EAGX,KAAK,MAAM,IAAI,OAAO,EACtB,KAAK,WAAW,IAAI,YAAY,EACjC,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,YAAY,CAAA;AAYnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,YAAY;IAGrB,0EAA0E;;IAE1E,+CAA+C;;IAE/C,sDAAsD;;;IAGtD,uDAAuD;;IAEvD,0DAA0D;;IAE1D,yEAAyE;;IAEzE,uDAAuD;;IAEvD,gEAAgE;;;;IAIhE;;;OAGG;;IAEH,oDAAoD;;IAEpD,0EAA0E;;;;IA1B1E,0EAA0E;;IAE1E,+CAA+C;;IAE/C,sDAAsD;;;IAGtD,uDAAuD;;IAEvD,0DAA0D;;IAE1D,yEAAyE;;IAEzE,uDAAuD;;IAEvD,gEAAgE;;;;IAIhE;;;OAGG;;IAEH,oDAAoD;;IAEpD,0EAA0E;;;;IA1B1E,0EAA0E;;IAE1E,+CAA+C;;IAE/C,sDAAsD;;;IAGtD,uDAAuD;;IAEvD,0DAA0D;;IAE1D,yEAAyE;;IAEzE,uDAAuD;;IAEvD,gEAAgE;;;;IAIhE;;;OAGG;;IAEH,oDAAoD;;IAEpD,0EAA0E;;;gCAU5E,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,YAAY,CAAC,CAAA;AACtD,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@motionscript/audio",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Waveform components for Motion Script: a full recording drawn as bars, and a live meter that moves with playback. Both draw a loudness envelope the host supplies.",
|
|
6
6
|
"repository": {
|
|
@@ -48,8 +48,9 @@
|
|
|
48
48
|
"animation"
|
|
49
49
|
],
|
|
50
50
|
"license": "Apache-2.0",
|
|
51
|
+
"author": "Motionscript",
|
|
51
52
|
"peerDependencies": {
|
|
52
|
-
"@motionscript/sdk": "^0.1.0-alpha.
|
|
53
|
+
"@motionscript/sdk": "^0.1.0-alpha.8"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@types/node": "^25.6.2",
|
|
@@ -60,8 +61,8 @@
|
|
|
60
61
|
"typescript": "^6.0.3",
|
|
61
62
|
"typescript-eslint": "^8.48.0",
|
|
62
63
|
"vitest": "^4.1.5",
|
|
63
|
-
"@motionscript/
|
|
64
|
-
"@motionscript/
|
|
64
|
+
"@motionscript/core": "0.1.0-alpha.8",
|
|
65
|
+
"@motionscript/sdk": "0.1.0-alpha.8"
|
|
65
66
|
},
|
|
66
67
|
"scripts": {
|
|
67
68
|
"build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths && node ../../../scripts/build-browser.mjs",
|