Mercurial > octave-nkf
annotate scripts/audio/wavwrite.m @ 19848:71770cf07c30
wavread, wavwrite: Overhaul functions.
* wavread.m, wavwrite.m: Rewrite as wrappers around the new audioread
and audiowrite functions. Redo docstrings and add seealso links to
audioread and audiowrite. Improve input validation. Fix %!tests and
make conditional on HAVE_SNDFILE.
author | Mike Miller <mtmiller@ieee.org> |
---|---|
date | Sat, 21 Feb 2015 11:58:20 -0500 |
parents | 4197fc428c7d |
children | 9fc020886ae9 |
rev | line source |
---|---|
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
1 ## Copyright (C) 2015 Mike Miller |
19731
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19312
diff
changeset
|
2 ## Copyright (C) 2005-2015 Michael Zeising |
5565 | 3 ## |
4 ## This file is part of Octave. | |
5 ## | |
6 ## Octave is free software; you can redistribute it and/or modify it | |
7 ## under the terms of the GNU General Public License as published by | |
7016 | 8 ## the Free Software Foundation; either version 3 of the License, or (at |
9 ## your option) any later version. | |
5565 | 10 ## |
11 ## Octave is distributed in the hope that it will be useful, but | |
12 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 ## General Public License for more details. | |
15 ## | |
16 ## You should have received a copy of the GNU General Public License | |
7016 | 17 ## along with Octave; see the file COPYING. If not, see |
18 ## <http://www.gnu.org/licenses/>. | |
5565 | 19 |
20 ## -*- texinfo -*- | |
10793
be55736a0783
Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
21 ## @deftypefn {Function File} {} wavwrite (@var{y}, @var{filename}) |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
22 ## @deftypefnx {Function File} {} wavwrite (@var{y}, @var{fs}, @var{filename}) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
23 ## @deftypefnx {Function File} {} wavwrite (@var{y}, @var{fs}, @var{nbits}, @var{filename}) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
24 ## Write the audio signal @var{y} to the RIFF/WAVE sound file @var{filename}. |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
25 ## If @var{y} is a matrix, the columns represent multiple audio channels. |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
26 ## |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
27 ## The optional argument @var{fs} specifies the sample rate of the audio signal |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
28 ## in Hz. The optional argument @var{nbits} specifies the number of bits per |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
29 ## sample to write to @var{filename}. The default sample rate is 8000 Hz and |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
30 ## the default bit depth is 16 bits per sample. |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
31 ## |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
32 ## @seealso{audioread, audiowrite, wavread} |
5565 | 33 ## @end deftypefn |
34 | |
6985 | 35 function wavwrite (y, varargin) |
5567 | 36 |
37 if (nargin < 2 || nargin > 4) | |
6046 | 38 print_usage (); |
5565 | 39 endif |
5567 | 40 |
6985 | 41 ## Defaults. |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
42 fs = 8000; |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
43 nbits = 16; |
6985 | 44 |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
45 filename = varargin{end}; |
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
46 if (nargin > 2) |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
47 fs = varargin{1}; |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
48 if (nargin > 3) |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
49 nbits = varargin{2}; |
6985 | 50 endif |
51 endif | |
52 | |
15529
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
53 ## calculate filesize |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
54 [n, channels] = size (y); |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
55 |
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
56 ## 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
|
57 if (n == 1) |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
58 y = y(:); |
15529
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 | |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
67 |
15529
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
68 if (channels > 0x7FFF) |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
69 error ("wavwrite: Y must have no more than 32767 columns"); |
5565 | 70 endif |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
71 |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
72 if (! (isscalar (fs) && (fs > 0))) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
73 error ("wavwrite: sample rate FS must be a positive number"); |
5565 | 74 endif |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
75 |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
76 if (! isscalar (nbits) || isempty (find (nbits == [8, 16, 24, 32]))) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
77 error ("wavwrite: bit depth NBITS must be 8, 16, 24, or 32"); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
78 endif |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
79 |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
80 audiowrite (filename, y, fs, "BitsPerSample", nbits); |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
81 |
5565 | 82 endfunction |
6304 | 83 |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
84 |
13764
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
85 %!shared fname |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
86 %! fname = [tempname() ".wav"]; |
13764
e9c23efe6fff
wavwrite.m: Use temporary filename in %!tests rather than hardcoded one.
Rik <octave@nomad.inbox5.com>
parents:
12701
diff
changeset
|
87 |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
88 %!testif HAVE_SNDFILE |
17193
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
89 %! A = [-1:0.1:1; -1:0.1:1]'; |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
90 %! unwind_protect |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
91 %! wavwrite (A, fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
92 %! [B, samples_per_sec, bits_per_sample] = wavread (fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
93 %! assert (B, A, 2^-14); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
94 %! assert (samples_per_sec, 8000); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
95 %! assert (bits_per_sample, 16); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
96 %! unwind_protect_cleanup |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
97 %! unlink (fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
98 %! end_unwind_protect |
16974
221e71d2aef0
Unlink tmp files in %!tests before doing asserts so that file is always removed.
Rik <rik@octave.org>
parents:
15529
diff
changeset
|
99 |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
100 %!testif HAVE_SNDFILE |
17193
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
101 %! A = [-1:0.1:1; -1:0.1:1]'; |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
102 %! unwind_protect |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
103 %! wavwrite (A, 4000, fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
104 %! [B, samples_per_sec, bits_per_sample] = wavread (fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
105 %! assert (B, A, 2^-14); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
106 %! assert (samples_per_sec, 4000); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
107 %! assert (bits_per_sample, 16); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
108 %! unwind_protect_cleanup |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
109 %! unlink (fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
110 %! end_unwind_protect |
16974
221e71d2aef0
Unlink tmp files in %!tests before doing asserts so that file is always removed.
Rik <rik@octave.org>
parents:
15529
diff
changeset
|
111 |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
112 %!testif HAVE_SNDFILE |
17193
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
113 %! A = [-1:0.1:1; -1:0.1:1]'; |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
114 %! unwind_protect |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
115 %! wavwrite (A, 4000, 8, fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
116 %! [B, samples_per_sec, bits_per_sample] = wavread (fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
117 %! assert (B, A, 2^-6); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
118 %! assert (samples_per_sec, 4000); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
119 %! assert (bits_per_sample, 8); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
120 %! unwind_protect_cleanup |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
121 %! unlink (fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
122 %! end_unwind_protect |
16974
221e71d2aef0
Unlink tmp files in %!tests before doing asserts so that file is always removed.
Rik <rik@octave.org>
parents:
15529
diff
changeset
|
123 |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
124 %!testif HAVE_SNDFILE |
15529
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
125 %! A = [-2:2]'; |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
126 %! unwind_protect |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
127 %! wavwrite (A, fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
128 %! B = wavread (fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
129 %! B *= 32768; |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
130 %! assert (B, [-32767 -32767 0 32767 32767]'); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
131 %! unwind_protect_cleanup |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
132 %! unlink (fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
133 %! end_unwind_protect |
16974
221e71d2aef0
Unlink tmp files in %!tests before doing asserts so that file is always removed.
Rik <rik@octave.org>
parents:
15529
diff
changeset
|
134 |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
135 %!testif HAVE_SNDFILE |
15529
9a7f73fc304f
Fix wavwrite to accept a row vector input (bug #37540)
Mike Miller <mtmiller@ieee.org>
parents:
14138
diff
changeset
|
136 %! A = [-1:0.1:1]; |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
137 %! unwind_protect |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
138 %! wavwrite (A, fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
139 %! [B, samples_per_sec, bits_per_sample] = wavread (fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
140 %! assert (B, A', 2^-14); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
141 %! assert (samples_per_sec, 8000); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
142 %! assert (bits_per_sample, 16); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
143 %! unwind_protect_cleanup |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
144 %! unlink (fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
145 %! end_unwind_protect |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
146 |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
147 %!testif HAVE_SNDFILE |
17193
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
148 %! A = [-1:0.1:1; -1:0.1:1]'; |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
149 %! unwind_protect |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
150 %! wavwrite (A, fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
151 %! B = wavread (fname, 15); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
152 %! assert (B, A(1:15,:), 2^-14); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
153 %! wavwrite (A, fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
154 %! B = wavread (fname, [10, 20]); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
155 %! assert (B, A(10:20,:), 2^-14); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
156 %! unwind_protect_cleanup |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
157 %! unlink (fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
158 %! end_unwind_protect |
17193
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
159 |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
160 %!testif HAVE_SNDFILE |
17193
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
161 %! A = [-1:0.1:1; -1:0.1:1]'; |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
162 %! unwind_protect |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
163 %! wavwrite (A, fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
164 %! [nsamp, nchan] = wavread (fname, "size"); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
165 %! assert (nsamp, 21); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
166 %! assert (nchan, 2); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
167 %! unwind_protect_cleanup |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
168 %! unlink (fname); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
169 %! end_unwind_protect |
17193
af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
Rik <rik@octave.org>
parents:
16974
diff
changeset
|
170 |
19848
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
171 %% Test input validation |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
172 %!error wavwrite () |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
173 %!error wavwrite (1) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
174 %!error wavwrite (1,2,3,4,5) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
175 %!error wavwrite ([], "foo.wav"); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19731
diff
changeset
|
176 |