Sebastian Krüger 31af08e9f7 fix: stabilize auto-save by using ref for currentTime
The handleSaveProject callback had currentTime in its dependencies, which
caused the callback to be recreated on every playback frame update. This
made the auto-save effect reset its timer constantly, preventing auto-save
from ever triggering.

Solution: Use a ref to capture the latest currentTime value without
including it in the callback dependencies. This keeps the callback stable
while still saving the correct currentTime.

Added debug logging to track auto-save scheduling and triggering.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-19 10:05:21 +01:00

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
No description provided
Readme 2.4 MiB
Languages
TypeScript 98.8%
CSS 1.1%
Dockerfile 0.1%