Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: iugin am Samstag, 25. Mai 2013, 18:45
-
Hallo miteinander,
wie versprochen, mein 2. Post heute.
Wie kann ich in Lilypond Slash Chords schreiben, einzig mit dem Bass?
Z.B.: C /B /Bb usw.
Ich hatte in Internet was gefunden (natürlich finde ich es jetzt nicht mehr :) ), war aber für eine ältere Version, und hat bei mir (2.16.0) nicht funktioniert. Wenn ich es wieder finde, schicke ich euch den Link.
Besten dank für eure Hilfe...
Liebe Grüsse
Eugenio
Ps.: versprochen, heute schreibe ich nicht mehr :D
-
Ciao Eugenio,
Dein Beispiel legt nahe, daß der Akkord beibehalten werden soll und nur der Baßton sich ändert.
Also: C /B /Bb als abkürzende Schreibweise für C C/B C/Bb?
Ohne weiteres kann man den Akkord nicht verschwinden lassen, aber ich habe mir folgenden Trick überlegt, um nur den "Slash"-Teil des Akkords anzuzeigen:
Dank verschiedener Sprachen und somit Notennamen-Darstellungen gibt es austauschbare Funktionen für den Akkord-Grundton (Root) und den Slash-Baßton.
Für den Baß wird die selbe Aufbereitungsfunktion wie für den Grundton benutzt, sofern sie nicht explizit definiert ist.
Die "Mini-Funktion" note-name->hide für die Akkord-Grundton-Aufbereitung tut nichts anderes, als ein ein leeres Markup auszugeben.
Die Funktion \hideRoot bewirkt mit deren Hilfe, daß bei den nachfolgenden Akkorden (bei mehreren muß man sie in geschweifte Klammern schreiben) der Root-Ton nicht angezeigt wird, sondern nur der Slash-Baßton:
\version "2.16.0"
#(define (note-name->hide pitch lowercase?) empty-markup)
hideRoot =
#(define-music-function
(parser location chords) (ly:music?)
#{
\set chordRootNamer = #note-name->hide % Chord-Root nicht anzeigen
\set chordNoteNamer = #note-name->markup % aber Baßton mit Standard-Aufbereitung
$chords % hier kommt der Slash-Chord bzw. die Slash-Chords
\unset chordRootNamer % rückgängig
\unset chordNoteNamer % rückgängig
#})
\chords {
c1 \hideRoot { c/b c/bes } f
}
Achtung: Andere Akkordbestandteile (m, maj7 usw.) werden natürlich weiterhin gedruckt. Man darf sie in diesem Fall eben nicht angeben. Wenn man korrekte MIDI-Ausgabe wünscht, muß man an dieser Stelle noch etwas tun.
Viele Grüße
Torsten
-
Lieber Torsten,
ja, es war so gemeint: C /B /Bb = C C/B C/Bb :)
Vielen dank für die Hilfe, es funktioniert prima!
Erstaunlich, was du mit Lilypond alles kannst!
Liebe Grüsse
Eugenio