Hilfe:Notensatz
Die Darstellung von musikalischen Notationen ist mit Hilfe der Markup-Sprachen LilyPond (Voreinstellung) bzw. ABC möglich.
Die Kodierungen werden in <score>…</score>
eingeschlossen.
Die Softwareerweiterung wurde im April 2013 in der deutschsprachigen Wikipedia aktiviert.
Tag-Attribute
Das Tag <score>
kann optional mit Attributen versehen werden.
Attribut | Beschreibung |
---|---|
lang="ABC" |
Verwendung der ABC-Notation |
lang="lilypond" |
Verwendung der LilyPond-Notation, die jedoch bereits standardmäßig aktiviert ist |
midi="1" |
automatische Erstellung einer MIDI-Datei, auf die durch die Darstellung verlinkt wird |
vorbis="1" |
automatische Erstellung einer Ogg-Vorbis-Datei und Anzeige eines Audioplayers für diese unter der Notendarstellung |
raw="1" |
Nur mit lang="lilypond" . Mit diesem Tag wird der Parser angewiesen, den Tag-Inhalt als vollständige LilyPond-Datei zu behandeln, wodurch komplexere Darstellungen möglich sind.
|
override_midi="…" |
die Darstellung verlinkt auf die angegebene MIDI-Datei |
override_ogg="…" |
die Darstellung verlinkt auf die angegebene Ogg-Vorbis-Datei |
Beispiele
Einfach
<score>\relative c' { f d f a d f e d cis a cis e aes g f e } </score>
ergibt
Fortgeschritten
<score> { \key c \minor \time 3/4 \relative c' { f d f a d f e d( cis) a cis e aes g-. f-. e-- <c, e g>2 \fermata \bar "|." } } </score>
ergibt
ABC-Notation
<score lang="ABC"> X:1 M:C L:1/4 K:C C, D, E, F,|G, A, B, C|D E F G|A B c d| e f g a|b c' d' e'|f' g' a' b'|] </score>
ergibt:
Tonhöhe
Um eine Note darzustellen, schreibt man den Tonnamen (a, b, c usw.). Das "b" steht dabei für den international so benannten Ton, also für das deutsche "h". Verschiedene Töne werden durch Leerzeichen getrennt. Erhöhte Töne werden mit dem Suffix -is gebildet (fis, cis, gis, dis, ais, eis), erniedrigte mit dem Suffix -es (bes, es, aes, des, ges). Dadurch ergeben sich zwei Abweichungen von den gebräuchlichen deutschen Tonnamen: "aes" statt "as" und "bes" statt "b" (siehe auch anderssprachige Tonbezeichnungen).
Standardmäßig referiert dabei jeder Tonname einen Ton der kleinen Oktave, also unterhalb des mittleren (eingestrichenen) c. Mit einem Apostroph ('
) transponiert man den Ton um jeweils eine Oktave nach oben, mit einem Komma (,
) um jeweils eine Oktave nach unten.
<score>{a,, c, e, a, c e a c' e' a' c'' e'' a'' c''' e''' g''' \bar "||" aes'' bes'' gis'' dis''}</score>
ergibt folgendes Bild:
Erheblich einfacher ist es, den Relative-Modus zu benutzen. Wenn der Befehl \relative
vor dem Klammerausdruck eingefügt wird, referiert jeder Tonname zu demjenigen Ton, der dem vorangehenden Ton am nächsten liegt. Im folgenden Beispiel wird c''
als Ausgangston angegeben. Das F drüber wird abgedruckt, weil es näher liegt, als das F drunter.
<score> \relative c'' { c f c g }</score>
ergibt folgendes Bild:
Der erste Ton referiert die Note, die nach dem \relative
-Befehl angeführt ist. (Bei der Bestimmung der „nächstliegenden“ Note werden Versetzungszeichen, also Kreuze und Bes, ignoriert.) Mit '
wird die Erhöhung um eine Oktave erzwungen, mit ,
entsprechend die Erniedigung.
Notenlänge und Pausen
Jede Note erhält standardmäßig dieselbe Länge wie die vorangehende, und die erste Note ist standardmäßig eine Viertelnote.
<score> {c' c' c' c' } </score>
ergibt
Um andere Längen zu verwenden schreibt man eine 1 für eine Ganze Note, 2 für eine Halbe, 4 für eine Viertel, 8 für eine Achtel usw. hinter den Tonnamen. Punktierungen werden mit einem Punkt .
dargestellt.
<score> {c'1 c'2 c'4 c'8 c'16. c'128 } </score>
ergibt
Für Pausen schreibt man r
(für rest) statt des Tonnamens a–g.
<score> {r1 r2 r4 r8 r16 r128 r128} </score>
ergibt
Triolen können mit dem Befehl \times 2/3 { }
angegeben werden.
<score> { \times 2/3 { c8 d e f g a } } </score>
ergibt
Vorzeichen
Die Tonart wird mit \key g \major
(für Dur) bzw. \key c \minor
(für Moll) angegeben. (Sowohl die Takt- als auch die Tonartenangabe können jederzeit auch wieder geändert werden.) Beachte aber, dass auch mit einer vorgezeichneten Tonart die Tonhöhen der einzelnen Töne korrekt mit den jeweiligen Versetzungszeichen notiert werden müssen. Wird eines ausgelassen, wird die Note als aufgelöst interpretiert. Beispiel:
<score>\relative b {\key b \major \time 6/8 b8 cis dis e fis gis ais b c d e f \time 2/4 g a b \key aes \minor g f e d c b a g r}</score>
ergibt
Das Beispiel zeigt, dass die Software oftmals Achtelnoten an Stellen verbalkt, die merkwürdig aussehen. Um das automatische Verbalken für eine einzelne Note auszuschalten verwendet man a b \nobeam c ...
. Um das automatische Verbalken für größere Abschnitte auszuschalten, verwendet man \autoBeamOff
und \autoBeamOn
. Um einzelne Noten manuell zu verbalken, verwendet man a b[ c d e] f
. Dies erzeugt einen Balken von der öffnenden bis zur schließenden eckigen Klammer, kombiniert in diesem Beispiel also die Noten b, c, d und e.
Taktangabe und Auftakt
Der Code \time 3/4
erzeugt die Taktangabe. Der Code \partial 4
erzeugt einen Auftakt von der Länge einer Viertelnote.
<score> { \time 3/4 \partial 4 g c' d' e' f' } </score>
Textierung
Passend zu den Noten lässt sich Text über den Befehl \addlyrics { }
eingeben. Sie Silbentrennung wird dabei mit --
angegeben. Soll einer Note kein Text unterlegt werden kann sie mit einem Unterstrich _
ausgelassen werden.
<score> { c''1 d'' e'' f'' } \addlyrics { Sil -- ben -- trenn -- ung }</score>
Ein Beispiel mit Text:
<score>\relative g' { \key g \major \time 3/4 \partial 4 d e d g fis2 d4 e d a' g2 d4 d' b g fis e c' b g a g2 \fermata \bar "|." } \addlyrics {Good mor -- ning to you, Good mor -- ning to you, Good mor -- ning dear chil -- dren, Good mor -- ning to all. }</score>
ergibt
Wie man sieht werden bei längeren Notationen automatisch Zeilenumbrüche gesetzt und neue Zeilen mit der aktuellen Taktnummer annotiert (hier 5). Soll diese Taktnummerierung unterdrückt werden, kann am Anfang \new Score \with { \remove "Bar_number_engraver" }
geschrieben werden.
Artikulationszeichen
Es gibt eine Reihe von Symbolen, die an Noten angefügt werden können, wie z. B. \fermata
. Es gibt ferner die Symbole -> -- -+ -. -^ -_ -|
zur Angabe der Artikulation:
Die Eingabedatei von LilyPond konnte nicht kompiliert werden:
line 1 - column 41:
syntax error, unexpected MUSIC_IDENTIFIER
--------
line 1 - column 1:
errors found, ignoring music expression
.
Unterdrücken der Taktangabe
In Einzelfällen kann es wünschenswert sein, die Taktangabe zu unterdrücken. Hierfür könnte man die Takangabe auf transparent stellen werden, wodurch an dieser Stelle aber die Lücke bestehen bleibt.
<score> { \new Staff \once \override Staff.TimeSignature #'transparent = ##t <d' fis' a'>2 } </score>
ergibt
Um die Lücke zu vermeiden wäre es günstiger, den Code \remove "Time_signature_engraver"
zu verwenden:
<score> { \new Staff \with { \remove "Time_signature_engraver" } <d' fis' a'>2 } </score>
ergibt
Eine alternative Möglichkeit direkt vor den Noten ist
<score> \new Staff { \override Score.TimeSignature.stencil=##f <d' fis' a'>2 } </score>
und liefert das gleiche Ergebnis
Hinweis: Die Ausgabe besitzt eine vertikale Größenbeschränkung, d. h. bei längeren Melodien die über mehr als fünf Zeilen gehen oder mit Liedtext über mehr als vier Zeilen, wird ein Fehler geworfen.
Mehrere Systeme und mehrere Stimmen zugleich
- Mehrere Notensysteme: Mit der Anweisung
\new Staff
wird ein neues Notensystem erzeugt. Wenn man zwei Notensysteme mit je zwei Kleiner- und Größerzeichen<< >>
einklammert, werden die Notensysteme untereinander gedruckt. - Mehrere Stimmen: Mit der Anweisung
\\
wird eine neue Stimme erzeugt. Wenn man zwei Stimmen mit je zwei Kleiner- und Größerzeichen<< >>
einklammert, werden die Stimmen ebenfalls untereinander gedruckt.
So ergibt sich für folgenden Quelltext das nachfolgende Bild:
<score> { \new PianoStaff << \new Staff { \tempo 4=120 \clef violin \key f \major \time 3/4 << { g'2 } \\ { c'2 } >> } \new Staff { \clef bass \key f \major \time 3/4 << { e2 } \\ { c2 } >> } >> }</score>
Akkordsymbole
Akkordsymbole lassen sich mit der Anweisung \new ChordNames { }
darstellen. Ohne weitere Anweisung würde Lilypond alle Noten zwischen den geschweiften Klammern als Akkordsymbole interpretieren. Man kann Akkordsymbole ohne Noten darstellen (Chordsheet). Beispiel:
<score>{ \new ChordNames { <c es g> } }</score>
Eine eindeutigere Methode ist jedoch, gleich Akkordsymbole anzugeben. Wenn man in die geschweifte Klammer \chordmode { }
schreibt, kann man in diese geschweifte Klammer direkt Akkordsymbole eingeben. Wenn man zur Akkordfolge noch eine Melodie mit je zwei Kleiner- und Größerzeichen << >>
einklammert, werden beide Systeme untereinander gedruckt. So erhält man ein Leadsheet:
<score>{ << \new ChordNames { \chordmode { c c:m } } \new Staff { c'2 c' } >> }</score>
Vergiss nicht, dass man den Akkorden auch eine Dauer zuweisen muss, wenn sie rhythmisch zu den Noten stimmen sollen. Im folgenden Beispiel werden die Akkorde nur eine Viertelnote gehalten, während die Melodie sich in Halben bewegt:
<score>{ << \new ChordNames { \chordmode { c4 f4:m c4:m } } \new Staff { c'2 c' } >> }</score>
Es folgt nun eine Liste mit den gängisten Akkordsymbolen und ihren Bezeichnungen in Lilypond:
Tempo
Der automatisch generierten Tondatei gibt man zur Zeit nur mit
\tempo v = mm
z.B.\tempo 4 = 72
eine Tempoangabe mit.
Hinweise zur Verwendung
Die Verwendung von score
in Wikipedia wird protokolliert unter:
- Special:PagesWithProp/score (Leider ohne Namensraumfilter[1])
Verwendungsbeispiele aus anderssprachigen Wikipedia Versionen lassen sich in gleicher Weise anzeigen:
- en:Special:PagesWithProp/score
- fr:Special:PagesWithProp/score usw.
- en.wikisource:Special:PagesWithProp/score (z. B. A Dictionary of Music and Musicians)
Seiten mit fehlerhafter Verwendung von score
werden in dieser Kategorie angezeigt:
Weitere Informationen
- Hilfe:Notensatz/VisualEditor – Beschreibung der Eingabefunktion für die Bearbeitungsumgebung VisualEditor
- lilypond.org – Dokumentation der LilyPond-Syntax mit weiteren Details. Es werden hier allerdings nicht alle Syntaxelemente von Lilypond unterstützt, siehe auch Diskussionsseite.
- Vorlage:Musik
Anmerkungen
- ↑ Der fehlende Namensraumfilter kann zumindest je Ergebnis-Seite durch ein Benutzerskript ausgeglichen werden: resultListSort