Quote transponieren

Begonnen von Köbi, Montag, 4. Februar 2019, 21:07

« vorheriges - nächstes »

Köbi

Hallo zusammen

Ich möchte ein Quote transponieren. Wieso funktioniert das nicht?


\version "2.19.82"

vA = { c' }

\addQuote "q" \vA

vB =
{
  \quoteDuring #"q" { s }
}

% Funktioniert wie erwartet: Es erscheint ein d.
\transpose c d { \vA }

% Funktioniert NICHT wie erwartet.
% Es sollte auch ein d erscheinen, aber es erscheint c.
\transpose c d { \vB }


Der zweite ausgegebene Ton ist leider ein c. Beide ausgegebenen Töne sollten ein d sein. Wie schaffe ich es, ein Quote zu transponieren?

Danke für eure Hilfe, Köbi

harm6

Vielleicht hilft:


transposedQuoteDuring =
#(define-music-function
   (what dir pitch main-music)
   (string? ly:dir? ly:pitch? ly:music?)
   (make-music 'QuoteMusic
               'element main-music
               'quoted-music-name what
               ;'quoted-voice-direction dir
               ;; following is inverse of instrumentTransposition for
               ;; historical reasons
               'quoted-transposition pitch))

vA = { c' }

\addQuote "q" \vA

vB =
{
  \transposedQuoteDuring #"q" #DOWN c' { s }
}

% Funktioniert wie erwartet: Es erscheint ein d.
\transpose c d { \vA }
% Es erscheint ein d.
\transpose c d { \vB }


Gruß,
  Harm

Köbi

Hallo Harm

Sorry für die späte Antwort. Leider habe ich jeweils nur im Urlaub zeit, mich mit Lilypond intensiver zu befassen, so dass ich es schaffe, mit dem Forum zu arbeiten.

Es funktioniert wie von dir vorgeschlagen, Danke! Ich habe mir erlaubt, deine Lösung noch etwas aufzuhübschen. So wie ich es sehe, braucht es zwei Parameter gar nicht.


\version "2.19.83"

quoteDuringT = #(
  define-music-function
  (what main-music)
  (string? ly:music?)
  (make-music
    'QuoteMusic
    'element main-music
    'quoted-music-name what
    'quoted-transposition #{ c' #}
  )
)

vA = { c' }

\addQuote "q" \vA

vB =
{
  \quoteDuringT #"q" { s }
}

% Funktioniert wie erwartet: Es erscheint ein d.
\transpose c d { \vA }
% Es erscheint ein d.
\transpose c d { \vB }


Für meinen Fall funktioniert es so und ich denke, es müsste auch sonst funktionieren.

Gruss, Köbi