[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Audio Glitch in Matlab



It is also possible to use PortAudio / pa_wavplay to make use of the ASIO4ALL drivers with existing non-asio hardware.

 

http://www.portaudio.com/

http://www.mathworks.com/matlabcentral/fileexchange/4017

http://www.asio4all.com/

 

 

Sam Jelfs

 

From: AUDITORY - Research in Auditory Perception [mailto:AUDITORY@xxxxxxxxxxxxxxx] On Behalf Of Brian FG Katz
Sent: Monday 17 October 2011 16:36
To: AUDITORY@xxxxxxxxxxxxxxx
Subject: Re: [AUDITORY] Audio Glitch in Matlab

 

This bug is quite present in Windows. The solution is to not use the default system driver, but an ASIO supported soundcard. This is also recommended for any sync play/rec situations, as the default Windows driver does not assure good or repeatable synchronization.

 

-Brian FG Katz

--

Brian FG Katz, Ph.D

Audio & Acoustique

LIMSI-CNRS

BP 133

F91403 Orsay

France

tel. (+33) 01 69 85 81 55

fax. (+33) 01.69.85.80.88

e-mail Brian.Katz@xxxxxxxx <mailto:Brian.Katz@xxxxxxxx>

web_theme: http://www.limsi.fr/Scientifique/aa/thmsonesp/

web_group: http://www.limsi.fr/Scientifique/aa/

 

 

 

De : AUDITORY - Research in Auditory Perception [mailto:AUDITORY@xxxxxxxxxxxxxxx] De la part de Patrick Zurek
Envoyé : lundi 17 octobre 2011 09:57
À : AUDITORY@xxxxxxxxxxxxxxx
Objet : [AUDITORY] Audio Glitch in Matlab

 

I'm writing to notify list readers of a problem playing audio using Matlab.

The problem is that brief signals are truncated, and it happens using any of the common commands for playing audio (wavplay, sound, and the play method of the audioplayer object).

I can't specify the exact conditions under which the truncation occurs. However, with a sample rate of 44.1 kHz, signals shorter than about 500 msec are truncated. I haven't looked much at other sample rates.

A simple work-around for the problem is to pad the end of the signal with a sufficient number of zeros that truncation occurs during the zero segment. I've found that at least 2000 zeros need to be added to assure no truncation of a 10-msec signal (with a sample rate of 44.1kHz).

I've brought this problem to the attention of The Mathworks. They confirmed the problem, which they attribute to a bug in their driver.

The Mathworks also informed me that the problem has been solved in their latest release (R2011b) for playing using audioplayer, but not necessarily for the other audio commands. I've confirmed this in very limited tests.

The following is a piece of code that you can use to observe the truncation. It creates a 100-msec, 1-kHz sine wave, applies a hanning window, and then plays it first with zero-padding and then without. You should be able to hear the click at the end of the second tone, which is not present on the first. If not, you can see it on an oscilloscope.

%%%%%%%%%%%%%%%%%%%%
fs = 44100;
f = 1000;
T = 0.1;
nPad = 2000;

nS = round(fs*T);

y = sin(2.*pi*f/fs*(1:nS)');
w = .5*(1 - cos(2*pi*(1:nS)'/(nS+1)));
y = w.*y;
yPad = [y; zeros(nPad,1)];

wavplay(yPad, fs, 'sync')
pause(0.5)
wavplay(y, fs, 'sync')
%%%%%%%%%%%%%%%%%%%%%

-- 
Patrick M. Zurek
President 
 
Sensimetrics Corporation
14 Summer St.
Suite 403
Malden, MA 02148
Tel: 781-399-0858 x237
Fax: 781-399-0853
email: pat@xxxxxxxx
web: www.sens.com


The information contained in this message may be confidential and legally protected under applicable law. The message is intended solely for the addressee(s). If you are not the intended recipient, you are hereby notified that any use, forwarding, dissemination, or reproduction of this message is strictly prohibited and may be unlawful. If you are not the intended recipient, please contact the sender by return e-mail and destroy all copies of the original message.