-function [mfv,ecart]=plotdelay(n)
+function [delay, mfv,ecart]=plotdelay(device, n)
%this function allows measuring the lattency of the playrecord process for
%n generation/acquisition operations
-if nargin < 1, n = 10; end
+%if nargin < 1, n = 10; end
%signal generation
-f_min=100;
-f_max=20000;
-lt=2;
-t=0:1/44100:lt;
-sig=0.9*chirp(t,f_min,lt,f_max,'logarithmic');
-len_sig = length(sig);
-
-%playrecord signal
-for it = 1:n
- pause(0.1)
- inputbuffer = pa_wavplayrecord(sig',1,[44100],0,[1],[1],1,['asio']);
- Co=xcorr(inputbuffer',sig');
- [Y(it),I(it)] = max(Co);
- delai(it)=I(it)-len_sig;
-
-end
+[delay, mfv, ecart] = get_latency(device, n)
% % mfv=mode(delai);
% % ecart=std(delai);
% sprintf('%s','the most frequent delay is ', mfvt,' samples.')
%Plot results
-hist(delai)
-title('delay distribution')
-xlabel('delay')
+hist(delay);
+title('delay distribution');
+xlabel('delay (number of samples)');
-function [mfv,ecart] = get_latency(device, n)
+function [delay, mfv,ecart] = get_latency(device, n)
% this function allows measuring the latency of the playrecord process
% where :
% 'device' is the integer number of the audio card address from the ASIO
% mfv: most found delay
% ecart: standard deviation on delay
- if nargin < 1, n = 10; end
-
+ %if nargin < 1, n = 10; end
%signal generation
f_min=20;
f_max=20000;
inputbuffer = pa_wavplayrecord(sig',device,[44100],0,[1],[1],device,['asio']);
Co=xcorr(inputbuffer',sig');
[Y(it),I(it)] = max(Co);
- delai(it)=I(it)-len_sig;
+ delay(it)=I(it)-len_sig;
end
-
- mfv=mode(delai);
- ecart=std(delai);
+
+ mfv = mode(delay)
+ ecart = std(delay)