How to extract/reconstruct Profiler cabinet IRs

  • Caveat: There is probably more to the cabinet implementation of the Profiler than just a simple frequency response but I've found the results to be quite good.


    I highly recommend using digital in/out via S/PDIF for the procedure described below as the signal we are going to process is hard to cope with for D/A converters.

    What we are going to do

    Mathematical view: Convolution of the Dirac delta function with the hidden FIR filter function representing the cabinet frequency response. Result: The hidden FIR filter function (i.e. the cab IR).

    Technical view: Sampling of the hidden filter taps of the cabinet section by processing a single short pulse with full amplitude. Result: The ordered list of hidden filter taps (i.e. the cab IR).

    Practical view: Just a reamping of a special DI signal. Result: A short sound file which essentially is the impulse response of the cab section.

    Prepare your Profiler

    1. Switch on the device and load the rig in question.
    2. INPUT, Page 1, Noise Gate: 0.0
      This is extremely important as you'd get weird results otherwise. (I've no clue of the design of advanced noise gates but the negative feedback introduced by the Profiler implementation really surprised me. Check for yourself.)
    3. INPUT, Page 1, Input Source: SPDIF Input Reamp
    4. INPUT, Page 2, Reamp Sens: 0.0 dB or slightly below
    5. OUTPUT, Page 1, SPDIF Output: Master Stereo
    6. OUTPUT, Page 4, Main Output EQ: You may want to set all parameters to <0.0> (see Pure Cabinet below)
    7. OUTPUT, Page 5, Output Filter: You may want to set both parameters to off (see Pure Cabinet below)
    8. OUTPUT, Page 6, SPDIF Volume: [0.0dB]
    9. OUTPUT, Page 6, SPDIF Clock: 44.1 kHz
    10. OUTPUT, Page 6, Soft Button 3 (Pure Cabinet):
      Depending on the intended use of the final cab IR you may want to completely turn off Pure Cabinet (by unticking the box). If you plan to later use it with the Profiler itself definitely disable Pure Cabinet.
    11. OUTPUT, Page 6, Soft Button 4 (Space->HeadphOnly): enabled
    12. Turn off all slots (A to REVERB) except for the CABINET slot.
    13. You may enable the EQ section if it is configured to act post stack (don't know if enabling the EQ slot without turning on the AMPLIFIER is possible with the Stage). Recommendation: Start with just the cab section for the first IR shots.
    14. You may load and engage your beloved post stack EQs. Recommendation: Start with just the cab section for the first IR shots.
    15. Warning: If you go for additional EQs that increase gain make sure to decrease the volume of the EQs and/or lower the Reamp Sens in the input section accordingly so that the output won't clip. In addition, you may have to rescale the final IR. Again: Start with just the cab section for the first IR shots.

    Craft the magical sampling DI signal (the haunting Dirac delta melody)

    Hint: Or just use the attached WAV file irSampling.wav.zip.

    1. Launch your favourite audio editor and start with a blank mono audio file.
    2. Create a few seconds of true silence (-inf dBFS).
    3. In the middle of it alter one sample to full (positive) amplitude (0 dBFS).
    4. Export the result as uncompressed audio with high dynamic range, e.g. WAV with signed integer and 24bit resolution.

    Prepare your DAW and audio interface for an ordinary reamping session & extract the IR

    1. Create a mono channel strip with no input and route the output to the Profiler in.
    2. Load the sampling DI into that channel.
    3. Create a mono channel strip and route the input to one of the two Profiler outs.
    4. Enable recoding for that channel.
    5. Better disable monitoring of the recording input.
    6. Reamp the sampling pulse.
      Play the sampling DI through the Profiler while recording the output of it. Voilà, you have successfully extracted the cabinet IR out of your Profiler! You just have to remove the pre-delay and truncate it to a reasonable size (see next section).
    7. Export the recording as uncompressed audio with high dynamic range.

    Finalise the recorded IR

    1. Load the raw recording into your favourite audio editor.
    2. Identify the highest peak in amplitude.
    3. From here move backwards to the first sample which has zero or negative value (amplitude <= 0).
    4. Delete all samples from the beginning to that sample (including it).
    5. Truncate the sound file to a reasonable length of a few 10ms, e.g. 1536 samples.
    6. Some people like to scale the whole thing to 0dBFS peak amplitude (wouldn't recommend it), others prefer to normalise it to unity gain (on average or for a certain frequency). If in doubt or for a safe start: Leave it as it is (most IR loaders will transform it to their needs anyway).
    7. Export the result as uncompressed audio with high dynamic range.

    Enjoy your precious cabinet IR! You may want to import it via Rig Manager into a copy of said rig and crosscheck your result.

    For the true pros in signal analysis/processing (you have been warned :S)

    If we repeat the above procedure with all slots disabled one would naively expect to get an unaltered recording of the short pulse sent through the Profiler. But it's not! This is due to the inevitable filtering (mainly low and high cuts, see attached plot) in the input section of the Profiler (apparently of type linear-phase). So the sad truth is: Our extracted IR is actually a convolution of the cabinet IR with the filter function of the input section. But we may correct the frequency response of our IR for all the things going on there. There is different approaches on how to achieve this but here is what I have successfully implemented:

    1. Load both raw IRs (input*cab and input only) into your favourite math tool, e.g. Mathematica or MATLAB.
    2. Calculate the frequency response of both IRs.
    3. Gently correct the input*cab frequency response for the response of just the input section (divide the linear values of the input*cab response by the respective values of the input response). Be gentle and smooth with that: Do not introduce harsh gradients and limit the correction for frequencies below ~40Hz and above ~16kHz to reasonable amounts.
    4. Construct a linear-phase FIR filter from the corrected frequency response. Personally, I use a nice algorithm described here.
    5. Construct a minimum-phase (i.e. minimum-latency) FIR filter from the linear-phase FIR filter. Personally, I use another sweet algo described here (section Homomorphic Filtering).
    6. Check the result by comparing the frequency response of the minimum-phase FIR filter to the desired frequency response.
    7. Export the filter taps of the minimum-phase FIR filter (i.e. the final IR) as uncompressed audio with high dynamic range.

    If the above wizardry just caused a serious headache to you: You may get away with the uncorrected IR as the impact of the input filter is not that big.


    Update on this one: I've recently stumbled across a post of CK himself regarding the surprisingly large latency of the S/PDIF out even when set to the inherent sample rate of the Profiler (44.1kHz). His thorough explanation reminded me of the suspected weird input filter of the Profiler (you normally avoid minimum-phase FIRs in order to not increase latency). And indeed, since they fixed engaging the SRC when no sample rate conversion takes place the frequency response of the Profiler itself (input*output) is almost linear, see attached revised plot. Actually, the encountered min-phase FIR wasn't any kind of weird input filtering but the LPF of the unnecessarily engaged SRC at S/PDIF out.

    In short: There is no need to correct the frequency response of extracted IRs anymore (provided you are using S/PDIF in/out with 44.1kHz)!

    Anyhow, I'll leave the first part of this section unchanged as some people might find it informative or even useful (the struggles of a simple guy trying to understand the marvellous work of CK & his team of DSP wizards).

    Final remark

    Please let us know your findings/suggestions/improvements!


    Cheers-


    The above description has been originally posted here.

  • Advanced application: The method to extract Profiler cabinet IRs can also be used to sample any IR/EQ(zero-latency) setup in your DAW.


    How about crafting your signature cab IR by making a blend of your favourite (Profiler) cabinet IRs?

    1. Load the sampling puls into a mono channel.
    2. Put your favourite (Profiler) cabinet IRs into individual aux channels. Some IR plugins even allow for multiple IRs.
    3. EQ each channel to your liking. Set the (phase) type of all EQs to zero-latency.
    4. Make the blend: Adjust the aux send levels to your liking.
    5. Better disable monitoring.
    6. Adjust the output gain so that the output won't clip.
    7. Bounce the output as uncompressed audio with high dynamic range.
    8. Remove the pre-delay and truncate it.

    BTW: If you have any experience in and/or good strategies for normalising IRs, please let us know!


    Update: Apparently, a few years ago the quest for replicating the tones of famous guitar heros via the Match EQ technique was a big thing. I've learned that almost all the instructions on how to do that (YouTube and also here on the Kemper forums) involve measuring the frequency response of the Match EQ with sine sweeps, and then letting Voxengo Deconvolver do the minimum-phase FIR calculation (i.e. cab IR).

    That sophisticated piece of software is actually intended for calculating complex reverb IRs with all their time-dependent frequency responses (think of dispersive, frequency-dependant, and overlapping reflections).

    A Match EQ when set to zero-latency (i.e. min-phase FIR representation) is actually already the IR you are after! So there is no need to sine-sweep that thing and perform a complicated deconvolution: Just send the sampling DI through that Match EQ (i.e. sample the ordered list of hidden filter taps) and crop the result as explained.

  • 100% confirmed as working, thanks so much nejo_hh. I don't have an SPDIF connection on my soundcard, but I ran the signal via a Cuniberti and made some level adjustments to the recorded IR before exporting.


    Loaded the result into a Mooer GE300, and hey presto, identical sounding cab. I'm now doing some work on the Mooer Tone Capture software to try and capture the pre-amp part of the Kemper profile, so far some pleasing but not 100% accurate results.

  • Very effective method, thanks nejo_hh for the good work and explanation. That’s surely worth a try for all Mac users. It worked like a charm for my purposes, I strongly encourage to give it a try if you need to create a match cab ir!

  • Can back this up that this method is THE way to go in pulling an an accurate IR from a Kemper Cab, the A/B results are identical in my opinion,


    Kudos to nejo_hh for the research and methods for us all to put into practice, doing the heavy lifting of a legend.


    ^^

  • I want to suggest confirmation that you likely don't need to worry about removing the response of the Kemper from the CAB IR, because the non-CAB response of the Kemper appears to be nominally flat in response and phase already: