一.一些音樂(lè)基礎(chǔ)
1.認(rèn)識(shí)簡(jiǎn)譜
簡(jiǎn)譜中最重要的信息就是曲調(diào)、節(jié)拍,位于簡(jiǎn)譜左上角,
如圖中的1=G,是以G調(diào)為基準(zhǔn)頻率,即1對(duì)應(yīng)G調(diào),其他常見(jiàn)的還有1=C等,
4/4為一節(jié)4個(gè)1/4拍,一節(jié)則為一個(gè)短豎線隔開(kāi)的,相似的還有3/4排,1/2拍等。
?對(duì)應(yīng)數(shù)字是在以1為基頻下的不同音頻
0拍表示占位,不出聲
數(shù)字左上角帶#為半個(gè)音階
數(shù)字上下方的點(diǎn)代表增加或者降低一個(gè)八度,也有兩個(gè)點(diǎn)的情況,對(duì)應(yīng)降低兩個(gè)八度。
在4/4拍的譜中,一節(jié)有四個(gè)1/4拍組成,每個(gè)1/4拍為1秒,單個(gè)數(shù)字對(duì)應(yīng)一個(gè)1/4拍,數(shù)字下方一個(gè)下劃線表示這個(gè)音占1/8拍,兩個(gè)表示1/16拍,以此類(lèi)推...在一節(jié)中排數(shù)和總是等于這個(gè)譜對(duì)應(yīng)的拍數(shù),上例為4/4拍,即4秒。
數(shù)字右邊的點(diǎn)表示這個(gè)音延長(zhǎng)其1/2拍,如1·表示3/8拍,數(shù)字后面的-表示再延長(zhǎng)1/4拍。
數(shù)字間的上連接符號(hào)表示過(guò)渡平穩(wěn),連貫,一般在演唱時(shí)需要考慮。
2.基本曲調(diào)頻率

?表示以這個(gè)頻率振動(dòng)發(fā)出聲音,產(chǎn)生的調(diào)則為對(duì)應(yīng)音調(diào)。
值得注意的是,一個(gè)八度音對(duì)應(yīng)是倍頻關(guān)系。這也是由于十二平均率計(jì)算規(guī)律。
根據(jù)此可確定出每個(gè)數(shù)字對(duì)應(yīng)頻率
在G調(diào)基礎(chǔ)上對(duì)應(yīng)頻率
g0表示占位,g1_表示降調(diào),g2_5表示#2
g0=0;2
g1_=195.998;
g2_=220.000;
g3_=246.942;
g4_=261.626;
g5_=293.665;
g6_=329.628;
g7_=349.228;
g1=391.995;
g2=440;
g2_5=415.305;
g3=493.883;
g4=523.251;
g4_5=554.365;
g5=587.330;
g5_5=622.254;
g6=659.255;
g7=698.456;
g33=987.767;
二.使用matlab產(chǎn)生聲音
1.樂(lè)音頻率,抽樣頻率?,節(jié)拍
使用如220hz為頻率的正弦波,持續(xù)一段時(shí)間
這個(gè)波的頻率為樂(lè)音的頻率,取一個(gè)個(gè)抽樣的點(diǎn)的頻率表示抽樣頻率,持續(xù)的時(shí)間則為節(jié)拍的時(shí)間
抽樣頻率一般要遠(yuǎn)大于發(fā)音頻率,保證不失真。
?因此我們可以創(chuàng)建一個(gè)頻率為220,持續(xù)時(shí)間為1s,抽樣頻率為8000的一段矩陣
fs=8000;
f=220;
x=linspace(0,1,fs);
y=sin(2*pi*f*x);
plot(x,y);
sound(y,fs);
可以看到產(chǎn)生了頻率為220hz,持續(xù)時(shí)間為1s,采樣頻率為8000的一段波。
只需要不斷改變頻率和節(jié)拍(持續(xù)時(shí)間),一個(gè)簡(jiǎn)單的音樂(lè)就可以播放了。
2.播放一段音樂(lè)
f1=[g0 g0 g0 g5_];
t1=[1 1 1 1];
f2=[g3 g2_5 g3 g6];
t2=[1.5 0.25 0.75 1.5];
f3=[g5 g3 g6_];
t3=[0.75 2.25 1];
f45=[g1 g2 g3 g5 g4_5 g5 g5_5 g5];
t45=[2 0.75 1.75 0.5 0.5 0.5 1.5 0.5];
f67=[g6 g33 g0];
t67=[1.5 4.5 2];
f0=[f1 f2 f3 f45 f67];
t0=[t1 t2 t3 t45 t67];
for i=1:size(f0,2)
x=linspace(0,t0(i),8000*t0(i));
y=sin(2*pi*f0(i)*x);
sound(y,8000);
pause(t0(i));
end
?我們用兩個(gè)一維矩陣儲(chǔ)存音調(diào)和節(jié)拍信息,要求必須一一對(duì)應(yīng)!否則播放矩陣對(duì)不上。
sound函數(shù)播放,pause函數(shù)延遲一段時(shí)間。
3.給音樂(lè)加包絡(luò)
?可以聽(tīng)到這一段音樂(lè)中在中間過(guò)渡的時(shí)候總是有雜音,影響音樂(lè)品質(zhì),因此我們這是由于相位不連續(xù)造成的,我們的解決方法是給聲音加包絡(luò)
關(guān)于包絡(luò)信號(hào)講解(10條消息) 利用包絡(luò)函數(shù)優(yōu)化MATLAB中sound函數(shù)的發(fā)聲【matlab調(diào)音_2】_歪卜巴比的博客-CSDN博客_鋼琴包絡(luò)函數(shù)
其中最后的x/exp(-kx/rhythm)型包絡(luò)函數(shù)表達(dá)形式有誤或不完整。
這里進(jìn)行修改
?
?上式為完整的包絡(luò)函數(shù),其中t代表節(jié)拍時(shí)間。
修改后的包絡(luò)函數(shù)解決了不同節(jié)拍時(shí)長(zhǎng)和k值導(dǎo)致不同音量大小的問(wèn)題
?其形狀為
?
?很明顯,這使得聲音更加圓潤(rùn),對(duì)比傳統(tǒng)指數(shù)包絡(luò),有一個(gè)先上升的過(guò)程,能保證前一個(gè)音符能量消失后,才發(fā)出后續(xù)音符,這樣就能有效消除,音符交替時(shí)的輕微雜音
這里k值的大小決定了下降的快慢,根據(jù)不同譜子進(jìn)行調(diào)整,一般來(lái)說(shuō),k值越大聲音越清脆。?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-498671.html
4.完整代碼
clc;clear all
fs=8000;
k=10;
k0=5;
g0=0;
g1_=195.998;
g2_=220.000;
g3_=246.942;
g4_=261.626;
g5_=293.665;
g6_=329.628;
g7_=349.228;
g1=391.995;
g2=440;
g2_5=415.305;
g3=493.883;
g4=523.251;
g4_5=554.365;
g5=587.330;
g5_5=622.254;
g6=659.255;
g7=698.456;
g33=987.767;
%前奏
f1=[g0 g0 g0 g5_];
t1=[1 1 1 1];
f2=[g3 g2_5 g3 g6];
t2=[1.5 0.25 0.75 1.5];
f3=[g5 g3 g6_];
t3=[0.75 2.25 1];
f45=[g1 g2 g3 g5 g4_5 g5 g5_5 g5];
t45=[2 0.75 1.75 0.5 0.5 0.5 1.5 0.5];
f67=[g6 g33 g0];
t67=[1.5 4.5 2];
f0=[f1 f2 f3 f45 f67];
t0=[t1 t2 t3 t45 t67];
d=0.2;
for n=1:size(f0,2)
x=linspace(0,t0(n),t0(n)*fs);
if n==1
m0=d*exp(1)*k0*x.*exp((-k0/t0(n))*x).*sin(2*pi*f0(n)*x);
%m=k*x.*exp(-k*x).*sin(2*pi*f0(n)*x);
%m0=exp(-k0*x).*sin(2*pi*f0(n)*x);
else
if n==size(f0,2)-1
m0=[m0 d*exp(1)*2/t0(n)*x.*exp((-4/t0(n))*x).*sin(2*pi*f0(n)*x)];
else
m0=[m0 d*exp(1)*k0/t0(n)*x.*exp((-k0/t0(n))*x).*sin(2*pi*f0(n)*x)];
%m=[m k*x.*exp(-k*x).*sin(2*pi*f0(n)*x)];
%m0=[m0 exp(-k0*x).*sin(2*pi*f0(n)*x)];
end
end
end
sound(m0,fs*2)
plot(linspace(0,sum(t0),sum(t0)*fs),m0)
pause(sum(t0)/2-2)
%主調(diào)
f7=[g0 g0 g0 g5_ g6_ g1];
t7=[1 1 0.5 0.5 0.5 0.5];
f8=[g5 g3 g0 g5 g2 g1];
t8=[0.5 1.5 0.5 0.5 0.5 0.5];
f9=[g3 g2 g0 g5 g2 g1];
t9=[0.5 1.5 0.5 0.5 0.5 0.5];
f10=[g2 g2 g0 g3 g1 g6_];
t10=[0.5 1.5 0.5 0.5 0.5 0.5];
f11=[g2 g1 g0 g5_ g6_ g1];
t11=[0.5 1.5 0.5 0.5 0.5 0.5];
f12=[g5 g3 g0 g5 g2 g1];
t12=[0.5 1.5 0.5 0.5 0.5 0.5];
f13=[g3 g2 g0 g5 g2 g1];
t13=[0.5 1.5 0.5 0.5 0.5 0.5];
f14=[g3 g2 g0 g3 g6_ g1];
t14=[0.5 1.5 0.5 0.5 0.5 0.5];
f15=[g1 g1 g0 g0 g3 g4];
t15=[0.5 1.5 1 0.5 0.25 0.25];
f16=[g5 g5 g3 g5 g5 g5 g3 g5 g6 g5 g5];
t16=[0.5 0.25 0.25 0.5 0.5 0.25 0.25 0.25 0.25 0.5 0.5];
f17=[g5 g5 g3 g5 g5 g5 g3 g5 g6 g5 g5];
t17=[0.5 0.25 0.25 0.5 0.5 0.25 0.25 0.25 0.25 0.5 0.5];
f18=[g5 g3 g2 g1 g5_ g1 g1];
t18=[0.5 0.5 0.5 0.5 0.5 0.5 1];
f19=[g3 g3 g2 g3 g2 g1 g3 g4];
t19=[0.5 0.25 0.25 0.5 0.5 1.5 0.25 0.25];
f20=[g5 g5 g3 g5 g5 g5 g3 g5 g6 g5 g5];
t20=[0.5 0.25 0.25 0.5 0.5 0.25 0.25 0.25 0.25 0.5 0.5];
f21=[g5 g5 g3 g5 g5 g5 g3 g5 g6 g5 g5];
t21=[0.5 0.25 0.25 0.5 0.5 0.25 0.25 0.25 0.25 0.5 0.5];
f22=[g5 g3 g2 g1 g5_ g1 g1];
t22=[0.5 0.5 0.5 0.5 0.5 0.5 1];
f23=[g3 g3 g2 g3 g2 g1];
t23=[0.5 0.25 0.25 0.5 0.5 2];
f24=[g3 g3 g2 g3 g2 g3 g3 g2 g3 g2];
t24=[0.5 0.25 0.25 0.5 0.5 0.5 0.25 0.25 0.5 0.5];
f25=[g3 g3 g2 g3 g2 g1];
t25=[0.5 0.25 0.25 0.5 0.5 2];
f26=[g3 g3 g2 g3 g2 g3 g3 g2 g3 g2];
t26=[0.5 0.25 0.25 0.5 0.5 0.5 0.25 0.25 0.5 0.5];
f27=[g3 g3 g2 g3 g2 g1 g0 g3 g4];
t27=[0.5 0.25 0.25 0.5 0.5 1 0.5 0.25 0.25];
f28=[g5 g5 g3 g5 g5 g5 g3 g5 g6 g5 g5];
t28=[0.5 0.25 0.25 0.5 0.5 0.25 0.25 0.25 0.25 0.5 0.5];
f29=[g5 g5 g3 g5 g5 g5 g3 g5 g6 g5 g5];
t29=[0.5 0.25 0.25 0.5 0.5 0.25 0.25 0.25 0.25 0.5 0.5];
f30=[g5 g5 g3 g5 g5 g5 g3 g5 g6 g5 g5];
t30=[0.5 0.25 0.25 0.5 0.5 0.25 0.25 0.25 0.25 0.5 0.5];
f31=[g5 g5 g3 g5 g5 g5 g3 g5 g6 g5 g5];
t31=[0.5 0.25 0.25 0.5 0.5 0.25 0.25 0.25 0.25 0.5 0.5];
f32=[g5 g5 g3 g5 g5 g5 g3 g5 g6 g5 g5];
t32=[0.5 0.25 0.25 0.5 0.5 0.25 0.25 0.25 0.25 0.5 0.5];
f33=[g5 g5 g3 g5 g5 g5 g3 g5 g6 g5 g5];
t33=[0.5 0.25 0.25 0.5 0.5 0.25 0.25 0.25 0.25 0.5 0.5];
f34=[g5 g5 g3 g5 g5 g5 g3 g5 g6 g5 g5];
t34=[0.5 0.25 0.25 0.5 0.5 0.25 0.25 0.25 0.25 0.5 0.5];
f35=[g3 g5 g3 g2 g1 g5_ g1 g1 g1 g2];
t35=[0.125 0.375 0.5 0.5 0.5 0.5 0.5 0.5 0.25 0.25];
f36=[g3 g3 g2 g3 g3 g2 g3 g3 g2 g3 g4 g3 g2];
t36=[0.5 0.25 0.25 0.5 0.25 0.25 0.5 0.25 0.25 0.25 0.25 0.25 0.25];
f37=[g1 g1 g2 g1 g7_ g6_ g0 g2 g3];
t37=[0.5 0.25 0.25 0.5 0.5 1 0.5 0.25 0.25];
f38=[g4 g4 g3 g4 g4 g3 g4 g4 g3 g4 g5 g4 g3];
t38=[0.5 0.25 0.25 0.5 0.25 0.25 0.5 0.25 0.25 0.25 0.25 0.25 0.25];
f39=[g2 g2 g1 g7_ g1 g2 g5_ g1 g2];
t39=[0.5 0.25 0.25 0.5 0.5 0.5 0.5 0.5 0.5];
f40=[g3 g3 g2 g3 g3 g2 g3 g3 g2 g3 g4 g3 g2];
t40=[0.5 0.25 0.25 0.5 0.25 0.25 0.5 0.25 0.25 0.25 0.25 0.25 0.25];
f41=[g1 g1 g2 g1 g7_ g6_ g0 g2 g3];
t41=[0.5 0.25 0.25 0.5 0.5 1 0.5 0.25 0.25];
f42=[g4 g4 g3 g4 g4 g3 g4 g4 g3 g4 g5 g4 g3];
t42=[0.5 0.25 0.25 0.5 0.25 0.25 0.5 0.25 0.25 0.25 0.25 0.25 0.25];
f43=[g5 g3 g2 g1 g5_ g1 g1];
t43=[0.5 0.5 0.5 0.5 0.5 0.5 1];
f=[f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f17 f18 f19 f20 f21 f22 f23 f24 f25 f26 f27 f28 f29 f30 f31 f32 f33 f34 f35 f36 f37 f38 f39 f40 f41 f42 f43];
t=[t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43];
for n=1:size(f,2)
x=linspace(0,t(n),t(n)*fs);
if n==1
m=exp(1)*k/t(n)*x.*exp((-k/t(n))*x).*sin(2*pi*f(n)*x);
%m=k*x.*exp(-k*x).*sin(2*pi*f(n)*x);
%m=exp(-k*x).*sin(2*pi*f(n)*x);
else
m=[m exp(1)*k/t(n)*x.*exp((-k/t(n))*x).*sin(2*pi*f(n)*x)];
%m=[m k*x.*exp(-k*x).*sin(2*pi*f(n)*x)];
%m=[m exp(-k*x).*sin(2*pi*f(n)*x)];
end
end
sound(m,fs*2)
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-498671.html
到了這里,關(guān)于使用matlab制作音樂(lè)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!