Sample impulse improvements


Here are some things I’ve worked on outside of the nat sampler to further improve for overall better emulation.

1. Impulse pre post (linear phase) ringing from Convertors or SRC

I spent some time trying to find a very good filter to use with nebula libraries, the example below is of a very high ringing impulse response. The ringing is not seen in the hardware but could effect the sound quality. This also runs the risk of truncating pre-ringing because of a limited offset. As aliasing is less of a issue when converting response into impulse response we have the opportunity to reduce the strength of the filter.


Below we have a better filtered impulse example, this example is approximately 5 times smaller in it’s ringing artifacts. I aim to reduce this past the a typical users converters ringing response so it is masked. The following ringing length is 2 times shorter than one of the best converters on the market. Of course this is a trade off for other things yet imo benefits its application. This is something found in my most recent libraries.


2. Overall stacked Phase and Magnitude eliminated

Below we have a stacked instance of an eq. We can see a complete flip of phase in the top end and low frequency, due to stacking.


Below we have a non repeated phase or magnitude version of stacked instances, with only 6 degrees of a phase anomaly at 10khz. It’s debatable how much delay (phase) is audible to the human ear, however one thing that can’t be argued is the fact that paralleling could cause some cancellation problems due to phase shift.


A good example of band isolation can be seen in my Rstate eq, below we can see no roll offs from the overall magnitude of the eq, notice the flatness around the bell, isolated eq portion:

3.Better harmonics

Below is an example of an artifact that gives a chirping sound on overload. This is a typical frequency plot of incorrect harmonic responce from the deconvolution of harmonics. This visual was produced by increasing the input level, this at usual low input still resides under magnitude clean response. Also, incorrect ringing rising from the low band can be seen here too, which is discussed later in point 4. Note that this fundamentally a resonance, so we really don’t want these. This is solved at the sampling level not impulse.


Below is an example of pushed hard Debugged saturation, with super low noise and transformer coloration and no chirping(read section4.b) artifact. Eliminating these peaks is important as these will be louder than the real harmonics, this could cause a significant build up over many tracks.

4.b  I’ve noticed around forums the word chirping has become a kind of official word probably due to this article. please note there is no official word for this as this is only found in this technology!

4. Hard truncation artifacts (windowing)

Below we see hard truncation in the tail occurring over multiple instances:



The lower example illustrates ringing from a very badly truncated impulse on the frequency plot, this causes a filter effect and a ringing modulation that goes up through the frequency plot. Truncation through a very small impulse length can also cause a micro echo, which may sound more 3d, although this sounds interesting it is actually incorrect. A Longer echo can be more audible, this is caused by a long truncated impulse giving a bass echo. Bass echos occur because the truncation is in the latter part of the tail.

The echoes can be seen by using a sweep in Izotope RX, a very fast sweep (2 secs) is excellent at finding them. The echoes can be seen as the two lines below the initial test sweep. Two echoes exist because the example is using two truncated instances. Also the very faint blue haze is caused by noise on the impulse. For a more in depth look into what happens when impulse is truncated look here

It’s possible to eliminate all of these issues with the appropriate techniques.

Below is an example of a soft, or un-truncated impulse. This reduces or eliminates the ringing effect through the band rising from the low frequencies.


Edit 31/08/22

5. Noise at the end of the spectrum while using higher sample rates.

This artifact was questioned to me recently, as another developer mentioned it in a article. The question was if I had actually solved this artifact. Long story short yes and has been the way since around 2015. The artifact is a symptom of how the engine deconvolves from a shorter sweep from the actual full sample rates range. It takes the a Impulse for its data at the end of the sweep, this causes any noise produced after the sweep to of course be amplified as now its not getting info from the sweep but impulse. This I have fixed through a automatic correction tool made through scripting.

Edit 31/08/22 Added point 5 and added explanation to the famous accidental name ‘Chirping’

Edited for punctuation, typos, some minor changes in explanation on 10/01/21 and 18/06/19

Edited 06/11/19 Better explanation at point 3