Attached is a patch that enables auload to read WAV files with 24-bit data
width.
Dan
--- auload.m.orig 2008-02-21 00:37:27.000000000 -0600
+++ auload.m 2008-02-21 15:49:04.337754060 -0600
@@ -132,6 +132,10 @@
sampleformat = 'int16';
precision = 'int16';
samples = len/2;
+ elseif bits == 24
+ sampleformat = 'int24';
+ precision = 'int24';
+ samples = len/3;
elseif bits == 32
sampleformat = 'int32';
precision = 'int32';
@@ -325,7 +329,16 @@
## suck in all the samples
if (samples <= 0) samples = Inf; end
- data = fread(file, samples, precision, 0, arch);
+ if (precision == 'int24')
+ data = fread(file, 3*samples, 'uint8', 0, arch);
+ if (arch == 'ieee-le')
+ data = data(1:3:end) + data(2:3:end) * 2^8 +
cast(typecast(cast(data(3:3:end), 'uint8'), 'int8'), 'double') * 2^16;
+ else
+ data = data(3:3:end) + data(2:3:end) * 2^8 +
cast(typecast(cast(data(1:3:end), 'uint8'), 'int8'), 'double') * 2^16;
+ endif
+ else
+ data = fread(file, samples, precision, 0, arch);
+ endif
fclose(file);
## convert samples into range [-1, 1)
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Octave-dev mailing list
Octave-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/octave-dev