專利名稱:一種適用于古琴減字譜打譜的音樂節(jié)奏生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種采用計(jì)算機(jī)的計(jì)算方法,特別是涉及一種適用于古琴減字譜打譜 的音樂節(jié)奏生成方法。
背景技術(shù):
古琴,又稱“文武七弦琴”,是中華民族最早的彈撥樂器,有三千多年的歷史,是中 華傳統(tǒng)文化之瑰寶,它以其歷史久遠(yuǎn)、文獻(xiàn)浩瀚、內(nèi)容豐富和影響深遠(yuǎn)為世人所珍視。古琴 是中國古代地位最崇高的樂器,位列“四藝”(琴棋書畫)之首,被譽(yù)為哲學(xué)性的藝術(shù)或藝術(shù) 性的哲學(xué)。隨著2003年11月7日古琴入選世界第二批“人類口頭和非物質(zhì)遺產(chǎn)代表作”, 古琴再一次受到了社會的廣大關(guān)注,不但掀起了一股學(xué)習(xí)古琴的熱潮,更讓我們意識到弘 揚(yáng)和保護(hù)這一古典藝術(shù)的重要性。減字譜是古琴獨(dú)有的記譜法。通過對“弦次”與“徽分”交匯點(diǎn)的簡略示意,并用 “手法”及不同“徽分”的標(biāo)記來記錄種種不同的腔音,同時體現(xiàn)出一定的音色變化與力度變 化,在忠實(shí)存儲音樂信息方面,顯示出許多優(yōu)越性。減字譜只記指法、奏法,不記節(jié)拍、節(jié)奏,把這些內(nèi)容讓演奏家去處理,就像今天某 些作曲家把弓法、強(qiáng)弱、音色等問題留給演奏家去處理一樣。古琴家按照減字譜或文字譜, 據(jù)自己的理解將樂曲演奏出來,稱為“打譜”。人工打譜是一個極其繁瑣和漫長的過程,對 于中國現(xiàn)存的140余種古琴譜集,3365個不同傳譜,658個不同的傳曲,其工作量將是無比 的浩繁。在信息時代的今天,我們可以利用計(jì)算機(jī)的高效性,通過對古琴減字譜中減字的音 色、指法、弦序、徽分等信息的解釋來完成這個任務(wù)。計(jì)算機(jī)自動打譜技術(shù)是機(jī)器學(xué)習(xí)、計(jì)算機(jī)音樂與古琴音樂等領(lǐng)域的綜合應(yīng)用,旨 在減少打譜過程中人為的參與,減輕古琴打譜的工作量,使更多的古琴音樂能夠?yàn)槿怂?如何根據(jù)減字譜獲得琴曲中每個音符的音高與節(jié)奏是計(jì)算機(jī)自動打譜的主要問題之一。古 琴減字譜的特點(diǎn)為“字簡而義盡,文約而音賅”,這種記譜法使用減字拼成某種符號記錄左 手按弦指法和右手彈奏指法,它是一種只記錄演奏法和音高,不記錄音名、節(jié)奏的記譜法。 因此,生成古琴譜中隱藏和缺失的節(jié)奏的計(jì)算方法,是計(jì)算機(jī)自動打譜需解決的的關(guān)鍵技 術(shù)。本申請的發(fā)明人周昌樂等(丁曉君,葉娃婷,周昌樂.古琴減字譜編碼與編輯方法 [J].中國音樂學(xué)(季刊))公開了一種古琴減字譜編碼與編輯方法。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種在輸入一段缺失節(jié)奏信息的音高序列時,能夠生成所缺 失的節(jié)奏信息的適用于古琴減字譜打譜的音樂節(jié)奏生成方法。本發(fā)明包括以下步驟1)建立樂句知識庫;2)建立η元音符序列索引表;
3)建立η元音高序列索引表;4)根據(jù)輸入的連續(xù)音高序列Pl,P2,? Pm找到一組最可能的連續(xù)節(jié)拍序列δ ρ δ 2, "ζ本發(fā)明給出了在輸入一段缺失節(jié)奏信息的音高序列時,能夠生成所缺失的節(jié)奏信 息的適用于古琴減字譜打譜的音樂節(jié)奏生成方法。
具體實(shí)施例方式為了使本技術(shù)領(lǐng)域的技術(shù)人員更好地理解本發(fā)明方案,下面對本發(fā)明的具體實(shí)施 算法作進(jìn)一步描述。1)建立樂句知識庫收集已有打譜結(jié)果,以樂句為單位建立數(shù)據(jù)庫,其中樂句由一組連續(xù)的音符構(gòu)成, 每個音符可以表示為二元組note = (ρ,δ),其中ρ,δ分別表示音符對應(yīng)的首調(diào)唱名法的 相對音高值與音符的時值,如八分音符,十六分音符等,均以數(shù)字形式表示。2)建立η元音符序列索引表根據(jù)樂句知識庫,統(tǒng)計(jì)不同的連續(xù)η個音符出現(xiàn)的頻率,并以這η個音符為關(guān)鍵 字,出現(xiàn)頻率為值建立索引表,索引表結(jié)構(gòu)為二叉搜索樹,在本發(fā)明中,需要建立1至4元音 符序列索引表。3)建立η元音高序列索引表η元音高序列索引表是基于η元音符序列索引表之上建立的多值映射關(guān)系,其中 關(guān)鍵字為連續(xù)η個音符的音高,值為所有滿足該η個連續(xù)音高組合的音符序列,通過η元音 高序列索引表和η元音符序列索引表,可以通過η個連續(xù)音高查找對應(yīng)的所有音符序列及 其出現(xiàn)的頻率,在本發(fā)明中,需要建立1至4元音高序列索引表。4)根據(jù)輸入連續(xù)音高序列Pl,p2, f Pm找到一組最可能的連續(xù)節(jié)拍序列S1, δ 2,其中Pi為首調(diào)唱名法的相對音高值,δ i為音符的時值,如八分音符,十六分音符 等,均數(shù)字形式表示。本發(fā)明采用一種有剪枝策略的寬度優(yōu)先遍歷算法來尋找最可能的連續(xù)節(jié)拍序列, 其計(jì)算過程需要應(yīng)用到如下數(shù)據(jù)結(jié)構(gòu)1)用于保存每一步擴(kuò)展路徑的結(jié)構(gòu)PATH,成員包括一個用于指示上一步擴(kuò)展對 應(yīng)的路徑結(jié)構(gòu)指針P,一個該步擴(kuò)張對應(yīng)η元音高序列索引表關(guān)鍵字的記錄字段key,以及
權(quán)重Wo2)用于保存中間結(jié)果的隊(duì)列S,隊(duì)列元素為上述結(jié)構(gòu)S_PATH。3)用于保存m個最終結(jié)果的音符時值向量V。尋找最可能連續(xù)節(jié)拍序列的計(jì)算過程可以形式化的描述為步驟1)初始化,從左往右依次搜索ps,ps+1J凡+30 = l,2,3 m- 3),若在4元音高 序列索引表中存在以四元序列Ps,PS+1J凡+3為關(guān)鍵字的記錄,則停止搜索,將音符時值向 量的前S-I個元素賦值為未標(biāo)識,并對應(yīng)4元音高序列索引表中存在以四元序列ps,ps+1,
4^凡+3為關(guān)鍵字的所有記錄建立路徑結(jié)構(gòu)PATH,其中ρ置空,key賦值為對應(yīng)記錄的值,即4
個連續(xù)的音符序列,w賦值為在4元音符序列索引表以key為關(guān)鍵字對應(yīng)的值,即該音符序 列在知識庫中的出現(xiàn)頻率,將建立的路徑結(jié)構(gòu)插入隊(duì)列S。步驟2)令變量i = s+1,如果i > m+3則算法停止。步驟3)令變量j =當(dāng)前隊(duì)列S的元素個數(shù),臨時隊(duì)列S_TMP = S。步驟4)取出隊(duì)列S隊(duì)首元素PATH,搜索η元音高序列索引表中存在以四元序列 Pi, Pi+1,?凡+3為關(guān)鍵字的所有記錄,如果記錄的值,音符序列IWVI4中的前三個音符,與 PATH成員記錄字段key中的后三個音符相等,則建立一個新的路徑結(jié)構(gòu)PATH2,key賦值為 音符序列ηιη2η3η4,指針ρ指向PATH,權(quán)重w賦值為PATH的成員w與以音符序列ηιη2η3η4為 關(guān)鍵字在4元音符序列索引表中的搜索值的和。步驟5)變量j自減1,如果j > 0,轉(zhuǎn)步驟4),否則繼續(xù)。步驟6)如果隊(duì)列S為空,對S_TMP每個PATH,構(gòu)造一組音符序列ηιη2η3η4,其中前 三個音符為PATH成員key中對應(yīng)的后三個音符,n4分別取1元音高序列索引表中以pi+3為 關(guān)鍵字的所有值,建立相應(yīng)的一組路徑結(jié)構(gòu),成員key賦值為對應(yīng)的音符序列ηιη2η3η4,指針 P指向PATH,權(quán)值w賦值為PATH的權(quán)值,最好將所有建立的路徑結(jié)構(gòu)插入隊(duì)列S。步驟7)剪枝,掃描S,對任意兩個元素PATHl,PATH2,如果兩者記錄key中對應(yīng)的 后三個音符相等,那么保留其中權(quán)值w較大的元素,刪去另一個。步驟8) i自增1,如果i <m+3,轉(zhuǎn)步驟3),否則找出隊(duì)列S中權(quán)值w最大的元素 PATH,利用指針ρ回溯路徑,輸出終結(jié)果音符時值向量V。
權(quán)利要求
一種適用于古琴減字譜打譜的音樂節(jié)奏生成方法,其特征在于包括以下步驟1)建立樂句知識庫;2)建立n元音符序列索引表;3)建立n元音高序列索引表;4)根據(jù)輸入的連續(xù)音高序列p1,p2,找到一組最可能的連續(xù)節(jié)拍序列δ1,δ2,F(xiàn)DA0000026564950000011.tif,FDA0000026564950000012.tif
全文摘要
一種適用于古琴減字譜打譜的音樂節(jié)奏生成方法,涉及一種采用計(jì)算機(jī)的計(jì)算方法。提供一種在輸入一段缺失節(jié)奏信息的音高序列時,能夠生成所缺失的節(jié)奏信息的適用于古琴減字譜打譜的音樂節(jié)奏生成方法。建立樂句知識庫;建立n元音符序列索引表;建立n元音高序列索引表;根據(jù)輸入的連續(xù)音高序列p1,p2,找到一組最可能的連續(xù)節(jié)拍序列δ1,δ2,給出了在輸入一段缺失節(jié)奏信息的音高序列時,能夠生成所缺失的節(jié)奏信息的適用于古琴減字譜打譜的音樂節(jié)奏生成方法。
文檔編號G06F17/30GK101944356SQ20101028503
公開日2011年1月12日 申請日期2010年9月17日 優(yōu)先權(quán)日2010年9月17日
發(fā)明者關(guān)胤, 周昌樂, 齊京峰 申請人:廈門大學(xué)