音符频率对应表
音符 | 频率/HZ | 半周期/us | 音符 | 频率/HZ | 半周期/us |
---|---|---|---|---|---|
低1DO | 262 | 1908 | #4FA# | 740 | 0676 |
#1DO# | 277 | 1805 | 中5SO | 784 | 0638 |
低2RE | 294 | 1700 | #5SO# | 831 | 0602 |
#2RE# | 311 | 1608 | 中6LA | 880 | 0568 |
低3M | 330 | 1516 | #6LA# | 932 | 0536 |
低4FA | 349 | 1433 | 中7SI | 988 | 0506 |
#4FA# | 370 | 1350 | 高1DO | 1046 | 0478 |
低5SO | 392 | 1276 | #DO# | 1109 | 0451 |
#5SO# | 415 | 1205 | 高2RE | 1175 | 0426 |
低6LA | 440 | 1136 | #2RE# | 1245 | 0402 |
#6LA# | 466 | 1072 | 高3M | 1318 | 0372 |
低7SI | 494 | 1012 | 高4FA | 1397 | 0358 |
中1DO | 523 | 0956 | #4FA# | 1480 | 0338 |
#1DO# | 554 | 0903 | 高5SO | 1568 | 0319 |
中2RE | 578 | 0842 | #5S0# | 1661 | 0292 |
#2RE# | 622 | 0804 | 高6LA | 1760 | 0284 |
中3M | 659 | 0759 | #6LA# | 1865 | 0268 |
中4FA | 698 | 0716 | 高7SI | 1976 |
("#"表示半音,用于上升或下降半个音)
我们知道用Matlab的sound函数可以发声,但是那种声音是很难听的“电话铃声”,那该怎么模拟成钢琴音色呢?
每个音符有固定的基音频率,表格如上。
matlab实测
接下来,我们打开matlab
f=440;
fs=8000;
t=1/fs:1/fs:1;
x=sin(2*pi*f*t);
sound(x,fs);
这样点击运行的话,是一声电话音,但是知道频率的话,我们就可让它发出音乐的声音了
fs = 4000;t = (0:1500)*(1/fs);
f=294;
y = cos(2*pi*f*t);
sound(y,fs);
上面的程序是dao音
y=1;
fs = 4000;t = (0:1500)*(1/fs);
f1=262;
y1 = cos(2*pi*f1*t);
%sound(y1,fs);
f2=294;
y2 = cos(2*pi*f2*t);
%sound(y2,fs);
f3=330;
y3 = cos(2*pi*f3*t);
%sound(y3,fs);
f4=349;
y4 = cos(2*pi*f4*t);
%sound(y4,fs);
f5=392;
y5 = cos(2*pi*f5*t);
%sound(y5,fs);
f6=440;
y6 = cos(2*pi*f6*t);
%sound(y6,fs);
f7=494;
y7 = cos(2*pi*f7*t);
%%%%%%%%%y=[y1,y2,y3,y4,y5,y6,y7];
%%%%%%%%%sound(y,fs);
k=0;
A=input('请输入"[]",中间带空格');
for i=1:length(A) %MATLAB下标从1开始
switch(A(i))
case 1
%y=[y1];
sound(y1,fs);
pause(0.5);