Generating audio with GNU Octave
The following script writes a single audio channel to a wav file. The 5 second long tone is a sine wave of 4Hz with 30% fade in and fade out.
bps = 16; % bits per sample sps = 8000; % sample rate [samples/s] freq = 4; % frequency of the tone [Hz] nsecs = 5; % number of seconds of the audio file nsamples = sps*nsecs; time = linspace(0, nsecs, nsamples); wave = sin(time*2*pi*freq)'; % create the amplitude window (creates the fade in and fade out when multiplied with the sine wave) a = b = floor(.3*nsamples); window = [linspace(0,1,a), ones(1,nsamples-a-b), linspace(1,0,b)]'; wavwrite(wave.*window, sps, bps, 'audio.wav')
An audio file can be read back using wavread(). Channels are saved each one as separate column in the resulting vector.