Loading scripts/binauralRenderer_interface/BRIRs_sofa/IIS_BRIR_officialMPEG_Combined.mat 0 → 100644LFS +3 −0 Original line number Diff line number Diff line version https://git-lfs.github.com/spec/v1 oid sha256:4faf67d1d6d4999a73add5c6f84df8cad348cbf10dfd66b5d6f7e8c3c769a28e size 23769349 scripts/binauralRenderer_interface/ComputeDeconvolutionFilterGeneric.m 0 → 100755 +98 −0 Original line number Diff line number Diff line %function [ hrir ] = ComputeDeconvolutionFilterGeneric( hrirHp_Mic,lHir,lFadeOut,tailleFFT,clipDB_LF,clipDB_HF, freqLow, freqHigh, Fs, HFFreqCut, retard ) function [ hrir tmp_phanmin_inv] = ComputeDeconvolutionFilterGeneric( Half_TF_Hp_Mic,lHir,lFadeOut,clipDB_LF,clipDB_HF, freqLow, freqHigh, Fs, HFFreqCut ) %UNTITLED Summary of this function goes here % Detailed explanation goes here %if (nargin ~= 11) if (nargin ~= 9) disp ('Bad arguments'); return; end Meth = 'phamin_inv_mod_cutoff_phamin'; %Meth = 'phamin_inv_mod_cutoff_phalin'; %Meth = 'inv_phamin_mod'; %Meth = 'inv_cutoff_phalin'; %Meth = 'inv_cutoff_phamin'; Meth = ''; nhp = size(Half_TF_Hp_Mic,2); tailleFFT = (size(Half_TF_Hp_Mic,1)-1) * 2; if (isreal(Half_TF_Hp_Mic)) Meth = ''; end %hrtfMic(:,1:nhp) = fft(hrirHp_Mic(:,1:nhp),tailleFFT); freq = (0:1:tailleFFT/2); freq = freq*Fs/tailleFFT; % if retard<= 0 % Delay_l = exp((sqrt(-1) * 2 * pi * retard) * freq) ; % else % Delay_l = ones(tailleFFT/2+1,1); % end freq = freq(1:end-1); tmp = hann(2*lFadeOut)'; win = [ones(1,lHir-lFadeOut,1) tmp(end/2+1:end)]; indLow = zeros(1,nhp); d=fdesign.lowpass('Fp,Fst,Ap,Ast',HFFreqCut*0.95/(Fs/2),HFFreqCut/(Fs/2),0.01,96); % Filtre passe bas a partir de 20kHz (gain de -96dB a partir de 21.6kHz) Hd = design(d,'equiripple'); lowPassFilter = Hd.getnumerator; HD = (fft(lowPassFilter,tailleFFT)); HD = HD (:,1:end/2+1); if ((strcmp(Meth,'phamin_inv_mod_cutoff_phamin')) || (strcmp(Meth,'inv_cutoff_phamin'))) HD_pm = mps(abs(HD),-96); end clear d; clear Hd; clear lowPassFilter; for ind = 1 :nhp tmp = find(freq < freqLow(ind) ); indLow(ind) = tmp(end); tmp = find(freq > freqHigh(ind)); indHigh(ind) = tmp(1); end hrir = zeros(lHir,nhp); for ind = 1:nhp clear('tmp'); tmp = zeros(1,tailleFFT/2+1); tmp = abs(Half_TF_Hp_Mic(1:end,ind)'); tmpLow = clipdb(tmp,clipDB_LF(ind)); tmpHigh = clipdb(tmp,clipDB_HF(ind)); tmp(1:end) = [tmpLow(1:indLow(ind)) tmpHigh(indLow(ind)+1:end)]; if (strcmp(Meth,'phamin_inv_mod_cutoff_phalin')) tmp_phanmin_inv = HD./mps(tmp,-96); elseif (strcmp(Meth,'phamin_inv_mod_cutoff_phamin')) tmp_phanmin_inv = HD_pm./mps(tmp,-96); % elseif (strcmp(Meth,'inv_cutoff_phalin')) % tmp_phanmin_inv = HD./transpose(hrtfMic(1:end/2+1,ind)); % tmp_phanmin_inv = HD.*tmp_phanmin_inv; % elseif (strcmp(Meth,'inv_cutoff_phamin')) % tmp = Delay_l.*mps(tmp,-96); % tmp_phanmin_inv = [tmp(1:indLow(ind)) transpose(hrtfMic(indLow(ind)+1:indHigh(ind),ind)) tmp(indHigh(ind)+1:end)]; % tmp_phanmin_inv = HD_pm./tmp_phanmin_inv; else tmp_phanmin_inv = mps(abs(HD)./tmp,-96); end tmp_phanmin_inv_all = [tmp_phanmin_inv(1:end) conj(tmp_phanmin_inv( end-1:-1:2))] ; tmp_ri = real(ifft(tmp_phanmin_inv_all)) ; hrir(:,ind) = tmp_ri(1:lHir) .* win; end scripts/binauralRenderer_interface/ComputeDiffuseEQFilters.m 0 → 100755 +30 −0 Original line number Diff line number Diff line %function [ hrir HRTF] = ComputeDiffuseEQFilters( DTF,Fs,lHir,lFadeOut, clipValLF,clipValHF,freqLowLimit,freqLowBandWidth, freqHighLimit,HFFreqCut ) function [ hrir HRTF] = ComputeDiffuseEQFilters( DTF,Fs,lHir,lFadeOut, clipValLF,clipValHF,freqLowLimit, freqHighLimit,HFFreqCut ) %UNTITLED Summary of this function goes here % Detailed explanation goes here valmax = max(DTF); % tailleFFT = (size(DTF,1)-1) * 2; % % freq = (0:1:tailleFFT/2); % freq = freq*Fs/tailleFFT; % % freq = freq(1:end-1); % % % tmp = find(freq < freqLowLimit ); % indLow1 = tmp(end); % % tmp = find(freq < freqLowLimit+freqLowBandWidth ); % indLow2 = tmp(end); % % meanBF = mean(DTF(indLow1:indLow2)); % % clipValLF = 20*log10(meanBF/valmax); [hrir HRTF]= ComputeDeconvolutionFilterGeneric(DTF,lHir,lFadeOut,clipValLF,clipValHF, freqLowLimit, HFFreqCut,Fs,HFFreqCut); end scripts/binauralRenderer_interface/HRIRs_sofa/HRIR_128_Meth5_IRC_51_Q10_symL_Itrp1_48000_norm.mat 0 → 100644LFS +3 −0 Original line number Diff line number Diff line version https://git-lfs.github.com/spec/v1 oid sha256:e35e6a84a30511614a95d067cae7632f0f2e905ee01ecb8f6f9cadd49ec6211b size 43968723 scripts/binauralRenderer_interface/HRIRs_sofa/HRIR_128_Meth5_IRC_51_Q10_symL_Itrp1_48000_norm.sofa 0 → 100644LFS +133 B File added.No diff preview for this file type. View file Loading
scripts/binauralRenderer_interface/BRIRs_sofa/IIS_BRIR_officialMPEG_Combined.mat 0 → 100644LFS +3 −0 Original line number Diff line number Diff line version https://git-lfs.github.com/spec/v1 oid sha256:4faf67d1d6d4999a73add5c6f84df8cad348cbf10dfd66b5d6f7e8c3c769a28e size 23769349
scripts/binauralRenderer_interface/ComputeDeconvolutionFilterGeneric.m 0 → 100755 +98 −0 Original line number Diff line number Diff line %function [ hrir ] = ComputeDeconvolutionFilterGeneric( hrirHp_Mic,lHir,lFadeOut,tailleFFT,clipDB_LF,clipDB_HF, freqLow, freqHigh, Fs, HFFreqCut, retard ) function [ hrir tmp_phanmin_inv] = ComputeDeconvolutionFilterGeneric( Half_TF_Hp_Mic,lHir,lFadeOut,clipDB_LF,clipDB_HF, freqLow, freqHigh, Fs, HFFreqCut ) %UNTITLED Summary of this function goes here % Detailed explanation goes here %if (nargin ~= 11) if (nargin ~= 9) disp ('Bad arguments'); return; end Meth = 'phamin_inv_mod_cutoff_phamin'; %Meth = 'phamin_inv_mod_cutoff_phalin'; %Meth = 'inv_phamin_mod'; %Meth = 'inv_cutoff_phalin'; %Meth = 'inv_cutoff_phamin'; Meth = ''; nhp = size(Half_TF_Hp_Mic,2); tailleFFT = (size(Half_TF_Hp_Mic,1)-1) * 2; if (isreal(Half_TF_Hp_Mic)) Meth = ''; end %hrtfMic(:,1:nhp) = fft(hrirHp_Mic(:,1:nhp),tailleFFT); freq = (0:1:tailleFFT/2); freq = freq*Fs/tailleFFT; % if retard<= 0 % Delay_l = exp((sqrt(-1) * 2 * pi * retard) * freq) ; % else % Delay_l = ones(tailleFFT/2+1,1); % end freq = freq(1:end-1); tmp = hann(2*lFadeOut)'; win = [ones(1,lHir-lFadeOut,1) tmp(end/2+1:end)]; indLow = zeros(1,nhp); d=fdesign.lowpass('Fp,Fst,Ap,Ast',HFFreqCut*0.95/(Fs/2),HFFreqCut/(Fs/2),0.01,96); % Filtre passe bas a partir de 20kHz (gain de -96dB a partir de 21.6kHz) Hd = design(d,'equiripple'); lowPassFilter = Hd.getnumerator; HD = (fft(lowPassFilter,tailleFFT)); HD = HD (:,1:end/2+1); if ((strcmp(Meth,'phamin_inv_mod_cutoff_phamin')) || (strcmp(Meth,'inv_cutoff_phamin'))) HD_pm = mps(abs(HD),-96); end clear d; clear Hd; clear lowPassFilter; for ind = 1 :nhp tmp = find(freq < freqLow(ind) ); indLow(ind) = tmp(end); tmp = find(freq > freqHigh(ind)); indHigh(ind) = tmp(1); end hrir = zeros(lHir,nhp); for ind = 1:nhp clear('tmp'); tmp = zeros(1,tailleFFT/2+1); tmp = abs(Half_TF_Hp_Mic(1:end,ind)'); tmpLow = clipdb(tmp,clipDB_LF(ind)); tmpHigh = clipdb(tmp,clipDB_HF(ind)); tmp(1:end) = [tmpLow(1:indLow(ind)) tmpHigh(indLow(ind)+1:end)]; if (strcmp(Meth,'phamin_inv_mod_cutoff_phalin')) tmp_phanmin_inv = HD./mps(tmp,-96); elseif (strcmp(Meth,'phamin_inv_mod_cutoff_phamin')) tmp_phanmin_inv = HD_pm./mps(tmp,-96); % elseif (strcmp(Meth,'inv_cutoff_phalin')) % tmp_phanmin_inv = HD./transpose(hrtfMic(1:end/2+1,ind)); % tmp_phanmin_inv = HD.*tmp_phanmin_inv; % elseif (strcmp(Meth,'inv_cutoff_phamin')) % tmp = Delay_l.*mps(tmp,-96); % tmp_phanmin_inv = [tmp(1:indLow(ind)) transpose(hrtfMic(indLow(ind)+1:indHigh(ind),ind)) tmp(indHigh(ind)+1:end)]; % tmp_phanmin_inv = HD_pm./tmp_phanmin_inv; else tmp_phanmin_inv = mps(abs(HD)./tmp,-96); end tmp_phanmin_inv_all = [tmp_phanmin_inv(1:end) conj(tmp_phanmin_inv( end-1:-1:2))] ; tmp_ri = real(ifft(tmp_phanmin_inv_all)) ; hrir(:,ind) = tmp_ri(1:lHir) .* win; end
scripts/binauralRenderer_interface/ComputeDiffuseEQFilters.m 0 → 100755 +30 −0 Original line number Diff line number Diff line %function [ hrir HRTF] = ComputeDiffuseEQFilters( DTF,Fs,lHir,lFadeOut, clipValLF,clipValHF,freqLowLimit,freqLowBandWidth, freqHighLimit,HFFreqCut ) function [ hrir HRTF] = ComputeDiffuseEQFilters( DTF,Fs,lHir,lFadeOut, clipValLF,clipValHF,freqLowLimit, freqHighLimit,HFFreqCut ) %UNTITLED Summary of this function goes here % Detailed explanation goes here valmax = max(DTF); % tailleFFT = (size(DTF,1)-1) * 2; % % freq = (0:1:tailleFFT/2); % freq = freq*Fs/tailleFFT; % % freq = freq(1:end-1); % % % tmp = find(freq < freqLowLimit ); % indLow1 = tmp(end); % % tmp = find(freq < freqLowLimit+freqLowBandWidth ); % indLow2 = tmp(end); % % meanBF = mean(DTF(indLow1:indLow2)); % % clipValLF = 20*log10(meanBF/valmax); [hrir HRTF]= ComputeDeconvolutionFilterGeneric(DTF,lHir,lFadeOut,clipValLF,clipValHF, freqLowLimit, HFFreqCut,Fs,HFFreqCut); end
scripts/binauralRenderer_interface/HRIRs_sofa/HRIR_128_Meth5_IRC_51_Q10_symL_Itrp1_48000_norm.mat 0 → 100644LFS +3 −0 Original line number Diff line number Diff line version https://git-lfs.github.com/spec/v1 oid sha256:e35e6a84a30511614a95d067cae7632f0f2e905ee01ecb8f6f9cadd49ec6211b size 43968723
scripts/binauralRenderer_interface/HRIRs_sofa/HRIR_128_Meth5_IRC_51_Q10_symL_Itrp1_48000_norm.sofa 0 → 100644LFS +133 B File added.No diff preview for this file type. View file