Create flanger.m
This commit is contained in:
parent
4e98b13dbd
commit
364ceb7431
44
src/NotWorking/flanger.m
Normal file
44
src/NotWorking/flanger.m
Normal file
@ -0,0 +1,44 @@
|
||||
function output = flanger(input, time_delay, osc_freq, amp, Fs)
|
||||
|
||||
|
||||
% DOCUMENTATION:
|
||||
% FLANGER combines a single oscillating delayed signal with the original signal
|
||||
% Interference between original and delayed signals create "flanging" effect
|
||||
% Rocommedned delay time: 0-15 ms
|
||||
% Recommended oscilating fequency: 0.1 - 5 Hz
|
||||
|
||||
% input: 1D array containing audio signal
|
||||
% time_delay: maxinum value of the oscillating signal
|
||||
% osc_freq: frequence of oscillation
|
||||
% amp: amplitude of output signal
|
||||
% fs: sampling frequency
|
||||
|
||||
% CONTRIBUTORS:
|
||||
% Lance Zhu: Function Author
|
||||
|
||||
% SOURCES:
|
||||
% Code inspired by information provided in:
|
||||
% https://users.cs.cf.ac.uk/Dave.Marshall/CM0268/PDF/10_CM0268_Audio_FX.pdf
|
||||
|
||||
|
||||
% create index array
|
||||
len=length(input);
|
||||
index=1:len;
|
||||
|
||||
% create reference wave to create oscillation
|
||||
% taking only absoluted value for the reference wave
|
||||
osc_wave = abs(sin(2*pi*index*(osc_freq/Fs)));
|
||||
% convert delay in time to delay in samples
|
||||
sample_delay=round(time_delay*Fs);
|
||||
% create empty output array
|
||||
output = zeros(len,1);
|
||||
|
||||
% Generating delay for each sample from reference oscillation wave
|
||||
% start loop at sample_delay to make sure delayed sample is from t>=0
|
||||
for i=sample_delay:len
|
||||
% i_delay: delay for current sample
|
||||
i_delay=round(osc_wave(i)*sample_delay);
|
||||
% combine delayed sample with original sample
|
||||
output(i) = (amp*input(i))+amp*(input(i-i_delay));
|
||||
|
||||
end
|
Reference in New Issue
Block a user