Deutsches Lilypond Forum (Archiv)

Allgemein => Hilfe beim Einstieg in Lilypond => Thema gestartet von: Lebostein am Donnerstag, 28. Februar 2008, 14:00

Titel: Akkordbezeichnungen in Klammern
Beitrag von: Lebostein am Donnerstag, 28. Februar 2008, 14:00
Hi (ich hoffe ich nerve nicht),

angenommen, man hat einen Block mit Akkorden:

akkorde = \chordmode
{
d2.:m d2.:m f2. \break
c2. d2.:m d2:m c4 d2:m a4:m d2.:m
}

...und möchte das c4 in der zweiten Zeile mit Klammern (C) versehen. Geht das?
Einfach ein paar Klammern drum hab ich schon probiert, scheinbar wird normaler Text im \chordmode nicht akzeptiert...
Titel: Re: Akkordbezeichnungen in Klammern
Beitrag von: etilli33 am Donnerstag, 28. Februar 2008, 15:47
Schau mal nach dem Stichwort parentheses im NR, vielleicht hilft das? Ansonsten kannst du ja mit \markup bzw. \mark arbeiten, oder hast du das schon versucht? Dazu sollte es einige Schnipsel geben...

Gruß
Till
Titel: Re: Akkordbezeichnungen in Klammern
Beitrag von: Lebostein am Donnerstag, 28. Februar 2008, 16:23
Hab ziemlich lange gesucht. In einem anderen Forum hab ich das hier gefunden:

%%%  CODE SNIPPET BEGINS
\version "2.9.10"


#(define (parenthesis-ignatzek-chord-names in-pitches bass inversion context)
(markup #:line ("(" (ignatzek-chord-names in-pitches bass inversion context) ")")))

chordset = \chordmode
{
        \set chordNameFunction = #parenthesis-ignatzek-chord-names
        c1:7 g1:7
        \set chordNameFunction = #ignatzek-chord-names
        c1:7 g1:7
}

\score
{
        \new ChordNames \chordset
}
%%%  CODE SNIPPET ENDS


und es scheint zu funktionieren!!!
Titel: Re: Akkordbezeichnungen in Klammern
Beitrag von: etilli33 am Donnerstag, 28. Februar 2008, 20:51
hm, damit werden dann alle Akkorde in Klammern gesetzt? Das wolltest du also... :-)
Titel: Re: Akkordbezeichnungen in Klammern
Beitrag von: Lebostein am Samstag, 1. März 2008, 10:27
nee, das passt schon mit der neu generierten Funktion
\set chordNameFunction = #parenthesis-ignatzek-chord-namesschaltet man die Klammerung ein und mit der Lilypond-Funktion
\set chordNameFunction = #ignatzek-chord-nameswieder aus.

Hab bei mir das ganze in eine Funktion gepackt:

% ------------------------------------------------------------
% Funktion, die eine Klammer um ein Akkordsymbol legt
% ------------------------------------------------------------

#(define (parenthesis-ignatzek-chord-names in-pitches bass inversion context)
(markup #:line ( "(" (ignatzek-chord-names in-pitches bass inversion context) ")" )))

klamm = #(define-music-function (parser location griffe) (ly:music?)
#{
\set chordNameFunction = #parenthesis-ignatzek-chord-names
$griffe
\set chordNameFunction = #ignatzek-chord-names
#})

% ------------------------------------------------------------

so kann man das einfacher verwenden:

akkorde = \chordmode
{
d2.:m d2.:m f2. \break
c2. d2.:m d2:m \klamm {c4} d2:m a4:m d2.:m
}

(http://home.arcor.de/tomysoft/temp/lily_klamm.gif)