10d29211471edf0e7fe4d75b24381c4eb6aa14f9
Complete rewrite of seeking logic to support both scrubbing and click-to-play functionality with proper state management. Changes: 1. Added autoPlay parameter to seek() methods across the stack 2. Waveform behavior: - Click and drag → scrubs WITHOUT auto-play during drag - Mouse up after drag → auto-plays from release position - This allows smooth scrubbing while dragging 3. Timeline slider behavior: - onChange → seeks WITHOUT auto-play (smooth dragging) - onMouseUp/onTouchEnd → auto-plays from final position 4. Transport button state now correctly syncs with playback state Technical implementation: - player.seek(time, autoPlay) - autoPlay defaults to false - If autoPlay=true OR was already playing → continues playback - If autoPlay=false AND wasn't playing → just seeks (isPaused=true) - useAudioPlayer.seek() now reads actual player state after seeking User experience: ✓ Click on waveform → music plays from that position ✓ Drag on waveform → scrubs smoothly, plays on release ✓ Drag timeline slider → scrubs smoothly, plays on release ✓ Transport buttons show correct state (Play/Pause) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Audio UI
A sophisticated browser-only audio editor built with Next.js 16, React 19, and Tailwind CSS 4.
Features (Planned)
- 100% Client-Side: All audio processing happens in your browser
- Multi-Track Editing: Professional multi-track audio editing
- Advanced Effects: EQ, compression, reverb, delay, and more
- Automation: Automate volume, pan, and effect parameters
- Recording: Record audio directly from your microphone
- Analysis Tools: Frequency analyzer, spectrogram, and loudness metering
- Export Formats: WAV, MP3, OGG, FLAC
- Project Management: Save and load complete projects
- Privacy-First: No uploads, all data stays local in your browser
Tech Stack
- Next.js 16 with React 19
- TypeScript 5
- Tailwind CSS 4 with OKLCH colors
- Web Audio API for audio processing
- Canvas API for waveform visualization
- IndexedDB for project storage
Getting Started
This project is currently in the planning phase. See PLAN.md for the complete implementation plan.
Development (Coming Soon)
# Install dependencies
pnpm install
# Run development server
pnpm dev
# Build for production
pnpm build
Inspiration
Inspired by AudioMass and professional DAWs like Ableton Live, Logic Pro, and FL Studio.
License
TBD
Contributing
This is a personal project, but suggestions and ideas are welcome!
Description
Languages
TypeScript
98.8%
CSS
1.1%
Dockerfile
0.1%