Skip to content
Snippets Groups Projects
Commit 402e2a03 authored by Michael Kohnen's avatar Michael Kohnen
Browse files

Simple binaural mixdown for ambisonics signals

parent ad3f6de7
Branches
Tags
No related merge requests found
function [ binOut ] = ita_3da_binauralMixdown( lsSignals, varargin )
%ITA_3DA_BINAURALMIXDOWN Produces a 2-Channel binaural stream out of
%loudspeaker signal(s) and coordinates (given as optional coordinates or
%better: encoded in the itaAudio channel coordinates
% Detailed explanation goes here
opts.HRTF='D:\DATA\sciebo\MKOScripts\HRTFs\2015_ITA-Kunstkopf_HRIR_2ch_D186_1x1_256_v17.daff';
opts.LSPos=itaCoordinates;
if nargin>1
opts=ita_parse_arguments(opts,varargin);
end
if ~(isa(lsSignals, 'itaAudio')&&(lsSignals.nChannels>0))
error('First input must be itaAudio with at least one channel')
end
if opts.LSPos.nPoints<1
opts.LSPos=lsSignals.channelCoordinates;
if opts.LSPos.nPoints<1
error('We need some channel coordinates!');
end
end
hrtfSet=itaHRTF('DAFF',opts.HRTF);
binOut=itaAudio;
for k=1:lsSignals.nChannels
hrtf=hrtfSet.findnearestHRTF(opts.LSPos.n(k));
convolved=ita_convolve(lsSignals.ch(k),hrtf);
if k==1
binOut=convolved;
else
binOut=binOut+convolved
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment