Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: DieTuba am Sonntag, 3. November 2013, 00:02
-
Hallo an alle!
ich bearbeite gerade mehrstimmige Bläsersätze, die ich recht häufig transponieren muß. da bei muß ich immer bei jeder einzelnen Stimme die Anweisung \transpose c d eintragen. Meine Idee ist nun, das ganze mit einer Variablen zu machen, damit ich dann mit etwa folgendem Konstrukt arbeiten kann:
Grundton = { c }
Zielton = { d }
StimmeI = \MyTranspose \Grundton \Zielton \NotenStimmeI
Auf diese Weise müßten nur einmal die beiden Variablen geändert werden und alle Stimmen wären korrekt transponiert. Leider komme ich mit dem Propgrammieren einer solchen Funktion nicht klar.
Im Snippet Repository habe ich folgendes gefunden: http://lsr.dsi.unimi.it/LSR/Item?id=787
das hilft mir aber nicht weiter, weil ich die Stimmen unterschiedlich transponieren muß (C-Stimmen, F-Stimmen usw.).
Ach so, ich arbeite mit Version 2.16.2
Ich danke bereits jetzt für die Hilfe!
Gruß,
DieTuba
-
wie wärs mit einem kompilierbaren code? >:(
-
Sorry, hier ist ein Ausschnitt mit zwei Stimmen (Trompete in B, Horn in F):
\version "2.16.2"
\language "deutsch"
Global = {
\time 4/4
}
NotenStimmeI = \relative c'' {
\key f \major
a2 b8 ( a ) g ( f ) |
g4 c, c8 ( e) d ( c ) |
}
NotenStimmeII = \relative c' {
\key f \major
f2. c4 |
c1 |
}
StimmeIB = {
\set Staff.midiInstrument = "trumpet"
\transposition b
\context Voice <<
\clef treble
\Global
\NotenStimmeI
>>
}
StimmeIIF = {
\set Staff.midiInstrument = "french horn"
\transposition f
\context Voice <<
\clef treble
\Global
\NotenStimmeII
>>
}
StimmeI = \transpose c d { \StimmeIB }
StimmeII = \transpose d g { \StimmeIIF }
\score {
\new StaffGroup <<
\new Staff \StimmeI
\new Staff \StimmeII
>>
\layout {}
\midi {}
}
Die Noten sind jeweils für C-Instrumente geschrieben, müssen also für die meisten anderen Instrumente transponioert werden. Wenn man das jetzt über Variablen machen könnte, würde sich ein Editieren der jeweiligen Zeile mit der \transpose-Anweisung erübrigen.
Gruß
DieTuba
-
ich sehe zwar nicht was es bringen soll, das geht doch, oder?!
grundton=c
zielton=fis
StimmeI = \transpose \grundton \zielton { \StimmeIB }Eluze
-
Hallo, Eluze,
da habe ich den Wald vor lauter Bäumen nicht gesehen! Danke für die Hilfe. Ich habe die ganze Zeit versucht, das mit Hilfe einer music-function zu lösen, was mir aber nciht gelungen ist.
Es bringt insofern etwas, weil ich so nur die Variablen "grundton" und "zielton" ändern muß und nicht in der ganzen Datei die \transpose-Anweisungen zu bearbeiten brauche. In obigem Beispiel sind es nur zwei Stimmen, aber die Sätze enthalten 15 und mehr Stimmen. Und dann gibt es ja noch die Einzelstimmen und die Partitur. Da kommen schon einige Änderungen zusammen.
Nochmals, danke für die schnelle Hilfe!
Gruß
DieTuba
-
Hallo, Eluze,
da habe ich den Wald vor lauter Bäumen nicht gesehen! Danke für die Hilfe. Ich habe die ganze Zeit versucht, das mit Hilfe einer music-function zu lösen, was mir aber nciht gelungen ist.
ja, ich glaube {a} ist eine music-function währen nur a die tonhöhe angibt
weiterhin viel erfolg mit lilypond!
Eluze