2011年3月20日 星期日

Qin Synthesis and SW tools - 仕偉

---------------2011.03.20---------------------

將圖片顯示部分改好,並修改排版。

主要功能:

將輸入的字串轉換成中序排序法,並顯示出輸入的文字減字。




---------------2009.12.23---------------------
實驗可變長度的digital waveguide.

結構圖如下:



input為white noise共44100個samples.
取樣頻率:44100Hz
設z的delay:N=44

gain值a,b變化如下:


意思是從N=44(頻率1000Hz) 變成 N=45(頻率980Hz)再變回N=44(頻率1000Hz)
從音檔可聽出音高有改變.

1000Hz到980Hz音檔


---------------2009.12.7----------------------

因為用論文方法的friction model效果不彰,
因此著手於建立古琴滑音的physical model.
大致流程如下圖:
1.錄製只有指甲刮弦的Noise並紀錄Waveguide長度與滑動速率.
2.調整Noise pitch.
3.餵入可變長度的digital waveguide.
4.得到古琴滑音.




投影片內另有不同的摩擦音可聽,按此下載.



---------------2009.11.26---------------------

更新friction model內部參數,實作後圖片如下.
更新音檔及提供matlab原始檔.









音檔下載:
R1, R2, R3, Lowpass, R1+R2+R3+Lowpass.
matlab原始檔:
friction2.m
friction model原論文:
Model-based sound synthesis of the guqin

---------------2009.11.25---------------------

friction model implement


friction model structure :


主要是由Rnd產生的noise經過三個resonator與一個lowpass filter之後輸出.

Resonator 1的頻譜圖:




Resonator 2的頻譜圖:




Resonator 3的頻譜圖:




Lowpass filter的頻譜圖:



將R1,R2,R3和Lowpass filter相加後的頻譜圖:



---------------2009.10.28---------------------

如果將"大九勾三","[大]*[九]+[勾]*[三]",圖片,分別在視窗顯示的話,複製時還要三個視窗分別複製,有些麻煩.因此想說把視窗合併,就跟以前的排版一樣,這樣會比較整齊。






---------------2009.10.8----------------------

論文報告

投影片

---------------2009.9.23----------------------

將ParserDialog中的括號拿掉,並新增英文介面.
















---------------2009.9.20----------------------

現在終於把古琴的減字譜Parser改寫完成,剩下圖形部分.


















---------------2009.8.22----------------------

現在進行程式改寫,由於同時還有另一個project:

Polyphonic Computer Music Authoring Tool 進行,

是用Java寫的;鑒於之後程式碼移植方便,

所以就用Java來改寫古琴程式,目前已做好介面,

code改寫約完成5分之1,會繼續來寫。
















↑ 上圖是程式介面圖,中間三個的視窗可以放大縮小或隱藏,如下圖所示:
















↑ 此圖為顯示ParserTree放大,隱藏另兩個視窗。

















↑ 這張是以後完成的示意圖。

現在左邊的輸入介面已完成,中間ParserTree尚未實作,

圖中是直接輸入進去的,減字圖形要再修改大小,

另外會有新功能:

cut, copy, paste ; 英文介面 ; 英文輸入 ;

修改字型 ; 還有老師提議的功能-輸入字後出現可選項目

也會加入,不過現在還在摸索中,繼續改寫程式!

---------------2009.8.10----------------------
論文報告
Model-based sound synthesis of the guqin

投影片

---------------2009.7.28----------------------

根據學長的連結來解釋一下連結內容

第一個連結是來自Google 所舉辦的計畫 Summer of Code

主要是讓世界的學生參與撰寫開放原始碼軟體的project,從2005年開始舉辦.
目的是讓參予者能從中接觸到業界軟體的開發方法與就業機會相關領域的學術活動,並且寫越多的免費原始碼,就能越造福全人類.

此篇的project是'Qin' notation web generator:古琴減字線上產生器

作者致力於此研究原因有兩點
1.中國字較複雜需2bytes組成,不像英文只是26字母的排列組合簡易,中國字需花較多的時間創建font set.

2.在網路上瀏覽網頁,如果其字元並不符合用戶端電腦的font set,那就無法顯示.

因此作者想要做一個能在線上組合的古琴編碼網頁,讓人輸入所需的圖樣代碼後,
能在網頁上顯示相對應的減字譜.

主要使用的文法如下:

顯示全圖


並依每個指法自行畫出減字,又分為左右手兩類,左手有87個,右手有47個減字.

程式輸入範例:
san_c gou_a yi_a @ =;
er_b;
san_a;
ti_a_b san_a @;
ming_b shi_b_b | tiao_a liu_d @ =;
da_d jiu_c | si_d = liu_d =;
po_a da_d qi_a liu_d = | qi_a = san_c liu_d = | =;
jiu_d lun_b = qi_a =;
tao_a_qi_c;
tao_a_qi_c;
shi_b_a qi_a | tiao_a si_d @ =;
cuo_d da_d qi_a | tuo_a_b liu_d @ = @ zhong_a qi_a | gou_a yi_a @ = @;
shao_c_xi_b;

由於每個san_c,gou_a等等都是圖的檔名,所以要使用一定要配合圖片跟代碼一起看.

例:

san_c

gou_a


程式方面:

網頁上的Demo連結已無效,但有提供檔案下載,
好像只能在Linux環境下執行,但我執行時還是有出錯,可能是因為沒有下載圖檔的關係.
執行環境需求:Metapost, Perl, Convert

Metapost是個語言可讓人用數學描述畫圖,語法來自Metafont.
Metapost-wiki : http://zh.wikipedia.org/wiki/MetaPost

網路上還有附上解說的網頁投影片:http://web.pdx.edu/~candy/qin/tug05/open.html

** ** ** ** ** ** **

第二個連結內容是中國音樂學(季刊) 2008年第2期,應該是大陸那邊的雜誌.

標題是:古琴減字譜的編碼與編輯方法

內容前段介紹古琴歷史,中間主要介紹老師所研究的減字譜編碼方式,

後面提到他們所希望建構出軟體所具有的功能:

包含

1. 文件操作:新建,打開,保存,列印,關閉等
2. 文件編輯:剪下,複製,貼上,查找,取代,全選,調整字體或字型等.
3. 減字分類:將減字按照"散音","按音","泛音","其他減字"分成四大類,
每一大類下又將它們按照不同的彈奏方法分成各個小類.
4. 選擇減字:通過選擇某類減字,能顯示該類所有的減字,並按照需求再次進行選擇,
並可對選擇的減字實現文件編輯功能,即複製貼上等.

----------------2009.7.23----------------------

我把我的那一串的內容貼過來, 原來的就讓它沉下去吧! 我順便把維城學長的回應記錄在這裡:

無事google了一下,發現兩個有趣的相關的連結:
1. Project Title: Chinese music instrument: 'Qin' notation web generator, http://web.pdx.edu/~candy/qin/index.html
使用Metapost系統設計。
2. mac.xmu.edu.cn/Chinese/document/attachment.asp?id=39
這個比較無言一點,算是另類介紹我們實驗室的成果吧...

請你參考一下, 再跟我說這是什麼, 尤其是第一個link.

你目前的這個程式畫面跟我以前看到瑋倫所完成的不太一樣, 我記得左邊是打中文輸入後的結果, 右邊是減字譜. 我們當時似乎是有幫忙標一下簡譜的.

很好! 謝謝你這麼快的就有回應.

----------------2009.7.22----------------------

首先就先來簡介一下古琴減字譜軟體的功能。


1。軟體主要介面


顯示全圖



2。輸入介面,目前只支援中文輸入


顯示全圖


3。輸入後,預設輸出Parser Tree為Infix


顯示全圖


4。另外還有Posfix顯示


顯示全圖



5。英文顯示,不過目前好像有錯誤


顯示全圖


6。輸入法目前只支援中文,英文功能未定


顯示全圖


7。關於


顯示全圖


----------------------------------------------------------

2009,7/14

這是一個未完成的研究, 我們在未來一到兩年要把它完成. 最早是瑋倫學姊的古琴減字譜軟體的完成, 這是一個國科會數位典藏計劃的成果, 事實上受到許多人的重視, 不過跟多數的國科會計劃以及因為學生畢業的關係, 這個成果那時沒能延續下去. 多年來一直有人問, 連中研院院士都來問.

當時未能延續下去的一大原因是雖然古琴減字譜的輸入法很好, 可是聲音的合成一直沒能突破, 直到最近, 小明學長對起頭音的分析, 文森學長的pitch/Partial Tracking有了一些成果, 看來應該是東山再起的時候了. 在此我向眾多關心的朋友說聲道歉.

以下是相關的link:

古琴減字譜數位化

Centcent's Pitch and Partial Tracking

等小明過幾天把減字譜軟體頁面的圖準備好, 我再來更新.



由於古琴聲音與演奏的特性, 文森學長的pitch/Partial Tracking事實上需要一定程度的修改, 或者正確一點的說是Customization, 也就是量身訂做.

同樣的, 我來起這一串, 接著就由仕偉來接續. 第一個工作當然是把減字譜軟體回復, 這一部分比較簡單. 但是聲音的部分就困難一點. 整個軟體要怎麼做, 我會跟相關的人討論. 而要做的事情如下:

1. 琴音的分析, 也就是pitch/Partial Tracking, 這一部分會比較簡單, 因為我可以把音一個個分開來彈.

2. 分析結果的修正, 這一部分恐怕暫時需要人工來做, 不過SW工具還是需要的, 這部分可以跟authoring tools那邊合在一起, 所以這部分建議做成一個外掛. 我們再來討論要怎麼分工.

3. 根據輸入的減字將每個音合成出來, 這部分要動用additive synthesis以及起頭音合成, 我還不知道小明對提琴的起頭音那部份的成果是否可以直接用過來, 不過值覺是可以的.

4. 根據使用者對演奏articulation上的需求(多半指的是滑音, 少數是其他技法), 重新在合成.

5. 將每一個合成的音照使用者指定的時間排好.

至於其他的事就等這些做好再說!好吧! Let's go!

對了, 請以後將這串同時update到: 古琴減字譜數位化. 感謝!

12 則留言:

好想永遠這樣 提到...

抱歉只丟了兩個link,沒有好好解釋,感謝仕偉的分析研究,我也增長見識了。

87showmin 提到...

資料很齊全!古琴大師後繼有人。

Wayne 提到...

對我來講也是學習所以請學長不必客氣,請多多指教!!
也謝謝小明的誇獎^^

SCREAMLab 提到...

感謝仕偉的努力.

看來人家做得不錯, 我們要沿用嗎? 或者是自己重來? 這個Project似乎是讓人用來可以線上看的. 假如是, 我們有需要嗎?

用英文輸入本來也是我過去有要求過的, 可是我們一直找不到一個標準的英文對照, 因此先做中文的, 假如這是一個可以用的, 我們就見一個對照表來用, 這樣中英文輸入都可以, 雖然我還是喜歡中文多一點.

當初花了不少心血在調字形方面, 因為希望它好看, 我不知道過去的努力是否可以繼承來用, 請看一下.

至於第二篇的文章的一些需求其實不太必要. 如第三點. 不過copy paste這類基本編輯的功能可能是我們需要考慮的. 另外, 假如像注音輸入, 你輸入散後, 就在圖形介面上有後續可以有可以用圖形介面來選擇的話是不錯的.

Wayne 提到...

我們要自己來重寫.因為他線上的沒放上網,單機的也不好用,且可以等單機的軟體做好再來考慮線上的,這樣會比較完善.

如果可以英文輸入的話也覺得不錯,但這篇翻譯減字的英文可能需要修改後再用;例如他把"午"翻譯為hu,跟漢語通用拼音翻得huo或wu不同;可將我們會念的字翻譯,不會念的可延用或再修改.

字型沿用跟圖形介面應該可行,我有問題會再提出.

SCREAMLab 提到...

那麼合成的部分是另外獨立的視窗嗎?

很棒! 謝謝你的努力.

Wayne 提到...

恩對,合成的部分之後再另外做個視窗加上去;現在要做Authoring Tool的midi檔跟五線譜,簡譜的程式跟介面.謝謝!

SCREAMLab 提到...

showmin:

可以把這部分也放到古琴網頁那邊嗎?

那邊很久沒更新了.

87showmin 提到...

ok,我已邀請仕偉為共同作者,讓他可以同步更新軟體部份的進度。

SCREAMLab 提到...

我聽了仕偉的音檔並跟仕偉討論了一下.

基本上我不認同這樣的聲音, 但是仕偉並沒做錯或誤解作者的做法, 直接一點的說, 那不是好的做法, 而其實跟過去義崧試圖做出擦弦樂器雜音的方式類似, 一點都不像是指甲滑過古琴弦的聲音.

我覺得可以用physical model 來做 也就是錄一段這雜音當table, 然後通過一個可變長度的DWF. 其實這雜音是比較接近一個周期性訊號再加一點點noise, 只要依據其滑動速度對該段table做pitch shift再放入前述的DWF即可, 這樣應該可以得到比較像的聲音, 是嗎? 不是嗎?

這件事請showmin協助一下, 下星期我們來聽一下結果.

此外請DNA幫助仕偉了解一下現在的pitch/Partial tracking的演算法 並跟他討論一下改進的方法, 尤其是針對古琴音訊的分析. 也請在另一串update一下你們的想法.

ARWEN 提到...

pitch對了, 不過音色要修正一下.

我好奇為何後面的部分音量變大了.

Wayne 提到...

主要是因delay-line累加,且設的gain值也太大(1),造成能量越來越大,所以要再調整gain值避免此情形發生。