Rooms using Binaural Room Impulse Responses¶
This example simulates a cello in a reverberant environment using BRIR
recordings. The resulting binaural signal as stored in out_brirs.wav
.
If you want to test it run the brirs.m
script.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | sim = simulator.SimulatorConvexRoom();
set(sim, ...
'Renderer', @ssr_brs, ...
'Sources', {simulator.source.Point()}, ...
'Sinks', simulator.AudioSink(2) ...
);
set(sim.Sources{1}, ...
'Name', 'Cello', ...
'IRDataset', simulator.DirectionalIR( ...
['impulse_responses/qu_kemar_rooms/auditorium3/', ...
'QU_KEMAR_Auditorium3_src3_xs+2.20_ys-1.94.sofa']), ...
'AudioBuffer', simulator.buffer.FIFO(1) ...
);
set(sim.Sources{1}.AudioBuffer, ...
'File', 'stimuli/anechoic/instruments/anechoic_cello.wav' ...
);
sim.set('Init',true);
%% static scene, dynamic head
% head should rotate about 170 degree to the right with 20 degrees per second
sim.Sinks.setDynamic('UnitX', 'Velocity', 20);
sim.Sinks.set('UnitX', [cosd(85); sind(85); 0]);
while ~sim.isFinished()
sim.set('Refresh',true); % refresh all objects
sim.set('Process',true);
end
sim.Sinks.saveFile('out_brirs.wav',sim.SampleRate); % save file
sim.set('ShutDown',true);
|