VexFlow und VexTab VexFlow ist eine API, mit deren Hilfe man innerhalb eines HTML5-Canvas auf der Grundlage von Javascript im Browser Noten schreiben kann. Um relativ einfach und musiker-kompatibel Noten in html zu schreiben, wurde das VexTab-Format entwickelt. Beispiele:
Hierfür muss man unter https://github.com/0xfe/vextab das VexTab-Paket downloaden, es in den gleichen Ordner wie die HTML-Datei entpacken und dann im Header der Datei folgende Scripte einbinden: <script src="vextab-master/releases/vextab-div.js"></script> Sobald dies geschehen ist, können innerhalb eines <div>-Tags verschienste Arten von Noten geschrieben werden. z.B. würde eine C-Dur-Tonleiter über zwei Oktaven folgendermaßen aussehen: <div class="vex-tabdiv"
width="600" scale="0.9" show-errors="true"
editor="false" style="position: relative;"> tabstave notation=true
tablature=false time=4/4 clef=treble key=C </div>
tabstave notation=true tablature=false time=4/4 clef=treble key=C notes
C-D-E-F/4 | G-A-B/4-C/5 | C-D-E-F/5 | G-A-B/5-C/6
Mit tabstave wird eingeleitet, dass jetzt eine Notenzeile folgt, mit den folgenden Eigenschaften:
In der darauffolgenden Zeile werden nach notes die Noten definiert, mit folgenden Regeln: 1. Notennamen: C, D, E, F, G, A, B sowie ## (mit einer Zahl dazwischen) für Pause
tabstave notation=true tablature=false time=4/4 clef=treble key=C notes
C/4 ## E-F/4 | ## A-B/4-C/5 | C/5 :8 ## :4 E/5 :8 ## :4 F/5 | G-A/5 :h
##
2. Vorzeichen: # = Kreuzchen, ##= Doppelkreuzchen @ = Bechen, @@= Doppelbechen, n = Auflösung
tabstave notation=true tablature=false time=4/4 clef=treble key=C notes
C/4 ## E-F#/4 | ## A-B@/4-C/5 | C##/5 :8 ## :4 E@@/5 :8 ## :4 Fn/5 | G-A/5
:h ##
3. Oktavlage:
tabstave notation=true tablature=false time=4/4 clef=bass key=C notes
C/2 ## E-F#/2 | ## A-B@/3-C/4 | tabstave notation=true tablature=false
time=4/4 clef=treble key=C notes C##/4 :8 ## :4 E@@/5 :8 ## :4 Fn/6 |
G-A/6 :h ##
4. Notenlänge: :w = ganze Note, :h = halbe Note, :q = Viertelnote, :8 = Achtelnote, :16 = Sechzehntelnote, :32 = Zweiundreißigstelnote etc. Als Default sind Viertel (:q) eingestellt, wenn man die Notenlängen ändern will, schreibt man einen : mit der entsprechenden Längenbezeichnung für alle nachfolgenden Noten. b
= Bindebogen zur nächsten Note, d
= punktierte Note (z.b. :8d = punktierte Achtel), Wenn man ein S hinzufügt, dann werden alle nachfolgenden Noten als Rhythmusnoten angezeigt (z.B. :8S = Achtel als Ryhtmusnote) Wenn man ein X anstelle eines Notennamens einfügt, wird die Note als stumme Note ausgegeben (Z.B. X/4 = stumme Note in der viergestrichenen Oktave)
tabstave notation=true tablature=false time=4/4 clef=treble key=C notes
:8 C/4 ## :qd E/4 F/4 | :q ## :h A/4 :qd B/4 :8 C/5 | :q C/5 E/5 :8 C-E-F/5
^3^ | :w G/5 | A/5 |:h ## tabstave notation=true tablature=false time=4/4
clef=treble key=C notes X/4 :8 ## :q X/4 :8 ## :4 X/6 | X-X/6 :h ## tabstave
notation=true tablature=false time=4/4 clef=percussion notes :4S B/4 :8
## :qS B/4 :8 ## :4S B/4 | :4S B/4 B/4 :h ##
5. Taktstriche werden durch | markiert, weitere Markierungen sind:
tabstave notation=true tablature=false time=4/4 clef=treble key=C notes
:8 C/4 ## :qd E/4 F/4 =:: :q ## :h A/4 :qd B/4 :8 C/5 | :q C/5 E/5 :8
C-E-F/5 ^3^ =:| :w G/5 | A/5 =|| :h ## =|=
6. über Klammern ( ) lassen sich einzelne Noten (mit Punkten . verbunden) zu Akkorden zusammenfassen, z.B. (C/4.E/4.G/4) ergibt einen C-Dur-Akkord in der eingestrichenen Oktave
tabstave notation=true tablature=false time=4/4 clef=treble key=C notes
:8 (C/4.E/4.G/4.C/5) ## :qd E/4 (F/4.A/4.C/5) =:: :q ## :h (E/4.A/4.C/5)
:qd (G/4.B/4) :8 (E/4.G/4.C/5) | :q C/5 E/5 :8 C-E-F/5 ^3^ =:| :w (G/4.B/4.D/5.F#/5.G/5)
| (E/4.A/4.C/5.E/5.A/5) =|| :h ## =|=
7. Artikulation: wenn man hinter die Note verschieden Buchstaben hinzufügt, kann man die Artikulation bestimmen:
Über $.ariculation/position.$ können weitere Artikulationsarten hinzugefügt werden:
tabstave notation=true tablature=false time=4/4 clef=treble key=C notes
Cu-Dd-E/4 $.a./bottom.$ -F/4 $.a./top.$ | G/4 $.av/bottom.$ A/4 $.a>/bottom.$
B/4 $.a@a/top.$ C/5 $.a@u/bottom.$ | C/5 $.a-/top.$ D/5 $.ah/top.$ E/5
$.a^/top.$ F/5 $.a+/top.$ | G/5 $.ao/top.$ A/5 $.a|/top.$ B/ 5$.am/top.$
Cv/6
8. Text: Text kann mit Hilfe von $-Zeichen direkt notengetreu platziert werden (für Liedtexte, Akkordbezeichnungen etc.). Mit Hilfe von $.top.$ und $.bottom.$ kann der Text entweder über oder unter die entsprechende Note platziert werden (z.B. C-D-E-F/4 $.top.$ $Dies,ist,ein,Text$ ). Mit Hilfe von .style.-Eigenschaften lassen sich dem Text auch bestimmte Eigenschaften (z.B. big, medium, italic) zuweisen (z.B. C-D-E-F/4 $.top.$ $.big.Dies,ist,ein,Text$ ). Diese können auch nach dem Stil .face-size-style. sehr komplex sein (z.B. C-D-E-F/4 $.top.$ $.Times-12-bold.Dies,ist,ein,Text$ ). Über
text lässt sich eine Textzeile hinzufügen, deren Textelemente
(mit Beistrichen getrennt) sich auf Notenlängen verteilen lassen
(z.B. text :h, 1. Teil, 2. Teil)
setzt die beiden Wortteile in Abständen von halben Noten.
options space=20 font-size=12 tabstave notation=true tablature=false time=4/4
clef=treble key=C notes C-D-E-F/4 $.top.$ $.italic.Dies,ist,ein,Text$
| G-A-B/4-C/5 $.bottom.$ $.Times-14-bold.und,noch,ein,Text$ | text :h,C
Major, C Major text :h,G Major, G Major text ++, .13, :w, Neue Textzeile
unter den gleichen Notenlinien. text ++, .4, |#coda, :h, , :q, #tr, |#segno
text ++, .10, |,#f,#p text ++, .13 |, :w, ,|, :h, ,D.S. al coda options
space=25
9. mit options lassen sich zu Beginn des div-Tags die verschiedenen Einstellungen vornehmen:
options width=500 scale=1.5 font-face=Times font-style=italic font-size=5
tabstave notation=true tablature=false time=4/4 clef=treble key=C notes
C-D-E-F/4 | G-A-B/4-C/5 | C-D-E-F/5 | G-A-B/5-C/6 text :h,C Major, C Major
text :h,G Major, G Major
Unter http://www.vexflow.com/vextab/tutorial.html gibt es auch ein interaktives Tutorial zu VexTab
music21, trinket.io/music Um einfache Notenbeispiele in HTML zu erzeugen, reicht es, folgendes Script an einem beliebigen Ort der Seite zu platzieren: <script data-main="http://web.mit.edu/music21/music21j/src/music21"
Und dann in einem <div>-Tag in tinyNotation die gewünschten Noten einzugeben. Der div-Tag lautet: <div class="music21 tinyNotation"> </div> Hierfür gibt es folgende Regeln: 1. Notennamen: c, d, e, f, g, a, b sowie r (= rest) für Pause 2. Vorzeichen: # = Kreuzchen, - = Bechen, n = Auflösung 3. Oktavlage:
4. Notenlänge:
1 = ganze Note, 2
= halbe Note, 4 = Viertelnote,
8 = Achtelnote, 16
= Sechzehntelnote, 32 =
Zweiundreißigstelnote etc. ~
= Bindebogen zur nächsten Note, .
= punktierte Note, 5. Das Metrum wird immer am Anfang eingegeben (z.B. 4/4 für Vier-Viertel-Takt), kann aber auch später im Takt verändert werden. Eine C-Dur-Tonleiter in der eingestrichenen Oktave würde folgendermaßen beschrieben werden: <div class="music21
tinyNotation"> 4/4 c d e f g a b c'
Eine chromatische Skala in Achteln und in der kleinen Oktave würde wie folgt aussehen: <div class="music21
tinyNotation"> 4/4 C8 C# D D# E F F# G G# A B- Bn c2
Diese Regeln gelten auch für https://www.trinket.io/music , um schnell Notenbeispiele zu erzeugen, sich anzuhören und zu verschicken, zu verlinken oder via iframe einzubetten: <iframe src="https://www.trinket.io/embed/music/63be9c9b4c"
width="100%" height="300" frameborder="0"
marginwidth="0" marginheight="0" allowfullscreen></iframe> Komplexeres Beispiel: <div class="music21
tinyNotation"> 3/4 E4 r f# g trip{b-8 a g} c4~ c
Weitere browserbasierte Noten-Generierungs-Scripte sind ABC notation (mit Hilfe des Scripts abc2svg) und MusicXML.
|