15.1.1 Creating audio clips: createwav
The createwav command creates an audio object with specified
parameters.
-
createwav takes its arguments as
key=value pairs, in no particular order. The
following arguments are all optional:
-
size=n resp. duration=T, where n
resp. T is the total number of samples resp. the length in seconds.
- bit_depth=b, where b is the number of bits
reserved for each sample value and may be 8 or 16 (by default 16).
- samplerate=r, where r is the number of samples
per second (by default 44100).
- channels=c where c is the number of channels (by
default 1).
- D or channel_data=D, where D is a list or a
matrix.
If D is a matrix, it should contain the k-th sample in the
j-th channel at position (j,k). The value of each sample must be
a real number in range [−1.0,1.0]. Any value outside this interval
is clamped to it (the resulting effect is called clipping).
If D is a single list, it is copied across channels.
D may be truncated or padded with zeros to match the appropriate
number of samples or seconds.
- normalize=db, where db≤ 0 is a real number
representing the amplitude peak level in dB FS (decibel "full
scale") units. If this option is given, audio data is normalized to
the specified level prior to conversion. This can be used to avoid
clipping.
- createwav(⟨keys=values⟩) returns an
audio object with the requested parameters.
Examples.
(See Section 15.1.4 for a description of playsnd and
Section 15.1.14 for a description of soundsec):
-
Input:
wave:=sin(2*pi*440*soundsec(2)) |
s:=createwav(channel_data=wave,samplerate=48000) |
playsnd(s)
|
Output:
Two seconds of the 440 Hz sine wave at rate 48000.
- Input:
t:=soundsec(3) |
L,R:=sin(2*pi*440*t),sin(2*pi*445*t) |
s:=createwav([L,R]) |
playsnd(s)
|
Output:
Three seconds of a vibrato effect on a sine wave (stereo).