專(zhuān)利名稱(chēng):演奏信息分析裝置及和音檢測(cè)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于把包含樂(lè)曲的音高信息的演奏信息分解成多個(gè)部分的演奏信息分析裝置與從演奏信息中檢測(cè)和音的和音檢測(cè)裝置。
目前,有些電子樂(lè)器具備根據(jù)鍵盤(pán)彈出的樂(lè)曲進(jìn)行自動(dòng)伴奏的功能,即所謂自動(dòng)伴奏功能。對(duì)于這種樂(lè)器,為了決定伴奏音的音高,有必要檢測(cè)出和音。它是根據(jù)從鍵盤(pán)輸入的演奏信息即所彈按鍵的鍵碼來(lái)確定和音的。
但是,由于在鍵盤(pán)的高音端一般進(jìn)行旋律演奏,所以在高音端,對(duì)于和音,檢測(cè)出非和音碼的幾率增大。因此,把鍵盤(pán)虛擬分為低音端的左鍵區(qū)和高音端的右鍵區(qū),根據(jù)左鍵區(qū)按鍵的鍵碼來(lái)檢測(cè)和音。
這樣,在通過(guò)例如鍵碼的音高信息檢測(cè)和音時(shí),存在著適合于和音檢測(cè)的音域,這個(gè)音域的選取方法影響檢測(cè)精度。而這樣的音域在一個(gè)曲子中也是變化的,所以為了提高和音檢測(cè)精度,有的(樂(lè)器)做成可以通過(guò)開(kāi)關(guān)來(lái)切換左鍵域和右鍵域的界限。但這樣的樂(lè)器,由于必須邊演奏邊操作開(kāi)關(guān),所以在可操作性上存在不足之處。
很多樂(lè)曲,可以劃分為旋律聲部、低音聲部等多個(gè)部分,在這些部分中存在著適合于和音檢測(cè)的部分。那么如果能夠把演奏信息分解成這樣的部分,相應(yīng)于這個(gè)部分進(jìn)行和音檢測(cè),就可以提高檢測(cè)精度。
另外,如果能把演奏信息分解成多個(gè)部分,則有下列優(yōu)點(diǎn)。例如如果把自動(dòng)演奏的演奏信息分解成多個(gè)部分,并只把所希望的部分消音,進(jìn)行自動(dòng)演奏就變得很容易,這樣,配合這個(gè)自動(dòng)演奏進(jìn)行鍵盤(pán)演奏時(shí),練習(xí)消音部分的演奏即所謂“減一”(マィナスヮン)功能就很容易實(shí)現(xiàn)。而且,如果能把演奏信息分解成多個(gè)部分,那么在演奏信息中加入其他旋律或把其中一部分與其他旋律調(diào)換,即所謂自動(dòng)編曲等,也就變得很容易。
本發(fā)明是要解決把演奏信息能自動(dòng)地分解成與演奏信息對(duì)應(yīng)的多個(gè)部分的問(wèn)題。而且根據(jù)這樣的部分檢測(cè)和音,來(lái)提高和音檢測(cè)精度。
本發(fā)明的第一特征在于一種演奏信息分析裝置,它包括演奏信息輸入裝置,用于輸入包含多種音高信息的演奏信息;
演奏信息記憶裝置,用于記憶上述演奏信息;
部分分解裝置,根據(jù)上述演奏信息記憶裝置記憶的演奏信息在時(shí)間上相鄰的前面的演奏信息和現(xiàn)在的演奏信息之間的關(guān)系,分析現(xiàn)有的演奏信息并把它分解成多個(gè)組成部分。
本發(fā)明的第二特征在于一種演奏信息分析裝置,它包括演奏信息輸入裝置,用于輸入包含多種音高信息的演奏信息;
時(shí)機(jī)(タィミンダ)信息輸入裝置,用于輸入上述演奏信息相關(guān)的時(shí)機(jī)信息;
部分分解裝置,根據(jù)上述演奏信息的時(shí)機(jī)信息和上述音高信息把該演奏信息分解為多個(gè)組成部分。
本發(fā)明的第三特征在于一種和音檢測(cè)裝置,它包括演奏信息輸入裝置,用于輸入包含多種音高信息的演奏信息;
部分分解裝置,根據(jù)上述多種音高信息的相對(duì)音程把上述演奏信息分解成多個(gè)組成部分;
和音檢測(cè)裝置,根據(jù)上述部分分解裝置分解的規(guī)定部分的演奏信息檢測(cè)和音。
本發(fā)明的第四特征在于一種和音檢測(cè)裝置,它包括演奏信息輸入裝置,用于輸入包含多種音高信息的演奏信息;
演奏信息記憶裝置,用于記憶上述演奏信息;
部分分解裝置,根據(jù)上述演奏信息記憶裝置記憶的演奏信息在時(shí)間上相鄰的前面的演奏信息和現(xiàn)在的演奏信息之間的關(guān)系,分析現(xiàn)在的演奏信息并分解為多個(gè)組成部分;
和音檢測(cè)裝置,根據(jù)上述部分分解裝置分解的規(guī)定部分的演奏信息檢測(cè)和音。
本發(fā)明的第五特征在于一種和音檢測(cè)裝置,它包括演奏信息輸入裝置,用于輸入包含多種音高信息的演奏信息;
時(shí)機(jī)信息輸入裝置,用于輸入上述演奏信息相關(guān)的時(shí)機(jī)信息;
部分分解裝置,根據(jù)上述演奏信息的上述時(shí)機(jī)信息和上述音高信息把該演奏信息分解成多個(gè)組成部分;
和音檢測(cè)裝置,根據(jù)上述部分分解裝置分解的規(guī)定部分的演奏信息檢測(cè)和音。
附圖的簡(jiǎn)單說(shuō)明
圖1為本發(fā)明實(shí)施例的具有演奏信息分析裝置及和音檢測(cè)裝置的電子樂(lè)器模塊圖。
圖2為實(shí)施例的控制程序主程序流程圖。
圖3為實(shí)施例的中斷處理流程圖。
圖4為實(shí)施例的聲部分析流程圖。
圖5為實(shí)施例的1音聲部分析流程圖。
圖6為實(shí)施例的1音分析強(qiáng)拍處理流程圖。
圖7為實(shí)施例的1音分析弱拍處理流程圖。
圖8為實(shí)施例的琶音擴(kuò)充處理流程圖。
圖9為實(shí)施例的2音聲部分析處理流程圖。
圖10為實(shí)施例的3音聲部分析處理流程圖。
圖11為實(shí)施例的4音以上聲部分析處理流程圖。
圖12為實(shí)施例的以低音碼為中心進(jìn)行和音檢測(cè)處理的流程圖。
圖13為實(shí)施例的以旋律碼為中心進(jìn)行和音檢測(cè)處理的流程圖。
圖14為實(shí)施例的和音表的說(shuō)明圖。
圖15為實(shí)施例中1音聲部分析的輸入音的部分分配示意圖。
圖16為實(shí)施例中1音分析強(qiáng)拍的輸入音的部分分配示意圖。
圖17為實(shí)施例中1音分析弱拍的輸入音的部分分配示意圖。
圖18為實(shí)施例中琶音擴(kuò)充的輸入音的部分分配示意圖。
圖1是本發(fā)明實(shí)施例的具備演奏信息分析裝置與和音檢測(cè)裝置的電子樂(lè)器模塊圖,CPU1是根據(jù)存貯在程序存儲(chǔ)器2中的控制程序,使用工作存儲(chǔ)器3的工作區(qū),對(duì)電子樂(lè)器進(jìn)行整體控制,根據(jù)鍵盤(pán)4的操作進(jìn)行鍵盤(pán)演奏,根據(jù)自動(dòng)伴奏裝置5進(jìn)行自動(dòng)伴奏。
由CPU1檢測(cè)鍵盤(pán)4的鍵輸入,取得輸入鍵的鍵碼和鍵通或鍵斷信號(hào),向音源6輸出鍵碼和發(fā)音或消音信號(hào),進(jìn)行對(duì)應(yīng)于鍵盤(pán)演奏的發(fā)音和消音處理。自動(dòng)伴奏裝置5記憶了對(duì)應(yīng)于樂(lè)曲風(fēng)格的許多伴奏模式,它收到發(fā)自CPU1的啟動(dòng)信號(hào)時(shí),則按當(dāng)前選擇的伴奏模式進(jìn)行自動(dòng)伴奏,收到發(fā)自CPU1的停止信號(hào)時(shí),則停止自動(dòng)演奏。
另外,隨著鍵盤(pán)演奏的進(jìn)行,自動(dòng)伴奏裝置5收到發(fā)自CPU1的和音指示時(shí),則產(chǎn)生對(duì)應(yīng)于指定的和音與低音(bass音)音高的伴奏音音樂(lè)信號(hào)。這樣,發(fā)自音源6的音樂(lè)信號(hào)和發(fā)自自動(dòng)伴奏裝置5的音樂(lè)信號(hào)經(jīng)過(guò)混合器7的合成,輸出到聲音系統(tǒng)8,由聲音系統(tǒng)8對(duì)這個(gè)音樂(lè)信號(hào)進(jìn)行數(shù)/模轉(zhuǎn)換、增幅等處理,產(chǎn)生音樂(lè)。
操作開(kāi)關(guān)9中具有各種開(kāi)關(guān),如用于指定自動(dòng)伴奏開(kāi)始/停止的開(kāi)始/停止開(kāi)關(guān),用于自動(dòng)伴奏裝置5的風(fēng)格(スタィル)選擇或速度設(shè)定的開(kāi)關(guān),用于設(shè)定音源6的音色的開(kāi)關(guān)等。自動(dòng)伴奏裝置5是根據(jù)操作開(kāi)關(guān)9中設(shè)定的風(fēng)格和速度(テンポ)進(jìn)行自動(dòng)伴奏的。另外,CPU1把操作開(kāi)關(guān)9中設(shè)定的速度設(shè)定在定時(shí)器10中,由定時(shí)器10根據(jù)設(shè)定的速度每過(guò)一個(gè)8分音符向CPU1發(fā)出一次中斷信號(hào)。
然后,CPU1根據(jù)這個(gè)中斷信號(hào)進(jìn)行中斷處理,從自動(dòng)伴奏開(kāi)始時(shí)起,每過(guò)一個(gè)8分音符記錄一次速度,并檢測(cè)小節(jié)中的強(qiáng)拍或弱拍的時(shí)機(jī)或小節(jié)線(xiàn)的時(shí)機(jī),對(duì)鍵盤(pán)4的輸入鍵碼進(jìn)行聲部分析。然后在這個(gè)分析結(jié)果的基礎(chǔ)上檢測(cè)和音,檢測(cè)出的和音信息輸出到自動(dòng)伴奏裝置5。
和音表11是如圖14所示的關(guān)于C調(diào)和音的和音種類(lèi)與和音構(gòu)成音的對(duì)應(yīng)關(guān)系表,和音構(gòu)成音是通過(guò)對(duì)應(yīng)于12個(gè)音名的12位數(shù)據(jù)來(lái)記憶的,與和音構(gòu)成音對(duì)應(yīng)的位為1,其他位為0。這樣,在檢測(cè)和音時(shí),在12位寄存器中把對(duì)應(yīng)于和音檢測(cè)鍵碼的音名的位置1,然后一邊對(duì)這個(gè)寄存器進(jìn)行循環(huán)移位一邊與和音表11中的12位數(shù)據(jù)進(jìn)行比較,從而檢測(cè)出和音。也就是說(shuō),由匹配的和音表11的數(shù)據(jù),得到和音的種類(lèi)數(shù)據(jù),由此時(shí)(匹配時(shí))移位次數(shù)得到和音的根音數(shù)據(jù)。
這里,實(shí)施例的聲部分析是把鍵盤(pán)4的按鍵音分解成如下四個(gè)部分在高聲部作為旋律的旋律(ナロディ)聲部,旋律中加入和聲的旋律碼(ナロディコ-ド)聲部,在低聲部中作為基礎(chǔ)的低音(ベ-ス)聲部,在此基礎(chǔ)上加上和聲的低音碼(ベ-スコ-ド)聲部。另外,根據(jù)按鍵數(shù)的不同,分別進(jìn)行1音聲部分析,2音聲部分析,3音聲部分析及4音以上聲部分析。
這里,在聲部分析中,分解成四個(gè)部分的判斷條件是多種條件的組合,如音的高度、現(xiàn)在是不是小節(jié)的頭、現(xiàn)在是強(qiáng)拍音還是弱拍音、和前面的低音聲部音的音程、和前面旋律碼聲部音的音程等。根據(jù)這些條件來(lái)決定現(xiàn)在的鍵碼是屬于哪一部分。因此這四個(gè)部分,其音域并非固定的音域,而是隨著演奏信息而變化的。
這樣隨著演奏的進(jìn)行,通過(guò)聲部分析把鍵碼分配到各個(gè)部分,如果在低音碼聲部存在鍵碼,就根據(jù)這個(gè)低音碼聲部檢測(cè)和音,如果在這個(gè)低音碼聲部中沒(méi)有鍵碼,則根據(jù)旋律碼聲部檢測(cè)和音。
另外,在這個(gè)實(shí)施例中,通過(guò)聲部分析得到的低音聲部的低音與檢測(cè)出的和音輸入到自動(dòng)伴奏裝置5,當(dāng)輸入的低音與輸入的和音的根音不同時(shí),自動(dòng)伴奏裝置5將優(yōu)先發(fā)出低音。即對(duì)于低音與和音的根音不同的所謂分?jǐn)?shù)和音,能夠優(yōu)先發(fā)其低音。
這個(gè)實(shí)施例中,把鍵碼分解成上述的四個(gè)部分,各個(gè)部分和鍵碼的關(guān)系以下式的表結(jié)構(gòu)來(lái)表示。
a1.b1.b2….c1.c2.….d1.d2…這里,“”和“”是約束表中各要素的記號(hào),“.”是表中各要素的區(qū)分符號(hào),a1是低音聲部的鍵碼(低音聲部是單音),b1、b2等是低音碼聲部的鍵碼,c1、c2等是旋律碼聲部的鍵碼,d1、d2等是旋律聲部的鍵碼,整個(gè)上式(1)表示的是把各個(gè)部分的鍵碼表分別作為要素的整體表(以后稱(chēng)之為全分析表)。
圖2是控制程序主程序的流程圖。圖3~圖13是子程序和中斷處理程序的流程圖,并根據(jù)各流程圖來(lái)對(duì)實(shí)施例的動(dòng)作進(jìn)行說(shuō)明。另外,在以下的說(shuō)明中,根據(jù)需要,采取以下替代說(shuō)法,從鍵盤(pán)輸入的鍵碼稱(chēng)“輸入音”,作為各部分表的要素的鍵碼稱(chēng)為“檢測(cè)音”。除此之外,在流程圖中,“低音聲部”以“B聲部”,“低音碼聲部”以“BC聲部”,“旋鍵碼聲部”以“MC聲部”,“旋律聲部”以“M聲部”來(lái)表示。另外,在以后的說(shuō)明和各流程圖中,各寄存器、標(biāo)志、和表等以下列標(biāo)號(hào)表示,其內(nèi)容若不加特別說(shuō)明也以同一標(biāo)號(hào)表示BCLST現(xiàn)在的低音碼聲部表BSKC輸出到自動(dòng)伴奏裝置的檢測(cè)出的低音聲部檢測(cè)音butlLis除最低音以外的按鍵音表
butlUI5從按鍵音低端開(kāi)始間隔5度以?xún)?nèi),且除最低音以外的音表CHRD輸出到自動(dòng)伴奏裝置的檢測(cè)和音的信息LIST全分析表Nt1音聲部分析時(shí)作為分析對(duì)象的輸入音Nt l按鍵低音(或最低音)Nt h按鍵高音Nt m按鍵中音Nt m2按鍵中音NtLis按鍵音表PBCtop上次低音碼聲部的最高音檢測(cè)音PBCLST上次低音碼聲部的檢測(cè)音表PBS上次的低音聲部的檢測(cè)音PMbtm上次的旋律聲部的最低音的檢測(cè)音PMCtop上次的旋律碼聲部的最高音的檢測(cè)音RUN表示自動(dòng)伴奏開(kāi)始/停止的標(biāo)志rLis從按鍵音中除去特定音后的表ShrLis全分析表的低音聲部或旋律碼聲部中清除相同音后構(gòu)成的表UndInt5從按鍵音低端開(kāi)始間隔為5度以?xún)?nèi)的音表vl1音聲部分析后的全分析表接通電源后,圖2的主程序處理一開(kāi)始,則由步驟M1進(jìn)行各標(biāo)志和寄存器的初始化,再由步驟M2判定鍵盤(pán)4有無(wú)鍵輸入,若無(wú)鍵輸入則轉(zhuǎn)至步驟M6,若有鍵輸入則由M3檢查有無(wú)鍵通信號(hào);如有鍵通信號(hào)則由M4進(jìn)行發(fā)聲處理后執(zhí)行步驟M6,否則由M5進(jìn)行消音處理后執(zhí)行步驟M6。
在步驟M6,判斷操作開(kāi)關(guān)9的開(kāi)始/停止開(kāi)關(guān)操作信號(hào)是否存在,若不存在則返回執(zhí)行步驟M2,若存在則通過(guò)步驟M7對(duì)標(biāo)志RUN取反后,由步驟M8判斷RUN是否等于1,如果RUN=1,便由步驟M9向自動(dòng)伴奏裝置5輸出開(kāi)始信號(hào),然后返回步驟M2;若RUN=0則由步驟M10向自動(dòng)伴奏裝置輸出停止信號(hào),然后返回步驟M2。
根據(jù)以上的處理,通過(guò)對(duì)鍵盤(pán)演奏的發(fā)音與消音和對(duì)操作開(kāi)關(guān)9開(kāi)始/停止開(kāi)關(guān)的操作,來(lái)實(shí)現(xiàn)自動(dòng)伴奏的開(kāi)始和停止。
圖3的中斷處理根據(jù)定時(shí)器10發(fā)出的中斷信號(hào)每過(guò)一個(gè)8分音符啟動(dòng)一次。首先,在步驟i1,判斷是否滿(mǎn)足條件“RUN=1且按鍵數(shù)N>0”,若不滿(mǎn)足則返回主程序;若滿(mǎn)足,則由于自動(dòng)伴奏中產(chǎn)生按鍵音,所以由步驟i2進(jìn)行圖4以后的聲部分析。
這些聲部分析完成后,由步驟i3判斷有無(wú)低音碼聲部的檢測(cè)音,如果有低音碼聲部的檢測(cè)音,則由步驟i4進(jìn)行以圖12的低音碼為中心的和音檢測(cè),進(jìn)而執(zhí)行步驟i7。若低音碼聲部沒(méi)有檢測(cè)音,則由步驟i5判斷有無(wú)旋律碼聲部的檢測(cè)音,若沒(méi)有,便直接返回主程序,否則由步驟i6進(jìn)行以圖13的旋律碼為中心的和音檢測(cè)處理。
由以上處理可以看出,根據(jù)通過(guò)聲部分析獲得的全分析表LIST利用低音碼聲部和旋律碼聲部的檢測(cè)音檢測(cè)和音時(shí),首先通過(guò)低音碼聲部進(jìn)行和音檢測(cè),若低音碼聲部中不存在檢測(cè)音,再通過(guò)旋律碼聲部進(jìn)行和音檢測(cè)。
在步驟i7,判定和音檢測(cè)的成功與否,若和音檢測(cè)失敗,則直接返回主程序,反之若和音檢測(cè)成功,則通過(guò)步驟i8把LIST的低音聲部的要素(一個(gè)檢測(cè)音)存儲(chǔ)到寄存器BSKC中,由步驟i9把檢測(cè)出的和音信息存儲(chǔ)在寄存器CHRD中,再由步驟i10向自動(dòng)伴奏裝置5輸出低音BSKC與和音CHRD,然后返回主程序。
在圖4的聲部分析中,由步驟A1、A4、A6分別判斷按鍵音數(shù),進(jìn)行按鍵音數(shù)為1音、2音、3音和4音以上的處理。1音的情況下,由步驟A2把按鍵音的鍵碼(輸入音)存儲(chǔ)在Nt中,再由步驟A3進(jìn)行圖5的1音聲部分析;2音的情況下,由步驟A5進(jìn)行圖9的2音聲部分析;3音的情況下由步驟A7進(jìn)行圖10的3音聲部分析;4音以上的情況下,由步驟A8進(jìn)行圖11的4音以上聲部分析,各聲部分析完成后都分別返回調(diào)用程序。
在圖5的1音聲部分析中,由步驟S11把上次低音鍵碼(當(dāng)前LIST的低音聲部的鍵碼)存儲(chǔ)到PBS中。另外,在初始狀態(tài)或至此為止尚未檢測(cè)出低音時(shí),存入PBS中的是鍵碼無(wú)效的數(shù)據(jù),上次的低音是不存在的。
接著,在步驟S12判斷上次的低音PBS是否存在,若上次的低音PBS不存在,則由步驟S13判斷Nt≤G3碼是否成立,即判斷輸入音Nt是不是一個(gè)“1(5)”(一點(diǎn)ト(ソ))或比其低的音,若Nt≤G3碼,則把Nt作為低音,進(jìn)而執(zhí)行步驟S104,否則把Nt作為旋律音,然后執(zhí)行步驟S105。
在步驟S12,若PBS存在,則在步驟S14判斷當(dāng)前時(shí)機(jī)是否為小節(jié)的開(kāi)頭,若為小節(jié)的開(kāi)頭,則進(jìn)行步驟S18以后的處理,否則由步驟S15判斷當(dāng)前時(shí)機(jī)是否為強(qiáng)拍,為弦拍時(shí)由步驟S16進(jìn)行圖6的1音分析強(qiáng)拍處理后返回調(diào)用程序,不為強(qiáng)拍時(shí)由步驟S17進(jìn)行圖7的1音分析弱拍處理后返回調(diào)用程序。
步驟S18以后是當(dāng)前時(shí)機(jī)為小節(jié)的開(kāi)頭的情況下的處理。首先,在步驟S18判斷條件“Nt≤G3碼且Nt<PBS+12”是否滿(mǎn)足,條件滿(mǎn)足時(shí)執(zhí)行步驟S104,條件不滿(mǎn)足時(shí)由步驟S19判斷是否滿(mǎn)足“Nt>G3碼且Nt>PBS+7”的條件。在步驟S19,若條件滿(mǎn)足,則執(zhí)行步驟S104,條件不滿(mǎn)足時(shí),則判斷步驟S101中上次的旋律聲部的檢測(cè)音是否存在,若不存在,則執(zhí)行步驟S104,否則,由步驟S102把上次旋律聲部的檢測(cè)音最低音存儲(chǔ)到PMbtm中,然后去執(zhí)行步驟S103。
在步驟S103,判斷“Nt<PMbtm-12”的條件,也就是“輸入音Nt比上次旋律聲部的最低音還低一個(gè)音組以上”的條件是否滿(mǎn)足,若條件滿(mǎn)足,則執(zhí)行步驟S104,否則執(zhí)行步驟S105。
步驟S104是使全分析表LIST的低音聲部的要素只有輸入音Nt一個(gè),而其他部分的表為空的處理,步驟S105是使全分析表LIST的旋律聲部的要素只有輸入音Nt一個(gè)而其他部分的表為空的處理,步驟S104或S105的處理完成后,返回調(diào)用程序。
由以上所述,1音聲部分析是根據(jù)不同的條件來(lái)進(jìn)行的,當(dāng)上次低音不存在時(shí),以G3碼為基準(zhǔn)分配到低音聲部或旋律聲部;當(dāng)上次低音存在時(shí),還要判斷當(dāng)前的時(shí)機(jī)是否為小節(jié)的開(kāi)頭。當(dāng)為小節(jié)的開(kāi)頭時(shí),根據(jù)G3碼和上次的低音PBS或上次的旋律聲部的最低音PMbtm進(jìn)行分析,例如圖15所示,是分配到低音聲部或旋律聲部的。另外,如果上次的低音存在,而當(dāng)前時(shí)機(jī)又不是小節(jié)的開(kāi)頭,則根據(jù)當(dāng)前是強(qiáng)拍還是弱拍來(lái)分析。
在圖6的1音分析強(qiáng)拍處理中,由步驟a1把旋律聲部的最低音存儲(chǔ)到PMbtm中,把上次低音聲部的最高音存儲(chǔ)在PBCtop中,然后把上次低音碼聲部的表存儲(chǔ)到PBCLIST中,執(zhí)行步驟a2。在步驟a2,判斷LIST=PBS...是否成立,即至此為止檢測(cè)鍵碼(LIST的要素)是否僅為上次的低音PBS,若只有上次的低音,則進(jìn)行步驟a3以后的處理,若還檢測(cè)出了其他的音,則進(jìn)行步驟a7以后的處理。
圖16表示的是對(duì)應(yīng)1音分析強(qiáng)拍處理的輸入音Nt的部分劃分,在步驟a3、a4和a5,判斷當(dāng)前的檢出音Nt和上次的低音PBS有怎樣的音程關(guān)系,若“PBS-2≤Nt≤PBS+2”則由步驟a19以Nt為低音聲部的要素,把低音碼聲部、旋律碼聲部和旋律聲部設(shè)置為空表,若“PBS+2<Nt≤PBS+12”,則由步驟a15以PBS為低音聲部的要素,以Nt為低音碼聲部的要素,把旋律碼聲部和旋律聲部設(shè)置為空表。
另外,若“Nt<PBS+12”,則由步驟a14,以PBS為低音聲部的要素,Nt為旋律聲部的要素,把低音碼聲部、旋律碼聲部設(shè)置為空表。如果不屬于這些范圍,即,“Nt>PBS-2”,則由步驟a6,以Nt為低音聲部的要素,PBS為低音碼聲部的要素,把旋律碼聲部和旋律聲部設(shè)置為空表。
在步驟a2,當(dāng)LIST中至此為止檢測(cè)出的音不僅僅是上次的低音PBS時(shí),由步驟a7、a8和a9判斷當(dāng)前檢出音Nt和上次的低音PBS具有怎樣的音程關(guān)系。即,如果“PBS=Nt”,則直接返回調(diào)用程序;若“PBS-2≤Nt<PBS”,則由步驟a19以Nt為低音聲部的要素,把低音碼聲部、旋律碼聲部和旋律聲部設(shè)置為空表;若“Nt<PBS-2”,則由步驟a10把PBS加入上次的低音碼聲部表,并存儲(chǔ)到BCLST,再由步驟a1,以Nt為低音聲部的要素,BCLST為低音碼聲部表,把旋律碼聲部和旋律聲部設(shè)置為空表。若仍不屬以上范圍,即“Nt>PBS”,則進(jìn)行步驟a12以后的處理。
在步驟a12,判斷LIST的低音碼聲部是否為空表,如果為空,則由步驟a13判斷是否滿(mǎn)足條件“PMbtm存在且Nt≥PMbtm-7”,若條件滿(mǎn)足,則由步驟a14,以PBS為低音聲部的要素,Nt為旋律聲部的要素,把低音碼聲部和旋律碼聲部設(shè)置成空表;若條件不滿(mǎn)足,則由步驟a15以PBS為低音聲部的要素,Nt為低音碼聲部的要素,把旋律碼聲部和旋律聲部設(shè)置為空表。
另一方面,在步驟a12,若LIST的低音碼聲部不為空表,則由步驟a16判斷“Nt≤PBCtop”是否成立,不成立時(shí),由步驟a17進(jìn)行圖8的琶音(アルペヅオ)擴(kuò)充處理;成立時(shí),則由步驟a18判斷LIST的低音碼聲部中是否存在與Nt一致的值,若存在,則直接返回調(diào)用程序,否則,由步驟a19,以Nt為低音聲部的要素,將低音碼聲部、旋律碼聲部和旋律聲部設(shè)置成空表后,返回調(diào)用程序。
圖7的1音分析弱拍處理,是由步驟b1將上次的旋律聲部的最低音的鍵碼存儲(chǔ)到PMbtm中,上次的低音碼聲部的最高音的鍵碼存儲(chǔ)到PBCtop中,然后將上次的低音碼聲部表存儲(chǔ)到PBCLIST中后,去執(zhí)行步驟b2,在步驟b2,判斷至此為止檢測(cè)出的鍵碼是否僅為上次低音PBS,如果是這樣,則進(jìn)行步驟b3以后的處理;若檢測(cè)出了其他的音,則進(jìn)行步驟b7以后的處理。
圖17是對(duì)應(yīng)于1音分析強(qiáng)拍處理的輸入音Nt的部分劃分示意圖。由步驟b3、b4和b5判斷輸入音Nt與上次低音PBS之間的音程關(guān)系,根據(jù)輸入音Nt的音高,更新全分析表后,返回調(diào)用程序。即,如果“Nt=PBS”,則直接返回;如果“PBS<Nt≤PBS+16”則由步驟b14,以PBS為低音聲部的要素,Nt為低音碼聲部的要素,將旋律碼聲部與旋律聲部設(shè)置為空表。如果“Nt>PBS+16”,則由步驟b13,以PBS為低音聲部的要素,Nt為旋律聲部的要素,將低音碼聲部與旋律碼聲部設(shè)置為空表。如果不在這些范圍內(nèi)(即Nt<PBS),則由步驟b6,以Nt為低音聲部的要素,PBS為低音碼聲部的要素,將旋律碼聲部和旋律聲部設(shè)置為空表。
另外,在步驟b2,當(dāng)至此為止檢測(cè)出的音不僅僅是上次的低音PBS時(shí),則由步驟b7和b8判斷輸入音Nt與上次低音PBS之間的音程關(guān)系,根據(jù)輸入音Nt的音更新全分析表后,返回調(diào)用程序。即,如果“Nt=PBS”直接返回,如果“Nt<PBS”,則由步驟b9將PBS加入上次的低音碼聲部表,存入BCLST中,由步驟b10,以Nt為低音聲部的要素,BCLST為低音碼聲部的表,將旋律碼聲部和旋律聲部設(shè)置為空表。如果不在上述范圍內(nèi)(即Nt>PBS),則進(jìn)行步驟b11以后的處理。
在步驟b11,判斷LIST的低音碼聲部是否為空,如果為空,由步驟b12,判斷“PMbtm存在且Nt≥PMbtm-7”的條件是否滿(mǎn)足,根據(jù)輸入音的音高,更新全分析表,然后返回調(diào)用程序,即,如果條件滿(mǎn)足,則由步驟b13,以PBS為低音聲部的要素,Nt為旋律聲部的要素,將低音碼聲部和旋律碼聲部設(shè)置為空表。如果條件不滿(mǎn)足,則由步驟b14,以PBS為低音聲部的要素,Nt為低音碼聲部的要素,將旋律碼聲部和旋律聲部設(shè)置為空表。
另一方面,在步驟b11,如果LIST的低音碼聲部不為空,則由步驟b15判斷“Nt≤PBCtop”是否成立,當(dāng)“Nt≤PBCtop”不成立時(shí),由步驟b16進(jìn)行圖8的琶音擴(kuò)充處理;當(dāng)“Nt≤PBCtop”時(shí),由步驟b17判斷LIST的低音碼聲部中是否存在與Nt一致的音。如果有,則直接返回調(diào)用程序,否則,由步驟b18將Nt加入上次的低音碼聲部表,并存儲(chǔ)到BCLST中,再由步驟b19,以PBS為低音聲部的要素,BCLST為低音碼聲部的表,將旋律碼聲部與旋律聲部設(shè)置為空表,然后返回調(diào)用程序。
上述1音分析強(qiáng)拍和1音分析弱拍處理中,分配輸入音Nt的條件(音域)是不同的。比如在到上次為止只檢測(cè)出低音的情況下,對(duì)于圖17所示的弱拍處理,只有在Nt小于PBS時(shí)分配到低音聲部,而對(duì)于圖16所示的強(qiáng)拍處理,直到Nt比PBS高1個(gè)音(PBS+2都分配到低音聲部。
另外,在上次為止不僅檢測(cè)出了低音,且LIST的低音碼聲部不為空的情況下,當(dāng)PBS<Nt≤PBCtop時(shí),弱拍的處理是把Nt加入低音碼聲部,而強(qiáng)拍的處理則是加入到低音聲部。這樣,當(dāng)檢測(cè)音Nt在上次的低音PBS附近時(shí),強(qiáng)拍的情況比弱拍的情況下成為低音的機(jī)會(huì)要多些,所以適合于強(qiáng)拍時(shí)為低音,弱拍時(shí)為低音碼這種樂(lè)曲的趨勢(shì)的處理。
圖8的琶音擴(kuò)充處理是對(duì)輸入音Nt比上次的低音碼聲部的最高音PBCtop還高的情況下的處理。首先由步驟C1將上次旋律碼聲部的最高音的鍵碼存儲(chǔ)到PMCtop中,然后,由步驟C2、C3判斷輸入音Nt與上次低音碼聲部的最高音PBCtop之間的音程關(guān)系,根據(jù)輸入音的音高更新全分析表,返回調(diào)用程序。
圖18是對(duì)應(yīng)于琶音擴(kuò)充處理的輸入音Nt的部分劃分示意圖。在步驟C2、若“PBCtop<Nt≤PBCtop+9”,則由步驟C7把Nt作為要素加入上次低音碼聲部表PBCLST,并把這個(gè)表作為低音碼聲部表,將旋律碼聲部與旋律聲部設(shè)置為空表。另外,如果在步驟C3,“PBCtop+9<Nt≤PBCtop+16”不成立,由步驟C10,把PBS作為低音聲部的要素,上次的低音碼聲部音表PBCLST原封不動(dòng)地作為低音碼聲部表,Nt作為旋律聲部的要素,將旋律碼聲部設(shè)置為空表。
在步驟C2,當(dāng)“PBCtop+9<Nt≤PBCtop+16”時(shí),由步驟C4判斷上次的旋律聲部表是否為空,若為空,則進(jìn)行步驟C7以后的處理,否則由步驟C5判斷“Nt≤PMCtop+9”是否成立。當(dāng)“Nt≤PMCtop+9”時(shí),由步驟C6,以PBS為低音聲部的要素,上次低音碼聲部音表PBCLST原樣作為低音碼聲部表,Nt作為旋律碼聲部的要素,將旋律聲部設(shè)置為空表,返回調(diào)用程序。另一方面,如果在步驟C5,“Nt≤PMCtop+9”不成立,則由步驟C9判斷“Nt<PMbtm-7”是否成立,當(dāng)“Nt<PMbtm-7”時(shí),進(jìn)行步驟C7以后的處理,當(dāng)“Nt<PMbtm-7”不成立時(shí),進(jìn)行步驟C10的處理。
在這個(gè)琶音擴(kuò)充處理中,如圖17所表示的那樣,對(duì)于比上次的低音碼聲部的最高音PBCtop還要高的鍵碼,根據(jù)與PBCtop+9,PMCtop+9,PMbtm-7和PBCtop+16之間的音程關(guān)系,來(lái)指定低音碼聲部、旋律碼聲部或旋律聲部。
以上包括1音分析強(qiáng)拍、1音分析弱拍和琶音擴(kuò)充處理的1音聲部分析處理,是同樣適用于2音聲部分析,3音聲部分析及4音以上聲部分析的共通的基本處理,下面,對(duì)2音聲部分析,3音聲部分析以及4音以上聲部分析的各個(gè)處理中,多個(gè)輸入音的最低音分別進(jìn)行說(shuō)明,首先進(jìn)行2音聲部分析。
另外,圖9~圖11所示的2音聲部分析,3音聲部分析及4音以上聲部分析的各個(gè)處理,是根據(jù)是否為小節(jié)的開(kāi)頭,各按鍵音的音程關(guān)系,以及作為1音聲部分析結(jié)果的全分析表的內(nèi)容,來(lái)更新全分析表的處理。為簡(jiǎn)單起見(jiàn),除重要部分外,省略步驟的補(bǔ)充說(shuō)明。另外,對(duì)于圖9~圖11的流程圖,六邊形的判斷框中格式為vl=…的式子,表示判斷左邊的表vl的要素與右邊表的要素是否相等,另外在四邊形框中只列出表的內(nèi)容的部分是表示把全分析表更新為所列出的內(nèi)容(LIST←…)圖9的2音聲部分析的處理中,首先由步驟S21把上次的低音(低音聲部)的鍵碼存儲(chǔ)到PBS中,按鍵2音(輸入音)的低音鍵碼存儲(chǔ)到Nt中,然后把按鍵2音的高音鍵碼存儲(chǔ)到Nth中,進(jìn)而執(zhí)行步驟S22。接著,由步驟S22,把低音Ntl賦給Nt,由步驟S2對(duì)Nt進(jìn)行前面敘述的1音聲部分析處理,由步驟S24把作為這個(gè)1音聲部分析結(jié)果的全分析表存儲(chǔ)到vl,然后執(zhí)行步驟S25。
在步驟S25,判斷當(dāng)前時(shí)機(jī)是否為小節(jié)的開(kāi)頭,若為小節(jié)的開(kāi)頭,則執(zhí)行步驟S26,否則執(zhí)行步驟S27。這樣,由步驟S26或S27判斷Ntl和Nth的音程差是否超過(guò)了一個(gè)音組,對(duì)于是小節(jié)的開(kāi)頭且音程差在1個(gè)音組以?xún)?nèi)、是小節(jié)的開(kāi)頭而音程差超過(guò)1個(gè)音組、不是小節(jié)的開(kāi)頭且音程差在1個(gè)音組以?xún)?nèi)、不是小節(jié)的開(kāi)頭且音程差超過(guò)1個(gè)音組這幾種情況,分別如流程圖所示根據(jù)表vl的狀態(tài)將Ntl與Nth分配到各部分,更新分解析表。
是小節(jié)的開(kāi)頭且Ntl與Nth的音程差在1個(gè)音組以?xún)?nèi)的情況下,根據(jù)步驟S201以后的處理,對(duì)于旋律碼聲部或旋律聲部Ntl與Nth是成對(duì)地分配的,對(duì)于低音聲部和低音碼聲部,是把Ntl分配到低音聲部,Nth分配到低音碼聲部這種相鄰的部分中。
是小節(jié)的開(kāi)頭,且Ntl與Nth的音程差超過(guò)1個(gè)音組的情況下,根據(jù)步驟S202以后的處理,對(duì)于旋律碼聲部或旋律聲部,是把Ntl分配到旋律碼聲部,Nth分配到旋律聲部,對(duì)于低音聲部和旋律聲部,是把Ntl分配到低音聲部,Nth分配到旋律聲部這樣隔開(kāi)的部分中。
不是小節(jié)的開(kāi)頭且Ntl與Nth的音程差在1個(gè)音組以?xún)?nèi)的情況下,根據(jù)步驟S203以后的處理,當(dāng)?shù)鸵袈暡繛镹tl而其他部分為空時(shí),將Ntl分配到低音聲部,Nth分配到低音碼聲部;當(dāng)?shù)鸵袈暡坎粸镹tl或其他部分不為空時(shí),把PBS分配到低音聲部,Ntl與Nth成對(duì)地分配到低音碼聲部或旋律碼聲部或旋律聲部中。
不是小節(jié)的開(kāi)頭且Ntl與Nth的音程差超過(guò)1個(gè)音組的情況下,根據(jù)步驟S204以后的處理,當(dāng)?shù)鸵袈暡繛镹tl,且其他部分為空時(shí),把Ntl分配到低音聲部,Nth分配到旋律聲部,當(dāng)?shù)鸵袈暡坎粸镹tl或其他部分不為空時(shí),把PBS分配到低音聲部,Nth分配到旋律聲部,Ntl分配到低音碼聲部或旋律聲部中。
在圖10的3音聲部分析的處理中,首先,由步驟S31把上次低音的鍵碼存儲(chǔ)到PBS,按鍵3音(輸入音)的低音鍵碼存儲(chǔ)到Ntl,中音鍵碼存儲(chǔ)到Ntm,高音鍵碼存儲(chǔ)到Nth中。然后,由步驟S32把低音Ntl賦給Nt,對(duì)于Nt由步驟S33進(jìn)行前面所述的1音聲部分析處理,由步驟S34把作為這個(gè)1音聲部分析結(jié)果的全分析表LIST存儲(chǔ)到vl中后,進(jìn)而執(zhí)行步驟S35。
在步驟S35,判斷是否為小節(jié)的開(kāi)頭,對(duì)于是小節(jié)的開(kāi)頭的情況及其他的情況的處理,由步驟S36及S36以后的處理完成,根據(jù)按鍵3音的音程關(guān)系與vl=Ntl...是否成立把Ntl、Ntm及Nth分配到合適的部分,更新全分析表。
也就是說(shuō),是小節(jié)的開(kāi)頭且高音與低音都在以中音開(kāi)始五度以?xún)?nèi)時(shí),若vl=Ntl,則把Ntl分配到低音聲部,Ntm和Nth分配到低音碼聲部,否則就把Ntl和Ntm及Nth這三個(gè)音分配到低音碼聲部。不是小節(jié)的開(kāi)頭且高音和低音都在以中音開(kāi)始五度以?xún)?nèi)時(shí),若vl=Ntl,則把Ntl分配到低音聲部,Ntm及Nth分配到低音碼聲部,否則就把PBS分配到低音聲部,把Ntl、Ntm及Nth的3音分配到低音碼聲部中。這樣,就發(fā)生了由于在小節(jié)頭時(shí),和音容易變化,所以在低音聲部中不用PBS,非小節(jié)開(kāi)頭時(shí),和音容易持續(xù),所以在低音聲部中使用PBS的情況。
另外,從流程圖來(lái)看,高音和低音不都在從中音開(kāi)始的五度以?xún)?nèi)的情況下,是小節(jié)開(kāi)頭時(shí),傾向于把Ntl,Ntm及Nth分配到低音端;不是小節(jié)開(kāi)頭,傾向于把Ntl、Ntm及Nth分配到高音端。而且,高音和低音不都在從中音開(kāi)始的5度以?xún)?nèi)的情況下,是小節(jié)開(kāi)頭時(shí),傾向于在低音聲部中不用PBS,把Ntl分配到低音聲部。不是小節(jié)開(kāi)頭時(shí),傾向于把PBS分配到低音聲部。
另外,對(duì)于流程圖,“比次高音8度音程大”表示“Ntm與Nth之間的音程大于8度”,“次低音8度以?xún)?nèi)”表示“Ntl與Ntm之間的音程在8度以?xún)?nèi)”。另外,“次高音8度以?xún)?nèi)”是表示“Ntm與Nth之間的音程在8度以?xún)?nèi)”,“5度”的情況也是同樣。
在圖11的4音以上聲部分析處理中,首先,由步驟S41,分別把上次低音的鍵碼存儲(chǔ)到PBS,按鍵音的最低音鍵碼存儲(chǔ)到Ntl,按鍵音的表存儲(chǔ)到NTLis,除去低音以后的按鍵音表存儲(chǔ)到butLis中。然后由步驟S42把最低音Ntl賦給Nt,對(duì)于Nt由步驟S43進(jìn)行1音聲部分析處理,由步驟S44把作為這個(gè)1音聲部分析結(jié)果的全分析表LIST存儲(chǔ)到表v1中,進(jìn)而執(zhí)行步驟S45。
在步驟S45,判斷最低音與次低音(低2音)的音程差是否大于8度,如果大于8度,由步驟S46的判斷,若vl=Ntl成立,則把Ntl分配到低音聲部,表butlLis分配到低音碼聲部中,否則把PBS分配到低音聲部,按鍵音表NTLis分配到低音碼聲部中。另外如果次低音的音程差在8度以下,則由步驟S47判斷這個(gè)次低音的音程差是否在5度以?xún)?nèi),若在5度以?xún)?nèi),則進(jìn)行步驟S48以后的處理,若不在5度以?xún)?nèi),則進(jìn)行步驟S49以后的處理。
在步驟S48,把從按鍵音表NTLis的低端的音開(kāi)始,音程差順序保持5度以?xún)?nèi)間隔的音表存儲(chǔ)到表UndInt5中,由步驟S401把從按鍵音表NTLis的要素中除去表UndInt5的要素后做成的表,存儲(chǔ)到表rLis中,然后執(zhí)行步驟S402。
這樣,由步驟S402的判斷,若vl=Ntl不成立,則把PBS分配到低音聲部,表UndInt5分配到低音碼聲部,表rlis分配到旋律碼聲部。反之若vl=Ntl成立,則由步驟S403把從表UndInt5的要素中除去Ntl后做成的表存儲(chǔ)到butlUI5中,Ntl分配到低音聲部,表butlUI5分配到低音碼聲部,表rLis分配到旋律碼聲部。
另一方面,在步驟S49,把按鍵音表NTLis低端的音開(kāi)始第2個(gè)音存儲(chǔ)到Ntm,低端的音開(kāi)始第3個(gè)音存儲(chǔ)到Ntm2中,由步驟S404判斷Ntm與Ntm2之間的音程是否在5度以?xún)?nèi),若在5度以?xún)?nèi),則執(zhí)行步驟S405,否則執(zhí)行步驟S409,然后,由步驟S405或S409判斷當(dāng)前時(shí)機(jī)是否為小節(jié)開(kāi)頭,根據(jù)Ntm與Ntm2之間的音程在5度以?xún)?nèi)且當(dāng)前為小節(jié)開(kāi)頭、5度以?xún)?nèi)而當(dāng)前不是小節(jié)開(kāi)頭、超過(guò)5度而當(dāng)前為小節(jié)開(kāi)頭、超過(guò)5度且當(dāng)前不是小節(jié)開(kāi)頭等各種情況,把按鍵音分配到(合適的)部分,更新全分析表。
5度以?xún)?nèi)且為小節(jié)的開(kāi)頭時(shí),則把Ntl分配到低音聲部,表UndInt5分配到低音碼聲部,表rLis分配到旋律碼聲部。5度以?xún)?nèi)但不為小節(jié)的開(kāi)頭時(shí),則由步驟S406,把從按鍵音表低端的音開(kāi)始音程差順序保持5度以?xún)?nèi)間隔的音表存儲(chǔ)到表UndInt5,由步驟S407,把從按鍵音表NTLis的要素中除去表UndInt5的要素所構(gòu)成的表存儲(chǔ)到rLis中,進(jìn)而執(zhí)行步驟S408。
然后,由步驟S408的判斷,若vl=Ntl不成立,則把PBS分配到低音聲部,Ntl分配到低音碼聲部,表UndInt5分配到旋律碼聲部,表rLis分配到旋律聲部。否則,就把Ntl分配到低音聲部,表UndInt5分配到低音碼聲部,表rLis分配到旋律碼聲部。
超過(guò)5度且為小節(jié)的開(kāi)頭時(shí),則把Ntl分配到低音聲部,Ntm分配到低音碼聲部,表rLis分配到旋律碼聲部。超過(guò)5度但不是小節(jié)的開(kāi)頭時(shí),由步驟S410把從按鍵音表NTLis的要素中除去Ntl后所構(gòu)成的表存儲(chǔ)到表rLis中,根據(jù)步驟S411的判斷,若vl=Ntl不成立,則把PBS分配到低音聲部,Ntl與Ntm分配到低音碼聲部,表rLis分配到該旋律碼聲部。否則,就把Ntl分配到低音聲部、Ntm分配到低音碼聲部,表rLis分配到旋律碼聲部。
由以上的聲部分析處理,每過(guò)一個(gè)8分音符進(jìn)行一次的中斷處理期間產(chǎn)生的鍵輸入碼,根據(jù)音高、當(dāng)前是否為小節(jié)的開(kāi)頭、當(dāng)前是強(qiáng)拍還是弱拍、與上次的低音聲部音之間的音程、與上次旋律碼聲部音之間的音程等多種判斷條件,相應(yīng)地被分解為四個(gè)部分,從全分析表中可以得到各個(gè)部分的鍵碼,然后,在這個(gè)全分析表的基礎(chǔ)上,進(jìn)行如下的和音檢測(cè)。
在圖12所示的以基碼為中心進(jìn)行的和音檢測(cè)處理中,首先,由步驟S51把從全分析表LIST的低音碼聲部要素中,清除發(fā)相同音的重復(fù)鍵碼后構(gòu)成的表存儲(chǔ)到表ShrLis中,再由步驟S52判斷表ShrLis的要素是否為3個(gè)以上,如果為3個(gè)以上,則進(jìn)行步驟S53以后的處理,否則就執(zhí)行步驟S56。
在步驟S53,12位寄存器CHD中與表ShrLis中的鍵碼相對(duì)應(yīng)的位被置為1,其他位清零,由步驟S54根據(jù)CHD檢索和音表,檢測(cè)出和音。然后由步驟S55判斷和音檢測(cè)是否成功,若檢測(cè)成功則返回調(diào)用程序,否則執(zhí)行步驟S56。
在步驟S56,把從全分析表LIST的低音聲部的要素(一個(gè))和低音碼聲部的要素合并后的表中,清除發(fā)相同音的重復(fù)鍵碼后構(gòu)成的表,存儲(chǔ)到ShrLis中,由步驟S57判斷表ShrLis的要素是否為3個(gè)以上,若不為3個(gè)以上,則去執(zhí)行S502,否則由步驟S58和S59進(jìn)行與上述相同的和音檢測(cè)處理,再由步驟S501判斷和音檢測(cè)的成功與否,若檢測(cè)成功,則返回調(diào)用程序,否則就去執(zhí)行步驟S502。然后,由步驟S502,把從合并全分析表LIST的低音聲部的要素(1個(gè))、低音碼聲部的要素及旋律碼聲部的要素后的表中,清除發(fā)相同音的重復(fù)鍵碼后構(gòu)成的表,存儲(chǔ)到列ShrLis中,然后返回調(diào)用程序。
在圖13的以旋律碼為中心的和音檢測(cè)處理中,首先由步驟S56,把從全分析表LIST的旋律碼聲部的要素中清除發(fā)相同音的重復(fù)鍵碼后構(gòu)成的表存儲(chǔ)到表ShrLis中,再由步驟S62,判斷表ShrLis的要素是否為3個(gè)以上,如果不為3個(gè)以上,則執(zhí)行步驟S66,否則由步驟S63與S64進(jìn)行與上述相同的和音檢測(cè)處理,然后由步驟S64判斷和音檢測(cè)的成功與否,若檢測(cè)成功,則返回調(diào)用程序,否則就去執(zhí)行步驟S66。
在步驟S66,把從全分析表LIST的低音聲部的要素與旋律碼聲部的要素合并的表中,清除發(fā)相同音的重復(fù)鍵碼后構(gòu)成的表,存儲(chǔ)到ShrLis中,再由步驟S67與S68進(jìn)行與上述相同的和音檢測(cè)處理,然后返回調(diào)用程序。
如上所述,鍵盤(pán)演奏的輸入音鍵碼,隨著演奏被分解成音域不斷變化的四個(gè)部分,這樣,根據(jù)隨著演奏分解的各部分進(jìn)行和音檢測(cè),就很容易檢測(cè)出和音。
另外,在以上的實(shí)施例中,是以從鍵盤(pán)輸入的接鍵音為演奏信息進(jìn)行聲部分析的,不言而喻,對(duì)于從外部設(shè)備輸入的演奏信息,或預(yù)先由記憶裝置記憶的演奏信息也可以分別進(jìn)行同樣的聲部分析。另外,根據(jù)這種演奏信息記憶的小節(jié)的開(kāi)頭信息,可以檢測(cè)出時(shí)機(jī)也是理所當(dāng)然的。
另外,在上述實(shí)施例中,是隨每一次中斷處理,一面更新全析分表,一面進(jìn)行和音檢測(cè)的,不言而喻,如果逐次記憶部分分解所獲得的全分析表,則可以把聲部分析的結(jié)果也存儲(chǔ)下來(lái)。
另外,在上述實(shí)施例中,是從分解的所定部分檢測(cè)出用于自動(dòng)伴奏的和音的,但也可以記憶自動(dòng)伴奏的演奏信息等,把這些演奏信息分解并記憶,在鍵盤(pán)演奏時(shí),抹去指定部分而進(jìn)行自動(dòng)演奏等,適用于減一功能。
根據(jù)以上說(shuō)明,由于本發(fā)明的演奏信息分析裝置的一個(gè)特征,是以演奏信息的音高信息的相對(duì)音程為基礎(chǔ)把演奏信息分解成多個(gè)部分的,所以分解部分的音域?qū)τ谘葑嘈畔?lái)說(shuō)是合適的;由于本發(fā)明的演奏信息分析裝置的另一個(gè)特征,是以演奏信息記憶裝置記憶的演奏信息在時(shí)間上相鄰的前面的演奏信息與現(xiàn)在的演奏信息的關(guān)系為基礎(chǔ)分析演奏信息并分解成各部分的,因而分解成部分的條件是依從于演奏的過(guò)程的;另外,由于本發(fā)明的演奏信息分析裝置的又一特征,是以演奏時(shí)機(jī)與音高信息為基礎(chǔ),把演奏信息分解成多個(gè)部分的,所以分解成部分的條件是對(duì)應(yīng)于強(qiáng)拍、弱拍或小節(jié)的開(kāi)頭等這些對(duì)應(yīng)于演奏時(shí)機(jī)的特征的。因此,根據(jù)本發(fā)明的演奏信息分析裝置,能夠把演奏信息自動(dòng)地分解成與之相應(yīng)的多個(gè)部分。
由于本發(fā)明的和音檢測(cè)裝置的一個(gè)特征,是以演奏信息的音高信息的相對(duì)音程為基礎(chǔ),把演奏信息分解成多個(gè)部分,再根據(jù)分解的所定部分的演奏信息進(jìn)行和音檢測(cè)的,因而能夠根據(jù)適合于演奏信息的部分,檢測(cè)出和音;另外,由于本發(fā)明的和音檢測(cè)裝置的另一特征,是以演奏信息記憶裝置記憶的演奏信息在時(shí)間上相鄰的前面的演奏信息與現(xiàn)在的演奏信息之間的關(guān)系為基礎(chǔ)分析演奏信息并把它分解成多個(gè)部分,以分解的所定部分的的演奏信息為基礎(chǔ)進(jìn)行和音檢測(cè)的,因此,由根據(jù)依從于演奏進(jìn)程的條件分解并適合于演奏信息的部分,能夠檢測(cè)出和音;另外,由于本發(fā)明的和音檢測(cè)裝置的又一特征,是依據(jù)演奏時(shí)序與音高信息把演奏信息分解為多個(gè)部分,并以分解的所定部分的演奏信息為基礎(chǔ)進(jìn)行和音檢測(cè)的,因此,以根據(jù)對(duì)應(yīng)于演奏的強(qiáng)拍,弱拍或小節(jié)的開(kāi)頭等特征的條件分解并適合于演奏信息的部分為基礎(chǔ),能夠檢測(cè)出和音。因而,根據(jù)本發(fā)明的和音檢測(cè)裝置,能夠提高和音檢測(cè)的檢測(cè)精度。
權(quán)利要求
1.一種和音檢測(cè)裝置,其特征在于,包括演奏信息輸入裝置,用于輸入包含多個(gè)音高信息的演奏信息;部分分解裝置,用于根據(jù)上述音高信息的相對(duì)音程,把上述演奏信息分解成多個(gè)部分;和音檢測(cè)裝置,用于根據(jù)上述部分分解裝置分解的所定部分的演奏信息,檢測(cè)出和音。
2.根據(jù)權(quán)利要求1所述的和音檢測(cè)裝置,其特征在于,上述演奏信息輸入裝置,是把在時(shí)間上連續(xù)的多個(gè)演奏信息的音高信息,作為上述演奏信息的音高信息而輸入的。
3.根據(jù)權(quán)利要求1所述的和音檢測(cè)裝置,其特征在于,上述演奏信息輸入裝置,是把同時(shí)按下鍵盤(pán)的多個(gè)鍵時(shí)產(chǎn)生的音高信息,作為上述演奏信息的音高信息而輸入的。
4.根據(jù)權(quán)利要求1所述的和音檢測(cè)裝置,其特征在于,上述演奏信息輸入裝置,是把在時(shí)間上連續(xù)的多個(gè)演奏信息的音高信息與同時(shí)按下鍵盤(pán)的多個(gè)鍵時(shí)產(chǎn)生的音高信息,作為上述演奏信息的音高信息而輸入的。
5.根據(jù)權(quán)利要求1所述的和音檢測(cè)裝置,其特征在于,上述部分分解裝置,是根據(jù)在時(shí)間上連續(xù)的多個(gè)音高信息的音高差,把上述演奏信息分解成多個(gè)部分的。
6.根據(jù)權(quán)利要求1所述的和音檢測(cè)裝置,其特征在于,上述部分分解裝置,是根據(jù)同時(shí)按下鍵盤(pán)的多個(gè)按鍵時(shí)產(chǎn)生的多個(gè)音高信息的音高差,把上述演奏信息分解成多個(gè)部分的。
7.根據(jù)權(quán)利要求1所述的和音檢測(cè)裝置,其特征在于,上述部分分解裝置,是把上述演奏信息分解成用于檢測(cè)和音的部分和除此以外的部分。
8.根據(jù)權(quán)利要求1所述的和音檢測(cè)裝置,其特征在于,上述部分分解裝置,是把上述演奏信息分解成用于檢測(cè)和音的多個(gè)部分和除此以外的部分。
9.根據(jù)權(quán)利要求8所述的和音檢測(cè)裝置,其特征在于,上述和音檢測(cè)裝置,是從上述部分分解裝置分解的上述用于和音檢測(cè)的多個(gè)部分中,選擇合適的部分進(jìn)行和音檢測(cè)的。
10.一種自動(dòng)伴奏裝置,用于根據(jù)由權(quán)利要求1所述的和音檢測(cè)裝置檢測(cè)出的和音進(jìn)行自動(dòng)伴奏。
11.一種演奏信息分析裝置,其特征在于,它包括演奏信息輸入裝置,用于輸入包含多個(gè)音高信息的演奏信息;演奏信息記憶裝置,用于記憶上述演奏信息;部分分解裝置,用于根據(jù)由上述演奏信息記憶裝置記憶的演奏信息在時(shí)間上相鄰的前面的演奏信息與現(xiàn)在的演奏信息之間的關(guān)系,分析現(xiàn)在的演奏信息并分解成多個(gè)部分。
12.根據(jù)權(quán)利要求11所述的演奏信息分析裝置,其特征在于,上述演奏信息輸入裝置,是把在時(shí)間上連續(xù)的多個(gè)演奏信息的音高信息作為上述多個(gè)音高信息而輸入的。
13.根據(jù)權(quán)利要求11所述的演奏信息分析裝置,其特征在于,上述部分分解裝置,是根據(jù)上述在時(shí)間上相鄰的、前面的演奏信息與現(xiàn)在的演奏信息的相對(duì)音程,分析現(xiàn)在的演奏信息,并分解成多個(gè)部分的。
14.一種演奏信息分析裝置,其特征在于,它包括演奏信息輸入裝置,用于輸入包含多個(gè)音高信息的演奏信息;時(shí)機(jī)信息輸入裝置,用于輸入關(guān)于上述演奏信息的時(shí)機(jī)信息;部分分解裝置,用于根據(jù)上述演奏信息的上述時(shí)機(jī)信息與上述音高信息,把該演奏信息分解成多個(gè)部分。
15.根據(jù)權(quán)利要求14所述的演奏信息分析裝置,其特征在于,上述演奏信息輸入裝置,是把在時(shí)間上連續(xù)的多個(gè)演奏信息的音高信息作為上述音高信息而輸入的。
16.根據(jù)權(quán)利要求14所述的演奏信息分析裝置,其特征在于,上述演奏信息輸入裝置,是把同時(shí)按下鍵盤(pán)的多個(gè)鍵時(shí)產(chǎn)生的音高信息作為上述多個(gè)音高信息而輸入的。
17.根據(jù)權(quán)利要求14所述的演奏信息分析裝置,其特征在于,上述演奏信息輸入裝置,是把在時(shí)間上連續(xù)的多個(gè)演奏信息的音高信息與同時(shí)按下鍵盤(pán)的多個(gè)鍵時(shí)產(chǎn)生的音高信息作為上述多個(gè)音高信息而輸入的。
18.根據(jù)權(quán)利要求14所述的演奏信息分析裝置,其特征在于,上述時(shí)機(jī)信息輸入裝置,是把強(qiáng)拍、弱拍或小節(jié)的開(kāi)頭這三者中至少其中一個(gè)信息作為上述時(shí)機(jī)信息而輸入的。
19.根據(jù)權(quán)利要求14所述的演奏信息分析裝置,其特征在于,上述部分分解裝置,是根據(jù)上述時(shí)機(jī)信息與多個(gè)音高信息的相對(duì)音程差,把上述演奏信息分解成多個(gè)部分的。
20.根據(jù)權(quán)利要求14所述的演奏信息分析裝置,其特征在于,上述部分分解裝置,是根據(jù)上述時(shí)機(jī)信息與對(duì)應(yīng)于該時(shí)機(jī)信息的演奏信息的音高信息,把上述演奏信息分解成多個(gè)部分的。
21.一種和音檢測(cè)裝置,其特征在于,它包括演奏信息輸入裝置,用于輸入包含多個(gè)高音信息的演奏信息;演奏信息記憶裝置,用于記憶上述演奏信息;部分分解裝置,用于根據(jù)上述演奏信息記憶裝置記憶的演奏信息在時(shí)間上相鄰的前面的演奏信息與現(xiàn)在的演奏信息之間的關(guān)系,分析現(xiàn)在的演奏信息并分解成多個(gè)部分;和音檢測(cè)裝置,用于根據(jù)上述部分分解裝置分解的所定部分的演奏信息檢測(cè)出和音。
22.根據(jù)權(quán)利要求21所述的和音檢測(cè)裝置,其特征在于,上述演奏信息輸入裝置,是把在時(shí)間上連續(xù)的多個(gè)演奏信息的音高信息作為上述多個(gè)音高信息而輸入的。
23.根據(jù)權(quán)利要求21所述的和音檢測(cè)裝置,其特征在于,上述部分分解裝置,是根據(jù)上述在時(shí)間上相鄰的前面的演奏信息與現(xiàn)在的演奏信息的相對(duì)音程,分析現(xiàn)在的演奏信息,并分解成多個(gè)部分的。
24.一種自動(dòng)伴奏裝置,用于根據(jù)由權(quán)利要求21所述的上述和音檢測(cè)裝置檢測(cè)出的和音,進(jìn)行自動(dòng)伴奏。
25.一種和音檢測(cè)裝置,其特征在于,它包括演奏信息輸入裝置用于輸入包含多個(gè)音高信息的演奏信息。時(shí)機(jī)信息輸入裝置,用于輸入關(guān)于上述演奏信息的時(shí)機(jī)信息;部分分解裝置,用于根據(jù)上述演奏信息的上述時(shí)機(jī)信息與上述音高信息,把該演奏信息分解成多個(gè)部分;和音檢測(cè)裝置,用于根據(jù)上述部分分解裝置分解的所定部分的演奏信息檢測(cè)出和音。
26.根據(jù)權(quán)利要求25所述的和音檢測(cè)裝置,其特征在于,上述演奏信息輸入裝置,是把在時(shí)間上連續(xù)的多個(gè)演奏信息的音高信息作為上述多個(gè)音高信息而輸入的。
27.根據(jù)權(quán)利要求25所述的和音檢測(cè)裝置,其特征在于,上述演奏信息輸入裝置,是把同時(shí)按下鍵盤(pán)的多個(gè)鍵時(shí)產(chǎn)生的音高信息作為上述的多個(gè)音高信息而輸入的。
28.根據(jù)權(quán)利要求25所述的和音檢測(cè)裝置,其特征在于,上述演奏信息輸入裝置,是把在時(shí)間上連續(xù)的多個(gè)演奏信息的音高信息與同時(shí)按下鍵盤(pán)的多個(gè)鍵時(shí)產(chǎn)生的音高信息作為上述多個(gè)音高信息而輸入的。
29.根據(jù)權(quán)利要求25所述的和音檢測(cè)裝置,其特征在于,上述時(shí)機(jī)信息輸入裝置,是把強(qiáng)拍、弱拍或小節(jié)的開(kāi)頭這三者中至少其中一個(gè)信息作為上述時(shí)機(jī)信息而輸入的。
30.根據(jù)權(quán)利要求25所述的和音檢測(cè)裝置,其特征在于,上述部分分解裝置,是根據(jù)上述時(shí)機(jī)信息與多個(gè)音高信息的相對(duì)音程差,把上述演奏信息分解成多個(gè)部分的。
31.根據(jù)權(quán)利要求25所述的和音檢測(cè)裝置,其特征在于,上述部分分解裝置,是根據(jù)上述時(shí)機(jī)信息與對(duì)應(yīng)于該時(shí)機(jī)信息的演奏信息的音高信息,把上述演奏信息分解成多個(gè)部分的。
32.一種自動(dòng)伴奏裝置,用于根據(jù)由權(quán)利要求25所述的上述和音檢測(cè)裝置檢測(cè)出的和音進(jìn)行自動(dòng)伴奏。
33.一種電子樂(lè)器,其特征在于,它包括演奏信息輸入裝置,用于輸入至少包含音高信息的演奏信息;音樂(lè)信號(hào)發(fā)生裝置,用于根據(jù)由上述演奏信息輸入裝置依次輸入的演奏信息的音高信息,產(chǎn)生音樂(lè)信號(hào);記憶裝置,用于記憶作為在時(shí)間上連續(xù)的多個(gè)音高信息的上述音樂(lè)信息;和音檢測(cè)裝置,用于從記憶的上述音高信息中檢測(cè)出和音;伴奏音發(fā)生裝置,用于根據(jù)檢測(cè)出的和音產(chǎn)生伴奏音。
34.根據(jù)權(quán)利要求33所述的電子樂(lè)器,其特征在于,上述和音檢測(cè)裝置,是把上述記憶裝置記憶的音高信息分解成多個(gè)部分,并從分解的多個(gè)部分中檢測(cè)出和音的。
35.根據(jù)權(quán)利要求34所述的電子樂(lè)器,其特征在于,上述和音檢測(cè)裝置,是從上述分解的多個(gè)部分中至少其中一個(gè)部分中檢測(cè)出和音的。
全文摘要
本發(fā)明旨在把演奏信息分解為多個(gè)部分,提高檢測(cè)和音的精度。記憶按鍵音的鍵碼,根據(jù)定時(shí)器的中斷信號(hào),由CPU每過(guò)8分音符作一次中斷處理。把輸入的鍵碼分解成低音、低音碼、旋律、旋律碼四個(gè)聲部。根據(jù)按鍵數(shù),進(jìn)行1、2、3及4音以上的聲部分析。根據(jù)音高、是否小節(jié)開(kāi)頭、強(qiáng)弱拍、與上次低音聲部音的音程、與上次旋律碼聲部音的音程等,決定按鍵音的部分。通過(guò)低音碼或旋律碼聲部的部分與和音表檢測(cè)和音,輸出到自動(dòng)伴奏裝置。
文檔編號(hào)G10H1/00GK1098809SQ9410396
公開(kāi)日1995年2月15日 申請(qǐng)日期1994年4月9日 優(yōu)先權(quán)日1993年4月9日
發(fā)明者東儀溫 申請(qǐng)人:雅馬哈株式會(huì)社