Files
valhallir-deconvolver/CHANGELOG.md

86 lines
5.8 KiB
Markdown

# 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