-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.d.ts
More file actions
105 lines (87 loc) · 2.57 KB
/
index.d.ts
File metadata and controls
105 lines (87 loc) · 2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
type Writer = (chunk?: Float32Array) => Float32Array
type Writer2 = (main?: Float32Array, side?: Float32Array) => Float32Array
export interface EnvelopeOpts {
sampleRate?: number
attack?: number // ms
release?: number // ms
detector?: 'peak' | 'rms'
rmsWindow?: number // samples
}
export interface CompressorOpts extends EnvelopeOpts {
threshold?: number // dB
ratio?: number
knee?: number // dB
makeup?: number // dB
}
export interface LimiterOpts {
sampleRate?: number
ceiling?: number // dB (e.g. -0.3)
lookahead?: number // ms
release?: number // ms
}
export interface GateOpts extends EnvelopeOpts {
threshold?: number // dB
range?: number // dB reduction when closed (e.g. -60)
hold?: number // ms
knee?: number
}
export interface ExpanderOpts extends EnvelopeOpts {
threshold?: number
ratio?: number
knee?: number
range?: number // dB, max reduction (e.g. -40)
}
export interface DeesserOpts extends EnvelopeOpts {
freq?: number // Hz, sibilance center
q?: number
threshold?: number
ratio?: number
knee?: number
}
export interface DuckerOpts extends EnvelopeOpts {
threshold?: number
ratio?: number
knee?: number
range?: number // dB, max reduction
}
export interface SoftclipOpts {
curve?: 'tanh' | 'atan' | 'cubic' | 'sin' | 'hard'
drive?: number
ceiling?: number
}
export interface CompandOpts extends EnvelopeOpts {
points?: [number, number][] // [[inDb, outDb], ...]
}
export declare const compressor: {
(data: Float32Array, opts?: CompressorOpts): Float32Array
(opts?: CompressorOpts): Writer
}
export declare const limiter: {
(data: Float32Array, opts?: LimiterOpts): Float32Array
(opts?: LimiterOpts): Writer
}
export declare const gate: {
(data: Float32Array, opts?: GateOpts): Float32Array
(opts?: GateOpts): Writer
}
export declare const expander: {
(data: Float32Array, opts?: ExpanderOpts): Float32Array
(opts?: ExpanderOpts): Writer
}
export declare const deesser: {
(data: Float32Array, opts?: DeesserOpts): Float32Array
(opts?: DeesserOpts): Writer
}
export declare const ducker: {
(main: Float32Array, side: Float32Array, opts?: DuckerOpts): Float32Array
(opts?: DuckerOpts): Writer2
}
export declare const softclip: {
(data: Float32Array, opts?: SoftclipOpts): Float32Array
(opts?: SoftclipOpts): Writer
}
export declare const compand: {
(data: Float32Array, opts?: CompandOpts): Float32Array
(opts?: CompandOpts): Writer
}
export declare function envelope(opts?: EnvelopeOpts): (x: number) => number