Mercurial > hg > octave-lyh
annotate scripts/audio/wavwrite.m @ 17478:b8ecdb6ce2f8
assert.m: Speed up function by ~16% by not pre-calculating warning message.
* scripts/testfun/assert.m: Don't pre-calculate "in" warning message since it
is only used a small fraction of the time when there is an actual error.
author | Rik <rik@octave.org> |
---|---|
date | Mon, 23 Sep 2013 13:43:23 -0700 |
parents | af2051e363ea |
children |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
13764
diff
changeset
|
1 ## Copyright (C) 2005-2012 Michael Zeising |
5565 | 2 ## |
3 ## This file is part of Octave. | |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7016 | 7 ## the Free Software Foundation; either version 3 of the License, or (at |
8 ## your option) any later version. | |
5565 | 9 ## |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
15 ## You should have received a copy of the GNU General Public License | |
7016 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
5565 | 18 |
19 ## -*- texinfo -*- | |
10793
be55736a0783
Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
20 ## @deftypefn {Function File} {} wavwrite (@var{y}, @var{filename}) |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
21 ## @deftypefnx {Function File} {} wavwrite (@var{y}, @var{Fs}, @var{filename}) |
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
22 ## @deftypefnx {Function File} {} wavwrite (@var{y}, @var{Fs}, @var{bps}, @var{filename}) |
6985 | 23 ## Write @var{y} to the canonical RIFF/WAVE sound file @var{filename} |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
24 ## with sample rate @var{Fs} and bits per sample @var{bps}. The |
6985 | 25 ## default sample rate is 8000 Hz with 16-bits per sample. Each column |
15529
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
26 ## of the data represents a separate channel. If @var{y} is either a |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
27 ## row vector or a column vector, it is written as a single channel. |
5642 | 28 ## @seealso{wavread} |
5565 | 29 ## @end deftypefn |
30 | |
7117 | 31 ## Author: Michael Zeising <michael@michaels-website.de> |
5565 | 32 ## Created: 06 December 2005 |
33 | |
6985 | 34 function wavwrite (y, varargin) |
5567 | 35 |
5565 | 36 BYTEORDER = "ieee-le"; |
6985 | 37 |
5567 | 38 if (nargin < 2 || nargin > 4) |
6046 | 39 print_usage (); |
5565 | 40 endif |
5567 | 41 |
6985 | 42 ## Defaults. |
43 samples_per_sec = 8000; | |
44 bits_per_sample = 16; | |
45 | |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
46 filename = varargin{end}; |
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
47 if (nargin > 2) |
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
48 samples_per_sec = varargin{1}; |
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
49 if (nargin > 3) |
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
50 bits_per_sample = varargin{2}; |
6985 | 51 endif |
52 endif | |
53 | |
15529
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
54 ## calculate filesize |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
55 [n, channels] = size (y); |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
56 |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
57 ## allow y to be a row vector |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
58 if (n == 1) |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
59 n = channels; |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
60 channels = 1; |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
61 endif |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
62 |
6304 | 63 ## test arguments |
15529
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
64 if (channels < 1) |
6304 | 65 error ("wavwrite: Y must have at least one column"); |
66 endif | |
15529
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
67 if (channels > 0x7FFF) |
6304 | 68 error ("wavwrite: Y has more than 32767 columns (too many for a WAV-file)"); |
69 endif | |
70 | |
5567 | 71 ## determine sample format |
72 switch (bits_per_sample) | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
73 case 8 |
5572 | 74 format = "uint8"; |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
75 case 16 |
5565 | 76 format = "int16"; |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
77 case 32 |
5565 | 78 format = "int32"; |
79 otherwise | |
6304 | 80 error ("wavwrite: sample resolution not supported"); |
5565 | 81 endswitch |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
82 |
5567 | 83 ## size of data chunk |
84 ck_size = n*channels*(bits_per_sample/8); | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
85 |
5567 | 86 if (! ischar (filename)) |
11472
1740012184f9
Use uppercase for variable names in error() strings to match Info documentation. Only m-files done.
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
87 error ("wavwrite: expecting FILENAME to be a character string"); |
5567 | 88 endif |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
89 |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
90 ## open file for writing binary |
5565 | 91 [fid, msg] = fopen (filename, "wb"); |
92 if (fid < 0) | |
8664 | 93 error ("wavwrite: %s", msg); |
5565 | 94 endif |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
95 |
5567 | 96 ## write RIFF/WAVE header |
5565 | 97 c = 0; |
5567 | 98 c += fwrite (fid, "RIFF", "uchar"); |
99 | |
100 ## file size - 8 | |
6304 | 101 c += fwrite (fid, ck_size + 36, "uint32", 0, BYTEORDER); |
5567 | 102 c += fwrite (fid, "WAVEfmt ", "uchar"); |
103 | |
104 ## size of fmt chunk | |
6304 | 105 c += fwrite (fid, 16, "uint32", 0, BYTEORDER); |
5567 | 106 |
107 ## sample format code (PCM) | |
6304 | 108 c += fwrite (fid, 1, "uint16", 0, BYTEORDER); |
5567 | 109 |
110 ## channels | |
6304 | 111 c += fwrite (fid, channels, "uint16", 0, BYTEORDER); |
5567 | 112 |
113 ## sample rate | |
6304 | 114 c += fwrite (fid, samples_per_sec, "uint32", 0, BYTEORDER); |
5567 | 115 |
116 ## bytes per second | |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
117 byteps = samples_per_sec*channels*bits_per_sample/8; |
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
118 c += fwrite (fid, byteps, "uint32", 0, BYTEORDER); |
5567 | 119 |
120 ## block align | |
6304 | 121 c += fwrite (fid, channels*bits_per_sample/8, "uint16", 0, BYTEORDER); |
5567 | 122 |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
123 c += fwrite (fid, bits_per_sample, "uint16", 0, BYTEORDER); |
5567 | 124 c += fwrite (fid, "data", "uchar"); |
6304 | 125 c += fwrite (fid, ck_size, "uint32", 0, BYTEORDER); |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
126 |
5565 | 127 if (c < 25) |
128 fclose (fid); | |
6304 | 129 error ("wavwrite: writing to file failed"); |
5565 | 130 endif |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
131 |
5572 | 132 ## interleave samples |
133 yi = reshape (y', n*channels, 1); | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
134 |
5567 | 135 ## scale samples |
136 switch (bits_per_sample) | |
5565 | 137 case 8 |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
138 yi = round (yi*128 + 128); |
5572 | 139 case 16 |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
140 yi = round (yi*32768); |
5572 | 141 case 32 |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
142 yi = round (yi*2147483648); |
5565 | 143 endswitch |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
144 |
5567 | 145 ## write to file |
5565 | 146 c = fwrite (fid, yi, format, 0, BYTEORDER); |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
147 |
5565 | 148 fclose (fid); |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
149 |
5565 | 150 endfunction |
6304 | 151 |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
152 |
13764
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
153 %!shared fname |
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
154 %! fname = tmpnam (); |
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
155 |
6304 | 156 %!test |
17201
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
157 %! A = [-1:0.1:1; -1:0.1:1]'; |
13764
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
158 %! wavwrite (A, fname); |
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
159 %! [B, samples_per_sec, bits_per_sample] = wavread (fname); |
16974
221e71d2aef0
Unlink tmp files in %!tests before doing asserts so that file is always removed.
Rik <rik@octave.org>
parents:
15529
diff
changeset
|
160 %! unlink (fname); |
13764
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
161 %! assert (A,B, 1/2^15); |
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
162 %! assert (samples_per_sec, 8000); |
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
163 %! assert (bits_per_sample, 16); |
16974
221e71d2aef0
Unlink tmp files in %!tests before doing asserts so that file is always removed.
Rik <rik@octave.org>
parents:
15529
diff
changeset
|
164 |
6304 | 165 %!test |
17201
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
166 %! A = [-1:0.1:1; -1:0.1:1]'; |
13764
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
167 %! wavwrite (A, 4000, fname); |
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
168 %! [B, samples_per_sec, bits_per_sample] = wavread (fname); |
16974
221e71d2aef0
Unlink tmp files in %!tests before doing asserts so that file is always removed.
Rik <rik@octave.org>
parents:
15529
diff
changeset
|
169 %! unlink (fname); |
13764
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
170 %! assert (A,B, 1/2^15); |
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
171 %! assert (samples_per_sec, 4000); |
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
172 %! assert (bits_per_sample, 16); |
16974
221e71d2aef0
Unlink tmp files in %!tests before doing asserts so that file is always removed.
Rik <rik@octave.org>
parents:
15529
diff
changeset
|
173 |
6304 | 174 %!test |
17201
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
175 %! A = [-1:0.1:1; -1:0.1:1]'; |
13764
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
176 %! wavwrite (A, 4000, 8, fname); |
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
177 %! [B, samples_per_sec, bits_per_sample] = wavread (fname); |
16974
221e71d2aef0
Unlink tmp files in %!tests before doing asserts so that file is always removed.
Rik <rik@octave.org>
parents:
15529
diff
changeset
|
178 %! unlink (fname); |
13764
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
179 %! assert (A,B, 1/128); |
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
180 %! assert (samples_per_sec, 4000); |
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
181 %! assert (bits_per_sample, 8); |
16974
221e71d2aef0
Unlink tmp files in %!tests before doing asserts so that file is always removed.
Rik <rik@octave.org>
parents:
15529
diff
changeset
|
182 |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
183 %!test |
15529
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
184 %! A = [-2:2]'; |
13764
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
185 %! wavwrite (A, fname); |
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
186 %! B = wavread (fname); |
16974
221e71d2aef0
Unlink tmp files in %!tests before doing asserts so that file is always removed.
Rik <rik@octave.org>
parents:
15529
diff
changeset
|
187 %! unlink (fname); |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
188 %! B *= 32768; |
15529
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
189 %! assert (B, [-32768 -32768 0 32767 32767]'); |
16974
221e71d2aef0
Unlink tmp files in %!tests before doing asserts so that file is always removed.
Rik <rik@octave.org>
parents:
15529
diff
changeset
|
190 |
15529
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
191 %!test |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
192 %! A = [-1:0.1:1]; |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
193 %! wavwrite (A, fname); |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
194 %! [B, samples_per_sec, bits_per_sample] = wavread (fname); |
16974
221e71d2aef0
Unlink tmp files in %!tests before doing asserts so that file is always removed.
Rik <rik@octave.org>
parents:
15529
diff
changeset
|
195 %! unlink (fname); |
15529
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
196 %! assert (A', B, 1/2^15); |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
197 %! assert (samples_per_sec, 8000); |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
198 %! assert (bits_per_sample, 16); |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
199 |
17201
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
200 %!test |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
201 %! A = [-1:0.1:1; -1:0.1:1]'; |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
202 %! wavwrite (A, fname); |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
203 %! B = wavread (fname, 15); |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
204 %! unlink (fname); |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
205 %! assert (A(1:15,:) ,B, 1/2^15); |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
206 %! wavwrite (A, fname); |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
207 %! B = wavread (fname, [10, 20]); |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
208 %! unlink (fname); |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
209 %! assert (A(10:20,:) ,B, 1/2^15); |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
210 |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
211 %!test |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
212 %! A = [-1:0.1:1; -1:0.1:1]'; |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
213 %! wavwrite (A, fname); |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
214 %! [nsamp, nchan] = wavread (fname, "size"); |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
215 %! unlink (fname); |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
216 %! assert (nsamp, 21); |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
217 %! assert (nchan, 2); |
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
218 |