Avatar

Please consider registering
Guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed sp_TopicIcon
Choosing the right Impulse Response
No permission to create posts
September 9, 2014
2:51 am
Avatar
derza
Member
Members
Forum Posts: 12
Member Since:
September 2, 2014
sp_UserOfflineSmall Offline

Hi,

as suggested, I will open my topic here:

Currently I am making a plugin that can manipulate/changing impulse response by changing the slider. As a proof of concept I made a plugin by modifying "ConvolveIt" project. The plugin has just one slider that works like a Wet/Dry slider but instead of signal proportion I used impulse responses as the variables

So it works like this:
0 => 100% Impulse Response 1
100 => 100% Impulse Response 2
anything in between => calculating the difference

Here is the VST DLL, It works well in cubase 32 bit:
https://www.dropbox.com/s/qketbxeh4yx1k10/ConvolveIt.dll?dl=0

Here is one of the impulse response:
https://www.dropbox.com/s/01cvoh3umwbib4s/ASEM%20RECTO%20V30%20L2.wav?dl=0

The other impulse response I got it from OptimalLPF.sir

It works well, well... maybe not so perfect because I can still hear "click" when I am changing the slider as the sound plays in cubase (also a problem, but not the main question right now). The question is because later I want to implement the plugin with various impulse responses:

1. How do I know if my .wav impulse response is exactly 1024 points?
2. How do I make my own impulse response that exactly 1024 points? Because normally I just set the bit depth when exporting .wav and nothing says like "points"

Thank you!

September 9, 2014
7:02 pm
Avatar
W Pirkle
Admin
Forum Posts: 143
Member Since:
January 28, 2017
sp_UserOfflineSmall Offline

Use a basic audio file editor to check/fix the wav files. You can get a really good free one here:

http://www.wavosaur.com/

It will show the point-count at the bottom and you can edit out the first 1024 of them. You can then (optionally) use the Process->Fade out on the last few samples (like the last 50 or so) to make sure the IR ends on a 0.0

The file you linked above only has 920 points in it so it would need to be padded out to 1024. You can do this in Wavosaur also by choosing Process->Insert Slicenc, then choose At End and 1s (second). Then trim the file down to 1024 points.

You can also do this programmatically in ConvolveIt. The wave file object reports the number of samples in the file (among other things - see the file/project for more info) so you could manipulate the processing function, but altering the file directly would be the easiest.

I noticed that this file is 24-bit which is fine - the wave file object I wrote handles everything but 8-bit. And, it only handles uncompressed wav files. The file you linked was also uncompressed.

- Will

November 17, 2014
3:38 pm
Avatar
derza
Member
Members
Forum Posts: 12
Member Since:
September 2, 2014
sp_UserOfflineSmall Offline

Can the whole process also be done in Audacity?

I forgot to ask the most basic question:
1. Is it a time Domain or frequency Domain points?
2. If time Domain, what would the original unfiltered signal be?
Thank you will

November 17, 2014
5:58 pm
Avatar
W Pirkle
Admin
Forum Posts: 143
Member Since:
January 28, 2017
sp_UserOfflineSmall Offline

Yes, you can also do this in Audacity.

It is time-domain editing.

The original unfiltered signal is either a real impulse (if taken digitally, such as the RackAFX analyzer) or a chirp signal followed by deconvolution. The Apple IR tool (you get it with Logic) uses the chirp (swept sinusoid) method. There are also other variations such as pseudo-random noise (PN) sequences, balloon pops, cap pistols, etc... But, we really only care about the IR that is obtained.

Will

November 18, 2014
11:13 pm
Avatar
derza
Member
Members
Forum Posts: 12
Member Since:
September 2, 2014
sp_UserOfflineSmall Offline

thank you for the answer Laugh
by the way, the process->insert silence you mentioned before is actually just adding "empty" samples until the whole file become 1024 samples, am I correct?
And the minor problem that I already mentioned before, this "click" sound as I changed the slider, what could be the cause?
Thank you Laugh

December 14, 2014
7:22 pm
Avatar
derza
Member
Members
Forum Posts: 12
Member Since:
September 2, 2014
sp_UserOfflineSmall Offline

Will said

Use a basic audio file editor to check/fix the wav files. You can get a really good free one here:

http://www.wavosaur.com/

It will show the point-count at the bottom and you can edit out the first 1024 of them. You can then (optionally) use the Process->Fade out on the last few samples (like the last 50 or so) to make sure the IR ends on a 0.0

The file you linked above only has 920 points in it so it would need to be padded out to 1024. You can do this in Wavosaur also by choosing Process->Insert Slicenc, then choose At End and 1s (second). Then trim the file down to 1024 points.

You can also do this programmatically in ConvolveIt. The wave file object reports the number of samples in the file (among other things - see the file/project for more info) so you could manipulate the processing function, but altering the file directly would be the easiest.

I noticed that this file is 24-bit which is fine - the wave file object I wrote handles everything but 8-bit. And, it only handles uncompressed wav files. The file you linked was also uncompressed.

- Will

sorry, more question about this. I realized as I captured many impulses that all of them were 1024 points from 44.100 KHz sample rate. If I want to record by 48.000 KHz sample rate can I still use the same IR to achieve the same frequency response or should captured the impulse again with 48.000 KHz? Thank you

December 14, 2014
9:14 pm
Avatar
W Pirkle
Admin
Forum Posts: 143
Member Since:
January 28, 2017
sp_UserOfflineSmall Offline

Yes, when convolving with IRs, the sample rate must match the input source rate.

But you can see/hear this for yourself with RackAFX's audio analyzer. Go to this website and get the Hi Def WAV and CD Quality WAV files for the Jazz genre:

http://www.naimlabel.com/music.....files.aspx

Do not use the FLAC or ALAC encoded versions, we want pure PCM. The Hi-Def file is 24-bit 96kHz and the CD quality is 16-bit 44.1kHz and the audio material is identical. Here we really only care about the difference in sample rate.

In RackAFX, load the Impulse Convolver, then load the 44.1kHz file and open the Audio Analyzer and use the Controls button to open up the extra controls. At the right you see the sample rate of 44100 which you can not change. You get the optimal.sir IR file with the installation (there is also a .WAV version in the IR1024 folder). This is the IR of a LPF with a transition region that drops below -60dB at 2kHz. It was designed at 44.1kHz using RackAFX's FIR Designer Plug-In; which allows you to design FIR filters for any sample rate; the result is an impulse response to convolve with the input material. Double-click on the optimal.sir file and the filter response shows up on the analyzer's FFT graph.

Play the 44.1kHz WAV file through it and observe the analyzer - the spectrum will drop off the graph at about 2kHz. Listen to the track and listen to the drums which are very muted.

With the analyzer still open, load the 96kHz version of the same material. RackAFX sets the sample rate to whatever the input wav file uses. You will see it change in the analyzer's controls at the right. You will also see that the spectrum graph's graticule has stretched out and now Nyquist is at 48kHz.

Double-click on the optimal.sir file again and now you see the same response, but the roll-off drops below -60dB at about 4.5kHz instead of the designed 2kHz. This is because 96kHz is a little more than twice 44.1kHz. Listen to the track and observe the spectrum. The drums are clearly crisper and not nearly as muted. And, the spectrum now falls off the graph at 4.5kHz.

So, yes, you need to make sure you have these sample rates aligned.

- Will

January 4, 2015
6:28 pm
Avatar
derza
Member
Members
Forum Posts: 12
Member Since:
September 2, 2014
sp_UserOfflineSmall Offline

Hi Will,

as my cubase 7 demo expired, I'm back using my cubase 5, and then I tried to use my VST DLL that I posted on the first post, but unfortunately it didnt work well. The playback sound popped (like talking on the phone while having a bad connection). What could cause the problem? Does the old cubase miss some features regarding VST compatibility? Thank you.

January 4, 2015
8:19 pm
Avatar
W Pirkle
Admin
Forum Posts: 143
Member Since:
January 28, 2017
sp_UserOfflineSmall Offline

I'm guessing you were maxing out the CPU since convolution is very processor intensive. Did you compile the VST in release mode in Visual Studio?

The VSTs you are making with the current version of RAFX (6.2.x) then those are very old VST2.4 format and have been stable for years of use. If you have issues, you might want to try the new v6.5 (still in beta testing) which produces VST2/VST3 in one DLL but using a different mechanism, and does not use the old Sock2VST libraries that I wrote. I have also obsoleted these in the new version as they rely on MFC and other win-specific details.

January 5, 2015
6:37 pm
Avatar
derza
Member
Members
Forum Posts: 12
Member Since:
September 2, 2014
sp_UserOfflineSmall Offline

Will said

I'm guessing you were maxing out the CPU since convolution is very processor intensive. Did you compile the VST in release mode in Visual Studio?

The VSTs you are making with the current version of RAFX (6.2.x) then those are very old VST2.4 format and have been stable for years of use. If you have issues, you might want to try the new v6.5 (still in beta testing) which produces VST2/VST3 in one DLL but using a different mechanism, and does not use the old Sock2VST libraries that I wrote. I have also obsoleted these in the new version as they rely on MFC and other win-specific details.

problem solved, thank you Will! I'm still waiting for the new RackAfx :D

Forum Timezone: America/New_York

Most Users Ever Online: 36

Currently Online:
2 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Skyler: 47

Peter: 41

Derek: 41

clau_ste: 39

Frodson: 38

Gwen: 32

EZB: 24

lppier: 23

Msaldaña: 18

Jorge: 17

Member Stats:

Guest Posters: 1

Members: 476

Moderators: 1

Admins: 4

Forum Stats:

Groups: 11

Forums: 30

Topics: 482

Posts: 1876

Newest Members:

sam, annaharris, Marie Weaver, kev, Steven, Mr Anderson, mguy, omelc

Moderators: W Pirkle: 143

Administrators: Tom: 65, JD Young: 80, Will Pirkle: 0, W Pirkle: 143