Skip to content

feat: audio playback & sync preview - #2

Open
KEYHAN-A wants to merge 1 commit into
mainfrom
feat/audio-playback
Open

KEYHAN-A wants to merge 1 commit into
mainfrom
feat/audio-playback

Conversation

@KEYHAN-A

Copy link
Copy Markdown
Owner

Summary

  • Adds multi-track audio playback so users can hear the synced result before exporting
  • Transport controls (play/pause/stop) appear on the timeline after analysis
  • Per-track mute/solo and a live playhead rendered on the waveform canvas
  • Click anywhere on the timeline to seek

Changes

  • New: playback.rs — Rust module for synced audio buffering with chunk-based streaming
  • New: usePlayback.js — Web Audio API composable with multi-track playback, mute/solo/volume
  • Modified: commands.rs — Added prepare_playback, get_audio_chunk, get_playback_info Tauri commands
  • Modified: WaveformCanvas.vue — Transport bar, live playhead, click-to-seek, per-track controls
  • Modified: lib.rs — Registered new commands and PlaybackBuffer in AppState

Test plan

  • Import files → analyze → click play → all tracks play in sync
  • Mute a track → only that track goes silent
  • Solo a track → only that track is audible
  • Click on timeline → playback seeks to that position
  • Pause and resume → continues from paused position
  • cargo test --workspace passes
  • npx vite build succeeds

🤖 Generated with Claude Code

Adds multi-track audio playback so users can hear the synced result
before exporting. Transport controls appear on the timeline after
analysis with play/pause/stop, per-track mute/solo, and a live
playhead. Audio is streamed in chunks from the Rust backend via
Web Audio API.

- Add playback.rs module in audiosync-core for synced audio buffering
- Add prepare_playback, get_audio_chunk, get_playback_info Tauri commands
- Add usePlayback.js composable with Web Audio API engine
- Add transport bar to WaveformCanvas with play/pause, time display,
  mute/solo per track
- Add live playhead rendering on the waveform timeline
- Add click-to-seek on the timeline canvas

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant