-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypes.ts
More file actions
78 lines (66 loc) · 1.75 KB
/
Copy pathtypes.ts
File metadata and controls
78 lines (66 loc) · 1.75 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
export type WaveformType = 'sine' | 'square' | 'sawtooth' | 'triangle';
export interface ADSRConfig {
attack: number;
decay: number;
sustain: number;
release: number;
}
export interface LFOConfig {
waveform: WaveformType;
rate: number;
depth: number;
active: boolean;
isSynced: boolean;
}
export interface ModuleEffect {
reverb: number;
delay: number;
gain: number;
}
export type PadPreset = 'Universe' | 'Ocean' | 'Desert' | 'Harp' | 'Piano';
export type ChordDuration = '1/4' | '1/2' | '1' | '2' | '4';
// Fix: Expanded ArpSpeed to include all valid values used in the app to resolve Record key errors in AudioEngine.ts
export type ArpSpeed = '1/1' | '1/2' | '1/4' | '1/8' | '1/16' | '1/32';
export interface ChordProgression {
chords: string[];
}
export type GateDuration = '1/2' | '1' | '2' | '4' | 'infinite';
export interface GeneratorParams {
waveform: WaveformType;
frequency: number;
baseFrequency: number; // The "patch" frequency used for reset
volume: number;
adsr: ADSRConfig;
lfo: LFOConfig;
gateDuration: GateDuration;
binauralBeat: number;
harmonicsIntensity: number;
multiSaw: boolean; // 是否使用multi-saw(仅sawtooth时有效)
pulseWidth: number; // 脉冲宽度 0-1(仅square时有效)
fifthIntensity: number; // 五度音强度 0-1
octaveIntensity: number; // 八度音强度 0-1
active: boolean;
}
export interface DrumParams {
p1: number;
p2: number;
p3: number;
volume: number;
}
export interface DrumStep {
active: boolean;
velocity: number;
}
export interface DrumSequencerState {
kick: DrumStep[];
snare: DrumStep[];
hihat: DrumStep[];
openhat: DrumStep[];
}
declare global {
namespace JSX {
interface IntrinsicElements {
'strudel-editor': any;
}
}
}