Manipulate piano sounnd with Matlab
Put your content here . . . As we all know, the timbre is determined by the waveform of the sound. To manipulate the sound of the piano, first need to find the Fourier Analysis of piano. From this link Fourier_analysis_in_Music
The
- C:\Yejin\Assignment\ECE 301\Piano.jpg
Piano
From this page, can get a0=1 a1=0.1 a2=0.33 a3=0.06 a4=0.05 a5=0.045 a6=0 a7=0.02 a8=0.005 a9=0.005 a10=0 a11=0.005 a12=0.01 Then find the frequency of sound in music from this page https://pages.mtu.edu/~suits/notefreqs.html Use the frequency to make every sound of the piano. The basic signal is a cos signal. To make the sound perfect, add the exp function before every sound. Finally find a music score and group these sounds together and use the sound command to play it. The music score is like this page https://www.bethsnotesplus.com/2015/07/scarborough-fair.html
The final matlab code is like this.
======================================================
clc; clear;
Fs = 22050; delta = 1/Fs; FC5 = 523.25; FD5 = 587.33; FE5 = 659.25; FF5 = 698.46; FG5 = 783.99; FA5 = 880; FB5 = 987.77; d1 = 2; d05 = 1; d15 = 3; t1 = delta:delta:d1; t05 = delta:delta:d05; t15 = delta:delta:d15;
PC4_1 = zeros(1,Fs*d1); PD5_1 = zeros(1,Fs*d1); PD5_05 = zeros(1,Fs*d05); PA5_1 = zeros(1,Fs*d1); PA5_05 = zeros(1,Fs*d05); PE5_05 = zeros(1,Fs*d05); PF5_05 = zeros(1,Fs*d05); PD5_15 = zeros(1,Fs*d15);
p = [1 0.1 0.33 0.06 0.05 0.045 0 0.02 0.005 0.005 0 0.005 0.01]; for n=1:length(p);
%PC4_1 = PC4_1 + p(n)*exp((-1)*t1*4).*cos(2*pi*n*FC5*t1); % sythesize waveform PD5_1 = PD5_1 + p(n)*exp((-1)*t1*3).*cos(2*pi*n*FD5*t1); PD5_05 = PD5_05 + p(n)*exp((-1)*t05*3).*cos(2*pi*n*FD5*t05); PD5_15 = PD5_15 + p(n)*exp((-1)*t15*3).*cos(2*pi*n*FD5*t15); PA5_1 = PA5_1 + p(n)*exp((-1)*t1*3).*cos(2*pi*n*FA5*t1); PA5_05 = PA5_05 + p(n)*exp((-1)*t05*3).*cos(2*pi*n*FA5*t05); PE5_05 = PE5_05 + p(n)*exp((-1)*t05*3).*cos(2*pi*n*FE5*t05); PF5_05 = PF5_05 + p(n)*exp((-1)*t05*3).*cos(2*pi*n*FF5*t05);
end y = [PD5_1 PD5_05 PA5_1 PA5_05 PE5_05 PF5_05 PE5_05 PD5_15]; sound(y, Fs);
======================================================
Copy this code into matlab can play a piece of music in Matlab.