Autor Thema: Global transponieren  (Gelesen 12328 mal)

Lebostein

  • Member
Global transponieren
« am: Montag, 25. Februar 2008, 22:09 »
Hi,

ich möchte mein Stück transponieren. Leider kann man den \transpose Befehl nur lokal benutzen, d.h. ich muss JEDEN definierten Notenblock mit einem \transpose {...} umschließen, außerdem aufpassen, dass die \key-Definitionen mit erwischt werden und zusätzlich ein \transpose {...} um die Akkorde legen. Wahnsinnig umständlich, fehleranfällig und nicht sehr pflegeleicht, wenn man mal schnell einen halben Ton höher will.

Kann man irgendwo global definieren, dass alle niedergeschriebenen Noten und Akkorde zum Beispiel einen halben Ton höher interpretiert werden sollen?

Andre

  • Member
Re: Global transponieren
« Antwort #1 am: Dienstag, 26. Februar 2008, 16:40 »
Wenn du es nur hörbar machen willst nimm \transposition

>>> http://lilypond.org/doc/v2.11/Documentation/user/lilypond/Instrument-transpositions#Instrument-transpositions

\version "2.11.39"
% #(set-global-staff-size 11)
#(ly:set-option 'point-and-click #f)

\include "deutsch.ly"

Global = { \key c \major \time 4/4 \tempo 4=120 \transposition c'' }

NotenA = { \repeat unfold 4 { c d e f } }

\score {
\new Staff
<<
\new Voice { \Global \NotenA }
>>
\layout { }
\midi { }
}

Du kannst aber auch ein \transpose in der Voice einsetzen:

\version "2.11.39"
% #(set-global-staff-size 11)
#(ly:set-option 'point-and-click #f)

\include "deutsch.ly"

Global = { \key c \major \time 4/4 \tempo 4=120 }

NotenA = { \repeat unfold 4 { c d e f } }

\score {
\new Staff
<<
\new Voice { \Global \transpose c c' { \NotenA } }
>>
\layout { }
\midi { }
}

Lebostein

  • Member
Re: Global transponieren
« Antwort #2 am: Dienstag, 26. Februar 2008, 21:47 »
Du kannst aber auch ein \transpose in der Voice einsetzen

Das ist scheinbar die einzige Möglichkeit. Nervig bei vielen "Voices". Man muss das \transpose an vielen Stellen einbauen, ebenso bei den Stimmen für die Gitarrengriffe. Wie gesagt, das Vorgehen ist mir irgendwie nicht elegant, wie man es sont von Lilypond gewohnt ist... Bei jedem anderen Notenprogramm, was ich kenne, ist die globale Transposition aller Noten und Akkorde meist nur ein Mausklick entfernt... hier muss man für die Transponierung in den Tiefen des Lilycodes Eingriffe vornehmen...

aber ich geb die Hoffnung nicht auf....
« Letzte Änderung: Dienstag, 26. Februar 2008, 21:53 von Lebostein »

Andre

  • Member
Re: Global transponieren
« Antwort #3 am: Mittwoch, 27. Februar 2008, 08:08 »
Überall ein \transpose zu schreiben ist ja nicht die Hürde. Du kannst das ja dann mit deinem Editor schnell über ersetzen ändern. z.B. mit Vim ":%s/\\transpose c c'/\\transpose c cis/g". Und wenn du kein transponieren willst ersetzt du es mit \transpose c c

Es gibt auch eine Schemefunktion: ly:music-transpose
Aber mit Scheme kenn ich mich nicht aus.

etilli33

  • Member
Re: Global transponieren
« Antwort #4 am: Mittwoch, 27. Februar 2008, 20:11 »
Ich weiß nicht so genau, was bei dir nicht funktioniert, willst du nur die Noten ohne Vorzeichen oder irgendwas versetzt haben? Auf jeden Fall funktioniert:

music = \relative c' { a b c d }

\score{\transpose c g {
\new StaffGroup <<
    \music
    \new GrandStaff <<
        \music
        \music
        >>
    \music
    \music
>>}
}

Da ist alles mit einem Befehl behoben.

Till

Lebostein

  • Member
Re: Global transponieren
« Antwort #5 am: Donnerstag, 28. Februar 2008, 09:41 »
@etilli33: Vielen Dank  ;) Das funktioniert! Hatte ich zwar vorher auch probiert, bin aber wahrscheinlich an der korrekten Umklammerung gescheitert. Danke!