/ proof-of-concept / phase-perception-2
Sign in
proof-of-concept / phase-perception-2
phase-perception-2 / src / types.ts
58 lines · 1.4 KBCodeBlameHistory
3/** A mono clip at a given sample rate. */
4export type Source = {
5 name: string
6 fs: number
7 samples: Float32Array
8}
10export type RenderRequest = {
11 id: number
12 samples: Float32Array
13 fs: number
14 sigmaMs: number
15 map: PhaseMapSpec
16 /** upper frequency for all plots */
17 fmax: number
18 maxCols: number
19 maxRows: number
20 /** number of points in the response and map curves */
21 curvePoints: number
24export type Curve = { f: Float32Array; y: Float32Array }
26export type SpectrogramData = {
27 /** rows x cols in dB relative to a shared maximum; row 0 is 0 Hz */
28 db: Float32Array
29 rows: number
30 cols: number
31 durationSec: number
32 fmax: number
35export type RenderResult = {
36 id: number
37 /** the phase-rotated sound, unscaled */
38 y: Float32Array
39 /** shared playback gain for A and B */
40 gain: number
41 /** ||y - x|| / ||x|| */
42 relDiff: number
43 bands: number
44 sigmaF: number
45 /** the requested map at the band centers, wrapped to (-pi, pi] */
46 map: Curve
47 /** magnitude of the effective filter in dB */
48 magDb: Curve
49 /** group delay of the effective filter in ms */
50 groupDelayMs: Curve
51 /** largest |group delay| in ms over the plotted range */
52 maxGroupDelayMs: number
53 /** largest |magnitude response| in dB over the plotted range; large values mean the map is too rough for the window */
54 maxMagDeviationDb: number
55 specA: SpectrogramData
56 specB: SpectrogramData
57 elapsedMs: number
↑↓ move↵openescclose