52 lines
932 B
TypeScript
52 lines
932 B
TypeScript
import { VibePreset } from '../vibes';
|
|
|
|
export interface GardenAudioSnapshot {
|
|
vibe: VibePreset;
|
|
isErasing: boolean;
|
|
}
|
|
|
|
export interface GardenAudioStroke {
|
|
vibe: VibePreset;
|
|
from: ArrayLike<number>;
|
|
to: ArrayLike<number>;
|
|
canvasSize: ArrayLike<number>;
|
|
isErasing: boolean;
|
|
elapsedSeconds: number;
|
|
}
|
|
|
|
export interface GardenAudioStartOptions {
|
|
userGesture?: boolean;
|
|
}
|
|
|
|
export interface LoadedPianoSample {
|
|
midi: number;
|
|
buffer: AudioBuffer;
|
|
}
|
|
|
|
export interface PianoNote {
|
|
midi: number;
|
|
velocity: number;
|
|
startTime: number;
|
|
durationSeconds: number;
|
|
pan: number;
|
|
role?: PianoNoteRole;
|
|
delaySend?: number;
|
|
lowpassHz?: number;
|
|
sustainSeconds?: number;
|
|
}
|
|
|
|
export type PianoNoteRole =
|
|
| 'pad'
|
|
| 'support'
|
|
| 'texture'
|
|
| 'gesture'
|
|
| 'brush'
|
|
| 'stinger';
|
|
|
|
export interface NoiseBurst {
|
|
startTime: number;
|
|
durationSeconds: number;
|
|
gain: number;
|
|
filterHz: number;
|
|
pan: number;
|
|
}
|