Windows Integration (winres): Integrated native Windows resource compilation via winres. The executable is now built with a built-in high-resolution icon (icon.ico).
System Tray: Developed an ICO file parser in setup.rs to extract the highest resolution icons directly from binary resources for clean and crisp icon rendering in the system tray.
Spectrum Analyzer (FFT): Developed an asynchronous high-resolution spectrum analyzer based on the Fast Fourier Transform (FFT) with a Hann window. Spectral rendering and animation are executed via a custom WGSL shader in real time.
Crossfade Stability: Fixed a bug in cubeb_host.rs: the track end flag (track_eof) is now correctly split into a logical end of decoding (decoder_eof) and physical emptying of the ring buffer. This prevents premature track switching during active crossfading.
UI Options: Added an informational "About" tab to the settings menu.
Layout Refinements: Optimized the size of the A-B looping buttons to 20x20 pixels, and added text labels for all major DSP chain sliders.
Version 0.9.0(21.05.2026)
3D HRTF Virtualizer: Developed the Hrtf3DVirtualizer module to simulate a three-dimensional acoustic scene during headphone listening: Mid/Side decomposition, a peak filter at 3 kHz to simulate ear canal resonance, a notch filter at 6.5 kHz to bring vocals forward, early reflections emulation (0.9 ms, -15.5 dB) to remove the "in-head" effect, an 8 kHz notch filter on the Side channel, ITD (Interaural Time Delay) simulation (0.28 ms), and head acoustic shadow modeling.
DynamicsPre (Input Dynamics): Implemented an infrasound cut-off filter (20 Hz Linkwitz-Riley 4th-order HPF via cascaded biquads) to unload amplifiers, an ultrasound cut-off (22 kHz LPF), and an automatic gain control (AGC) block with a slow RMS detector (target level -16 dBFS).
DynamicsPost (Output Limiter): Developed a look-ahead peak limiter with a 2 ms delay buffer (0.5 ms attack, 50 ms release) to prevent digital clipping on output.
A-B Looping: Implemented an A-B segment looping feature with the ability to visually lock start and end points on an interactive waveform.
Volume Curves: Added logarithmic and hybrid hardware volume scaling curves.
Version 0.8.0(20.05.2026)
SoundUP RT — Bass Resonator: Isolates low frequencies below 100 Hz using a Linkwitz-Riley 4th-order filter and generates subharmonics via ADAA-tanh non-linear saturation to add weight to the bass.
SoundUP RT — Haas Decorrelator: Expands the stereo base by delaying high-frequency components (above 800 Hz) in one of the channels by 1.2 ms.
SoundUP RT — ATR Module: Identifies sharp attacks and transients in the Mid/High spectrum (around 6.5 kHz) using fast and slow envelope detectors, dynamically accentuating their onset phase.
SoundUP RT — HF Exciter: Extracts harmonics from the 4.5 kHz band, generates even and odd overtones above 11 kHz via polynomial synthesis, and blends in modulated pink noise to recreate an airy texture (Butterworth 16–36 kHz filter).
SoundUP RT — Tape Saturator: Emulates soft magnetic tape saturation on the Mid channel with drive control.
SoundUP RT Interface: Added a "SoundUP RT" block to the settings menu containing intensity sliders for all five modules.
Control Panel: Added a button to the player's main control bar to toggle the real-time spectrum analyzer.
Version 0.7.0(16.05.2026)
Time Stretch & Pitch Shift: Developed a time-stretch and pitch-shift engine (TimeStretchEngine) with WSOLA, Phase Vocoder, and Resampling (Pitch Linked) algorithms.
Schroeder Reverb: Implemented a spatial SchroederReverb using a feedback network of comb and all-pass Schroeder filters with virtual room size adjustments.
Crossfeed: Added a Crossfeed block (blending channels with a 320 μs delay to simulate loudspeakers when listening through headphones).
Fine Signal Correction: Created a signal correction block (SignalCorrector) supporting time alignment offsets in milliseconds, per-channel phase inversion, and mono downmixing.
Bezier Curve Editor: Integrated support for an interactive Bezier curve editor for Fade-In and Fade-Out processes. Users can visually adjust the volume fade shape on a grid, and the logarithmic interpolator calculates mixing volume on the fly.
Smart Shuffle: Implemented an advanced shuffle algorithm ("Shuffle + Randomness Approximation") that reshuffles the playlist and prevents repeats at cycle boundaries, pinning the current track at index zero.
Quick DSP Settings: Added a "Quick DSP Settings" panel call to the main control bar with physical sliders for speed, pitch, tempo, reverb, crossfeed, and balance.
Version 0.6.0(13.05.2026)
Cubeb Audio Backend: Completely replaced the low-level CPAL audio engine with the Cubeb library for more stable output under Windows (supporting WASAPI Shared, WASAPI Exclusive, and ASIO drivers).
Audio Device Selection: Implemented a function to scan and select physical hardware audio output devices (audio_device).
Seamless Crossfade: Completely rewrote the decoding stream thread (decoder.rs). Added support for seamless track crossfading. The audio engine can now decode and mix multiple audio streams concurrently within a single DecStream structure with its own fade step.
Rounding Customization: Added a slider to customize UI corner rounding (the ui_rounding parameter in settings).
Light Theme: Developed a new light theme called Light Pearl.
Version 0.5.0(11.05.2026)
Resampler: Integrated a resampling algorithm (StreamResampler) supporting linear interpolation, cubic Hermite spline, and windowed 16-point Sinc filtering with Lanczos windowing for real-time smoothing.
Ditherer: Developed a dithering block (Ditherer) featuring Triangular (TPDF), Error-Shaped, and NS5 (5th-order Noise Shaping) algorithms for 16-bit and 24-bit audio output.
DSD Modulation: Implemented a 5th-order Sigma-Delta Modulator (SDM) simulator to convert PCM streams to DSD.
32-bit Float Architecture: Fully migrated the entire signal processing chain to a high-precision 32-bit Float stereo architecture.
Auto-Negotiation: Implemented automatic sample rate and hardware buffer size negotiation with the audio interface.
Settings UI: Developed a new settings screen featuring an hierarchical sidebar category structure and an interactive technical "Documentation Box" displaying detailed descriptions for each selected parameter.
Stream Monitor: Integrated a stream monitor (Info Monitor) displaying the active API, sample rate, buffer latency, dithering mode, and active limiter on the fly.
Version 0.4.0(10.05.2026)
Window Snapping (Aero Snap): Developed a snapping mechanism where dragging the player window near the screen borders automatically snaps it to the desktop edges.
Recursive Playlist Migration: Added a feature to recursively migrate playlists between categories (ChangePlaylistCategory). When a parent playlist's category is modified, all nested child playlists are automatically updated in the database.
Duplicate Control: Improved validation checks during drag-and-drop file import to prevent duplicate path entries in the database.
Playback Bug Fixes: Fixed an interface bug where pressing the Play/Pause button under specific conditions could be falsely interpreted as a complete playback stop (StopPlayback).
Version 0.3.0(07.05.2026)
Vertical Menu: Reorganized the database editor with a vertical menu layout, shifting tabs to a sidebar. Tab text is rendered vertically thanks to a new 3u mode in the shader, which maps text textures onto rotated polygons.
Cover Art Rendering: Integrated the Lanczos3 image scaling algorithm (image_proc.rs), enabling support for playlist cover art (stored as PNG/JPG/WebP directly in the database's BLOB field).
Cover Art Preview: Added cover art rendering to the player interface, along with a popup preview when hovering over a playlist in the DB editor.
Drag-and-Drop: Implemented file importing directly from the system explorer by dragging and dropping them into the player window. The app asynchronously reads metadata, registers entries, and links files to the active playlist.
Import Summary: Added a popup dialog displaying an import summary (DnD Summary) containing the count of successfully imported and skipped files.
Playlist Filtering: Added a dropdown menu in the DB Editor to filter playlists by category.
Missing Track Filtering: Added a quick filter to display tracks flagged as "Missing from disk".
Version 0.2.0(05.05.2026)
Metadata Expansion: Added new fields to the tracks database table: release year (release_date), artist (artist), and original tag title (tag_title).
Automatic Tag Parsing: Implemented background metadata and tag parsing (artist, title, year) when adding audio files via Symphonia.
Tag Editing: Added the ability to view and edit tags and supplementary track information directly in the player via a track properties dropdown.
Localization System: Implemented a localization system. Created external translation resource files for Russian (ru-RU.loc) and English (en-US.loc).
Session Saving: The player now automatically saves to settings.json and restores the last active playlist, track, and playback position upon launching.
Database Editor: Reorganized the database editor into three tabs ("Categories", "Playlists", "Tracks") instead of a cluttered single screen.
File Validation: Developed a tool to scan and flag missing files on disk with an [Absent] tag in the database.
File Structure View: Added a toggle to switch between flat list track viewing and a folder tree structure.
Sorting: Added filters to sort tracks alphabetically and by release date.
Path Reassignment: Added the ability to modify the local file path for track records in the database.
Version 0.1.0(03.05.2026)
Core Architecture & Data Storage: Developed the core_db library for SQLite database management (using the bundled rusqlite driver) to handle music.db.
Relational Database Schema: Structured the database schema to include: categories, playlists (tree-like parent-child relationships, cascade deletion, and JSON configuration), tracks (metadata, relative paths, duration), and playlist_tracks (many-to-many track-to-playlist assignment with custom track_order).
Recursive Queries: Implemented a recursive CTE query to automatically aggregate all tracks from a selected playlist and all of its nested child playlists.
Audio Output: Coded a cross-platform audio output interface on top of CPAL utilizing a lock-free, single-producer single-consumer (SPSC) ring buffer (ringbuf).
Audio Decoding: Integrated the symphonia decoder for popular formats: MP3, FLAC, WAV, OGG, OPUS, and M4A.
Multi-threaded Audio Pipeline: Built a multi-threaded signal pipeline: the primary stream is decoded in a background thread, while ambient background loops are mixed in a separate dedicated thread.
Equalizer: Implemented a 12-band parametric equalizer utilizing a cascade of 2nd-order peak biquad filters (frequencies from 16 Hz to 16 kHz).
Soundgoodizer: Integrated the Soundgoodizer dynamics processor: a multi-band crossover based on 4th-order Linkwitz-Riley filters (Low/Mid/High split at 250 Hz and 4000 Hz) with independent compressors and non-linear saturation.
Soft Clipping: Added a soft clipping algorithm via hyperbolic tangent (tanh) on the mixer output.
Hardware Rendering: Designed an hardware-accelerated user interface using WGPU (v25) and the winit window manager. Text is rendered via the glyphon library.
UI Effects: Created custom WGSL shaders supporting rounded corners and a real-time frosted glass effect (Glassmorphism) using interleaved gradient noise and multi-pass backbuffer sampling.
Custom Frameless Window: Built a custom frameless window supporting drag-to-move, system menu actions, minimize, and close controls.
System Integration: Added support for system tray icon integrations (tray-icon) and context menus (muda).
Application Screens: Developed two primary screens: the "Player" screen (playback, tracklist with interactive waveform seeking) and the "DB Editor" screen (database management tools).