Loading Audio
TheuseAudioTracks hook fetches audio files, decodes them, and creates ClipTrack objects ready for use with the playlist.
Basic Usage
AudioTrackConfig Interface
Each track configuration accepts the following properties:packages/browser/src/hooks/useAudioTracks.ts:26-55
Three Ways to Load Audio
1. URL Loading (Standard)
Fetch and decode from a URL:2. Pre-loaded AudioBuffer
Skip fetch and decode by providing a buffer directly:3. Peaks-First Rendering
Render waveforms instantly using pre-computed peaks (BBC audiowaveform format):waveformData.sample_rate and waveformData.duration.
Progressive Loading
By default,useAudioTracks waits for all tracks to load before returning them. Use progressive mode to show tracks as they load:
packages/browser/src/hooks/useAudioTracks.ts:60-67
Multi-Clip Positioning
Create staggered arrangements by settingstartTime for each clip:
Trimming Clips
Load only a portion of the audio file:Adding Fades
'linear', 'exponential', 'logarithmic', 'sCurve'
Return Values
packages/browser/src/hooks/useAudioTracks.ts:294
Error Handling
Cleanup on Unmount
The hook automatically:- Cancels in-flight fetch requests using
AbortController - Prevents state updates after unmount
- Cleans up resources
packages/browser/src/hooks/useAudioTracks.ts:288-291
Next Steps
- Multi-Track Editing - Add multiple clips to tracks
- Audio Effects - Apply Tone.js effects to tracks
- Playback Controls - Control audio playback