Skip to content
Snippets Groups Projects
Commit 016dea19 authored by PERBEN Anatole's avatar PERBEN Anatole
Browse files

Upload New File

parent 73fe99b7
No related branches found
No related tags found
No related merge requests found
Fs = 44100; % Fréquence d’échantillonnage
T = 1; % Durée du son
t = linspace(0, T, T*Fs);
% ----- Enveloppe ADSR simple -----
attack = 0.1; decay = 0.1; sustain = 0.7; release = 0.1;
env = [linspace(0,1,attack*Fs), ...
linspace(1,sustain,decay*Fs), ...
sustain*ones(1, round((T - attack - decay - release)*Fs)), ...
linspace(sustain,0,release*Fs)];
env = env(1:length(t)); % Adapter la taille
% ----- Sources pour synthèse soustractive -----
f0 = 220; % fréquence fondamentale
square_sig = square(2*pi*f0*t);
saw_sig = sawtooth(2*pi*f0*t);
sinus_sig = sin(2*pi*f0*t);
% ----- Filtre passe-bas pour la synthèse soustractive -----
[b,a] = butter(4, 1000/(Fs/2)); % passe-bas à 1000 Hz
% Appliquer enveloppe + filtre
sq_sous = filter(b,a, square_sig .* env);
sw_sous = filter(b,a, saw_sig .* env);
si_sous = filter(b,a, sinus_sig .* env);
% ----- Synthèse additive (somme de sinusoïdes) -----
add_sig = zeros(size(t));
for k = 1:10 % 10 harmoniques
add_sig = add_sig + (1/k) * sin(2*pi*f0*k*t);
end
add_sig = add_sig .* env;
% ----- Écoute et comparaison -----
disp('Carré (soustractive)'); soundsc(sq_sous, Fs); pause(T+1);
disp('Dent de scie (soustractive)'); soundsc(sw_sous, Fs); pause(T+1);
disp('Sinus (soustractive)'); soundsc(si_sous, Fs); pause(T+1);
disp('Synthèse additive'); soundsc(add_sig, Fs); pause(T+1);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment