annotate aim-mat/tools/ReadWinFrame.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
rev   line source
tomwalters@0 1 % support file for 'aim-mat'
tomwalters@0 2 %
tomwalters@0 3 % This external file is included as part of the 'aim-mat' distribution package
bleeck@3 4 % (c) 2011, University of Southampton
bleeck@3 5 % Maintained by Stefan Bleeck (bleeck@gmail.com)
bleeck@3 6 % download of current version is on the soundsoftware site:
bleeck@3 7 % http://code.soundsoftware.ac.uk/projects/aimmat
bleeck@3 8 % documentation and everything is on http://www.acousticscale.org
bleeck@3 9
tomwalters@0 10
tomwalters@0 11 %%%%%%%%%%%%%%%%%%%%%%%%%%%
tomwalters@0 12 %
tomwalters@0 13 % File: ReadWinFrame.m
tomwalters@0 14 % Purpose: Reads a window from from an AIFF file.
tomwalters@0 15 % Comments:
tomwalters@0 16 % Author: L. P. O'Mard
tomwalters@0 17 % Revised by:
tomwalters@0 18 % Created:
tomwalters@0 19 % Updated:
tomwalters@0 20 % Copyright: (c) 2000, University of Essex
tomwalters@0 21 %
tomwalters@0 22 %%%%%%%%%%%%%%%%%%%%%%%%%%%
tomwalters@0 23
tomwalters@0 24 function frame=ReadWinFrame(fid, numChannels, frameLen, wordSize, littleEndian)
tomwalters@0 25
tomwalters@0 26 switch wordSize
tomwalters@0 27 case 1
tomwalters@0 28 frame = fread(fid, [numChannels, frameLen], 'char');
tomwalters@0 29 case 2
tomwalters@0 30 for i = 1:frameLen
tomwalters@0 31 for j = 1:numChannels
tomwalters@0 32 data = Read16Bits(fid, littleEndian);
tomwalters@0 33 if (data >= 32768)
tomwalters@0 34 frame(j, i) = data - 65536;
tomwalters@0 35 else
tomwalters@0 36 frame(j, i) = data;
tomwalters@0 37 end
tomwalters@0 38 end;
tomwalters@0 39 end;
tomwalters@0 40 case 4
tomwalters@0 41 for i = 1:frameLen
tomwalters@0 42 for j = 1:numChannels
tomwalters@0 43 data = Read32Bits(fid, littleEndian);
tomwalters@0 44 if (data >= 2147483648)
tomwalters@0 45 frame(j, i) = data - 4294967296;
tomwalters@0 46 else
tomwalters@0 47 frame(j, i) = data;
tomwalters@0 48 end
tomwalters@0 49 end;
tomwalters@0 50 end;
tomwalters@0 51
tomwalters@0 52 end
tomwalters@0 53