Dear Community, I would like to print a sinewave with volume automation in mathlab. I am already able to print a stereo wave file with a fixed amplitude. Is it possible to set time points with corresponding amplitude values? fs = 44100; i=1/fs; t = 0:i:2; phi = 0; A = 1; f = 220.0000; x = A*sin((2*pi*f*t) + phi); f = 220.0000; y = A*sin((2*pi*f*t) + phi); stereo_mtx = [x(:), y(:)]; audiowrite('stereo sound 3.wav', stereo_mtx, fs); Any help is much appreciated! Thanks
John Williams answered .
2025-11-20
this is my suggestion
fs = 44100;
dt=1/fs;
t = 0:dt:2;
phi = 0;
A = 1;
f = 220.0000;
x = A*sin((2*pi*f*t) + phi);
f = 220.0000;
y = A*sin((2*pi*f*t) + phi);
% define volume envelopp by time index + amplitude set points
tt = [0 0.5 1.5 2];
yt = [0 1 0.75 0]; % linear fade in / fade out demo
w = interp1(tt,yt,t); % create window of same length as signal
y = y.*w; % apply window
stereo_mtx = [x(:), y(:)];
audiowrite('stereo sound 3.wav', stereo_mtx, fs);