Mercurial > hg > aimmat
view aim-mat/tools/@signal/play.m @ 4:537f939baef0 tip
various bug fixes and changed copyright message
author | Stefan Bleeck <bleeck@gmail.com> |
---|---|
date | Tue, 16 Aug 2011 14:37:17 +0100 |
parents | 20ada0af3d7d |
children |
line wrap: on
line source
% method of class @signal % % INPUT VALUES: % sig,attenuation,ramp % sig is the signal or a array of two signals for stereo % attenuation is the attenuation against the lowdest possible tone % with amplitude =1 % default=1 % % RETURN VALUE: % % % This external file is included as part of the 'aim-mat' distribution package % (c) 2011, University of Southampton % Maintained by Stefan Bleeck (bleeck@gmail.com) % download of current version is on the soundsoftware site: % http://code.soundsoftware.ac.uk/projects/aimmat % documentation and everything is on http://www.acousticscale.org % function play(sig,attenuation,ramp) function play(sig,attenuation,ramp) if nargin < 3 ramp=0; end if nargin < 2 attenuation=0; end if attenuation > 0 % error('cant play sounds louder then maximum, reduce attenuation!'); disp('warning: signal\play:: play sounds louder then maximum, reduce attenuation!'); end if length(sig)>1 % stereo! sig(1)=attenuate(sig(1),attenuation); sig(2)=attenuate(sig(2),attenuation); values1=getvalues(sig(1)); values2=getvalues(sig(2)); finvals=[values1 values2]; sr=getsr(sig(1)); sound(finvals,sr); pause(getlength(sig(1))); else % beware of playing a NULL-stimulus! if getlength(sig)<=1/getsr(sig) return end if ramp>0 sig=rampamplitude(sig,ramp); end sig=attenuate(sig,attenuation); if max(sig)>1 disp('warning: signal\play:: clipping in signal'); end sound(sig.werte,sig.samplerate); pause(getlength(sig)); end