Spaces:
Sleeping
Sleeping
| export interface FrequencyMapping { | |
| deepFreq: { min: number; max: number }; // 20-250Hz - Deep Earth Pulse | |
| midFreq: { min: number; max: number }; // 250-4000Hz - Heartwood Resonance | |
| highFreq: { min: number; max: number }; // 4000-20000Hz - Canopy Shiver | |
| } | |
| export interface AudioData { | |
| frequencies: Uint8Array; | |
| deepEnergy: number; // Normalized 0-1 | |
| midEnergy: number; // Normalized 0-1 | |
| highEnergy: number; // Normalized 0-1 | |
| overallAmplitude: number; // Normalized 0-1 | |
| peakDetected: boolean; | |
| beatDetected: boolean; | |
| } | |
| export interface PeakDetection { | |
| energyHistory: number[]; | |
| historyLength: number; | |
| lastPeakTime: number; | |
| minTimeBetweenPeaks: number; | |
| sensitivity: number; | |
| } | |
| export interface BeatManager { | |
| currentWaveRadius: number; | |
| waveStrength: number; | |
| isWaveActive: boolean; | |
| triggerWave: (energy: number) => void; | |
| update: (deltaTime: number) => void; | |
| getWaveForce: (distance: number) => number; | |
| } | |
| export interface Track { | |
| id: string; | |
| title: string; | |
| artist: string; | |
| url: string; | |
| duration?: number; | |
| } | |
| export interface PlaybackState { | |
| isPlaying: boolean; | |
| currentTrack: Track | null; | |
| currentTime: number; | |
| volume: number; | |
| tracks: Track[]; | |
| } | |
| export interface AudioEngine { | |
| initialize: () => Promise<void>; | |
| loadTrack: (track: Track) => Promise<void>; | |
| play: () => Promise<void>; | |
| pause: () => void; | |
| seekTo: (time: number) => void; | |
| setVolume: (volume: number) => void; | |
| getAudioData: () => AudioData; | |
| getCurrentTime: () => number; | |
| getDuration: () => number; | |
| getAudioElement: () => HTMLAudioElement | null; | |
| isPlaying: () => boolean; | |
| cleanup: () => void; | |
| setOnTrackEndedCallback: (callback: (() => void) | null) => void; | |
| } |