This repository has been archived on 2023-12-21. You can view files and clone it, but cannot push or open issues or pull requests.
ece45-project/README.md

67 lines
2.1 KiB
Markdown
Raw Normal View History

# ECE45-project
2021-12-01 23:43:48 +00:00
Audio synthesizer project created by ECE 45 students, written using the MATLAB language and MATLAB GUI
## Contributors
Will add member names shortly
2021-12-02 00:07:46 +00:00
## Function Prototypes
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)
```
2021-12-02 06:34:01 +00:00
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**
2021-12-01 23:43:48 +00:00
### Filter function
```
2021-12-01 23:58:05 +00:00
function output_timedomain = Filter(input_soundin_timedomain, Fs, LOW, MED, HIGH)
```
2021-12-02 06:34:01 +00:00
where LOW, MED, HIGH are user-selected variables of any value.
**output should be in time domain for all functions (new sound)**
2021-12-02 00:07:46 +00:00
## Useful websites
2021-12-06 19:17:55 +00:00
- [Learning Synths](https://learningsynths.ableton.com)
- [Learning Synths Playground](https://learningsynths.ableton.com/en/playground)
- [DIY Synthesisers](https://blog.demofox.org/diy-synthesizer/)
- [Port Audio (audio I/O library)](http://portaudio.com/)
- [Synthesis ToolKit in C++](https://ccrma.stanford.edu/software/stk/)
- [Max](https://cycling74.com/products/max)
- [Software by Miller Puckette](http://msp.ucsd.edu/software.html)