Mercurial > octave
changeset 30568:82b685157e2b
doc: Update documentation in audio/ directory.
* __get_properties__.m, audioplayer.m, disp.m, get.m, isplaying.m, pause.m,
play.m, playblocking.m, resume.m, set.m, stop.m, subsasgn.m, subsref.m,
__get_properties__.m, audiorecorder.m, disp.m, get.m, getaudiodata.m,
getplayer.m, isrecording.m, pause.m, play.m, record.m, recordblocking.m,
resume.m, set.m, stop.m, subsasgn.m, subsref.m, record.m, sound.m, soundsc.m:
Re-write lots of documentation for clarity. Add @seealso links in @audioplayer
and @audiorecorder classes.
line wrap: on
line diff
--- a/scripts/audio/@audioplayer/__get_properties__.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audioplayer/__get_properties__.m Wed Dec 29 18:17:53 2021 -0800 @@ -27,6 +27,7 @@ ## @deftypefn {} {@var{props} =} __get_properties__ (@var{player}) ## Return a struct containing all named properties of the audioplayer object ## @var{player}. +## @seealso{@audioplayer/get, @audioplayer/set, @audioplayer/audioplayer} ## @end deftypefn function props = __get_properties__ (player)
--- a/scripts/audio/@audioplayer/audioplayer.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audioplayer/audioplayer.m Wed Dec 29 18:17:53 2021 -0800 @@ -32,16 +32,35 @@ ## Create an audioplayer object that will play back data @var{y} at sample ## rate @var{fs}. ## -## The optional arguments @var{nbits}, and @var{id} specify the bit depth and -## player device id, respectively. Device IDs may be found using the -## audiodevinfo function. Given an audioplayer object, use the data from the -## object to initialize the player. +## The signal @var{y} can be a vector (mono audio) or a two-dimensional array +## (multi-channel audio). +## +## The optional arguments @var{nbits} and @var{id} specify the number of bits +## per sample and player device ID, respectively. Device IDs may be found +## using the @code{audiodevinfo} function. +## +## Given an audiorecorder object @var{recorder}, use the data from the object +## to initialize the player. +## +## The list of actions for an audioplayer object are shown below. All +## methods require an audioplayer object as the first argument. ## -## The signal @var{y} can be a vector or a two-dimensional array. +## @multitable @columnfractions 0.2 0.75 +## @headitem Method @tab Description +## @item get @tab Read audioplayer property values +## @item isplaying @tab Return true if audioplayer is playing +## @item pause @tab Pause audioplayer playback +## @item play @tab Play audio stored in audioplayer object w/o blocking +## @item playblocking @tab Play audio stored in audioplayer object +## @item resume @tab Resume playback after pause +## @item set @tab Write audioplayer property values +## @item stop @tab Stop playback +## @end multitable ## -## The following example will create an audioplayer object that will play -## back one second of white noise at 44100 sample rate using 8 bits per -## sample. +## Example +## +## Create an audioplayer object that will play back one second of white noise +## at 44100 sample rate using 8 bits per sample. ## ## @example ## @group @@ -50,8 +69,13 @@ ## play (player); ## @end group ## @end example +## @seealso{@audioplayer/get, @audioplayer/isplaying, @audioplayer/pause, +## @audioplayer/play, @audioplayer/playblocking, @audioplayer/resume, +## @audioplayer/set, @audioplayer/stop, audiodevinfo, +## @audiorecorder/audiorecorder, sound, soundsc} ## @end deftypefn +################################################################################ ## FIXME: callbacks don't work properly, apparently because portaudio ## will execute the callbacks in a separate thread, and calling Octave ## functions in a separate thread which is likely to cause trouble with @@ -85,6 +109,7 @@ ## # play for as long as you want ## stop (player); ## @end group +################################################################################ function player = audioplayer (varargin)
--- a/scripts/audio/@audioplayer/disp.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audioplayer/disp.m Wed Dec 29 18:17:53 2021 -0800 @@ -26,6 +26,7 @@ ## -*- texinfo -*- ## @deftypefn {} {} disp (@var{player}) ## Display the properties of the audioplayer object @var{player}. +## @seealso{@audioplayer/audioplayer} ## @end deftypefn function disp (player)
--- a/scripts/audio/@audioplayer/get.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audioplayer/get.m Wed Dec 29 18:17:53 2021 -0800 @@ -25,14 +25,16 @@ ## -*- texinfo -*- ## @deftypefn {} {@var{value} =} get (@var{player}, @var{name}) +## @deftypefnx {} {@var{values} =} get (@var{player}, @lbracechar{}@var{name1}, @var{name2}, @dots{}@rbracechar{}) ## @deftypefnx {} {@var{values} =} get (@var{player}) ## Return the @var{value} of the property identified by @var{name}. ## ## If @var{name} is a cell array return the values of the properties ## identified by the elements of the cell array. Given only the player -## object, return a scalar structure with values of all properties of -## @var{player}. The field names of the structure correspond to property +## object, return a scalar structure with values for all properties of +## @var{player}. The field names of the structure correspond to the property ## names. +## @seealso{@audioplayer/set, @audioplayer/audioplayer} ## @end deftypefn function retval = get (varargin)
--- a/scripts/audio/@audioplayer/isplaying.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audioplayer/isplaying.m Wed Dec 29 18:17:53 2021 -0800 @@ -27,6 +27,7 @@ ## @deftypefn {} {@var{tf} =} isplaying (@var{player}) ## Return true if the audioplayer object @var{player} is currently playing back ## audio and false otherwise. +## @seealso{@audioplayer/pause, @audioplayer/audioplayer} ## @end deftypefn function tf = isplaying (player)
--- a/scripts/audio/@audioplayer/pause.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audioplayer/pause.m Wed Dec 29 18:17:53 2021 -0800 @@ -25,7 +25,8 @@ ## -*- texinfo -*- ## @deftypefn {} {} pause (@var{player}) -## Pause the audioplayer @var{player}. +## Pause playback of audioplayer @var{player}. +## @seealso{@audioplayer/resume, @audioplayer/stop, @audioplayer/audioplayer} ## @end deftypefn function pause (player)
--- a/scripts/audio/@audioplayer/play.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audioplayer/play.m Wed Dec 29 18:17:53 2021 -0800 @@ -26,12 +26,16 @@ ## -*- texinfo -*- ## @deftypefn {} {} play (@var{player}) ## @deftypefnx {} {} play (@var{player}, @var{start}) -## @deftypefnx {} {} play (@var{player}, @var{limits}) +## @deftypefnx {} {} play (@var{player}, [@var{start}, @var{end}]) ## Play audio stored in the audioplayer object @var{player} without blocking. ## -## Given optional argument start, begin playing at @var{start} samples in the -## recording. Given a two-element vector @var{limits}, begin and end playing -## at the number of samples specified by the elements of the vector. +## If the optional argument @var{start} is provided, begin playing +## @var{start} samples in to the recording. +## +## If the optional argument @var{end} is provided, stop playing at +## @var{end} samples into the recording. +## @seealso{@audioplayer/playblocking, @audioplayer/pause, @audioplayer/stop, +## @audioplayer/audioplayer} ## @end deftypefn function play (varargin)
--- a/scripts/audio/@audioplayer/playblocking.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audioplayer/playblocking.m Wed Dec 29 18:17:53 2021 -0800 @@ -26,12 +26,17 @@ ## -*- texinfo -*- ## @deftypefn {} {} playblocking (@var{player}) ## @deftypefnx {} {} playblocking (@var{player}, @var{start}) -## @deftypefnx {} {} playblocking (@var{player}, @var{limits}) -## Play audio stored in the audioplayer object @var{player} with blocking. +## @deftypefnx {} {} playblocking (@var{player}, [@var{start}, @var{end}]) +## Play audio stored in the audioplayer object @var{player} with blocking +## (synchronous I/O). ## -## Given optional argument start, begin playing at @var{start} samples in the -## recording. Given a two-element vector @var{limits}, begin and end playing -## at the number of samples specified by the elements of the vector. +## If the optional argument @var{start} is provided, begin playing +## @var{start} samples in to the recording. +## +## If the optional argument @var{end} is provided, stop playing at +## @var{end} samples into the recording. +## @seealso{@audioplayer/play, @audioplayer/pause, @audioplayer/stop, +## @audioplayer/audioplayer} ## @end deftypefn function playblocking (varargin)
--- a/scripts/audio/@audioplayer/resume.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audioplayer/resume.m Wed Dec 29 18:17:53 2021 -0800 @@ -26,6 +26,7 @@ ## -*- texinfo -*- ## @deftypefn {} {} resume (@var{player}) ## Resume playback for the paused audioplayer object @var{player}. +## @seealso{@audioplayer/pause, @audioplayer/stop, @audioplayer/audioplayer} ## @end deftypefn function resume (player)
--- a/scripts/audio/@audioplayer/set.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audioplayer/set.m Wed Dec 29 18:17:53 2021 -0800 @@ -25,15 +25,17 @@ ## -*- texinfo -*- ## @deftypefn {} {} set (@var{player}, @var{name}, @var{value}) -## @deftypefnx {} {} set (@var{player}, @var{properties}) +## @deftypefnx {} {} set (@var{player}, @var{name_cell}, @var{value_cell}) +## @deftypefnx {} {} set (@var{player}, @var{properties_struct}) ## @deftypefnx {} {@var{properties} =} set (@var{player}) ## Set the value of property specified by @var{name} to a given @var{value}. ## ## If @var{name} and @var{value} are cell arrays, set each property to the -## corresponding value. Given a structure of @var{properties} with fields +## corresponding value. Given a structure of properties with fields ## corresponding to property names, set the value of those properties to the -## field values. Given only the audioplayer object, return a structure of -## configurable properties (i.e., writeable properties). +## corresponding field values. Given only an audioplayer object, return a +## structure of configurable properties (i.e., writeable properties). +## @seealso{@audioplayer/get, @audioplayer/audioplayer} ## @end deftypefn function properties = set (varargin)
--- a/scripts/audio/@audioplayer/stop.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audioplayer/stop.m Wed Dec 29 18:17:53 2021 -0800 @@ -25,8 +25,9 @@ ## -*- texinfo -*- ## @deftypefn {} {} stop (@var{player}) -## Stop the playback for the audioplayer @var{player} and reset the -## relevant variables to their starting values. +## Stop playback of the audioplayer @var{player} and reset relevant variables +## to their initial values. +## @seealso{@audioplayer/pause, @audioplayer/resume, @audioplayer/audioplayer} ## @end deftypefn function stop (player)
--- a/scripts/audio/@audioplayer/subsasgn.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audioplayer/subsasgn.m Wed Dec 29 18:17:53 2021 -0800 @@ -28,6 +28,7 @@ ## Perform subscripted assignment on the audio player object @var{player}. ## ## Assign the value of @var{rhs} to the player property named by @var{idx}. +## @seealso{@audioplayer/audioplayer} ## @end deftypefn function value = subsasgn (player, idx, rhs)
--- a/scripts/audio/@audioplayer/subsref.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audioplayer/subsref.m Wed Dec 29 18:17:53 2021 -0800 @@ -28,6 +28,7 @@ ## Perform subscripted selection on the audio player object @var{player}. ## ## Return the player property value named by @var{idx}. +## @seealso{@audioplayer/audioplayer} ## @end deftypefn function value = subsref (player, idx)
--- a/scripts/audio/@audiorecorder/__get_properties__.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/__get_properties__.m Wed Dec 29 18:17:53 2021 -0800 @@ -27,6 +27,8 @@ ## @deftypefn {} {@var{props} =} __get_properties__ (@var{recorder}) ## Return a struct containing all named properties of the recorder object ## @var{recorder}. +## @seealso{@audiorecorder/get, @audiorecorder/set, +## @audiorecorder/audiorecorder} ## @end deftypefn function props = __get_properties__ (recorder)
--- a/scripts/audio/@audiorecorder/audiorecorder.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/audiorecorder.m Wed Dec 29 18:17:53 2021 -0800 @@ -25,25 +25,50 @@ ## -*- texinfo -*- ## @deftypefn {} {@var{recorder} =} audiorecorder () -## @deftypefnx {} {@var{recorder} =} audiorecorder (@var{fs}, @var{nbits}, @var{channels}) -## @deftypefnx {} {@var{recorder} =} audiorecorder (@var{fs}, @var{nbits}, @var{channels}, @var{id}) -## Create an audiorecorder object recording 8 bit mono audio at 8000 Hz +## @deftypefnx {} {@var{recorder} =} audiorecorder (@var{fs}, @var{nbits}, @var{nchannels}) +## @deftypefnx {} {@var{recorder} =} audiorecorder (@var{fs}, @var{nbits}, @var{nchannels}, @var{id}) +## Create an audiorecorder object recording 8-bit mono audio at 8000 Hz ## sample rate. ## -## The optional arguments @var{fs}, @var{nbits}, @var{channels}, and @var{id} -## specify the sample rate, bit depth, number of channels and recording -## device id, respectively. Device IDs may be found using the audiodevinfo -## function. +## The optional arguments @var{fs}, @var{nbits}, @var{nchannels}, and @var{id} +## specify the sample rate, number of bits per sample, number of channels, and +## recording device ID, respectively. Device IDs may be found using the +## @code{audiodevinfo} function. +## +## The list of actions for an audiorecorder object are shown below. All +## methods require an audiorecorder object as the first argument. +## +## @multitable @columnfractions 0.22 0.73 +## @headitem Method @tab Description +## @item get @tab Read audiorecorder property values +## @item getaudiodata @tab Return audio data as a numeric matrix +## @item getplayer @tab Return audioplayer loaded with data from audiorecorder +## @item isrecording @tab Return true if audiorecorder is recording +## @item pause @tab Pause recording +## @item play @tab Play audio stored in audiorecorder object +## @item record @tab Record audio in audiorecorder object w/o blocking +## @item recordblocking @tab Record audio in audiorecorder object +## @item resume @tab Resume recording after pause +## @item set @tab Write audiorecorder property values +## @item stop @tab Stop recording +## @end multitable ## @end deftypefn +## @seealso{@audiorecorder/get, @audiorecorder/getaudiodata, +## @audiorecorder/getplayer, @audiorecorder/isrecording, +## @audiorecorder/pause, @audiorecorder/play, @audiorecorder/record, +## @audiorecorder/recordblocking, @audioplayer/resume, @audiorecorder/set, +## @audiorecorder/stop, audiodevinfo, @audioplayer/audioplayer, record} +################################################################################ ## FIXME: callbacks don't work properly, apparently because portaudio ## will execute the callbacks in a separate thread, and calling Octave -## functions in a separate thread which is likely to cause trouble with +## functions in a separate thread is likely to cause trouble with ## all of Octave's global data... ## ## @deftypefnx {} {@var{recorder} =} audiorecorder (@var{function}, @dots{}) ## ## Given a function handle, use that function to process the audio. +################################################################################ function recorder = audiorecorder (varargin) @@ -97,11 +122,11 @@ %!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0 %! recorder = audiorecorder (); -%! settable = set (recorder); -%! settable.SampleRate = 8000; -%! settable.Tag = "tag"; -%! settable.UserData = [1, 2; 3, 4]; -%! set (recorder, settable); +%! props = set (recorder); +%! props.SampleRate = 8000; +%! props.Tag = "tag"; +%! props.UserData = [1, 2; 3, 4]; +%! set (recorder, props); %! assert (recorder.SampleRate, 8000); %! assert (recorder.Tag, "tag"); %! assert (recorder.UserData, [1, 2; 3, 4]);
--- a/scripts/audio/@audiorecorder/disp.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/disp.m Wed Dec 29 18:17:53 2021 -0800 @@ -26,6 +26,7 @@ ## -*- texinfo -*- ## @deftypefn {} {} disp (@var{recorder}) ## Display the properties of the audiorecorder object @var{recorder}. +## @seealso{@audiorecorder/audiorecorder} ## @end deftypefn function disp (recorder)
--- a/scripts/audio/@audiorecorder/get.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/get.m Wed Dec 29 18:17:53 2021 -0800 @@ -25,14 +25,16 @@ ## -*- texinfo -*- ## @deftypefn {} {@var{value} =} get (@var{recorder}, @var{name}) +## @deftypefnx {} {@var{values} =} get (@var{recorder}, @lbracechar{}@var{name1}, @var{name2}, @dots{}@rbracechar{}) ## @deftypefnx {} {@var{values} =} get (@var{recorder}) ## Return the @var{value} of the property identified by @var{name}. ## -## If @var{name} is a cell array, return the values of the properties -## corresponding to the elements of the cell array. Given only the recorder -## object, return a scalar structure with values of all properties of -## @var{recorder}. The field names of the structure correspond to property +## If @var{name} is a cell array return the values of the properties +## identified by the elements of the cell array. Given only the recorder +## object, return a scalar structure with values for all properties of +## @var{recorder}. The field names of the structure correspond to the property ## names. +## @seealso{@audiorecorder/set, @audiorecorder/audiorecorder} ## @end deftypefn function retval = get (varargin)
--- a/scripts/audio/@audiorecorder/getaudiodata.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/getaudiodata.m Wed Dec 29 18:17:53 2021 -0800 @@ -26,12 +26,14 @@ ## -*- texinfo -*- ## @deftypefn {} {@var{data} =} getaudiodata (@var{recorder}) ## @deftypefnx {} {@var{data} =} getaudiodata (@var{recorder}, @var{datatype}) -## Return recorder audio data as a matrix with values between -1.0 and 1.0 -## and with as many columns as there are channels in the recorder. +## Return audio data from audiorecorder object @var{recorder} as a double +## matrix with values between -1.0 and 1.0 and with as many columns as there +## are channels in @var{recorder}. ## ## Given the optional argument @var{datatype}, convert the recorded data ## to the specified type, which may be one of @qcode{"double"}, ## @qcode{"single"}, @qcode{"int16"}, @qcode{"int8"} or @qcode{"uint8"}. +## @seealso{@audiorecorder/audiorecorder} ## @end deftypefn function data = getaudiodata (varargin)
--- a/scripts/audio/@audiorecorder/getplayer.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/getplayer.m Wed Dec 29 18:17:53 2021 -0800 @@ -27,6 +27,7 @@ ## @deftypefn {} {@var{player} =} getplayer (@var{recorder}) ## Return an audioplayer object with data recorded by the audiorecorder object ## @var{recorder}. +## @seealso{@audioplayer/audioplayer, @audiorecorder/audiorecorder} ## @end deftypefn function player = getplayer (varargin)
--- a/scripts/audio/@audiorecorder/isrecording.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/isrecording.m Wed Dec 29 18:17:53 2021 -0800 @@ -27,6 +27,7 @@ ## @deftypefn {} {@var{tf} =} isrecording (@var{recorder}) ## Return true if the audiorecorder object @var{recorder} is currently ## recording audio and false otherwise. +## @seealso{@audiorecorder/pause, @audiorecorder/audiorecorder} ## @end deftypefn function tf = isrecording (recorder)
--- a/scripts/audio/@audiorecorder/pause.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/pause.m Wed Dec 29 18:17:53 2021 -0800 @@ -25,7 +25,9 @@ ## -*- texinfo -*- ## @deftypefn {} {} pause (@var{recorder}) -## Pause recording with audiorecorder object @var{recorder}. +## Pause recording for audiorecorder @var{recorder}. +## @seealso{@audiorecorder/resume, @audiorecorder/stop, +## @audiorecorder/audiorecorder} ## @end deftypefn function pause (recorder)
--- a/scripts/audio/@audiorecorder/play.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/play.m Wed Dec 29 18:17:53 2021 -0800 @@ -27,14 +27,16 @@ ## @deftypefn {} {@var{player} =} play (@var{recorder}) ## @deftypefnx {} {@var{player} =} play (@var{recorder}, @var{start}) ## @deftypefnx {} {@var{player} =} play (@var{recorder}, [@var{start}, @var{end}]) -## Play the audio recorded in @var{recorder} and return a corresponding -## audioplayer object. +## Play the audio recorded in @var{recorder} without blocking and return a +## corresponding audioplayer object. ## ## If the optional argument @var{start} is provided, begin playing -## @var{start} seconds in to the recording. +## @var{start} seconds into the recording. ## ## If the optional argument @var{end} is provided, stop playing at -## @var{end} seconds in the recording. +## @var{end} seconds into the recording. +## @seealso{@audiorecorder/getplayer, @audioplayer/audioplayer, +## @audiorecorder/audiorecorder} ## @end deftypefn function player = play (varargin)
--- a/scripts/audio/@audiorecorder/record.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/record.m Wed Dec 29 18:17:53 2021 -0800 @@ -27,10 +27,11 @@ ## @deftypefn {} {} record (@var{recorder}) ## @deftypefnx {} {} record (@var{recorder}, @var{length}) ## Record audio without blocking using the audiorecorder object -## @var{recorder} until stopped or paused by the @var{stop} or @var{pause} -## method. +## @var{recorder} until paused or stopped by the @var{pause} or @var{stop} +## methods. ## ## Given the optional argument @var{length}, record for @var{length} seconds. +## @seealso{@audiorecorder/recordblocking, @audiorecorder/audiorecorder} ## @end deftypefn function record (varargin)
--- a/scripts/audio/@audiorecorder/recordblocking.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/recordblocking.m Wed Dec 29 18:17:53 2021 -0800 @@ -28,6 +28,7 @@ ## Record audio with blocking (synchronous I/O). ## ## The length of the recording in seconds (@var{length}) must be specified. +## @seealso{@audiorecorder/record, @audiorecorder/audiorecorder} ## @end deftypefn function recordblocking (varargin)
--- a/scripts/audio/@audiorecorder/resume.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/resume.m Wed Dec 29 18:17:53 2021 -0800 @@ -26,6 +26,8 @@ ## -*- texinfo -*- ## @deftypefn {} {} resume (@var{recorder}) ## Resume recording with the paused audiorecorder object @var{recorder}. +## @seealso{@audiorecorder/pause, @audiorecorder/stop, +## @audiorecorder/audiorecorder} ## @end deftypefn function resume (recorder)
--- a/scripts/audio/@audiorecorder/set.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/set.m Wed Dec 29 18:17:53 2021 -0800 @@ -25,15 +25,17 @@ ## -*- texinfo -*- ## @deftypefn {} {} set (@var{recorder}, @var{name}, @var{value}) -## @deftypefnx {} {} set (@var{recorder}, @var{properties}) +## @deftypefnx {} {} set (@var{recorder}, @var{name_cell}, @var{value_cell}) +## @deftypefnx {} {} set (@var{recorder}, @var{properties_struct}) ## @deftypefnx {} {@var{properties} =} set (@var{recorder}) ## Set the value of property specified by @var{name} to a given @var{value}. ## -## If @var{name} and @var{value} are cell arrays of the same size, set each -## property to a corresponding value. Given a structure with fields +## If @var{name} and @var{value} are cell arrays, set each property to a +## corresponding value. Given a structure of properties with fields ## corresponding to property names, set the value of those properties to the -## corresponding field values. Given only the recorder object, return a -## configurable properties (i.e., writeable properties). +## corresponding field values. Given only a recorder object, return a +## structure of configurable properties (i.e., writeable properties). +## @seealso{@audiorecorder/get, @audiorecorder/audiorecorder} ## @end deftypefn function properties = set (varargin)
--- a/scripts/audio/@audiorecorder/stop.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/stop.m Wed Dec 29 18:17:53 2021 -0800 @@ -25,7 +25,10 @@ ## -*- texinfo -*- ## @deftypefn {} {} stop (@var{recorder}) -## Stop the audiorecorder object @var{recorder} and clean up any audio streams. +## Stop recording with audiorecorder object @var{recorder} and clean up any +## audio streams. +## @seealso{@audiorecorder/pause, @audiorecorder/resume, +## @audiorecorder/audiorecorder} ## @end deftypefn function stop (recorder)
--- a/scripts/audio/@audiorecorder/subsasgn.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/subsasgn.m Wed Dec 29 18:17:53 2021 -0800 @@ -28,6 +28,7 @@ ## Perform subscripted assignment on the audio recorder object @var{recorder}. ## ## Assign the value of @var{rhs} to the recorder property named by @var{idx}. +## @seealso{@audiorecorder/audiorecorder} ## @end deftypefn function value = subsasgn (recorder, idx, rhs)
--- a/scripts/audio/@audiorecorder/subsref.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/@audiorecorder/subsref.m Wed Dec 29 18:17:53 2021 -0800 @@ -28,6 +28,7 @@ ## Perform subscripted selection on the audio recorder object @var{recorder}. ## ## Return the recorder property value named by @var{idx}. +## @seealso{@audiorecorder/audiorecorder} ## @end deftypefn function value = subsref (recorder, idx)
--- a/scripts/audio/record.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/record.m Wed Dec 29 18:17:53 2021 -0800 @@ -33,7 +33,7 @@ ## for recording. ## ## For more control over audio recording, use the @code{audiorecorder} class. -## @seealso{sound, soundsc} +## @seealso{@audiorecorder/audiorecorder, sound, soundsc} ## @end deftypefn function x = record (sec, fs = 8000)
--- a/scripts/audio/sound.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/sound.m Wed Dec 29 18:17:53 2021 -0800 @@ -30,7 +30,7 @@ ## Play audio data @var{y} at sample rate @var{fs} to the default audio ## device. ## -## The audio signal @var{y} can be a vector or a two-column array, representing +## The audio signal @var{y} can be a vector or a two-column array representing ## mono or stereo audio, respectively. ## ## If @var{fs} is not given, a default sample rate of 8000 samples per second @@ -40,7 +40,7 @@ ## audio device and defaults to 8 bits. ## ## For more control over audio playback, use the @code{audioplayer} class. -## @seealso{soundsc, record} +## @seealso{soundsc, @audioplayer/audioplayer, record} ## @end deftypefn function sound (y, fs, nbits)
--- a/scripts/audio/soundsc.m Wed Dec 29 11:05:20 2021 -0800 +++ b/scripts/audio/soundsc.m Wed Dec 29 18:17:53 2021 -0800 @@ -31,7 +31,7 @@ ## Scale the audio data @var{y} and play it at sample rate @var{fs} to the ## default audio device. ## -## The audio signal @var{y} can be a vector or a two-column array, representing +## The audio signal @var{y} can be a vector or a two-column array representing ## mono or stereo audio, respectively. ## ## If @var{fs} is not given, a default sample rate of 8000 samples per second @@ -46,7 +46,7 @@ ## are scaled to the range [-1, 1] instead. ## ## For more control over audio playback, use the @code{audioplayer} class. -## @seealso{sound, record} +## @seealso{sound, @audioplayer/audioplayer, record} ## @end deftypefn function soundsc (y, fs, nbits, yrange)