Update to version 1.1.0 with comprehensive changelog and README updates

This commit is contained in:
Bastian Bührig
2025-07-11 14:44:29 +02:00
parent 80ab0f0922
commit 279038c566
3 changed files with 57 additions and 2 deletions

View File

@@ -1,5 +1,33 @@
# Changelog
## [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

View File

@@ -9,11 +9,12 @@ A CLI tool for processing WAV files to generate impulse responses (IR) from swee
- **Optional output IR length:** Specify output IR length in milliseconds with --length-ms
- **Optional low-cut and high-cut filtering:** Apply Butterworth filters to the recorded sweep before IR extraction (--lowcut, --highcut, --cut-slope)
- **Automatic fade-out:** Linear fade-out at the end of the IR to avoid clicks (default 5 ms, configurable with --fade-ms)
- **IR Visualization:** Generate frequency response and waveform plots with `--plot-ir`
- **96kHz 24-bit WAV file support** for high-quality audio processing
- **Multiple output formats** with configurable sample rates and bit depths
- **Minimum Phase Transform (MPT)** option for reduced latency IRs
- **Automatic silence trimming** and normalization
- **Modular design** with separate packages for WAV I/O and convolution
- **Modular design** with separate packages for WAV I/O, convolution, and visualization
- **Robust error handling** and validation
## Installation
@@ -87,6 +88,24 @@ You can control the filter steepness (slope) with `--cut-slope` (in dB/octave, d
This applies a 40 Hz low-cut and 18 kHz high-cut, both with a 24 dB/octave slope (steeper than the default 12).
### IR Visualization
Generate frequency response and waveform plots of your IRs:
```sh
./valhallir-deconvolver --sweep sweep.wav --recorded recorded.wav --output ir.wav --plot-ir
```
This creates:
- `ir.wav` - The impulse response file
- `ir.png` - A professional plot showing frequency response and waveform
The plot includes:
- **Frequency Response:** dB vs Hz with log frequency scale (20Hz-20kHz)
- **Waveform:** Time-domain view of the first 10ms of the IR
- **Valhallir Branding:** Logo and filename information
- **Professional Layout:** Clean, publication-ready visualization
### Different Output Formats
Generate IRs in different sample rates and bit depths:
@@ -150,6 +169,7 @@ Generate IRs in different sample rates and bit depths:
| `--lowcut` | Low-cut filter (high-pass) cutoff frequency in Hz (recorded sweep) | - | No |
| `--highcut` | High-cut filter (low-pass) cutoff frequency in Hz (recorded sweep) | - | No |
| `--cut-slope` | Filter slope in dB/octave (12, 24, 36, ...; default 12) | 12 | No |
| `--plot-ir` | Generate frequency response and waveform plot | false | No |
## File Requirements
@@ -198,6 +218,13 @@ Generate IRs in different sample rates and bit depths:
- **Maintains frequency response** while optimizing phase characteristics
- **Suitable for real-time applications** like guitar amp modeling
### IR Visualization
- **Frequency Response Plot:** Shows magnitude response in dB vs Hz with log frequency scale
- **Waveform Plot:** Displays the first 10ms of the IR in the time domain
- **Professional Layout:** Clean, publication-ready plots with Valhallir branding
- **Automatic File Naming:** Plots are saved with the same base name as the IR file
- **High-Quality Output:** PNG format suitable for documentation and sharing
### Output Format Options
- **Sample Rates:** 44.1kHz (CD), 48kHz (studio), 88.2kHz, 96kHz (high-res)
- **Bit Depths:** 16-bit (CD), 24-bit (studio), 32-bit (high-res)

View File

@@ -16,7 +16,7 @@ func main() {
app := &cli.App{
Name: "valhallir-deconvolver",
Usage: "Deconvolve sweep and recorded WAV files to create impulse responses",
Version: "v1.0.0",
Version: "v1.1.0",
Flags: []cli.Flag{
&cli.StringFlag{
Name: "sweep",