爲程序員準備的音樂編輯器-VexTab

原文:英文原文html

翻譯:葉大俠程序員

vextab編輯器:這裏編輯器

這是一篇介紹和推廣 VexTab 音樂語言的文章,掘金並不支持查看和編輯譜,能夠點擊這裏抵達能夠得到更好的閱讀。ide

什麼是 VexTab ?

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則表示強顫音,同時你也能夠推絃音後面加顫音,看下面的例子如何表示。

ud 分別表示上撥絃和下撥絃。

第七步:添加和絃

上面講的都是單個音的表示,終於輪到和絃了。在譜上和絃是經過括號().來鏈接表示的,好比 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顯示。

目前預設的樣式有bigmediumitalic

對於自定義的方式,語法是這樣的:.face.size.styleface表示字體,size表示字體大小,style 是字體樣式(斜體:italic,加粗:bold)。例如 $.Times-14-italic.Blah$ 表示 14pt 大小、斜體、Italic Times Roman 字體的文本註釋文本 Blah。

第十一步:斷音(Staccatos),延音(Fermatas)等更多銜接音。

你能夠經過 $.articulation/position.$ 這種語法來添加銜接音。不一樣的銜接音有不一樣的符號表示。 a. 表明 staccato,a@a 表明 up-fermata,它們能夠放置在譜線的上面或者下面。

常見的銜接音:

下面的列表展現了全部支持的銜接音:

第十二步:更多的文本

VexTab 還提供了一種很是靈活添加文本的方式,利用text關鍵字能夠建立和音符垂直對齊的文本,這種方式很是合適於放置和絃的名稱。

在下面的示例中,我建立了兩個文本塊, "G Minor" 和 "A Major",每一個都是二分音符。注意這裏文本塊的音長間隔之間使用逗號隔開的,除了這一點,音長規則表示也是和音符同樣的。

能夠經過.數字這種方式來調整文塊在垂直方向上的位置,默認是0,表示在譜的上面,這個值越大,表示越往下,若是值是負數,則越小越往上面。

像音符同樣,你也能夠經過|來分隔文本小節,這樣能夠更好的對齊,另外,你還能夠經過++語法來在同一行譜線上建立新的一行文本。簡直太強大有木有~

還沒完,你還能在文本上添加不少音樂符號,好比結尾和重複。只須要在關鍵字前面加上#就能夠了,e.g., text #coda

第十三步:旋律斜線記法

在音長符號前面加上大寫S就能夠變成斜線的記法了。在下面的示例中,你能夠嘗試改一下音名看看效果。你也能夠經過 ud 來表示動做的上下。

第十四步:定義外觀

定義外觀主要是經過options的參數來完成的,你能夠根據喜愛更改字體,譜的大小和美化譜線距離等。好比 options width=400 表示譜的寬度是 400 像素。

下面是相關的參數列表。

參數描述width譜的寬度,單位是像素scale縮放係數,默認是1space和下一行譜線的距離,單位是像素stave-distance五線譜和六線譜之間的距離,單位是像素font-face/font-style/font-size註釋字體的默認參數

能夠看起來很大:

加多一些空間給在譜線比較高位置的音:

讓五線譜和六線譜距離更遠:

第十五步:六線譜也能夠帶拍號

添加 tab-stems 參數就能夠在六線譜上顯示拍號了。對於單獨的人聲旋律譜,你能夠經過 tab-stem-direction 參數來指定拍號的方向。

注意你須要改變一下 spacestave-distance 參數值來避免出現重疊。

第十六步:播放你的音符

添加 player 參數等於 true,還要指定拍子的速度tempo,就能夠當即播放你寫的音符了。

第N+1步:

立刻體驗一下,進入編輯器,手機,ipad,pc可用。

避免走丟指南:喜歡玩音樂的程序員能夠關注下面公衆號:


詞彙表:

  1. stave: 譜表
  2. note: 音符
  3. octave: 八度音階
  4. fret: 指板
  5. natural: 還原音
  6. time:節拍
  7. tuning: 起音
  8. clef: 譜號
  9. tablature: 譜式,記譜法
  10. treble: 最高聲部,高音部
  11. alto: 女低音,中音部
  12. tenor: 男高音
  13. bass: 男低音,低音部
  14. percussion: 打擊樂器
  15. common time: 4/4 拍。
  16. rest: 休止符
  17. double bar: 復縱線
  18. mute note: 啞音
  19. vibrato: 顫音
  20. chord: 和絃
  21. hammer-on: 擊弦
  22. pull-off: 勾弦
  23. tap: 點弦,輕敲吉他
  24. slide: 滑弦
  25. lyrics: 歌詞
  26. articulation: 銜接,是音樂上的方向或技術。它影響到樂曲裏音符之間的過渡或連續性。
  27. staccato: (意大利語) 斷音,斷奏,指音符的實際時值比譜上所示的短,而減短的部分則可不做聲,並於音符上加上一小點表示。
  28. fermata: 延音
  29. staccatissimo: 特斷音
  30. accent: 重音
  31. codas: 尾奏
  32. segno: 連續記號
相關文章
相關標籤/搜索