Autor Thema: Akkordbezeichnungen in Klammern  (Gelesen 5919 mal)

Lebostein

  • Gast
Akkordbezeichnungen in Klammern
« 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...

etilli33

  • Gast
Re: Akkordbezeichnungen in Klammern
« Antwort #1 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

Lebostein

  • Gast
Re: Akkordbezeichnungen in Klammern
« Antwort #2 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!!!

etilli33

  • Gast
Re: Akkordbezeichnungen in Klammern
« Antwort #3 am: Donnerstag, 28. Februar 2008, 20:51 »
hm, damit werden dann alle Akkorde in Klammern gesetzt? Das wolltest du also... :-)

Lebostein

  • Gast
Re: Akkordbezeichnungen in Klammern
« Antwort #4 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
}

« Letzte Änderung: Samstag, 1. März 2008, 10:36 von Lebostein »