scales audio data by the specified ratio or to the specified size
Scale(audArray, scale, options)
Array or Matrix containing the audio data to scale
scale factor or desired length of scaled audio
options modifying the scaling operation
The Scale command rescales audio data, producing a new audio object with the specified size.
The audArray parameter specifies the audio to scale, and must be a dense, rectangular, one or two dimensional Array, Vector, or Matrix with datatype=float.
The scale parameter specifies either the desired scaling ratio, or the desired length, in samples, of the scaled audio data. The former is expressed as a numeric value. The latter is expressed as an integer range giving the desired resulting array indices.
By default, scaling is done using B-spline interpolation. This produces excellent results reasonably fast. When reducing audio data using scale factors smaller than 1/2.5, the scaling is done in steps to avoid unnecessary information loss. For example, scaling by 1/4 is accomplished by scaling twice by 1/2. The nature of the algorithm makes this stepwise scaling unnecessary when enlarging audio data.
If the method=nearest option is specified, scaling is done using the nearest-neighbor algorithm. This produces poorer results, but the algorithm is very fast. This method is often suitable for producing low-quality rescalings of audio data.
Specifying method=bspline is equivalent to the default behavior.
NOTE: Scaling does not change the sampling rate of the data, which means that it does change the pitch. For example, scaling down by a factor of 0.5 will double the pitch (increase it by one octave). To resample audio data without affecting the pitch, use the AudioTools[Resample] command.
audiofile ≔ cat⁡kernelopts⁡datadir,/audio/stereo.wav:
aud ≔ Read⁡audiofile
aud ≔ 1..19962 x 1..2 ArrayData Type: floatStorage: rectangularOrder: C_order
small ≔ Scale⁡aud,1..5000
small ≔ 1..5000 x 1..2 ArrayData Type: floatStorage: rectangularOrder: C_order
squished ≔ Scale⁡aud,0.25
squished ≔ 1..4991 x 1..2 ArrayData Type: floatStorage: rectangularOrder: C_order
quick ≔ Scale⁡aud,0.25,method=nearest
quick ≔ 1..4991 x 1..2 ArrayData Type: floatStorage: rectangularOrder: C_order
Download Help Document
What kind of issue would you like to report? (Optional)
Thank you for submitting feedback on this help document. Your feedback will be used
to improve Maple's help in the future.