Autor Thema: Bassschlüssel ausserhalb der \relative-Umgebung ? (gelöst)  (Gelesen 1779 mal)

messingsound

  • Member
Bassschlüssel ausserhalb der \relative-Umgebung ? (gelöst)
« am: Freitag, 26. August 2016, 12:09 »
Hallo Forum,
ich hoffe, der Titel ist einigermaßen verständlich.
Ich schreib die einzelnen Stimmen der Musik gerne in Variablen, um die dann im Ausgabe-Part entsprechend zu formatieren.
Eine Tenorstimme möchte ich entweder für Tenorhorn oder- Saxophen im Violinschlüssel drucken, oder im Bassschlüdssel für Posaune.

\version "2.18.2"

Tenor = \relative c' { b1 }

%Tenorsaxophon

\score {
\transpose b, c \Tenor
}

%Posaune

%\score {
% \clef bass \Tenor
%}


Leider geht es so nicht, deshalb hab ich den Posaunen-Part auskommentiert
Hat jemand einen Tipp für mich?

Gruß Thomas
« Letzte Änderung: Freitag, 26. August 2016, 17:04 von messingsound »

fugenkomponist

  • Member
Re: Bassschlüssel ausserhalb der \relative-Umgebung ?
« Antwort #1 am: Freitag, 26. August 2016, 13:42 »
\version "2.18.2"

Tenor = \relative c' { b1 }

%Tenorsaxophon

\score {
  \transpose b, c \Tenor
}

%Posaune

\score {
  { \clef bass \Tenor }
}
Du brauchst ein weiteres Paar Klammern. Ein \score-Block hat immer ein Paar geschweifte Klammern. Dadrin können dann genau eine Partitur bzw. ein Musikausdruck und nach Belieben auch noch ein \layout- und ein \midi-Block stehen (und ein \header-Block? weiß ich grad nicht auswendig).

\clef bass und \Tenor sind aber zwei Musikausdrücke, wären also zwei Partituren; das siehst du, wenn du den \score samt {} mal weglässt. Das zweite (innere) Paar {}, das ich jetzt eingefügt habe, fasst die beiden Musikausdrücke zu einem zusammen (genauer gesagt, wird daraus ein SequentialMusic-Ausdruck, d. h. „erst kommt \clef bass und dann \Tenor“, \clef bass verbraucht aber keine Zeit).

Edit: Die andere Möglichkeit, zwei Musikausdrücke zu einem zusammenzufassen, sind doppelte spitze Klammern << >>. Die erzeugen einen SimultaneousMusic-Ausdruck, d. h. „alle enthaltenen Ausdrücke passieren gleichzeitig“. So bei Polyphonie, mehreren Instrumenten etc. Sieh dir mal den Output (PDF und log) von\displayMusic { c d }
\displayMusic << c d >>
an ;)
« Letzte Änderung: Freitag, 26. August 2016, 13:45 von fugenkomponist »

harm6

  • Member
Re: Bassschlüssel ausserhalb der \relative-Umgebung ?
« Antwort #2 am: Freitag, 26. August 2016, 13:49 »
Hallo Thomas,

\score { ... } akzeptiert genau einen musikalischen Ausdruck zwischen {}!
\transpose b, c \Tenor ist einer.
\displayMusic \transpose b, c \Tenor
gibt im Terminal
Zitat
(make-music
  'TransposedMusic
  'element
  (make-music
    'RelativeOctaveMusic
    'element
    (make-music
      'SequentialMusic
      'elements
      (list (make-music
              'NoteEvent
              'duration
              (ly:make-duration 0)
              'pitch
              (ly:make-pitch 0 0))))))
Eine Liste.


\clef bass \Tenor sind zwei.
\displayMusic \clef bass \Tenor
führt zu
Zitat
(make-music
  'ContextSpeccedMusic
  'context-type
  'Staff
  'element
  (make-music
    'SequentialMusic
    'elements
    (list (make-music
            'PropertySet
            'value
            "clefs.F"
            'symbol
            'clefGlyph)
          (make-music
            'PropertySet
            'value
            6
            'symbol
            'middleCClefPosition)
          (make-music
            'PropertySet
            'value
            2
            'symbol
            'clefPosition)
          (make-music
            'PropertySet
            'value
            0
            'symbol
            'clefTransposition)
          (make-music
            'PropertySet
            'value
            'default
            'symbol
            'clefTranspositionStyle)
          (make-music
            'ApplyContext
            'procedure
            ly:set-middle-C!))))
Auch nur eine Liste, aber Du siehst nur die Setzungen für den Schlüssel, denn displayMusik kriegt \Tenor als neuen, zweiten musikalischen Ausdruck gar nicht zu sehen.

Du willst höchstwahrscheinlich sequentielle Musik haben also
{ \clef bass \Tenor }
Ich würde als alter Paranoiker noch \new Voice bzw \new Staff verwenden.

Also
\new Voice { \clef bass \Tenor }

Somit hast Du eine Voice, die nacheinander den Schlüssel und dann die Musik verarbeitet.

\score wird durch LilyPond automatisch "drum gewickelt", kann man natürlich auch selbst machen.

\score {
  \new Voice { \clef bass \Tenor }
}

Notwendig aber nur falls Du header/layout-Setzungen auf diesen score begrenzen willst.

Gruß,
  Harm


messingsound

  • Member
Re: Bassschlüssel ausserhalb der \relative-Umgebung ?
« Antwort #3 am: Freitag, 26. August 2016, 17:04 »
Ja, vielen, vielen Dank.
Mit Klammern hab ich einiges ausprobiert. bin aber auf die funktionierende Version nicht gekommen.
@fugenkomponist: Mit spitzen Klammern steht der Bassschlüssel über der Musik. Das ist nicht die Lösung; das nehm ich für Partituren.
@harm6, meistens nehm ich \new Staff, geht aber auch ohne.



« Letzte Änderung: Sonntag, 28. August 2016, 13:00 von messingsound »

harm6

  • Member
Re: Bassschlüssel ausserhalb der \relative-Umgebung ? (gelöst)
« Antwort #4 am: Samstag, 27. August 2016, 01:12 »
Zitat von: messingsound
Mit spitzen Klammern steht der Bassschlüssel über der Musik. Das ist nicht die Lösung; das nehm ich für Partituren.

Nicht ganz.
Tenor = \relative c' { b1 }

\new Staff { \clef bass \Tenor }
\new Staff << \clef bass \Tenor >>
Ergibt keinen sichtbaren Unterschied.

Aber propier mal:
one = \new Voice { \voiceOne e'2 e' }
two = \new Voice { \voiceTwo c' c' }

\new Staff << \clef bass  \one \two >>
\new Staff { \clef bass  \one \two }

Kommt eben drauf an was man haben muß. Für den geschilderten Fall ist {} vorzuziehen.

<<...>> hat ein paar Fallstricke , hier ein Fall, der neulich auf der internationalen mailinglist diskutiert wurde:
\new Staff
<<
  \key c \minor
  { \grace d'4 e'1 }
>>

Gruß,
  Harm