Octave provides a few functions for dealing with audio data. An audio `sample' is a single output value from an A/D converter, i.e., a small integer number (usually 8 or 16 bits), and audio data is just a series of such samples. It can be characterized by three parameters: the sampling rate (measured in samples per second or Hz, e.g. 8000 or 44100), the number of bits per sample (e.g. 8 or 16), and the number of channels (1 for mono, 2 for stereo, etc.).
There are many different formats for representing such data. Currently,
only the two most popular, linear encoding and mu-law
encoding, are supported by Octave. There is an excellent FAQ on audio
formats by Guido van Rossum <guido@cwi.nl> which can be found at any
FAQ ftp site, in particular in the directory
`/pub/usenet/news.answers/audio-fmts' of the archive site
rtfm.mit.edu
.
Octave simply treats audio data as vectors of samples (non-mono data are not supported yet). It is assumed that audio files using linear encoding have one of the extensions `lin' or `raw', and that files holding data in mu-law encoding end in `au', `mu', or `snd'.
lin2mu (x)
is the corresponding mu-law
encoding.
mu2lin
converts it to linear encoding. The optional argument
bps specifies whether the input data uses 8 bit per sample
(default) or 16 bit.
The extension ext determines how the data in the audio file is interpreted; the extensions `lin' (default) and `raw' correspond to linear, the extensions `au', `mu', or `snd' to mu-law encoding.
The argument bps can be either 8 (default) or 16, and specifies the number of bits per sample used in the audio file.
loadaudio
); defaults are `lin' and
8, respectively.
The following functions for audio I/O require special A/D hardware and operating system support. It is assumed that audio data in linear encoding can be played and recorded by reading from and writing to `/dev/dsp', and that similarly `/dev/audio' is used for mu-law encoding. These file names are system-dependent. Improvements so that these functions will work without modification on a wide variety of hardware are welcome.
For example, if vol
corresponds to the volume property, you can
set it to 50 (percent) by setaudio ("vol", 50)
.
This is an simple experimental program to control the audio hardware
settings. It assumes that there is a mixer
program which can be
used as mixer type value
, and simply executes
system ("mixer type value")
. Future releases might
get rid of this assumption by using the fcntl
interface.
Go to the first, previous, next, last section, table of contents.