commit
343221dfc2
37
src/Meghaj_Echo.m
Normal file
37
src/Meghaj_Echo.m
Normal file
@ -0,0 +1,37 @@
|
||||
% Meghaj_Echo: input a wave (in time domain) and a frequency to induce an
|
||||
% echo/lag effect to. The outputted wave amplifies frequencies above the
|
||||
% cutoff and creates an echo in the frequencies below the cutoff creating
|
||||
% a beat lag effect. Inspired by "muffled_effect_schluep" and lecture notes
|
||||
% Works best on songs that have a clear snare line with a frequency of
|
||||
% HIGH = 1000. Use on song files like "Strong-Bassline.mp3"
|
||||
|
||||
% CONTRIBUTORS:
|
||||
% Meghaj Vadlaputi: Function Author
|
||||
|
||||
|
||||
|
||||
function y = Meghaj_Echo(x, HIGH)
|
||||
len = length(x);
|
||||
X = fft(x);
|
||||
X = fftshift(X); %Fourier transform the input wave
|
||||
Y = zeros(1, len);
|
||||
|
||||
for ind = 1:len
|
||||
%Multiplying the Fourier transform in frequency domain by e^jw(0.05)
|
||||
%to induce a time shift of 0.05 seconds creating the "lag" effect on
|
||||
%frequencies below HIGH (HIGH = 1000 works best)
|
||||
%Multiplying the remaining signal by 1.25 amplifies other
|
||||
%frequencies to balance
|
||||
if abs(X(ind)) < HIGH
|
||||
Y(ind) = X(ind) + 0.5*(X(ind)*exp(1i*ind*0.05));
|
||||
else
|
||||
Y(ind) = 1.25*X(ind);
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Y = fftshift(Y);
|
||||
y = ifft(Y);
|
||||
y = real(y);
|
||||
|
||||
end
|
Reference in New Issue
Block a user