# Changelog ## [Unreleased] ### Added - **User Engagement Dashboard**: New visual statistics showing how deeply users engage with the application - Engagement distribution chart showing Browsers (1-2 features), Active Users (3-5 features), and Power Users (6+ features) - Feature coverage heatmap displaying which features are most/least used with visual intensity - Simplified, less overwhelming interface focused on insights rather than raw numbers ## [1.3.11] - 2025-06-19 ### Added - Anonymous usage statistics to help improve the application - Statistics dashboard for monitoring application usage trends - Privacy-respecting analytics system (no personal data collected) ## [1.3.10] - 2025-05-16 ### Changed - Refactored and simplified the way the calibration settings is used in the application ### Fixed - Fixed selection amplitude values - Fixed an issue where manually entering a value in the amplitude input did not update the waveform after clicking away. Now, changes made by typing and then blurring the input are correctly applied. ### Added - Quantization of random 1V/Octave pitch values in the "Randomize Amplitude" function when in pitch mode. ## [1.3.9] - 2025-04-03 ### Changed - Refactored the voltage calibration system: - Centralized calibration logic within `CalibrationHandler.js`. - Introduced a shared `VoltageConfig` object (in `js/uiEventHandlers.js`) to hold the live calibration state (min/max/center voltage). - Updated `ParameterControlsHandler`, `CanvasEventHandlers`, `LFOPreview`, and `ExportHandler` to use `CalibrationHandler`'s conversion functions and read from the shared `VoltageConfig`. - `CalibrationStorage.js` now solely handles IndexedDB persistence. ## [1.3.8] - 2025-04-02 ### Fixed - Fixed Undo/Redo functionality which was only allowing one step back and preventing Redo from working. - Improved responsiveness of the Smoothing slider by aligning its event handling and history saving mechanism with other parameter sliders. - Fixed Factory Preset button functionality which was not working due to incorrect button ID reference and modal handling. ## [1.3.7] - 2025-04-01 ### Fixed - Fixed amplitude display and slider behavior to correctly show 0.00V when a waveform has zero amplitude, making it easier to create and visualize flat waveforms - Fixed numeric input fields (Character, Offset) to properly update when selecting divisions with mouse or keyboard, ensuring the displayed values always match the selected division ## [1.3.6] - 2025-03-31 ### Fixed - Fixed keyboard navigation issues when using arrow keys in the application - Improved arrow key behavior in numeric input fields to navigate between divisions instead of moving the text cursor, making editing more intuitive ### Changed - Improved handling of zero-amplitude waveforms for better visual representation - Enhanced overall application performance and stability through internal improvements ## [1.3.5] - 2025-01-11 ### Added - Added user presets category tabs ### Changed - Improved calibration system ## [1.3.4] - 2025-01-6 ### Fixed - pitch mode ## [1.3.3] - 2024-12-23 ### Added - Fullscreen functionality ### Changed - Enhanced calibration system for improved pitch tracking accuracy ### Fixed - Resolved edge cases in pitch tracking at extreme frequencies ## [1.3.2] - 2024-12-18 ### Added - New slide creation function - New delete waveform button - New random amplitude button - New clear state button - Note preview when the pitch is exactly in the chromatic scale - New calibration system for precise pitch tracking - Improved visual appearance of the presets showing tabs with factory and user presets ### Fixed - Corrected minor bugs ## [1.3.1] - 2024-12-9 ### Added - Implemented undo and redo functionality - Added shadow version of the original waveform pre-smoothing ### Fixed - Corrected minor bugs in the user interface ### Removed - Removed the headings and footer for a cleaner page layout ## [1.3.0] - 2024-11-25 ### Added - Implemented new preset management system - Enhanced user interface elements - Enhanced canvas resolution for sharper waveform display - Remapped the amplitude slider to a more real voltage output ### Changed - Updated interface layout for improved usability - Streamlined preset selection and organization ## [1.2.3] - 2024-11-21 ### Fixed - Fixed redundant code for waveform handle dragging. - Fixed issue when dragging a handle could potentially overlap the next right handle. ### Changed - Increased contrast on the time divisions for better visibility of the starting point. ## [1.2.2] - 2024-11-19 ### Added - Implemented new preset system for quick-start waveform creation - Added collection of preloaded preset waveforms ## [1.2.1] - 2024-11-18 ### Fixed - Fixed a bug that didn't reset the original sound sources frequencies when coming from pitch modultation. - Fixed a bug when dragging handles didn't trigger the custom division button to change when audio was played. ## [1.2.0] - 2024-11-17 ### Added - Added PITCH option to sound processing select - Implemented 1V/octave pitch modulation for non-noise sound sources - Added automatic disabling of PITCH option when noise source is selected - Added automatic switching to LPF when selecting noise source while in PITCH mode - Added automatic random division generation when finishing handle drag, matching custom division button behavior - Added new square up waveform type - Introduced new command and shift key selections for multiple handle adjustments ### Fixed - Corrected character of the tri up and tri down waveforms - Fixed issue where selections are cleared when clicking inside the lfo-container - Fixed: all new waveforms are created with the default character value of 0 ### Changed - Modified frequency mapping to support 1V/octave scaling in pitch mode - Enhanced audio routing to support pitch modulation - Improved filter handling with anti-aliasing for pitch mode - Changed custom division button behavior to create divisions at waveform assignment joints instead of random divisions, excluding time points 0 and 1 - Updated handle drag completion to automatically trigger random divisions like the custom division button ## [1.1.3] - 2024-11-16 ### Added - Implemented advanced smoothing algorithm for waveform transitions - Added character parameter for waveform shaping - Introduced time offset control for phase adjustment ### Changed - Improved audio preview system with multiple sound sources - Enhanced waveform interpolation for smoother rendering - Optimized canvas rendering performance ## [1.1.2] - 2024-11-12 ### Added - Implemented click track for timing reference - Added visual timeline animation during playback - Introduced BPM synchronization for audio preview ### Fixed - Resolved issues with division selection in triplet mode - Fixed waveform rendering artifacts at high amplitudes - Corrected audio timing drift during extended playback ## [1.1.1] - 2024-11-08 ### Added - Added support for triplet mode in time divisions - Implemented hover state feedback for division handles - Added amplitude range indicators ### Changed - Improved grid rendering system - Enhanced waveform parameter controls - Updated visual feedback for selected divisions ### Fixed - Fixed vertical offset calculation - Resolved mouse interaction issues at canvas boundaries ## [1.1.0] - 2024-11-05 ### Added - Implemented multiple time division options (2,4,8,16,32) - Added real-time audio preview functionality - Introduced noise and square wave sound sources - Added visual selection feedback system ### Changed - Improved waveform state management - Enhanced canvas rendering efficiency - Updated UI controls for better usability ## [1.0.0] - 2024-11-01 ### Added - Initial release of LFO Designer - Basic waveform types: sine, square, triangle - Visual canvas-based editor - WAV file generation capability - Division-based editing system - Parameter controls for amplitude and offset - Added sawtooth up/down waveform types