Reading: none
Code from class:
We will be using the following file in lecture: canon.txt. This file contains the notes of Pachelbel's Canon represented in an unusual format. Each row is a separate note to be played: the first column is the note's frequency, the second column is the note's starting time (in seconds), and the third column is the note's duration.
Wav files:
[samples freq bitsPerSample aux] = audioread(filename)
audiowrite(samples, filename) audiowrite(samples, freq, filename) audiowrite(samples, freq, bitsPerSample, filename)
audioplay(samples, freq) audioplay(samples, freq, 'async') % call returns even while sound is still playing audioplay(samples, freq, 'sync') % call waits until sound is complete before returning
sound(samples, freq) %call returns while sound is playing
function plotStereo(y, fs) subplot(2,1,1); x = linspace(0, length(y)/fs, length(y)); plot(x,y(:,1), 'b'); % plot in blue ylabel('Left'); xlabel('seconds'); axis([0 length(y)/fs -1 1]); grid on; subplot(2,1,2); plot(x,y(:,2), 'r'); % plot in red ylabel('Right'); xlabel('seconds'); axis([0 length(y)/fs -1 1]); grid on;
We examined how to develop pure tones of a given frequency as a cosine wave, how to create other waves such as square or sawtooth waves, and how to combine different harmonics of a note to create a more realistic sounding instrument. We then examined high-level approaches to representing songs as a series of notes, or as a composition of overlayed notes.