• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

Slash chords nur mit Basston

Begonnen von iugin, Samstag, 25. Mai 2013, 18:45

Vorheriges Thema - Nächstes Thema

iugin

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

Be-3

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

iugin

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