Home News Download Usage Command line utilities Feedback Troubleshooting Links


Web This site

Release history

Version 4.4: 19 July 2006

  • Added convolverPipe, which filters the standard input to the standard output (as opposed to convolverCMD, which filters files)
  • convolverWMP registration

Version 4.3: 6 July 2006

  • Use FFTW 3.1.2 (which is faster and should run on more non-Pentium 4 platforms)
  • Disable "Lost filter" convolverVST error message, to give the user a chance to select a filter

Version 4.2: 23 June 2006

  • convolverVST is now multi-channel

Version 4.1: 18 June 2006

  • Added GUI for convolverVST.  Thanks to Vera Kinter for some of the controls elements.
  • Fixed convolverCMD when number of input and output channels is different.  convolverCMD now outputs in float format.  (Thanks to Peter Fischer.)
  • Released Intel C++ 9.1 (which may be faster on P4 machines) and VC++ 2005 versions.

Version 4.0: 31 May 2006

  • added mono convolverVST
  • put up property page when no filter loaded, so that the user has an opportunity to load filter first time through
  • internal interface tidying

Version 3.10: 1 May 2006

  • relaxed DirectShow / DMO filter registration for compatibility with some hosts
  • set Measure as the default tuning rigour
  • updated libsndfile to 1.0.16

Version 3.9: 28 April 2006

  • Save wisdom.fftw to host's home directory

Version 3.8: 11 April 2006

  • Estimated gain calculation
  • ConvolverFilter initialization

Version 3.7: 7 April 2006

  • Peak gain calculation
  • More robust updating of settings during playback
  • Output initial half partition of silence (latency) explicitly for better interoperability with some DirectShow hosts.
  • 3% faster DFT (FFTW 3.1.1) Enable AMD K7 optimizations.  Performance improvements for Intel EMT64 and large-size transforms with SIMD. SSE/SSE2 code disables itself on older 386 and 486 CPUs

Version 3.6: 16 March 2006

  • Small optimizations (5%)
  • libsndfile 1.0.15 (RIFX support)
  • ConvolverWrapper / DScaler5 sync
  • Sample reference time calculation

Version 3.5: 13 March 2006

  • More robust approach to setting changes while convolver is running
  • Sync ConvolverWrapper variable buffer size changes
  • Internal changes (eg, use boost numeric casting functions, FastArray tweaks)

Version 3.4: 8 March 2006

  • ConvolverWrapper pin negotiation and buffer length fixes
  • Dropdown list fixes
  • Dithering and noise shaping fixes
  • Moved to mingw-compiled libsndfile 1.0.14
  • wisdom.fftw deposited only in startup directory

Version 3.3: 5 March 2006

  • Added more noise shaping types
  • Corrected scaling of 32-bit PCM samples
  • Some ergonomics tweaks to application of ConvolverFilter settings

Version 3.2: 1 March 2006

  • Added dithering and noise shaping capability
  • Fixed initialization when no filter set
  • More optimization

Version 3.1: 14 February 2006

  • Added ability to delay input channels (eg, for cross-talk cancellation applications). This necessitates a change for existing config files.
  • ConvolverFilter issues corrected
  • Fix for perftest when running 0 partitions
  • Greater safety when settings changed

Version 3.0: 9 February 2006

  • Added ability to delay output channels. This necessitates a change for existing config files.
  • Removed initial noise after calculating optimum attenuation in some circumstances.
  • ConvolverCMD fixes.

Version 2.25: 5 February 2006

  • More small optimizations
  • Removed the requirement that config files must end with a final blank line.
  • Fixed bug when new filter incompatible with current playback setup selected.

Version 2.24: 1 February 2006

  • More small optimizations
  • Time-limited tuning corrected
  • Corrected bug introduced in 2.23 for multi-partition convolution

Version 2.23: 29 January 2006

  • Updated libsndfile and FFTW

Version 2.22a: 21 January 2006

  • 2.22 compiled for Pentium III and below CPUs.  Slightly faster even on Pentium M and 4.

Version 2.22: 21 January 2006

  • Removed residual SIMD code that led to "Unexpected exception" notifications on non-Pentium 4 cpus. Thanks to Simon George for fix
  • Accept raw 64-bit float format filter files (.dbl).  (Internal processing is still 32-bit.)

Version 2.21: 17 January 2006

  • Clarification of some diagnostics
  • Planning rigour limited to 1 minute per path
  • Planning rigour resets to Measure, to avoid lengthy startup times

Version 2.20: 15 January 2006

  • Speed improvements, particularly for shorter filters
  • New planning rigour option: limit tuning to 1 minute per path [actually it is 2 minutes per path: this will be fixed in a future release]
  • Fixed ConvolverFilter when more than one partition specified (bug introduced in 2.17)
  • ConvolverWrapper media format negotiation and properties page fixes (bug introduced in 2.17)

Version 2.19: 14 January 2006

  • Further optimizations
  • Dropped Pentium 4 requirement: should run on all x86 cpus

Version 2.18: 6 January 2006

  • Bug fix for WAV file filter paths (you will need to recalculate attenuation)
  • Speed improvements

Version 2.17: 30 December 2005

  • Allow WAV (or other libsndfile-compatible) files to be interpreted as filter paths (without the need for a config text file). The source channels are convolved with the corresponding channels of the WAV file (so not in matrix fashion).
  • Allow a config file to comprise a list of filter path filenames, with automatic selection of the first compatible filter path (by number of input and output channels, sample rate)
  • Speed improvements
  • VC++ 2005 test build

Version 2.16: 11 December 2005

  • Internal optimizations. Intel C++ 9 compiler build.

Version 2.15: 9 December 2005

  • Allow multi-channel filter files to be used (specifying which channel is to be used for a filter path through the config file)
  • Allow tuning rigour to be set through the properties page
  • Allow negative scaling factors (which allow phase shifting)
  • Internal refactoring and cleaning up for future optimization.

Version 2.14: 26 November 2005

  • Corrected Convolver plug-in format checking bug introduced in 2.12

Version 2.13: 26 November 2005

  • Automatic zero padding of filter lengths for optimal FFTW performance
  • Distribution package registers ConvolverFilter
  • Added ConvolverFilter.filterdata and ConvolverWrapperDMO.filterdata files for Zoom Player Pro

Version 2.12: 24 November 2005

  • First version of CTransformFilter-based ConvolverFilter implemented to provide an alternative, but functionally equivalent, DirectShow filter to ConvolverWrapper.

Version 2.11: 17 November 2005

  • Crashing bugs in calculation of optimum attenuation and ConvolverWrapper access to property page fixed

Version 2.10: 15 November 2005

  • Optimizations (5% improvement)

Version 2.9: 15 November 2005

  • Further internal tweaks for IMediaObject compatibility (according to DMOTest), DMOUnregister, etc
  • Exclude VERSION.dll, comdlg32.dll and msdmo.dll from distribution; they should be on the target system already.

Version 2.8: 13 November 2005

  • Wider range of playback formats supported (in order of preference: 32-bit IEEE float , 32, 24, 16 and 8-bit PCM, 24, 20 and 16-bit PCM in 32-bit containers, 20 and 16-bit PCM in 24-bit containers, and 64-bit IEEE float)
  • Require specification of channel to speaker mapping in config file
  • Show convolver icon on status bar
  • Require sample rate to be specified in config file and use it to read raw 32-bit .PCM filter files.

Version 2.7: 8 November 2005

  • Handles a different number of input and output channels (but only 32, 16 and 8-bit PCM and 32-bit IEEE Float -- the full set of usable formats will be available in the next release)

Version 2.6: 7 November 2005

  • Try to handle different number of input and output channels (needs more testing)
  • TODO: reload plug-in if number of channels changed by new config file.

Version 2.5: 4 November 2005

  • Number of input and output channels need to be specified explicitly at the start of the config file
  • Better diagnostics (not fully tested)
  • Recompiled FFTW

Version 2.4: 2 November 2005

  • Number of input and output channels deduced from config file
  • Bugs corrected (eg, when filters changed)
  • Display version information
  • Small optimizations
  • Added ZoomPlayer Pro DVDAutoGraph configuration file for Convolver Wrapper to distribution

Version 2.3: 25 October 2005

  • Use FFTW 3.0.1 instead of the Ooura DFT routines
  • More testing and small optimizations
  • Refactoring of CConvolution for speed and to make it easier to control from plug-in

Version 2.2: 8 October 2005

  • Config files accept file names with spaces in them
  • code tidying

Version 2.1: 1 October 2005

  • First prototype of channel mixing version

Version 1.26: 15 September 2005

  • ConvolverWrapper merit set to MERIT_DO_NOT_USE+1
  • Memory allocation bug introduced in 1.25 fixed
  • 1.26i is an Intel C++ 9 build, which may be faster on some machines.

Version 1.25: 12 September 2005

  • Uses the (15%) faster version of the Ooura FFT routines
  • ConvolverCMD scales by optimum attenuation

Version 1.24: 10 September 2005

  • Includes a DirectShow filter wrapper (ConvolverWrapper) so that convolver can be run as a DirectShow filter.
  • Compiled with VC++

Version 1.23: 3 September 2005

  • Integrates the libsndfile library to read a wider variety of audio formats and remove dependencies on Microsoft example code.
  • Fix: 1.22 broke partitioned convolution.
  • More Intel C++ optimizations.

Version 1.22: 15 August 2005

  • More optimizations. Compiled with Intel C++ 9.0 vectorization.
  • Fixes: initialization of attenuation, upon first installation

Version 1.21: 12 August 2005

  • Optimizations
  • Code tidying

Version 1.20: 10 August 2005

  • Corrected calculation of optimum attenuation
  • Some optimizations
  • Added makeIR and perftest utilities. (See above for usage).

Version 1.19: 7 August 2005

  • Offers the option of using partitioned convolution, with reduced lag and possible performance improvement

Version 1.18: 16 July 2005

  • Denormalize output. Optimum attenuation should now be more accurate for PCM
  • Use WAVEFORMATEXTENSIBLE, rather than WAVEFORMATEX to store filter format, for better multi-channel support

Version 1.17: 14 July 2005

  • Source is normalized to -1..1, so that attenuation does not have to be adjusted for different sources
  • Now no need to "apply" after selecting a filter.
  • Memcpy optimization

Version 1.16: 7 July 2005

  • Added a command line utility to convolve a WAV file with an Impluse Response file (filter). Mainly for testing.

Version 1.15: 6 July 2005

  • Registers itself as a DMO, as well as a WMP DSP plug-in

Version 1.14: 4 July 2005

  • Now supports filters in 8, 16, 20, 24 or 32-bit PCM WAV file format
  • Attenuation limits relaxed to 1000dB.
  • Added a (mainly unused) convolution routine for use when the sample buffer size of a multiple of the filter size

Version 1.13: 3 July 2005

  • Reorganised source tree. Now also generates a DirectX Media Object (DMO) for use as a DirectShow filter. The DMO registration process is still incomplete.

Version 1.11: 2 July 2005

  • Optimal attenuation calculated
  • Further simplification of Cconvolution class parameters
  • Float sources bug

Version 1.10: 26 June 2005

  • Report the format of the filter file on the Properties dialogue.
  • Handle Extensible PCM and IEEE float Wave file format. The Extensible format specifies both the bits per sample, the container size, (eg, 8, 16, 24, or 32 bits) and the valid bits per sample, the sample size,(eg, 20 bits). In the original format, it is not clear whether bits per sample means the container size or the sample size. The Extensible format also allows the mapping of channels to spatial locations. See Multiple Channel Audio Data and WAVE Files.
  • Allow filters with a greater number of channels than the source to be applied (using only the initial channels)
  • Added cleaner internal debugging class from Applied C++.
  • Removed redundant parameters to convolution class

Version 1.9: 20 June 20055

  • Regression of SampleBuffer class which probably needs to be rethought in the C++ idiom, but vectors seem to run very slowly in Debug mode.

Version 1.8: 19 June 2005

  • Code tidying
  • Attenuation sign correction

Version 1.7: 18 June 2005

  • Attenuation of source now possible.
  • NB. The Debug build contains a good deal of code that is suitable for testing only with perfect dirac delta filters (which should produce the same output as input, delayed by the length of the filter). It will generate a lot of output in the debug window otherwise, when run from Visual Studio 2003.

Version 1.6: 17 June 2005

  • (untested) support for 20, 24 and 32-bit PCM files.
  • optimization settings on release build

Version 1.5: 16 June 2005

  • Guts rewritten to use C++ classes: polymorphism (so that different FFT base types can be used (float is included); inheritance (so that it is easier to handle new playback stream types (classes for 8 and 16-bit PCM, and 32-bit IEEE float are included. 20, 24 and 32-bit are to do)). Now need to replace the stdio.h routines such as sprintf with the new C++ string processing methods and optimize (eg, the buffer manipulation routines.)

Version 1.4: 11 June 2005

  • More logic bugs removed
  • Adds an untested deployment (setup) project
  • Adds a utility to compare WAV files. This can be used to compare the Trace.wav with what is being played back; if a perfect dirac delta filter is used, the output should be the same as the input (other than for the initial samples).

Version 1.3: 9 June 2005

  • Corrects some basic bugs in the implementation of the DFT convolution algorithm
  • Adds a utility for generating perfect dirac delta functions for use as test filters
  • The debug version outputs what is being played back to C:\temp\Trace.wav and AttenuationTrace.wav to make it easier to test whether the algorithm is correct. It also produces traces on the Visual Studio debug window.

Version 1.2: 6 June 2005

This version actually does some convolving. It is pre-alpha quality and totally unoptimized. It uses the overlap-save algorithm set out in Figure 6 of Computational Improvements to Linear Convolution with Multirate Filtering Methods by Jason R. VandeKieft. (and elsewhere). Uses Takuya Ooura's General Purpose FFT (Fast Fourier/Cosine/Sine Transform) Package.

Version 15 May 2005

The starting point for the convolver is Microsoft's Echo Sample, which is an adaptation of the default audio DSP plug-in generated by the Windows Media Player Plug-in Wizard.


Home ] [ News ] Download ] Usage ] Command line utilities ] Feedback ] Troubleshooting ] Links ]

Send mail to with questions or comments Convolver or about this web site.
Copyright 2006-8 Convolver
Last modified: 16-Jan-2008 20:24 -0000 Logo