Mercurial > hg > octave-nkf
annotate scripts/deprecated/wavread.m @ 20815:a260a6acb70f
fix test failures introduced by a22d8a2eb0e5
* scripts/ode/private/integrate_adaptive.m: fix stepping backwards, fix
invocation of OutputFcn, fix text of some error messages
* scripts/ode/private/integrate_const.m: remove use of option OutputSave
* scripts/ode/private/integrate_n_steps.m: remove use of option OutputSave
author | Carlo de Falco <carlo.defalco@polimi.it> |
---|---|
date | Sun, 11 Oct 2015 23:09:01 +0200 |
parents | c8ec0b72b7a6 |
children |
rev | line source |
---|---|
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
1 ## Copyright (C) 2015 Mike Miller |
19898
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19790
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 -*- | |
16491
b10a23fe80bb
doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents:
16489
diff
changeset
|
21 ## @deftypefn {Function File} {@var{y} =} wavread (@var{filename}) |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
22 ## @deftypefnx {Function File} {[@var{y}, @var{fs}, @var{nbits}] =} wavread (@var{filename}) |
16489
36dba9be680b
doc: Make documentation compatible with Texinfo 5.0 (bug #38392)
Amod Mulay <amodmulay1@gmail.com>
parents:
15530
diff
changeset
|
23 ## @deftypefnx {Function File} {[@dots{}] =} wavread (@var{filename}, @var{n}) |
16491
b10a23fe80bb
doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents:
16489
diff
changeset
|
24 ## @deftypefnx {Function File} {[@dots{}] =} wavread (@var{filename}, [@var{n1} @var{n2}]) |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
25 ## @deftypefnx {Function File} {[@dots{}] =} wavread (@dots{}, @var{datatype}) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
26 ## @deftypefnx {Function File} {@var{sz} =} wavread (@var{filename}, "size") |
20368
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
20038
diff
changeset
|
27 ## @deftypefnx {Function File} {[@var{n_samp}, @var{n_chan}] =} wavread (@var{filename}, "size") |
20694 | 28 ## |
29 ## @code{wavread} is deprecated and will be removed in Octave version 4.6. | |
30 ## Use @code{audioread} for the equivalent functionality. | |
31 ## | |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
32 ## Read the audio signal @var{y} from the RIFF/WAVE sound file @var{filename}. |
20368
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
20038
diff
changeset
|
33 ## |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
34 ## If the file contains multichannel data, then @var{y} is a matrix with the |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
35 ## channels represented as columns. |
19790
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
36 ## |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
37 ## If @var{n} is specified, only the first @var{n} samples of the file are |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
38 ## returned. If [@var{n1} @var{n2}] is specified, only the range of samples |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
39 ## from @var{n1} to @var{n2} is returned. A value of @code{Inf} can be used |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
40 ## to represent the total number of samples in the file. |
16491
b10a23fe80bb
doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents:
16489
diff
changeset
|
41 ## |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
42 ## If the option @qcode{"size"} is given, then the size of the audio signal |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
43 ## is returned instead of the data. The size is returned in a row vector of |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
44 ## the form [@var{samples} @var{channels}]. If there are two output arguments, |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
45 ## the number of samples is assigned to the first and the number of channels |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
46 ## is assigned to the second. |
20368
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
20038
diff
changeset
|
47 ## |
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
20038
diff
changeset
|
48 ## The optional return value @var{fs} is the sample rate of the audio file in |
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
20038
diff
changeset
|
49 ## Hz. The optional return value @var{nbits} is the number of bits per sample |
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
20038
diff
changeset
|
50 ## as encoded in the file. |
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
20038
diff
changeset
|
51 ## |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
52 ## @seealso{audioread, audiowrite, wavwrite} |
5565 | 53 ## @end deftypefn |
54 | |
20694 | 55 ## Deprecated in 4.2 |
56 | |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
57 function [y, fs, nbits] = wavread (filename, varargin) |
5567 | 58 |
20694 | 59 persistent warned = false; |
60 if (! warned) | |
61 warned = true; | |
62 warning ("Octave:deprecated-function", | |
63 "wavread is obsolete and will be removed from a future version of Octave, please use audioread instead"); | |
64 endif | |
65 | |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
66 if (nargin < 1 || nargin > 3) |
6046 | 67 print_usage (); |
5567 | 68 endif |
69 | |
70 if (! ischar (filename)) | |
10738
a4b8364e04c7
wavread.m: Correctly handle non-word aligned chunks (bug #30309).
Rik <octave@nomad.inbox5.com>
parents:
10635
diff
changeset
|
71 error ("wavread: FILENAME must be a character string"); |
5567 | 72 endif |
73 | |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
74 datatype = "double"; |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
75 samples = [1, Inf]; |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
76 do_file_size = false; |
5567 | 77 |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
78 if (nargin == 3) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
79 samples = varargin{1}; |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
80 datatype = varargin{2}; |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
81 elseif (nargin == 2) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
82 if (strcmp (varargin{1}, "size")) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
83 do_file_size = true; |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
84 elseif (ischar (varargin{1})) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
85 datatype = varargin{1}; |
13003
74c5fa5cef47
use unwind_protect to ensure wavread closes file.
John W. Eaton <jwe@octave.org>
parents:
13001
diff
changeset
|
86 else |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
87 samples = varargin{1}; |
13003
74c5fa5cef47
use unwind_protect to ensure wavread closes file.
John W. Eaton <jwe@octave.org>
parents:
13001
diff
changeset
|
88 endif |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
89 endif |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11563
diff
changeset
|
90 |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
91 if (isscalar (samples)) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
92 samples = [1, samples]; |
6304 | 93 endif |
94 | |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
95 if (! (isrow (samples) && numel (samples) == 2 && all (samples > 0) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
96 && all (fix (samples) == samples))) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
97 error ("wavread: SAMPLES must be a 1- or 2-element integer row vector"); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
98 endif |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
99 |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
100 if (! (ischar (datatype) && any (strcmp (datatype, {"double", "native"})))) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
101 error ('wavread: DATATYPE must be either "double" or "native"'); |
7151 | 102 endif |
103 | |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
104 info = audioinfo (filename); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
105 |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
106 if (do_file_size) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
107 if (nargout > 1) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
108 [y, fs] = deal (info.TotalSamples, info.NumChannels); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
109 else |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
110 y = [info.TotalSamples, info.NumChannels]; |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
111 endif |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
112 else |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
113 [y, fs] = audioread (filename, samples, datatype); |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
114 nbits = info.BitsPerSample; |
5565 | 115 endif |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11563
diff
changeset
|
116 |
5565 | 117 endfunction |
8796
9662dfb26652
wavread.m: improve search for data chunks
Frederick Umminger <Frederick_Umminger@playstation.sony.com>
parents:
8506
diff
changeset
|
118 |
9662dfb26652
wavread.m: improve search for data chunks
Frederick Umminger <Frederick_Umminger@playstation.sony.com>
parents:
8506
diff
changeset
|
119 |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
120 ## Functional tests for wavread/wavwrite pair are in wavwrite.m. |
8796
9662dfb26652
wavread.m: improve search for data chunks
Frederick Umminger <Frederick_Umminger@playstation.sony.com>
parents:
8506
diff
changeset
|
121 |
20038
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
20019
diff
changeset
|
122 ## Test input validation |
20019
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
123 %!error wavread () |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
124 %!error wavread (1) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
125 %!error wavread ("foo.wav", 2, 3, 4) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
126 %!error wavread ("foo.wav", "foo") |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
127 %!error wavread ("foo.wav", -1) |
71770cf07c30
wavread, wavwrite: Overhaul functions.
Mike Miller <mtmiller@ieee.org>
parents:
19898
diff
changeset
|
128 %!error wavread ("foo.wav", [1, Inf], "foo"); |
12701
de3e90a420e3
Overhaul wavwrite, wavread and fix normalization problem (Bug #33420).
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
129 |