Fixed fade_out.m and moved it to "Helper" folder

Made it so that it now accepts instances of time where: t < 1 or t is not a whole number.
Also moved it to the 'Helper' folder
This commit is contained in:
SeaSponge
2021-12-10 09:07:09 -08:00
committed by GitHub
parent 23fb666a57
commit 48a6dfa8ad

47
src/Helper/fade_out.m Normal file
View File

@@ -0,0 +1,47 @@
function output = fade_out(input, time)
% Creates a fade-out sound effect that lasts a given
% time parameter of the input sound signal
% By Yalu Ouyang
% input: a 1D array that represents the sound signal in the time domain
% time: how long the fade out effect should last
% Shouldn't be longer than the input signal
% (in which case the function treats it as the duration of the signal)
% Returns modified signal in the time domain (output).
len = length(input);
% need to use time as a whole number
time = round(time);
% if time parameter longer than signal, treat time as
% the duration of original signal
if time > len
time = len
end
% in order to create array, time >=1
% if not, it's arbitrarily set to 1
% in which case the fade_in effect
% is virtually nonexistent
if time < 1
time = 1;
end
% set multiplier as 1D array
multiplier = (1 : time) / time;
% fade out effect: from full volume of signal to no volume
multiplier = flip(multiplier);
while length(multiplier) < len
multiplier = [multiplier 0];
end
% the resulting fade-in output
output = input .* multiplier;
end
% This is useful for creating videos, specifically the outro part