summaryrefslogtreecommitdiff
path: root/tools/editor/script.js
AgeCommit message (Collapse)Author
8 daysfix(editor): Resolve button initialization errorsskal
Restructured script.js to move all button element declarations and their event listeners to the top of the script, immediately after global constants. This resolves the 'Uncaught ReferenceError: Cannot access 'button' before initialization' errors by ensuring elements are initialized before being accessed.
8 daysfeat(editor): Implement SDFs for drawing primitives and fix spectrogram clearingskal
Refactored drawing primitives in the spectrogram editor to use Signed Distance Functions (SDFs), providing smoother and more flexible shape generation. - : Now stores shape parameters in SDF-friendly world coordinates (frame and log-scaled frequency) and includes a parameter for each shape. - : Completely rewritten to utilize SDFs (, , ) for applying shape effects to the spectrogram data, including attenuation with . - Fixed an issue where the generated spectrogram was not being cleared to zero, ensuring a blank canvas for new drawings.
8 daysfix(editor): Resolve 'canvasToSpectrogramCoords is not defined' error (final ↵skal
attempt) Moved all spectrogram coordinate and frequency mapping utility functions to the top of to ensure they are defined before any other functions attempt to use them. This is a crucial scoping fix.
8 daysfix(editor): Resolve 'canvasToSpectrogramCoords is not defined' errorskal
Moved all spectrogram coordinate and frequency mapping utility functions to the top of to ensure they are defined before any other functions attempt to use them. This resolves the 'canvasToSpectrogramCoords is not defined' error caused by incorrect function scoping.
8 daysfeat(editor): Implement ellipse drawing and application logicskal
Adds full support for drawing and applying ellipse shapes to the spectrogram data, correctly handling logarithmic frequency mapping. - : Refined ellipse creation to use accurate logarithmic frequency calculations for minBin and maxBin. - : Implemented the algorithm to draw an ellipse on the spectrogram data, ensuring correct placement and amplitude application. - Uses and for precise frequency mapping.
8 daysfix(editor): Resolve duplicate variable declarations in script.jsskal
Consolidated all button element declarations into a single block to prevent 'Identifier has already been declared' errors.
8 daysfeat(editor): Implement logarithmic frequency scaleskal
Enhances spectrogram visualization by mapping frequency bins to a logarithmic Y-axis, providing better perceptual uniformity. - : Renders frequency data using a logarithmic scale. - Coordinate mapping utilities (, ): Updated to support logarithmic frequency mapping. - : Shape creation now uses the logarithmic mapping for accurate placement in frequency space.
8 daysfeat(editor): Add audio playback and redo functionalityskal
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.
8 daysfeat(editor): Implement drawing tools and advanced undo/redoskal
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.
8 daysfeat(editor): Implement basic undo/redo functionalityskal
Adds the core logic for managing an action history stack and an undo button. - Initializes undoStack, redoStack, and MAX_HISTORY_SIZE. - Implements addAction to record operations and clear redoStack. - Implements handleUndo to revert actions and manage stacks. - Adds placeholder for redrawCanvas and updateUndoRedoButtons.
8 daysdocs: Finalize project state synchronizationskal
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.
8 daysfeat(editor): Scaffold web spectrogram editorskal
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.