Autor Thema: Wie muss ich das \transpose einfügen?  (Gelesen 2026 mal)

asdfg

  • Member
Wie muss ich das \transpose einfügen?
« am: Montag, 12. September 2016, 21:57 »
Ich möchte, dass das ganze in b-Moll notierte Lied nach C-Dur transponiet ausgegeben wird.

\version "2.18.0"

{
\key des \major
      f4 f8 (es8) des2     
}
« Letzte Änderung: Montag, 12. September 2016, 22:01 von Akkorde&Melodie »

iugin

  • Member
Re: Wie muss ich das \transpose einfügen?
« Antwort #1 am: Montag, 12. September 2016, 21:59 »
Hallo!

Ich denke, du meinst Db-Dur -> C-Dur.
Auf jeden Fall so:
\version "2.18.0"

\transpose des c {
\key des \major
      f4 f8 (es8) des2     
}

\transpose muss du vor der Musik schreiben.

Lieber Gruss

Eugenio
« Letzte Änderung: Montag, 12. September 2016, 22:01 von iugin »

fugenkomponist

  • Member
Re: Wie muss ich das \transpose einfügen?
« Antwort #2 am: Montag, 12. September 2016, 22:18 »
Da das nicht deine erste Frage zu \transpose ist, hier mal ein bisschen Hintergrund:

\transpose ist eine Funktion, die einen Musikausdruck entgegen nimmt und einen Musikausdruck zurückgibt (deshalb hat sie z. B. im MIDI-Block, wo nur Einstellungen vorgenommen werden, aber in dem keine Musik steht, nichts zu suchen).

Ein Musikausdruck kann dabei alles mögliche an abgeschlossener Musik sein, z. B.
• { c4 d8 e }
• \relative { c d e }
• \new Staff << \relative { e f g } \relative { c d e } >>
• \transpose c d { <d f a>4 }
Für eine genaue Beschreibung bin ich grad zu müde, aber vielleicht gibt dir das schon einen guten Eindruck.

In deinem Fall wird \transpose auf den Musikausdruck
     { \key des \major f4 f8( es) des2) }
angewendet.

harm6

  • Member
Re: Wie muss ich das \transpose einfügen?
« Antwort #3 am: Montag, 12. September 2016, 22:21 »
Ich möchte, dass das ganze in b-Moll notierte Lied nach C-Dur transponiet ausgegeben wird.

\version "2.18.0"

{
\key des \major
      f4 f8 (es8) des2     
}


Öhmmmm....

fugenkomponist

  • Member
Re: Wie muss ich das \transpose einfügen?
« Antwort #4 am: Montag, 12. September 2016, 22:24 »
Naja, für LilyPond machts doch keinen Unterschied, aber genau genommen kann man ja auch nicht von b-Moll nach C-Dur transponieren. Vermutlich ist b-Moll nach a-Moll gemeint; dafür vielleicht gut zu wissen, dass LilyPond nicht nur \key des \major, sondern auch \key bes \minor kann.

harm6

  • Member
Re: Wie muss ich das \transpose einfügen?
« Antwort #5 am: Montag, 12. September 2016, 22:50 »
Zitat
Naja, für LilyPond machts doch keinen Unterschied
Da muß ich doch heftigst wiedersprechen.

Siehe den output des codes unten.
Der engraver stammt aus der NR, applyContext ... von mir.
Ich hab auch andere Funktionen die auf falsche Setzung des tonic-pitch allergisch reagieren würden.

\version "2.18.0"

#(set-global-staff-size 26)

#(define Ez_numbers_engraver
   (make-engraver
    (acknowledgers
     ((note-head-interface engraver grob source-engraver)
      (let* ((context (ly:translator-context engraver))
     (tonic-pitch (ly:context-property context 'tonic))
     (tonic-name (ly:pitch-notename tonic-pitch))
     (grob-pitch
      (ly:event-property (event-cause grob) 'pitch))
     (grob-name (ly:pitch-notename grob-pitch))
     (delta (modulo (- grob-name tonic-name) 7))
     (note-names
      (make-vector 7 (number->string (1+ delta)))))
(ly:grob-set-property! grob 'note-names note-names))))))

\layout {
  \context {
    \Voice
    \consists \Ez_numbers_engraver
    \easyHeadsOn
  }
}

showTonic =
  \applyContext
  #(lambda (ctx) (write-me "tonic\t" (ly:context-property ctx 'tonic)))
 

\displayMusic
{
  \key g \major \showTonic c'1
  \key e \minor \showTonic c'
  \key a \dorian \showTonic c'
  \key b \phrygian \showTonic c'
  \key c \lydian \showTonic c'
  \key d \mixolydian \showTonic c'
  \key fis \locrian \showTonic c'
}

Gruß,
  Harm


fugenkomponist

  • Member
Re: Wie muss ich das \transpose einfügen?
« Antwort #6 am: Dienstag, 13. September 2016, 10:18 »
Ok, da war ich vielleicht ein bisschen voreilig: Fürs alleinige Eingeben von Noten ohne spezielle Funktionen mit analytischen Fähigkeiten machts keinen Unterschied, ist aber unlogisch, nicht \minor zu verwenden ;)