Ungewöhnlichere Akkordnamen?

Begonnen von Mjchael, Freitag, 7. Januar 2022, 16:23

« vorheriges - nächstes »

Mjchael

Ich habe Dank der Dokumentation herausbekommen, wie ich Akkord-Legenden erstellen kann, ohne vordeffinierte importierte Dateien. (Nebenbei erwähnt: Ein Vorschlag von Harm funktionierte zu Hause, aber leider nicht im Wiki-Pluggin.)


<<
   \new ChordNames {
      < e gis b c''>1
      \chordmode { a1:m a:m }
   } 
   \new FretBoards { 
      < e,-0 b,-2 e-3 gis-1 c'-1 e'-0 >
      % ...
    }
>>


Ergebnis: siehe Anhang.

Der angegebene Akkord wird als Eb13 (sig!) bezeichnet.
Er sollte aber Eadd13b oder Eadd6b oder zumindest E13b bezeichnet werden.

In der Dokumentation hatte ich einen Schnipsel gefunden, 'add' einzufügen, der aber in Frescobaldi ohne Erfolg blieb, egal wohin ich ihn setzte. (vor oder nach dem < Akkord > oder vor oder nach dem cordmode-Akkord oder sogar nach dem < fredboard >. Ich habe systematisch alle Varianten ausprobiert.)

Eine passende Beziehung für den Akkord wie im \chordmode {} verwendet, habe ich nicht gefunden.

Ich habe gefühlt die komplette Dokumentation in mehreren Sprachen zu dem Thema durchsucht, aber nichts gefunden.

Gibt es dafür eine elegante oder zumindest eine Quick & Dirty-Lösung?

Gruß Mjchael

ps.: Frohes neues Jahr.  :D
Meine Durchhalteparole:
Das sollst du nicht können!
Das sollst du lernen!

harm6

Ich hol' mal etwas weiter aus...

Es scheint mir hier drei Fragen zu geben:
(1) Zur Eingabe
(2) Zum Einfügen von "add"
(3) Zur Position von Vorzeichen

ad (1) Eingabe
LilyPond betrachtet Akkorde erstmal als terzgeschichtete Zusammenklänge
\chordmode { c c:m c:aug c:dim } ist also ein Dur, ein moll, ein übermäßiger und ein verminderter Akkord.
Aber eigentlich kürzt diese Schreibweise nur das ausführliche \chordmode { c:1.3.5 c:1.3-.5 c:1.3.5+ c:1.3-.5- }
Das "m" in der moll-Akkord-Eingabe kommt vom context-property `minorChordModifier`, wieso "aug" und "dim" valide Eingaben sind weiß ich momentan nicht (via parser?).
Auf jeden Fall ist festzustellen:
a) daß bei der Eingabe hinter der root-Note und der Dauer nach einem Doppelpunkt mit einem Punkt getrennte Tonstufen repräsentierende Zahlen kommen können, wobei
1 für den Grundton (root)
3 für die Dur-Terz
5 für die reine Quinte
7 für die kleine Septime
9 für die große None
etc
steht.
Da von terzgeschichteten Akkorden ausgegangen wird ist es eine weitere Abkürzung statt z.B. c:1.3.5.7.9 einfach c:9 zu schreiben, die unter der 9 liegenden Töne werden ergänzt.
Einzige Ausnahme und wenn man es genau nimmt Verletzung der Terzschichtung: c:5 ist c:1.5 nicht c:1.3.5
b) daß die Zeichen "-" und "+" dazu dienen die per default angenommenen Akkordtöne zu alterieren: z.B. 3- ist also die moll-Terz
c) daß es shortcuts gibt: "m", "aug", "dim" u.a.

Es sollte jetzt einfach vorstellbar sein wie nicht terz geschichtete Akkorde eingegeben werden, einfach die entsprechenden Zahlen und eventuell Alteration.
Z.B. c:1.2.5 und c:1.4.5
Auch hier gibt es wieder shortcuts: c:sus2 und c:sus4
Aber auch verücktes Zeug wie c:1.2+.3-.4+.5-.6+.7- ist also einfach einzugeben.
Es gibt auch die Option in der Terzschichtung einzelne Töne auszuschließen:
c:9 ist das gleiche wie c:1.3.5.7.9
c:9^7 ist aber c:1.3.5.9

Zusammenfassung:
Die Eingabesyntax im chordmode beruht in der Tat auf der speziellen Eingabe von Noten eines Akkordes.
Alteration sind natürlich möglich.
Es existieren zahlreiche short-cuts, die fast schon vergessen lassen, daß man Akkordnoten schreibt.
Die Umwandlung in einen Text erfolgt natürlich nur in den ChordNames nicht in anderen Contexten.

ad (2) "add"
Es gibt zwei Möglichkeiten "add" bei den zusätzlichen Akkordtönen unterzubringen
a) Mit Hilfe des context property `additionalPitchPrefix`:

\new ChordNames
\chordmode {
  \once \set additionalPitchPrefix = "add" %% default: ""
  c:1.3.5.9
}

Wenn man aber mehrere Zusatztöne hat wird "add" vor jeden einzelnen davon gesetzt:

\new ChordNames
\chordmode {
  \once \set additionalPitchPrefix = "add" %% default: ""
  c:1.3.5.9.10
}

b) mittels exceptions, z.B:

myChords = {
  <c e g d'>-\markup { \super "add9" }
  <c e g d' e'>-\markup { \super "add9/10" }
}

ignatzekExceptions =
#(sequential-music-to-chord-exceptions myChords #t)

\new ChordNames
  \chordmode {
    \set chordNameExceptions = \ignatzekExceptions
    c:1.3.5.9
    c:1.3.5.9.10
  }

Aber wahrscheinlich finktioniert das im wiki mal wieder nicht ...

ad (3) Vorzeichenposition
Ein Vorzeichen hinter den alterierten Akkordton zu setzen wie C13b ist schlichtweg falsch. Es gehört davor: Cb13
LilyPond tut hier also das einzig richtige, aber natürlich kann man das mittels exceptions auch anders machen.

Soweit das Vorwort :)
Den angefragten Akkord im chordmode einzugeben sollte jetzt klar sein. Allerdings sehe ich im Bild eher einen Akkord mit zusätzlicher tiefalterierter Sexte, denn mit hinzugefügter tiefalterierter 13. Hier beides:

\chordmode {
  c:6- c:1.3.5.13-
}

Um im 13-Akkord das "add" zu bekommen:

\chordmode {
  \set additionalPitchPrefix = "add"
  e:6- e:1.3.5.13-
}

Das "add" wird richtigerweise nur im 13-Akkord gedruckt, denn nur hier ist es wesentlich.
Falls es auch im 6-Akkord gewünscht wird muß man wieder über die exceptions gehen.

Von all dem abgesehen kannst Du auch den ChordName.text überschreiben, bzw Akkorde rein als Text eingeben. Siehe:
https://lilypondforum.de/index.php/topic,1011.msg5411.html

Gruß,
  Harm

Mjchael

#2
Zuerst:
@harm6 : Vielen Dank. :D

Ich habe die Antwort nicht gleich mitbekommen, da mir die Forensoftware nicht mitteilte, das neue Beiträge oder neue Antworten da sein.

Den Codeschnipsel hatte ich von der Doku: 2.7.2 "Akkorde anzeigen" übernommen


Mit Copy&Past nur das  \once hatte ich händisch eingetippt.
Ich halte es aber nicht für ausgeschlossen, dass ich nicht doch an irgendeiner Stelle einen Syntax-Fehler eingebaut hatte, den ich dann bei den anderen Versuchen immer mitschleppte.

Der Großteil der Akkordnamenbenennung ist mir bestens vertraut, aber dennoch ist es schön, alles noch einmal kompakt zusammengefasst und im Bezug zum Lilypond-Code zu sehen, damit man auch sieht, wie man den Standard am besten in den Code umsetzt.  :D

Es wird sich mit Sicherheit bald eine Gelegenheit bieten, die anderen Eingabemöglichkeiten mittels exceptions bzw. markup zu testen. Durch das Add brauche ich vorläufig noch nicht das 13b statt b13.
Eaddb13 ist mit der entsprechenden Formatierung unmissverständlich im Gegensatz zu Eb13.

Sollte es bei der Wiki nicht funktionieren habe ich immer noch die Möglichkeit, die Griffdiagramme einzeln ohne ChordNames in eine HTML-Tabelle zu setzen, und die Akkordnamen in eine obere Zeile einzutragen. Ist natürlich ungleich umständlicher. Sollte dieses jedoch nicht nötig sein, werde ich es hier hin posten.

Deine Hilfe funktioniert und wurde hier praktisch umgesetzt.
Wikibooks: Melodiepicking - Wellerman

Also nochmals Danke für die Unterstützung!

Gruß Mjchael
Meine Durchhalteparole:
Das sollst du nicht können!
Das sollst du lernen!