import { VibePreset } from '../vibes'; export interface GardenAudioSnapshot { vibe: VibePreset; isErasing: boolean; } export interface GardenAudioStroke { vibe: VibePreset; from: ArrayLike; to: ArrayLike; canvasSize: ArrayLike; 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; }