原文:英文原文html
翻譯:葉大俠程序員
vextab編輯器:這裏編輯器
這是一篇介紹和推廣 VexTab 音樂語言的文章,掘金並不支持查看和編輯譜,能夠點擊這裏抵達能夠得到更好的閱讀。ide
VexTab 是一種用於書寫音樂的語言,你只須要花很是少的時間學習一下,就能夠用它來建立,編輯和分享很是好看的五線譜和六線譜了。和 ASCII 譜的設計目標爲易於閱讀不同,VexTab 是爲了可方便書寫而誕生的。學習
火燒眉毛了,讓咱們開始吧。字體
關鍵字tabstave
用於建立一行譜表,下面的編輯框都是能夠進行編輯的,趕忙試一下在新的一行添加tabstave
看看效果吧。spa
tabstave
後面能夠跟一些參數,好比tabstave notation=true
的意思是顯示一張標準的譜表(上面是五線譜,下面是六線譜)。別隻看啊!動手試一下。翻譯
關鍵字notes
能夠用於添加音符。你能夠經過在鋼琴上的位置(note/octave
)或者吉他指板的位置(fret/string
)來表示。若是須要在同一根弦或者同個音區添加多個音符,能夠經過這種表達式:fret-fret-fret/string
(或者 note-note-note/octave
)。根據你我的的喜好來選擇便可。設計
試着編輯一下下面的音符,留意它們在譜上的位置變化,結合下面的音區圖去理解語法的做用。音符後能夠跟隨#
, ##
, @
, @@
, 和 n
這幾種記號,它們分別表示升半音,升全音,降半音,降全音和還原音。3d
盜一張圖,結合這個圖就明白note/octave
方式了。
下面是吉他譜:
tabstave
能夠跟隨下面的參數:
關鍵字值/例子notationtrue/falsetablaturetrue/falsecleftreble, alto, tenor, bass, percussionkeyC, Am, F, Dm, Bb, Gm, Eb, Cm, Ab, Fm, Db, Bbm, Gb, Ebm, Cb, Abm, G, Em, D, Bm, A, F#m, E, C#m, B, G#m, F#, D#m, C#, A#mtimeC, C|, #/#tuningstandard, dropd, eb, E/5,B/4,G/4,D/4,A/3,E/3
一些例子:
tabstave notation=true
表明顯示標準五線譜和六線譜。tabstave notation=true tablature=false
表明只顯示五線譜。tabstave notation=true clef=alto
表示女低音譜號。tabstave notation=true clef=bass key=C# time=C|
表示 4/4 拍的低音,同時包含五線譜和六線譜。來試一下吧:
##
表示休止符,默認會自動排好位置,你也能夠經過在中間加個數字來改變所在的譜線,格式是#4#
,值的範圍是 0 到 9 。
小節的分隔符是|
, 你能夠在譜表中任意添加。
另外,還有一些特殊的小節線。
=||
復縱線,表示樂曲告一段落,兩條小節線是一樣大小的=|:
重複開始=:|
重複結束=::
重複開始和結束=|=
終止線吉他演奏中經常使用的技巧,經過在指板數後添加b
,就能夠表示推絃音了。好比10b12
表示一個全音推絃,10b11
表示半音推絃,不難猜到b
後面跟的是音的步值。那如何表示推高以後返回原來的音呢?答案就是 10b12b10
,是否是很好理解。
X
表示啞音,在音名後加小v
表示顫音,大V
則表示強顫音,同時你也能夠推絃音後面加顫音,看下面的例子如何表示。
u
和 d
分別表示上撥絃和下撥絃。
上面講的都是單個音的表示,終於輪到和絃了。在譜上和絃是經過括號()
和.
來鏈接表示的,好比 C 和絃:(C/4.E/4.G/4)
,固然也能夠用指版數字的方法:(1/2.2/4.3/5)
。
這四種技巧分別用h
, p
, t
或者 s
,這個和通常吉他譜的表示是同樣的。好比你要從6擊弦到8而後再勾弦回6,就能夠用6h8p6
,你也能夠在和絃上使用這些符號。
默認都是 4 分音符( 1/4 拍),你能夠經過冒號:
去改變它。
好比,:w
表示一個全音符。目前支持的音長有:全音符,二分音符,四分音符,八分音符,十六分音符和三十二分音符,它們分別對於的符號是w
h
q
8
16
32
。若是要表示附點音符,則能夠在相應的符號後面加d
,例如::qd
。
連音的符號是^
,好比八分音符的三連音表示爲::8 4-5-6/4 ^3^
。
下面是更復雜的例子,它演示瞭如何在滑音,推絃音等其餘技巧音上使用音長。請你認真體會。
你能夠經過美圓符號 $
中間附上逗號,
分隔符文原本添加註釋。你能夠用於歌詞,和絃提示,或者一些彈奏提示中。
$.top.$
表示在註釋在譜線上面,$.bottom.$
表示在下面。
有兩種方式去改變註釋樣式,一種是用預設的樣式,一種是自定義的樣式。對於預設的方式,你只須要在美圓符號中添加.style.
+ 預設的樣式就能夠了,好比 $.big.C Major$
表示大碼的C Major
顯示。
目前預設的樣式有big
、 medium
和 italic
。
對於自定義的方式,語法是這樣的:.face.size.style
,face
表示字體,size
表示字體大小,style
是字體樣式(斜體:italic,加粗:bold)。例如 $.Times-14-italic.Blah$
表示 14pt 大小、斜體、Italic Times Roman 字體的文本註釋文本 Blah。
你能夠經過 $.articulation/position.$
這種語法來添加銜接音。不一樣的銜接音有不一樣的符號表示。 a.
表明 staccato,a@a
表明 up-fermata,它們能夠放置在譜線的上面或者下面。
常見的銜接音:
下面的列表展現了全部支持的銜接音:
VexTab 還提供了一種很是靈活添加文本的方式,利用text
關鍵字能夠建立和音符垂直對齊的文本,這種方式很是合適於放置和絃的名稱。
在下面的示例中,我建立了兩個文本塊, "G Minor" 和 "A Major",每一個都是二分音符。注意這裏文本塊的音長間隔之間使用逗號隔開的,除了這一點,音長規則表示也是和音符同樣的。
能夠經過.數字
這種方式來調整文塊在垂直方向上的位置,默認是0,表示在譜的上面,這個值越大,表示越往下,若是值是負數,則越小越往上面。
像音符同樣,你也能夠經過|
來分隔文本小節,這樣能夠更好的對齊,另外,你還能夠經過++
語法來在同一行譜線上建立新的一行文本。簡直太強大有木有~
還沒完,你還能在文本上添加不少音樂符號,好比結尾和重複。只須要在關鍵字前面加上#
就能夠了,e.g., text #coda
。
在音長符號前面加上大寫S
就能夠變成斜線的記法了。在下面的示例中,你能夠嘗試改一下音名看看效果。你也能夠經過 u
或 d
來表示動做的上下。
定義外觀主要是經過options
的參數來完成的,你能夠根據喜愛更改字體,譜的大小和美化譜線距離等。好比 options width=400
表示譜的寬度是 400 像素。
下面是相關的參數列表。
參數描述width譜的寬度,單位是像素scale縮放係數,默認是1space和下一行譜線的距離,單位是像素stave-distance五線譜和六線譜之間的距離,單位是像素font-face/font-style/font-size註釋字體的默認參數
能夠看起來很大:
加多一些空間給在譜線比較高位置的音:
讓五線譜和六線譜距離更遠:
添加 tab-stems
參數就能夠在六線譜上顯示拍號了。對於單獨的人聲旋律譜,你能夠經過 tab-stem-direction
參數來指定拍號的方向。
注意你須要改變一下 space
和 stave-distance
參數值來避免出現重疊。
添加 player
參數等於 true
,還要指定拍子的速度tempo
,就能夠當即播放你寫的音符了。
立刻體驗一下,進入編輯器,手機,ipad,pc可用。
避免走丟指南:喜歡玩音樂的程序員能夠關注下面公衆號: