| Age | Commit message (Collapse) | Author |
|
Implemented zoom and pan system for the spectral editor:
Core Features:
- Viewport offset system (viewportOffsetX, viewportOffsetY) for panning
- Three wheel interaction modes:
* Ctrl/Cmd + wheel: Cursor-centered zoom (both axes)
* Shift + wheel: Horizontal pan
* Normal wheel: Vertical pan
- Zoom range: 0.5-20.0x horizontal, 0.1-5.0x vertical
- Zoom factor: 0.9/1.1 per wheel notch (10% change)
Technical Implementation:
- Calculate data position under cursor before zoom
- Apply zoom to pixelsPerFrame and pixelsPerBin
- Adjust viewport offsets to keep cursor position stable
- Clamp offsets to valid ranges (0 to max content size)
- Updated all coordinate conversion functions (screenToSpectrogram, spectrogramToScreen)
- Updated playhead rendering with visibility check
- Reset viewport offsets on file load
Algorithm (cursor-centered zoom):
1. Calculate frame and frequency under cursor: pos = (screen + offset) / scale
2. Apply zoom: scale *= zoomFactor
3. Adjust offset: offset = pos * scale - screen
4. Clamp offset to [0, maxOffset]
This matches the zoom behavior of the timeline editor, adapted for 2D spectrogram display.
handoff(Claude): Spectral editor zoom implementation complete
|
|
|
|
|
|
Enhances the spectrogram editor with audio playback capabilities and a redo button.
- : Added 'Listen Original' and 'Listen Generated' buttons, and a 'Redo' button.
- : Added styling for the new buttons.
- : Implemented JavaScript IDCT, Hanning window, and for audio synthesis.
- Connected playback buttons to audio functionality.
- Fully implemented logic.
|
|
This commit significantly enhances the web spectrogram editor by implementing core drawing tools (line, ellipse, noise) and a robust undo/redo system.
- and : Added redo button and styling.
- : Implemented canvas event handling, dynamic shape previews, and the logic for lines and noise rectangles.
- : Now reconstructs the spectrogram from a clean base, allowing proper undo/redo.
- : Uses an improved color gradient for better visualization.
- : Stores original spectrogram data for persistent state management.
|
|
Updates all relevant Markdown files to reflect the completed asset system and build pipeline.
- Updates PROJECT_CONTEXT.md with latest architectural decisions.
- Updates GEMINI.md with the full list of relevant files.
- Adds initial scaffolding for the web editor.
- Cleans up any lingering issues with asset generation paths.
|
|
Initial setup for the spectrogram editor tool.
- Created tools/editor/index.html, script.js, and style.css.
- Added basic structure for WAV loading, visualization, and tool controls.
|