45 lines
787 B
TypeScript
45 lines
787 B
TypeScript
|
|
/**
|
||
|
|
* Audio type definitions for the audio editor
|
||
|
|
*/
|
||
|
|
|
||
|
|
export interface AudioFile {
|
||
|
|
id: string;
|
||
|
|
name: string;
|
||
|
|
size: number;
|
||
|
|
duration: number;
|
||
|
|
sampleRate: number;
|
||
|
|
numberOfChannels: number;
|
||
|
|
buffer: AudioBuffer;
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface PlaybackState {
|
||
|
|
isPlaying: boolean;
|
||
|
|
isPaused: boolean;
|
||
|
|
currentTime: number;
|
||
|
|
duration: number;
|
||
|
|
volume: number;
|
||
|
|
playbackRate: number;
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface WaveformData {
|
||
|
|
peaks: Float32Array[];
|
||
|
|
length: number;
|
||
|
|
sampleRate: number;
|
||
|
|
duration: number;
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface Region {
|
||
|
|
id: string;
|
||
|
|
start: number;
|
||
|
|
end: number;
|
||
|
|
label?: string;
|
||
|
|
color?: string;
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface AudioContext {
|
||
|
|
context: AudioContext | null;
|
||
|
|
buffer: AudioBuffer | null;
|
||
|
|
source: AudioBufferSourceNode | null;
|
||
|
|
gainNode: GainNode | null;
|
||
|
|
}
|