專利名稱::一種音樂(lè)合成方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)信息處理
技術(shù)領(lǐng)域:
,尤其涉及一種音樂(lè)合成方法及裝置。
背景技術(shù):
:目前,電子樂(lè)器已經(jīng)逐漸興起,最早是電子琴,后來(lái)逐漸出現(xiàn)了其它更多的電子樂(lè)器。由于電子樂(lè)器比傳統(tǒng)樂(lè)器更容易掌握,并且可以演奏出各種不同的音色,因此受到廣大用戶的青睞。吹奏類樂(lè)器是樂(lè)器的一種,一般的吹奏樂(lè)器由帶孔的管子組成。吹奏類樂(lè)器一般需要演奏者一邊用氣息控制音樂(lè)的節(jié)奏和強(qiáng)度,一邊要運(yùn)用一定的指法來(lái)控制音高。吹奏類樂(lè)器一4殳包括下列表一所示的幾種樂(lè)器:中國(guó)民族樂(lè)器西方樂(lè)器*笙*橫笛*聲笙*單簧管*笛*雙簧管*管子*低音笛*巴烏*薩克斯管*嗩響*小號(hào)*簫*圓號(hào)*塤*口風(fēng)琴表l計(jì)算機(jī)目前已經(jīng)得到廣泛應(yīng)用,現(xiàn)有技術(shù)已經(jīng)能夠?qū)崿F(xiàn)在計(jì)算機(jī)上演奏電子琴,不僅能夠帶來(lái)極大的樂(lè)趣,而且可以使用戶熟悉該樂(lè)器的音色以及演奏方法。然而,由于吹奏類樂(lè)器的演奏與人的氣息相關(guān),因此目前還不能夠在計(jì)算機(jī)上實(shí)現(xiàn)吹奏類樂(lè)器的演奏。
發(fā)明內(nèi)容本發(fā)明實(shí)施例提供了一種音樂(lè)合成方法及裝置,用以通過(guò)計(jì)算機(jī)實(shí)現(xiàn)吹奏類樂(lè)器的音樂(lè)合成,從而通過(guò)計(jì)算機(jī)可以實(shí)現(xiàn)吹奏類樂(lè)器的演奏。本發(fā)明實(shí)施例提供的一種音樂(lè)合成方法包括通過(guò)將用戶氣息信號(hào)的能量包絡(luò)與預(yù)先設(shè)定的閾值進(jìn)行比較,確定該用戶氣息信號(hào)的狀態(tài);并且,根據(jù)預(yù)先設(shè)置的音符按^:的值與音符的對(duì)應(yīng)關(guān)系,確定用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符;利用用戶選擇的音符按^:的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)控制合成音樂(lè)。本發(fā)明實(shí)施例提供的一種音樂(lè)合成裝置包括氣息狀態(tài)確定單元,用于通過(guò)將用戶氣息信號(hào)的能量包絡(luò)與預(yù)先設(shè)定的閾值進(jìn)行比較,確定該用戶氣息信號(hào)的狀態(tài);音符確定單元,用于根據(jù)預(yù)先設(shè)置的音符按^:的值與音符的對(duì)應(yīng)關(guān)系,確定用戶選擇的音符按4建的值所對(duì)應(yīng)的音符;合成單元,用于利用用戶選擇的音符按—建的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)控制合成音樂(lè)。本發(fā)明實(shí)施例,通過(guò)將用戶氣息信號(hào)的能量包絡(luò)與預(yù)先設(shè)定的闞值進(jìn)行比較,確定該用戶氣息信號(hào)的狀態(tài);并且,根據(jù)預(yù)先設(shè)置的音符按鍵的值與音符的對(duì)應(yīng)關(guān)系,確定用戶選擇的音符^l建的值所對(duì)應(yīng)的音符;利用用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)控制合成音樂(lè),從而通過(guò)計(jì)算機(jī)實(shí)現(xiàn)了吹奏類樂(lè)器的音樂(lè)合成,使得通過(guò)計(jì)算機(jī)可以實(shí)現(xiàn)吹奏類樂(lè)器的演奏,給用戶帶來(lái)了更多樂(lè)趣,滿足了用戶更多需求,使用戶熟悉更多樂(lè)器的音色以及演奏方法。圖1為本發(fā)明實(shí)施例提供的用于演奏吹奏類樂(lè)器的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖2為本發(fā)明實(shí)施例提供的一種音樂(lè)合成裝置的結(jié)構(gòu)示意圖3為本發(fā)明實(shí)施例提供的用戶氣息信號(hào)的能量示意圖4為本發(fā)明實(shí)施例提供的能量包絡(luò)判決結(jié)果示意圖5為本發(fā)明實(shí)施例提供的改進(jìn)了高音保持的能量包絡(luò)判決結(jié)果示意圖6為本發(fā)明實(shí)施例提供的采用過(guò)零率檢測(cè)后的能量包絡(luò)判決結(jié)果示意圖7為本發(fā)明實(shí)施例提供的用戶設(shè)置界面示意圖8為本發(fā)明實(shí)施例提供的一種音樂(lè)合成方法的流程示意圖。具體實(shí)施例方式本發(fā)明實(shí)施例提供了一種音樂(lè)合成方法及裝置,用以通過(guò)計(jì)算機(jī)實(shí)現(xiàn)吹奏類樂(lè)器的音樂(lè)合成,從而通過(guò)計(jì)算機(jī)可以實(shí)現(xiàn)吹奏類樂(lè)器的演奏。本發(fā)明實(shí)施例提供的用于實(shí)現(xiàn)吹奏類樂(lè)器演奏的計(jì)算機(jī)系統(tǒng)如圖1所示,將麥克風(fēng)作為氣息采集設(shè)備,通過(guò)鍵盤實(shí)現(xiàn)音符和聲音效果的選擇,通過(guò)計(jì)算機(jī)內(nèi)部的音樂(lè)合成裝置控制音色,并結(jié)合音色、氣息、音符和聲音效果等信息合成電子音樂(lè),并通過(guò)揚(yáng)聲器播放該電子音樂(lè)。參見(jiàn)圖2,本發(fā)明實(shí)施例提供的音樂(lè)合成裝置包括氣息狀態(tài)確定單元11,用于通過(guò)將用戶氣息信號(hào)的能量包絡(luò)與預(yù)先設(shè)定的閾值進(jìn)行比較,確定該用戶氣息信號(hào)的狀態(tài)。音符確定單元12,用于根據(jù)預(yù)先設(shè)置的音符按鍵的值與音符的對(duì)應(yīng)關(guān)系,確定用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符。合成單元13,用于通過(guò)用戶氣息信號(hào)的狀態(tài)、用戶選擇的音符##的值所對(duì)應(yīng)的音符,以及用戶預(yù)先選擇的音色,合成音樂(lè)。較佳地,該裝置還包括演奏模式確定單元14,用于確定用戶選擇的演奏模式。音符控制單元15,用于確定用戶選擇的演奏才莫式所對(duì)應(yīng)的音符控制4建的值。本發(fā)明實(shí)施例中,預(yù)先設(shè)置兩種不同的演奏模式供用戶選擇,分別為業(yè)余模式和專業(yè)模式。并且還預(yù)先設(shè)置了音符控制鍵,如鍵盤上的"Shift"鍵等,不同的演奏模式對(duì)應(yīng)了該音符控制鍵的不同功能,在用戶選擇的演奏模式為業(yè)余模式時(shí),音符控制鍵為八度鍵,即音符控制鍵的值為用于控制音符為高八度或低八度的值;在用戶選擇的演奏模式為專業(yè)模式時(shí),音符控制鍵為顫音鍵,即音符控制鍵的值為用于控制音符是否顫音的值。例如,可以預(yù)先設(shè)置在演奏模式為業(yè)余模式時(shí),用戶沒(méi)有按下音符控制鍵時(shí),通過(guò)鍵盤選擇的音符為低八度的音符,如果按下音符控制鍵,則通過(guò)鍵盤選擇的音符為高八度的音符。同理,可以預(yù)先設(shè)置在演奏模式為專業(yè)模式時(shí),用戶沒(méi)有按下音符控制鍵時(shí),通過(guò)鍵盤選擇的音符為正常的音符,如果4妄下音符控制鍵,則通過(guò)鍵盤選擇的音符會(huì)發(fā)生顫音。因此,較佳地,所述合成單元13,利用用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)和音符控制鍵的值,控制合成音樂(lè)。本發(fā)明實(shí)施例中提供的音樂(lè)合成裝置,可以合成不同音色的音樂(lè),即預(yù)先設(shè)置有多種音色供用戶選擇。因此,較佳地,該裝置還包括音色確定單元16,用于確定用戶預(yù)先選擇的音色。所述合成單元13,利用用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)和音符控制鍵的值,控制合成具有用戶預(yù)先選擇的音色的音樂(lè)。下面對(duì)氣息狀態(tài)確定單元11的工作原理進(jìn)行詳細(xì)說(shuō)明。本發(fā)明實(shí)施例的氣息狀態(tài)確定單元11,在演奏模式為業(yè)余模式時(shí),確定用戶氣息信號(hào)的狀態(tài)為無(wú)氣息狀態(tài)或有氣息狀態(tài);在演奏才莫式為專業(yè)模式時(shí),確定用戶氣息信號(hào)的狀態(tài)為無(wú)氣息狀態(tài)、高八度狀態(tài)或低八度狀態(tài)。也就是說(shuō),當(dāng)用戶選擇了業(yè)余模式時(shí),說(shuō)明該用戶還不能很好地通過(guò)氣息的強(qiáng)弱來(lái)控制高、低八度的切換,因此,氣息狀態(tài)確定單元11僅需要檢測(cè)出氣息的有無(wú)即可,至于高、低八度的切換則通過(guò)鍵盤上的音符控制鍵來(lái)完成。而對(duì)于專業(yè)的用戶,則可以選擇專業(yè)模式,該類用戶可以通過(guò)氣息的強(qiáng)弱來(lái)控制高、低八度的切換,因此,氣息狀態(tài)確定單元ll,不僅需要檢測(cè)出氣息的有無(wú),還要在有氣息的情況下,進(jìn)一步判斷出氣息處于高八度狀態(tài)還是低八度狀態(tài)。用戶氣息是通過(guò)麥克風(fēng)采集的,例如通過(guò)API函數(shù)中的氣息采集函數(shù),就可以抽取出用戶氣息的數(shù)字信號(hào)。然后,對(duì)用戶氣息信號(hào)的強(qiáng)弱進(jìn)行分析。首先,用戶氣息信號(hào)需要經(jīng)過(guò)去直流濾波器(DCRemove)進(jìn)行去直流處理,即消除用戶氣息信號(hào)中的直流信號(hào)。因?yàn)?,較大的直流偏置會(huì)對(duì)后續(xù)的能量包絡(luò)檢測(cè)和過(guò)零率檢測(cè)造成較大影響,因此需要設(shè)計(jì)較好的去直流濾波器。本發(fā)明實(shí)施例中的去直流濾波器可以采用2階無(wú)限沖擊響應(yīng)(IIR,InfiniteImpulseResponse)高通濾波器,截止頻率可以為80Hz。例如,釆集到的用戶氣息信號(hào)的波形如圖3所示,前一半波形表示用戶氣息較弱,可以判定為低八度狀態(tài)(可以用1標(biāo)識(shí)),后一半波形表示用戶氣息較強(qiáng),可以判定為高八度狀態(tài)(可以用2標(biāo)識(shí)),中間波形表示用戶氣息信號(hào)為無(wú)氣息狀態(tài)(可以用0標(biāo)識(shí))。然后,對(duì)用戶氣息信號(hào)分別進(jìn)行能量包絡(luò)檢測(cè)計(jì)算用戶氣息信號(hào)的能量,采用的公式如下Eng(i)=sig(i)*sig(i),i=0—L-l其中,Eng表示能量,sig表示信號(hào),L表示一幀信號(hào)的長(zhǎng)度,i表示采樣點(diǎn)。得到了示i采樣點(diǎn)用戶氣息信號(hào)的能量Eng(i)之后,利用Eng(i)分別通過(guò)下列公式提取能量包絡(luò)9Tmp=r附p*or+£>g(/)*(1—ar)Eng_p(i)=Tmp其中,Engj(i)表示i采樣點(diǎn)用戶氣息信號(hào)的能量包絡(luò),"表示能量包絡(luò)平滑因子,0《"1。本發(fā)明實(shí)施例考慮到用戶氣息的特點(diǎn),對(duì)用戶氣息信號(hào)的能量包絡(luò)的^是取進(jìn)行改進(jìn),預(yù)先為用戶氣息信號(hào)的上升(增強(qiáng))過(guò)程和下降(減弱)過(guò)程分別設(shè)置不同的能量包絡(luò)平滑因子。即如果Eng(i)〉Tmp,貝'J:r附/=r附;?*or+五wg(/)*(1_or)如果Eng(i)^Tmp,貝'J:Tmp=*-+*(1-〃)本發(fā)明實(shí)施例為了加強(qiáng)用戶氣息的保持效果,可以采用快升慢降的原則,即設(shè)置"<"。最后,本發(fā)明實(shí)施例將得到的每一幀中各個(gè)采樣點(diǎn)的用戶氣息信號(hào)的能量包絡(luò)取平均值,作為該幀用戶氣息信號(hào)的能量包絡(luò)的值Eng一avg,即Eng_avg=(Eng』(0)+..,+Eng』(L-l))/L較佳地,對(duì)于每一幀用戶氣息信號(hào),氣息狀態(tài)確定單元11確定其狀態(tài)的操作具體包括將該幀用戶氣息信號(hào)的能量包絡(luò)與預(yù)先設(shè)定的第一閾值和第二閾值進(jìn)行比較,其中第一閾值小于第二閾值;若該幀用戶氣息信號(hào)的能量包絡(luò)小于第一閾值,則確定該幀用戶氣息信號(hào)的狀態(tài)為無(wú)氣息狀態(tài);若該幀用戶氣息信號(hào)的能量包絡(luò)大于第二閾值,則確定該幀用戶氣息信號(hào)處于高八度狀態(tài);若該幀用戶氣息信號(hào)的能量包絡(luò)大于或等于第一閾值,并且小于或等于第二閾值,則確定該幀用戶氣息信號(hào)處于低八度狀態(tài)。具體地,可以根據(jù)試驗(yàn)數(shù)據(jù)設(shè)定第一閾值和第二閾值,假設(shè)第一閾值用ThresholdL表示,第二閾值用ThresholdH表示,Eng一avg表示當(dāng)前幀確定的用戶氣息信號(hào)的能量包絡(luò),貝'J:如果Eng一avg〈ThresholdL,則判定當(dāng)前幀處于無(wú)氣息狀態(tài),即用戶沒(méi)有對(duì)氣息采集設(shè)備吹氣,可以用0表示。如果Eng—avg>ThresholdH,則判定當(dāng)前幀的用戶氣息信號(hào)處于高八度狀態(tài),可以用2表示。如杲ThresholdI^Eng_avgsThresholdH,則判定當(dāng)前幀的用戶氣息信號(hào)處于低八度狀態(tài),可以用l表示。例如,通過(guò)能量包絡(luò)對(duì)圖3所示的用戶氣息信號(hào)進(jìn)行判斷的結(jié)果如圖4所示,從圖4的判決結(jié)果可以看到,雖然可以準(zhǔn)確區(qū)分用戶氣息的低八度狀態(tài)和無(wú)氣息狀態(tài),但是高八度狀態(tài)中有很多采樣點(diǎn)的用戶氣息被判定為了低八度狀態(tài),造成這種錯(cuò)誤的原因是用戶氣息信號(hào)的波形都是一個(gè)由低到高,再到低的漸變的過(guò)程,相當(dāng)于正弦波的波形變化趨勢(shì),因此對(duì)于高八度狀態(tài)的用戶氣息,雖然信號(hào)很強(qiáng),但是在氣息開(kāi)始和結(jié)束的時(shí)候,能量都比較低,因此很容易誤判為低八度狀態(tài)的氣息。為了解決這個(gè)問(wèn)題,本發(fā)明實(shí)施例提出了一種增加高音保持的算法,即如果當(dāng)前已經(jīng)將用戶氣息判定為高八度狀態(tài)的氣息,則后續(xù)氣息的能量包絡(luò)只要能超過(guò)4交低的第一閾值,則繼續(xù)將該氣息判定為高八度狀態(tài)的氣息。因此,較佳地,若當(dāng)前幀的前一幀用戶氣息信號(hào)處于高八度狀態(tài),并且當(dāng)前幀用戶氣息信號(hào)的能量包絡(luò)大于或等于第一閾值,則確定當(dāng)前幀用戶氣息信號(hào)處于高八度狀態(tài)。也就是說(shuō),若當(dāng)前幀的用戶氣息信號(hào)的能量包絡(luò)大于或等于第一閾值,并且當(dāng)前幀的前一幀用戶氣息信號(hào)處于高八度氣息信號(hào),則即使當(dāng)前幀的用戶氣息信號(hào)的能量包絡(luò)小于或等于第二闊值,也判定當(dāng)前幀用戶氣息信號(hào)處于高八度狀態(tài)。采用了高音保持算法后的判決結(jié)果如圖5所示,通過(guò)比較圖4和圖5可以看出,采用了高音保持算法后的判決結(jié)果更加準(zhǔn)確了。然而,從圖5可以看出,對(duì)于高八度氣息的判決,在波形的中部和尾部都完全正確,但是在開(kāi)始的一段時(shí)間內(nèi)仍然將氣息錯(cuò)判為低八度氣息。因此,本發(fā)明實(shí)施例進(jìn)一步采用另一個(gè)參數(shù),即過(guò)零率來(lái)進(jìn)行輔助判決。所謂過(guò)零率,是指信號(hào)穿越0點(diǎn)的次數(shù)。如果氣息越快,則信號(hào)越強(qiáng),即能量包絡(luò)越大,對(duì)應(yīng)的過(guò)零率越高;反之越低。也就是說(shuō),高八度氣息信號(hào)的過(guò)零率要高于低八度氣息信號(hào)的過(guò)零率。4交佳地,采用過(guò)零率對(duì)用戶氣息信號(hào)的狀態(tài)判決,只應(yīng)用在4全測(cè)到存在用戶氣息的前幾幀進(jìn)行判決,后續(xù)的判決可以通過(guò)上述能量包絡(luò)的判決方法執(zhí)行。因此,本發(fā)明實(shí)施例中,對(duì)于初始的前若干幀(具體的幀數(shù),可以根據(jù)實(shí)際需要進(jìn)行設(shè)置)用戶氣息信號(hào),檢測(cè)能量包絡(luò)大于或等于第一閾值的每一幀用戶氣息信號(hào)的過(guò)零率;如果該幀用戶氣息信號(hào)的過(guò)零率大于預(yù)先設(shè)置的過(guò)零率閾值時(shí),則確定該幀用戶氣息信號(hào)處于高八度狀態(tài);否則,確定該幀用戶氣息信號(hào)處于低八度狀態(tài)。例如,假設(shè)令過(guò)零率表示為ZTR,ZTR的值可以通過(guò)下列公式計(jì)算得到如果sig(i)*sig(i+l)<0,則ZTR=ZTR+1。即如杲連續(xù)兩個(gè)采樣點(diǎn)的用戶氣息信號(hào)相乘小于零,則表示用戶氣息信號(hào)對(duì)應(yīng)的波形穿越了一次零點(diǎn),因此需要對(duì)ZTR加1。假設(shè)預(yù)先設(shè)置的過(guò)零率閾值為ThresholdZ,則如果ZTR>ThresholdZ,則確定當(dāng)前采樣點(diǎn)的用戶氣息信號(hào)處于高八度狀態(tài);如果ZTR《ThresholdZ,則確定當(dāng)前采樣點(diǎn)的用戶氣息信號(hào)處于為低八度狀態(tài)。采用了過(guò)零率對(duì)用戶氣息信號(hào)的狀態(tài)進(jìn)^^判決后的判決結(jié)果如圖6所示,由圖6可見(jiàn),用戶氣息信號(hào)狀態(tài)的判決結(jié)果非常準(zhǔn)確。關(guān)于指法輸入方面,預(yù)先設(shè)置鍵盤上特定幾個(gè)音符4建與音符的對(duì)應(yīng)關(guān)系,例如,可以設(shè)置數(shù)字鍵l、2、3、4、5、6、7分別對(duì)應(yīng)do、re、mi、fa、so、la、si。進(jìn)一步,在業(yè)余模式下,左右Shift鍵為八度鍵,用來(lái)控制每個(gè)音符的高低八度,即同一個(gè)音符高音和低音的切換。演奏的時(shí)候,吹奏人按下某音符12鍵的同時(shí)按下八度^ft,則選擇了該音符鍵所對(duì)應(yīng)的音符的高八度的音階,如果沒(méi)有按下八度鍵則為低八度的音.階,此設(shè)計(jì)主要針對(duì)初學(xué)者或者年齡較小氣息不足的演奏者,使他們也能自如地調(diào)整音符的高低音變化。在專業(yè)模式下,高低八度由演奏人的氣息來(lái)控制,即模擬真實(shí)樂(lè)器的演奏方法,左右Shift鍵此時(shí)為顫音鍵,它可以為每個(gè)音符加入顫音效果,使演奏效果更加真實(shí)。當(dāng)然,在業(yè)余模式下,除了八度鍵也可以設(shè)置顫音控制鍵。本發(fā)明實(shí)施例所述的合成單元13,可以是Midi音樂(lè)合成器,根據(jù)氣息檢測(cè)以及鍵盤檢測(cè)所得到的參數(shù),按照指定音色來(lái)合成Midi音樂(lè)。其中,音色合成部分主要調(diào)用以下幾個(gè)windowsapi函數(shù)首先,在音樂(lè)合成準(zhǔn)備期間打開(kāi)一個(gè)Midi輸出設(shè)備(即調(diào)用Midi合成器),即調(diào)用midiOutOpen函數(shù)midiOutOpen(PHMIDIOUTlphMidiOut,{用于返回設(shè)備句柄的指針,之后再調(diào)用其他函數(shù)應(yīng)該使用這個(gè)句柄}UINTuDeviceID,(Midi輸出設(shè)備標(biāo)識(shí)(ID)}DWORDdwCallback,{回調(diào)函數(shù)地址或窗口句柄}DWORDdwlnstance,{給回調(diào)函數(shù)的實(shí)例數(shù)據(jù)}DWORDdwFlags,.{打開(kāi)回調(diào)選項(xiàng)});如果midiOutOpen函數(shù)調(diào)用成功,則函數(shù)返回0。一旦打開(kāi)一個(gè)Midi輸出設(shè)備并獲得了其設(shè)備句柄指針之后,就可以向該Midi輸出設(shè)備發(fā)送Midi信息,此時(shí)調(diào)用midiOutShortMsg函數(shù)midiOutShortMsg(HMIDIOUThmo,{midiOutOpen獲得的句柄指針}DWORDdwMsg{Midi格式信息}Midi文件是由若干Midi信息所組成的。Midi信息的種類不同,構(gòu)成Midi信息的字節(jié)數(shù)也不同。但是,每一種類的Midi信息的第一個(gè)字節(jié)都是用于表示該Midi信息種類的字節(jié),稱為狀態(tài)字節(jié)。其中,狀態(tài)字節(jié)的大小如果位于0x80至0xEF范圍之間,則狀態(tài)字節(jié)所表示的信息與音樂(lè)的合成最為密切,因此稱其為音樂(lè)信息。音樂(lè)信息由8位二進(jìn)制數(shù)組成,可以4巴其分成前后兩個(gè)4位,即高位和低位,高位表示Midi信息的類型,低位表示Midi信息所操作的通道的序號(hào),本發(fā)明實(shí)施例中所使用的音樂(lè)信息可以包括以下兒種8(停止發(fā)音)、9(開(kāi)始發(fā)音)、A(按鍵壓力設(shè)置)、B(控制器設(shè)置)、C(音色調(diào)節(jié))、D(通道壓力設(shè)置)、E(彎音輪設(shè)置)。例如狀態(tài)字節(jié)0x80,高四位的十進(jìn)制數(shù)8表示停止發(fā)音,低四位O表示對(duì)第一個(gè)通道進(jìn)行操作,因此整個(gè)0x80就是表示令第一個(gè)通道停止發(fā)出聲音。在Ox卯到0x9f范圍之間的音樂(lè)信息,表示播放指定的音符,該部分信息由三個(gè)字節(jié)組成,分別用于表示音樂(lè)信息的種類、音符號(hào)碼以及聲音響度。Midi合成器可合成的音符數(shù)共128個(gè),編號(hào)從0至127,例如,中央C(頻率為256赫茲的音高,唱名為"do")可以是第60號(hào)。本發(fā)明實(shí)施例中,可以默認(rèn)中央C為低八度的"do",則音符按鍵與Midi音符編號(hào)的對(duì)應(yīng)關(guān)系如下面的表2和表3所示<table>tableseeoriginaldocumentpage14</column></row><table>上述表2中的Midi音符編號(hào)60、62、64、65、67、69、71,分別對(duì)應(yīng)低八度的音符do、re、mi、fa、so、la、si。上述表3中的Midi音符編號(hào)72、74、76、77、79、81、83,分別對(duì)應(yīng)高八度的音符do、re、mi、fa、so、la、si。聲音的響度范圍也是從0至127,其中0表示沒(méi)有發(fā)聲,127表示聲音最大。大小在0x80到0x8f范圍之間的音樂(lè)信息,表示關(guān)閉指定的音符,結(jié)構(gòu)和播放特定音符的Midi信息相同。大小在OxcO到Oxcf范圍之間的音樂(lè)信息,表示音色的切換,由兩個(gè)字節(jié)組成,第一個(gè)字節(jié)表示音樂(lè)信息的種類,后面的字節(jié)表示樂(lè)器的序號(hào),Midi合成器共包括128種樂(lè)器,比如l表示鋼琴,41表示小提琴,75表示長(zhǎng)笛等等。大小在OxbO到Oxbf范圍之間的音樂(lè)信息,表示音樂(lè)合成中的控制器選擇設(shè)置,如顫音的設(shè)置,音樂(lè)的漸變等等,該信息由三個(gè)字節(jié)組成,第一個(gè)字節(jié)表示音樂(lè)信息的種類,第二個(gè)字節(jié)表示控制器的名稱,第三個(gè)字節(jié)表示控制器參數(shù)。當(dāng)結(jié)束音色合成時(shí),要關(guān)閉Midi輸出設(shè)備,即調(diào)用函數(shù)midiOutClose(畫diOut)。本發(fā)明實(shí)施例向用戶提供的設(shè)置界面如圖7所示,在用戶通過(guò)計(jì)算機(jī)演奏吹奏類電子樂(lè)器時(shí),用戶首先要進(jìn)行參數(shù)設(shè)置,按照界面從上到下的排列順序依次為伴奏的打開(kāi)與關(guān)閉,演奏方式選擇和音色選擇。本發(fā)明實(shí)施例還可以提供類似卡拉OK的伴奏效果,即通過(guò)選擇了伴奏選項(xiàng),則用戶可以在預(yù)先設(shè)定的伴奏音樂(lè)下進(jìn)行演奏。對(duì)于初學(xué)者,可以使用業(yè)余模式,即使用shift鍵進(jìn)行音符的高低八度控制,經(jīng)過(guò)適當(dāng)?shù)木毩?xí)之后即可采用專業(yè)模式,此時(shí)還可以使用shift鍵控制顫音效果。另外,多種音色的選擇,還可以讓用戶嘗試不同的音樂(lè)效果。參數(shù)設(shè)置完成之后,就可以點(diǎn)擊啟動(dòng)鍵進(jìn)行演奏了,進(jìn)一步,在演奏的同時(shí)還可以通過(guò)顯示的音量條查看氣息的強(qiáng)弱。參見(jiàn)圖8,本發(fā)明實(shí)施例提供的一種音樂(lè)合成方法包括步驟5101、通過(guò)將用戶氣息信號(hào)的能量包絡(luò)與預(yù)先設(shè)定的閾值進(jìn)行比較,確定該用戶氣息信號(hào)的狀態(tài);并且,根據(jù)預(yù)先設(shè)置的音符^lt的值與音符的對(duì)應(yīng)關(guān)系,確定用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符。5102、利用用戶選擇的音符按4建的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)控制合成音樂(lè)。較佳地,步驟S102包括確定用戶預(yù)先選擇的音色,以及音符控制鍵的值;利用用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)和音符控制鍵的值,控制合成具有用戶預(yù)先選擇的音色的音樂(lè)。其中,確定音符控制鍵的值的步驟包括確定用戶選擇的演奏模式,其中,所述演奏模式為業(yè)余模式或?qū)I(yè)模式;根據(jù)預(yù)先設(shè)置的演奏模式與音符控制鍵的值對(duì)應(yīng)關(guān)系,確定用戶選擇的演奏模式所對(duì)應(yīng)的音符控制鍵的值。用戶氣息信號(hào)的狀態(tài),在不同的演奏模式下所起到的作用是不同的。當(dāng)所述演奏模式為業(yè)余模式時(shí),音符控制鍵的值為用于控制音符為高八度或低八度的值;用戶氣息信號(hào)的狀態(tài)為無(wú)氣息狀態(tài)或有氣息狀態(tài),在無(wú)氣息狀態(tài)時(shí),則不讀耳又音符,即不發(fā)出聲音,而在有氣息狀態(tài)時(shí),則正常讀取音符。當(dāng)所述演奏模式為專業(yè)模式時(shí),音符控制鍵的值為用于控制音符是否顫音的值;用戶氣息信號(hào)的狀態(tài)為無(wú)氣息狀態(tài)、高八度狀態(tài)或低八度狀態(tài),在無(wú)氣息狀態(tài)時(shí),不讀取音符,而在高八度狀態(tài)時(shí),則讀取高八度的音符,在低八度狀態(tài)時(shí),則讀取低八度的音符。本發(fā)明實(shí)施例,通過(guò)將用戶氣息信號(hào)的能量包絡(luò)與預(yù)先設(shè)定的閾值進(jìn)行比較,確定該用戶氣息信號(hào)的狀態(tài);并且,根據(jù)預(yù)先設(shè)置的音符按4定的值與音符的對(duì)應(yīng)關(guān)系,確定用戶選擇的音符按4建的值所對(duì)應(yīng)的音符;利用用戶選擇的音16符按鍵的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)控制合成音樂(lè),從而通過(guò)計(jì)算機(jī)實(shí)現(xiàn)了吹奏類樂(lè)器的音樂(lè)合成,使得通過(guò)計(jì)算機(jī)可以實(shí)現(xiàn)吹奏類樂(lè)器的演奏,給用戶帶來(lái)了更多樂(lè)趣,滿足了用戶更多需求,使用戶熟悉更多樂(lè)器的音色以及演奏方法。明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。權(quán)利要求1、一種音樂(lè)合成方法,其特征在于,該方法包括通過(guò)將用戶氣息信號(hào)的能量包絡(luò)與預(yù)先設(shè)定的閾值進(jìn)行比較,確定該用戶氣息信號(hào)的狀態(tài);并且,根據(jù)預(yù)先設(shè)置的音符按鍵的值與音符的對(duì)應(yīng)關(guān)系,確定用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符;利用用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)控制合成音樂(lè)。2、根據(jù)權(quán)利要求1所述的方法,其特征在于,利用用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)控制合成音樂(lè)的步驟包括確定用戶預(yù)先選擇的音色,以及音符控制鍵的值;利用用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)和音符控制鍵的值,控制合成具有用戶預(yù)先選擇的音色的音樂(lè)。3、根據(jù)權(quán)利要求2所述的方法,其特征在于,確定所述音符控制鍵的值的步驟包括確定用戶選擇的演奏才莫式,其中,所述演奏模式為業(yè)余模式或?qū)I(yè)才莫式;根據(jù)預(yù)先設(shè)置的演奏模式與音符控制4建的值對(duì)應(yīng)關(guān)系,確定用戶選擇的演奏模式所對(duì)應(yīng)的音符控制鍵的值。4、根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)所述演奏模式為業(yè)余模式時(shí),所述音符控制鍵的值為用于控制音符為高八度或低八度的值;當(dāng)所述演奏模式為專業(yè)模式時(shí),所述音符控制4定的值為用于控制音符是否顫音的值。5、根據(jù)權(quán)利要求3或4所述的方法,其特征在于,當(dāng)所述演奏^t式為業(yè)余模式時(shí),所述用戶氣息信號(hào)的狀態(tài)為無(wú)氣息狀態(tài)或有氣息狀態(tài);當(dāng)所述演奏模式為專業(yè)才莫式時(shí),所述用戶氣息信號(hào)的狀態(tài)為無(wú)氣息狀態(tài)、高八度狀態(tài)或低八度狀態(tài)。6、一種音樂(lè)合成裝置,其特征在于,所述裝置包括氣息狀態(tài)確定單元,用于通過(guò)將用戶氣息信號(hào)的能量包絡(luò)與預(yù)先設(shè)定的閾值進(jìn)行比較,確定該用戶氣息信號(hào)的狀態(tài);音符確定單元,用于根據(jù)預(yù)先設(shè)置的音符按鍵的值與音符的對(duì)應(yīng)關(guān)系,確定用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符;合成單元,用于利用用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)控制合成音樂(lè)。7、根據(jù)權(quán)利要求6所述的裝置,其特征在于,該裝置還包括演奏^:莫式確定單元,用于確定用戶選擇的演奏才莫式,其中,所述演奏^^式為業(yè)余模式或?qū)I(yè)模式;音符控制單元,用于確定用戶選擇的演奏模式所對(duì)應(yīng)的音符控制鍵的值;所述合成單元,利用用戶選擇的音符按^t的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)和音符控制鍵的值,控制合成音樂(lè)。8、根據(jù)權(quán)利要求7所述的裝置,其特征在于,該裝置還包括音色確定單元,用于確定用戶預(yù)先選擇的音色;所述合成單元,利用用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)和音符控制鍵的值,控制合成具有用戶預(yù)先選擇的音色的音樂(lè)。9、根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述音符控制單元,在所述演奏模式為業(yè)余沖莫式時(shí),確定所述音符控制4建的值為用于控制音符為高八度或低八度的值;在所述演奏模式為專業(yè)模式時(shí),確定所述音符控制鍵的值為用于控制音符是否顫音的值。10、根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述氣息狀態(tài)確定單元,在所述演奏模式為業(yè)余模式時(shí),確定所述用戶氣息信號(hào)的狀態(tài)為無(wú)氣息狀態(tài)或有氣息狀態(tài);在所述演奏模式為專業(yè)模式時(shí),確定所述用戶氣息信號(hào)的狀態(tài)為無(wú)氣息狀態(tài)、高八度狀態(tài)或低八度狀態(tài)。全文摘要本發(fā)明公開(kāi)了一種音樂(lè)合成方法及裝置,用以通過(guò)計(jì)算機(jī)實(shí)現(xiàn)吹奏類樂(lè)器的音樂(lè)合成,從而通過(guò)計(jì)算機(jī)可以實(shí)現(xiàn)吹奏類樂(lè)器的演奏。本發(fā)明提供的一種音樂(lè)合成方法包括通過(guò)將用戶氣息信號(hào)的能量包絡(luò)與預(yù)先設(shè)定的閾值進(jìn)行比較,確定該用戶氣息信號(hào)的狀態(tài);并且,根據(jù)預(yù)先設(shè)置的音符按鍵的值與音符的對(duì)應(yīng)關(guān)系,確定用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符;利用用戶選擇的音符按鍵的值所對(duì)應(yīng)的音符,并通過(guò)用戶氣息信號(hào)的狀態(tài)控制合成音樂(lè)。文檔編號(hào)G10H3/00GK101582258SQ20091007931公開(kāi)日2009年11月18日申請(qǐng)日期2009年3月5日優(yōu)先權(quán)日2009年3月5日發(fā)明者晨張,嵩高申請(qǐng)人:北京中星微電子有限公司