Write a MATLAB function to implement the ADSR envelope and use the function to r
ID: 3860629 • Letter: W
Question
Write a MATLAB function to implement the ADSR envelope and use the function to refine synthesized music notes. Your deliverables include: 1) MATLAB function for ADSR implementation; 2) A short piece of synthesized music without note refinement; 3) The same music after applying ADSR envelope. Can you please type it out and not write it out by hand
ALSO DO NOT POST THIS
"Function to generate ADSR envelope
function[a]=adsr_gen(target,gain,duration)
fs=16000;
a=zeros(fs,1);
duration=round(duration./1000.*fs);
start=2;
stop=duration(1);
%attack phase
for n=(start:stop)
a(n)=target(1)*gain(1)+(1-gain(1))*a(n-1);
end
%Sustain phase
start=stop+1;
stop=start+duration(2);
for n=(start:stop)
a(n)=target(2)*gain(2)+(1-gain(2))*a(n-1);
end
%Release phase
start=stop + 1;
stop=sum(duration);
for n=(start:stop)
a(n)=target(3)*gain(3)+(1-gain(3))*a(n-1);
end
B.Function to generate sinusoid
function[x]=singen(f,fs,N)
n=(0:N-1);
x=sin(2*pi*f/fs*n);
C. Composer/Player code
function [] = sound_play(f)
target=[0.99999;0.25;0];
gain=[0.005;0.0004;0.00075];
duration=[250;1250;500];
fs=16000;
tot_dur=floor(sum(duration)/fs);
[adsr]=adsr_gen(target,gain,duration);
figure(1)
plot(adsr);
x=singen(f,fs,length(adsr));
figure(2)
plot(x);
b=adsr.';"
THERE ARE ERRORS IN ALL THREE PARTS
Explanation / Answer
Attack, Decay, Sustain, Release (ADSR)
code:
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.