I am writing an application which must simultaneously analyse video frames and generate & play an audio stream. I am trying to use a dsp.AudioPlayer object to do this but I'm having lag issues. Without code writing to the dsp.AudioPlayer object I'm achieving 30-40 fps, with audio output I get less than 1. After profiling I can see most of the time is going into a for loop which pushes samples from a buffer to the audio object with the step function.
obj.hap = dsp.AudioPlayer;
sc_samples = 0:(1/obj.sc_sample_rate):path.tof;
sc_voltage = interp1(path.pixelt, real(path.direct), sc_samples, 'linear');
for samp = 1:length(sc_samples)
time = toc
Is there any way to copy the whole buffer at once? Would this boost performance? I am aware of sound outputs in the data acquisition toolbox but this isn't compatible with 64 bit versions of Matlab.
Thanks for your help