function yy = clarinete(f0, dur, fsamp) %CLARINETE produce una nota tocada por un clarinete % % uso: yy = clarinete(f0, dur, fsamp) % % donde: f0 = frequencia (fundamental) de la nota % dur = duración de la nota % fsamp = frecuencia de muestreo tt = 0:(1/fsamp):dur; % eje de tiempo fc = f0*3; fm = f0*2; oc = -pi/2; om = -pi/2; %Para el cálculo de amplitudes Ts = 1/fsamp; attack = dur/5; sustain = 3*attack; release = dur/5; [y1,y2] = woodwenv(attack,sustain,release,fsamp); len = min([length(y1) length(y2) length(tt)]); y1 = y1(1:len); y2 = y2(1:len); tt = tt(1:len); It = -2*y2+4; % ajuste de la envolvente del índice de modulación (beta en la notación del curso) psi=2*pi*fc*tt+It.*cos(2*pi*fm*tt); % Calculo la señal FM yy = y1.*cos(psi);