Feedback wanted: "DIRT" deconvolver tool / impulse response extractor

DIRT - Delt’s Impulse Response Tool. I started writing a simple command line deconvolver / sinewave sweep generator a few days ago. It’s actually pretty usable as of now, and i’m getting really good results with it.

For now, it can:

  • generate dry sweeps to either a .wav file or to a JACK input port
  • deconvolve recorded/wet sweeps against the dry ones
  • by default it adds and uses alignment markers at the beginning of generated .wav files but this can be disabled.
  • JACK “round-trip mode”: play back an existing or on-the-fly sweep via JACK while recording the result & deconvolve to a usable IR without any temporary .wav files.
  • trim silence below a threshold (default 80dB) from beginning and end of resulting IR

Simple usage examples:

# generate a dry sweep with 1 second preroll and 0.1 second alignment marker:
dirt --makesweep 30 --preroll 1 --marker 0.1 -o dry_sweep.wav

# later, after recording through your cab/FX:
dirt dry_sweep.wav wet_recorded.wav my_cab_ir.wav

# send sweep to Carla:audio-in1, record from Carla:audio-out1, write IR:
dirt --sweep-sr 48000 -d Carla:audio-in1 -w Carla:audio-out1 -o my_cab_ir.wav

Feedback / criticism / suggestions would be much appreciated.

1 Like

Hey, that’s cool. I’ve been daydreaming for a while about a Renoise tool that can freeze reverb plugins as Convolver patches. This looks like a pretty easy way of implementing such a thing.

Minor critique: Perhaps the realtime features should be optional, so non-Linux users don’t have to pull in a JACK dependency (as JACK is rarely used outside of Linux). I had no problem building though. Hopefully I can get in some good testing later!

Cool, I used to do the deconvolving using Praat, but indeed a native tool would be nice to have.

Done. Just use cmake -DDONT_USE_JACK=on /wherever/is/source/dirt :grin: Also made debug info disabled by default.

1 Like