Scale data and play as sound



soundsc(y) scales the values of audio signal y to fit in the range from –1.0 to 1.0, and then sends the data to the speaker at the default sample rate of 8192 hertz. By first scaling the data, soundsc plays the audio as loudly as possible without clipping. The mean of the dynamic range of the data is set to zero.


soundsc(y,Fs) sends audio signal y to the speaker at sample rate Fs.


soundsc(y,Fs,nBits) uses nBits bits per sample for audio signal y.


soundsc(___,yRange), where yRange is a vector of the form [low,high], linearly scales the values in y between low and high to the full sound range [-1.0,1.0]. Values outside [low,high] scale beyond [-1.0,1.0]. You can use yRange with any of the input arguments in the previous syntaxes.


collapse all

Load the example file gong.mat, which contains sample data y and rate Fs, and listen to the audio.

load gong.mat;

Play an excerpt from Handel's "Hallelujah Chorus" at twice the recorded sample rate.

load handel.mat;
soundsc(y, 2*Fs);
load handel.mat;
nBits = 16;

MATLAB® plays the scaled audio with a bit depth of 16 bits per sample.

load handel.mat;
yRange = [-0.7,0.7];

Input Arguments

collapse all

Audio data, specified as an m-by-1 column vector for single-channel (mono) audio, or an m-by-2 matrix for stereo playback, where m is the number of audio samples. If y is an m-by-2 matrix, then the first column corresponds to the left channel, and the second column corresponds to the right channel. Stereo playback is available only if your system supports it.

Data Types: double

Sample rate, in hertz, of audio data y, is specified as a positive number from 1000 through 384000. Valid values depend on both the sample rates permitted by MATLAB® and the specific audio hardware on your system. MATLAB has a hard restriction of 1000 Hz <= Fs <= 384000 Hz, although further hardware-dependent restrictions apply.

Data Types: single | double

Bit depth of the sample values, specified as an integer. Valid values depend on the audio hardware installed. Most platforms support bit depths of 8 bits or 16 bits.

Range of audio data to scale, specified as a two-element vector of the form [low,high], where low and high are the lower and upper limits of the range. Values in y that are scaled beyond [-1.0, 1.0] are clipped when played back on a sound device.

Example: [-0.8,0.8]

Data Types: double


  • The sound function supports sound devices on all Windows® and most UNIX® platforms.

  • Most sound cards support sample rates between 5 and 48 kilohertz. Specifying a sample rate outside this range might produce unexpected results.

Introduced before R2006a