Update README.md

added more concrete template to help people get started
This commit is contained in:
bliou000 2021-12-03 20:27:38 -08:00 committed by GitHub
parent 23503ed282
commit 8581cbcf85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,18 +2,56 @@
Audio synthesizer project created by ECE 45 students, written using the MATLAB language and MATLAB GUI
## Contributors
Will add member names shortly
## Function Prototypes
function x = generate_wave(amplitude, frequency, phase, fs, duration, duty)
fuction x = envelope(input, fs, period, attack , decay, sustain, release)
Templates to create your own functions.
### Wave generating function
```
function x = generate_WAVENAME(amplitude, frequency, phase, fs, duration, duty)
% GENERATE_WAVENAME: returns a matrix of sampled WAVENAME wave
% CONTRIBUTORS:
% Person1: how you contributed
% Person2: how you contributed
% etc
% DOCUMENTATION:
% phase shift is in number of periods
% fs is the sampling frequency: how many sample points per second
% duration is time in seconds
% duty is a number between 0 and 1
% initialize local variables from input arguments
n = fs * duration; % number of samples (length of matrix)
dt = 1 / fs; % sampling period: time between two sample points
% initialize a one dimensional zero matrix to be populated
x = zeros(1, n);
% populate the matrix
for i = 1:n
YOUR CODE HERE
end
end
```
NOTE: duty does not apply to some functions (such as sinusoids)
### Envelope function
```
function x = envelope(input, fs, period, attack , decay, sustain, release)
```
where attack, decay, release are percentages between 0 to 1 of the period
sustain is the percentage of the amplitude it should sustain for
**envelope can be pitch or amplitude envelope**
### Filter function
```
function output_timedomain = Filter(input_soundin_timedomain, Fs, LOW, MED, HIGH)
```
where LOW, MED, HIGH are user-selected variables of any value.
**output should be in time domain for all functions (new sound)**