Files
valhallir-deconvolver/CHANGELOG.md

5.8 KiB

Changelog

[v1.2.1] - 2024-12-20

Added

  • High-Quality Filter Implementation: Direct Form II Transposed filter structure for improved numerical stability
  • Filter Warm-Up: Proper filter initialization to avoid transients, especially important for MPT transforms
  • Anti-Aliasing in Resampling: Automatic anti-aliasing filter when downsampling to prevent aliasing artifacts

Fixed

  • MPT Filter Application: MPT IRs now correctly use the filtered recorded sweep (same as RAW IRs)
  • Filter Response at Lower Sample Rates: Fixed filter response accuracy when resampling to 48kHz and other lower sample rates
  • Resampling Artifacts: Added proper anti-aliasing to prevent frequency aliasing when downsampling

Changed

  • Filter Quality: Improved filter implementation with high-precision coefficient calculation and proper state management
  • Filter Artifacts: Reduced artifacts in steep filters (48+ dB/octave) through better numerical stability

Technical Improvements

  • Direct Form II Transposed: More numerically stable filter structure for cascaded filters
  • Filter Warm-Up: Pre-initialization of filter state to eliminate transients
  • Anti-Aliasing: Steep low-pass filter (48 dB/octave) applied before downsampling to prevent aliasing

[v1.2.0] - 2024-12-20

Added

  • Cabpack Generation: Complete cabpack creation with IRs in 9 different formats organized in structured directory trees
  • Default Mode: Run without command-line options for automatic cabpack generation from current directory
  • Executable Directory Detection: Automatic detection of binary location for double-click support in Finder/Explorer
  • Automatic File Organization: Support for selection.txt and ambient.txt files to automatically organize IRs
  • Mixes Folder Support: Automatic conversion of ready-to-use IRs from mixes folder to all cabpack formats
  • IR Filename in Plots: IR filenames now displayed in plot titles for better identification
  • Cabpack Defaults: Automatic defaults for cabpack mode (fade-ms: 10, lowcut: 40Hz)
  • Plots for Mixes: Automatic plot generation for mix IRs in plots/mixes folder
  • Logo in Plots: Valhallir logo automatically displayed in upper-left corner of all generated plots (embedded in binary)

Changed

  • Optional Command-Line Flags: All main flags (--sweep, --recorded, --output) are now optional with intelligent defaults
  • Default Sweep File: Changed default sweep filename to sweep.wav (simpler naming)
  • Output Directory: IRs folder created one directory level up from recorded directory by default
  • Directory Structure: Added mixes subfolder to each format folder (only created if mixes folder exists)
  • Conditional Folder Creation: selection, ambient mics, and mixes folders are only created if the corresponding files/folders exist in the recorded directory

Technical Improvements

  • Smart Path Detection: Uses executable directory when double-clicked, current directory when run from command line
  • Enhanced Logging: Better progress information and path logging for debugging
  • Improved Error Handling: Graceful handling of missing optional files (selection.txt, ambient.txt, mixes folder)

[v1.1.0] - 2024-12-19

Added

  • IR Visualization: New --plot-ir flag to generate frequency response and waveform plots
  • Professional Plotting: Frequency response (dB vs Hz) and time-aligned waveform visualization
  • Valhallir Branding: Logo and filename information in generated plots
  • Modular Architecture: Separated plotting logic into dedicated pkg/plot package
  • Enhanced File Management: Plots are saved in the same directory as IR files with matching names
  • Improved Documentation: Updated README with plotting features and usage examples
  • Linear Fade-Out: New --fade-ms option to apply linear fade-out to IRs (default 5ms)
  • High/Low-Cut Filtering: New --highcut and --lowcut options for frequency filtering
  • Configurable Filter Slopes: New --cut-slope option for filter steepness (12, 24, 36, 48 dB/oct)
  • Audio Resampling: Automatic resampling between different sample rates (44.1, 48, 88.2, 96 kHz)
  • Enhanced Audio Processing: Cascade filtering for steeper slopes and better frequency response
  • Assets Integration: Added Valhallir logo for professional plot branding

Changed

  • Package Structure: Refactored codebase with separate packages for audio processing and visualization
  • Plot File Naming: Plots now use the same base name as IR files (e.g., ir.png instead of ir_plot.png)
  • Repository Organization: Updated .gitignore to exclude generated files while preserving essential test files
  • Enhanced Error Handling: Improved validation and error messages for all new features
  • Better Logging: More detailed progress information during processing

Technical Improvements

  • Clean Architecture: Separated concerns between audio processing (pkg/convolve) and visualization (pkg/plot)
  • Better Maintainability: Modular design makes it easier to extend and modify features
  • Enhanced Audio Quality: Improved filtering algorithms with cascade implementation
  • Professional Output: Better IR quality with fade-out and advanced filtering options

[v1.0.0] - 2024-06-09

Added

  • Initial public release: Valhallir Deconvolver
  • Fast FFT-based deconvolution for IR extraction
  • Automatic input conversion: accepts any WAV sample rate, bit depth, or channel count
  • Output IR in user-selectable sample rate and bit depth (WAV only)
  • Optional minimum phase transform (MPT) output
  • Silence trimming and normalization
  • Optional output IR length control (--length-ms)
  • Mono output (stereo/multichannel inputs are averaged)
  • CLI with urfave/cli, version flag, and detailed logging
  • Full documentation and usage examples in README