抄簡譜之電腦程式設計研討

文:孫新財 2000/01/02


含有又可抄線譜,又可抄簡譜功能的抄譜程式,
設計上必不能採取文書處理的觀念。
即使採用文書處理觀念來設計抄(簡)譜的程式,
也應充份發揮,文書處理程式原有的巨集指令,
多工的功能,節約輸入的頻率與移動游標的時間。

台灣,在網路上已有多種Midi程式流傳,
故採用電腦來抄製線譜,
已完全不成其為問題。
唯這些程式都是外國人設計的,
所以絕無抄製簡譜的功能。

目前號稱能自行設計
而提供或販售簡譜程式者,
倒也不乏其人,
但顯然也都不盡如人意,
以是網路上此類求援求助的訊息,
仍所在多有,
且都語調殷切孔急。
在台灣的音樂界,
如何取得或設計,
抄製簡譜的程式,
應可說,
已成為同好間,
所最熱門的問題之一。

筆者在十年前,
即已開始規畫,
抄譜程式的設計工作,
目標原即是同時能抄製線譜與簡譜(甚且能互譯或對照)的。

含有這種功能的抄譜程式,
設計上必不能採取文書處理的觀念,
必須將音樂的(音高、拍長、調拍等)元素,
以數據的方式來儲存,
再另設計一編譯程式,
來處理這些數據。

不同的處理方式,
才能分別得到不同的結果(線譜、簡譜、對照)。

Midi的原始含意,
就是音樂數位化的標準。
若採用的標準相同,
則這些音樂資訊,
也就能在不同的硬體設備,
及程式間相容無礙。
(但筆者規畫此程式時,
並未採用Midi的標準,
而是另外自定了一種標準,
以是並無法與坊間的Midi資料相容)。

十年來,
此自設程式雖不斷修定
及擴充功能與品質,
唯個人則始終都本著只賣蛋不賣雞的理念,
從未販售圖利。
但有關的數據標準
與音樂方面的轉(調)換(拍)理念,
則已寫成拙文
<音的性質電腦數據化的商榷>一篇,
發表於武漢音樂學院音樂學報<黃鐘>1999-1期上,
有興趣的同好,
可自行參考之。

台灣目前流傳之抄製簡譜之程式,
功能上都不盡理想的主要原因,
是它們都並未採取前述的Midi觀念,
而是以文書處理器的觀念來設計此類程式。

以文書處理的觀念來輸入樂音,
首先就面臨了對應碼的問題,
這些碼繁複難記,
又不便於處理,
以是增加了人力的須求,
減少了人為的樂趣。

文書處理比之圖像處理,
其基本的圖素又大了很多,
無法利用到以位元為單位的多種運算功能,
以是基本造型(造字)也就特多。
所以我個人是向來輕視,
用這種理念所設計出之抄譜程式的。

唯以這種觀念所設計的簡譜程式,
其實功能上還可以加強許多,
坊間流傳的程式,
則都未發揮之。
余甚感可惜,
乃因技癢又再以修改pe2設定檔(pe2.pro)的方式,
再設計了一組文書處理器式的抄(譯)簡譜程式。

因為非常簡單,
費時不多,
我自己又並不使用,
乃主動公佈於中華民國國樂學會的網站上,
供同好索取。

但送魚不如教人捕魚,
在此,余擬將此程式的設計理念與方法,
公佈之。

有興趣的同好,
實可自行設計修改,
以符個人的使用標準。
(譬如我就將它修改為,
可分別抄譯工尺譜、南管譜、俗字譜、
敦煌琵琶譜、洋琴譜....的程式)。

以pe2這個文書編輯程式為例。
它必附有一名為pe2.pro的設定檔。

此設定檔的作用,
即在設定所有單鍵及複合鍵的功能。

譬如以C-j複合鍵的功能為例,
在設定檔上的原始定義是:

def c-j = [push mark] [down] [first nonblank] [mark block] [end line]
[end word] [mark block] [up] [end line] [end word][right]
[copy mark] [down] [unmark] [delete line] [up] [pop mark]

我們若把它改成其它的定義,
則當使用者按下c-j鍵時,
就能得到其它的功能。

市面上流行的各類文書處理器,
如慧星、書中仙、漢書、cpe4....說穿了,
就都是用這種方式,
把pe2的定義檔改頭換面而已。

我們何不也把它改為自用的抄(簡)譜程式呢?
姑且就叫作pnne(Personal Numericalnotation Edit)好了!

坊間流傳的簡譜程式,
應亦是以修改按鍵定義的方式來設計的,
只是對文書處理器程式,
本身之基本指令不盡熟悉,
以是而未充份發揮程式之功能
(─譬如,多工與定位的功能)罷了。!

用手工來抄一個簡譜音符,
因為一個音符可能有許多部份,
就可能要好幾個步驟:
若是低八度,
譜字下方要加一點、
若是八分音符,
譜字下方要加一減拍線、
若是附點音符,
譜字右方要加附點...。

我們用電腦來抄這個
附點八分低八度音符,
若也要分四次來完成的話,
那就是未充分發揮pe2的單鍵多工功能。
各位看上面c-j的定義,
它可是一次就完成了17個巨集指令哩!

我們又何須按四次鍵才能完成一個音符呢?
經適當的對應定義之後,
任何音符,
包括音高與拍長在內,
其實應是只要按一個鍵就可以完成的。
這就是我說的巨集功能。

有了適當的定義之後,
按一個鍵,
不但可抄出簡譜,
且更可抄出其對應之字譜,
如工尺譜、南管譜、俗字譜、
敦煌琵琶譜、洋琴譜....。
那麼這抄譜程式,
豈非就可變成一譯譜程式了嗎!

其次,仿間流傳的簡譜程式,
都會浪費了許多的時間,
在游標的移動上。
其實,簡譜與線譜一樣,
不同拍長的音符,
所佔之空間皆有其一定(比率)。
我們應可將程式設計成,
抄完某拍長的音符之後,
游標會直接定位到下一音符該出現的位置上,
等待下一音符的輸入工作。
換行時,也只要按下換行鍵後,
游標就定位到下一行之開頭
等待音符的輸入,
不必連續按向下及向左之按鍵多次,
而浪費時間了。
這樣才能充分發揮此電腦文書程式的定位功能。
這是本程式,
勝過其它同類程式的基本觀念。


(編按:孫新財老師所提供之免費簡譜抄譜系統,其相關訊息可於中華民國國樂學會網站上面找到。)

回到簡易簡譜

【吹鼓吹小站 http://suona.com】本站任何內容請勿任意轉載節錄,相關聲明請看首頁之轉貼須知。謝謝!