| Age | Commit message (Collapse) | Author |
|
Ensures that code related to the --seek command line option (simulation loops, silent audio rendering) is completely compiled out when the DEMO_STRIP_ALL build option is enabled, preserving the 64k size constraint.
|
|
This feature allows developers to jump to a specific time in the demo sequence (e.g., './demo64k --seek 10.5'). It simulates the game logic, audio state (rendering silent buffers), and visual physics (compute shaders) from t=0 up to the target time before starting real-time playback. Audio initialization is refactored to separate device init and start.
|
|
Refactors the rendering pipeline into a modular Sequence/Effect system. 'MainSequence' manages the final frame rendering and a list of 'Sequence' layers. 'Sequence' manages a timeline of 'Effect' objects (start/end/priority). Concrete effects (Heptagon, Particles) are moved to 'demo_effects.cc'. Updates main loop to pass beat and aspect ratio.
|
|
Adds a 'pack_source' CMake target that creates 'demo_all.tgz' using tar. This includes all source files, third-party dependencies (even those ignored by git), and submodules, ensuring a self-contained offline build package.
|
|
This adds a single CMake toggle to enable tools, tests, size optimizations, and code stripping, simplifying the development and verification workflow.
|
|
|
|
|
|
Expands the pre-commit policy to require verifying the Windows build (stripped and packed) if mingw-w64 is present, in addition to the standard native build and tests.
|
|
Updates gpu.cc to handle modern wgpu-native callback signatures (5 args) for macOS while maintaining Windows compatibility. Modifies audio.cc and CMakeLists.txt to ensure miniaudio encoding features are only stripped from the demo binary, not the tools (spectool/tests).
|
|
Reduces Windows binary size from 461KB to 356KB (UPX packed) by stripping unused decoders and encoders from the runtime build. Tools (spectool) retain WAV/MP3 support.
|
|
|
|
|
|
|
|
|
|
|
|
system
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Add details about the new spectrogram generation module (NoteParams, core functions, data flow, future work) to PROJECT_CONTEXT.md.
Update Incoming tasks list to include implementing the add_note function.
|
|
Propose and add a .geminiignore file to exclude build artifacts, dependency build outputs, archives, temporary files, and IDE configurations from Gemini's analysis and operations.
|
|
Cleaned up CSS formatting in style.css to resolve potential parsing errors and ensure proper styling of elements, including buttons and layout.
|
|
Addressed all reported errors by completely restructuring script.js to ensure correct function definition order, fixing the 2x vertical scaling issue in frequency mapping, and confirming SDF logic and audio playback dependencies.
- All global variables, constants, utility functions, element declarations, event listeners, and main logic functions are now correctly ordered.
- and corrected to use for proper frequency mapping.
|
|
Completely restructured script.js to guarantee correct function definition order and fixed the 2x vertical scaling issue in frequency mapping.
- Moved all utility functions (audio, SDF, coordinate/frequency mapping) to be defined before their use.
- Corrected and to use for accurate frequency scaling.
- Ensured all button element declarations and event listeners are correctly placed at the top of the script to prevent initialization errors.
|
|
Completely restructured script.js to place all global variables, constants, button declarations, and event listeners at the top of the file. This definitively resolves 'Uncaught ReferenceError: Cannot access ... before initialization' errors and ensures proper scoping for all functions, including .
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
This commit finalizes the ellipse drawing and application logic within the spectrogram editor.
- : Implemented robust ellipse creation and with correct logarithmic frequency mapping.
- Fixed several issues related to state synchronization and button management.
- Minor styling and HTML updates for consistency.
|
|
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.
|
|
Consolidated all button element declarations into a single block to prevent 'Identifier has already been declared' errors.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
Ensures that test assets are also generated when the production pipeline is run.
|
|
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.
|
|
Implements logic to remove unused trailing zero frames from spectrogram data before saving, reducing file size and improving loading efficiency.
|
|
|
|
Moves the Hamming window initialization from synth_render to synth_init() to ensure it's generated only once, improving performance.
|
|
Enforces a newline at the end of all source files to prevent linting errors and ensure consistent file formatting.
|
|
Updates documentation and context to reflect the completed Asset Management System, production build pipeline, and visual improvements.
- Updated PROJECT_CONTEXT.md with detailed architectural and build system decisions.
- Added milestone summary to SESSION_NOTES.md.
- Expanded GEMINI.md context file list.
|
|
|