Autor Thema: Tuplet Number anzeigen oder nicht anzeigen  (Gelesen 2252 mal)

swetom2011

  • Gast
Tuplet Number anzeigen oder nicht anzeigen
« am: Donnerstag, 12. Januar 2017, 19:43 »
Trotz intensive such in die Dokumentation kann ich einfach nicht finden wie man die Triolenziffern nach einen „\omit TupletNumber“ wider anzeigen.

Die Frage ist wahrscheinlich so einfach, dass ich kein Beispiel einstellen muss aber bei Bedarf kann ich es natürlich machen.

Mein Fall, ich habe ein Stück mit vielen Triolen, diese sind staccatiert (heisst es so??) und zeigen die Triolenziffer „3“ an.  Nach einigen Takten möchte ich einfach mit „simile“ weitermachen wo die Staccato-punkte und die Triolenziffern nicht angezeigt werden. Das ist einfach, „-.“ nicht benutzen und „\omit TupletNumber“ eingeben.

Einige Zeilen weiter möchte ich die Staccato-Punkte und Triolen-Ziffern wider anzeigen.   Das erste ist kein Problem aber wie bekomme ich die Triolen-Ziffern wieder sichtbar, „\show TupletNumber“ oder was Ähnliches habe ich einfach nicht gefunden.

fugenkomponist

  • Gast
Re: Tuplet Number anzeigen oder nicht anzeigen
« Antwort #1 am: Donnerstag, 12. Januar 2017, 19:55 »
\hide und \omit können mit einem vorangesetzten \undo wieder rückgängig gemacht werden, in deinem Fall also \undo \omit TupletNumber. Alternativ könntest du dir evtl. etwas Tipparbeit sparen, indem du „c8*2/3 d e“ statt „\tuplet 3/2 { c8 d e }“ schreibst. Jede Notendauer lässt sich so skalieren, es handelt sich also LilyPond-technisch gesehen nicht um eine Triole, was aber für den Output keinen Unterschied macht (bis auf daß auch keine TupletBrackets gesetzt werden, falls welche gebraucht würden).
« Letzte Änderung: Donnerstag, 12. Januar 2017, 19:57 von fugenkomponist »

swetom2011

  • Gast
Re: Tuplet Number anzeigen oder nicht anzeigen
« Antwort #2 am: Donnerstag, 12. Januar 2017, 20:18 »
Vielen Dank für die schnelle Antwort.  Nur eine Frage, es gibt ja vieles was man machen kann, wie in diesem Fall \omit TupletNumbe oder z.B \ottava #1. Im ersten Fall wird es anscheinend mit \undo rückgängig gemacht aber was macht man bei \ottava #1.  Hier benutze ich \ottava #0 oder würde auch hier \undo \ottava #1 funktionieren (ich habe nicht getestet)?

Insgesamt finde ich es recht schwierig das „Rückgängmachen“ zu finden und es scheint nicht dort dokumentiert wo, am mindestens ich, es erwarten würde. 

NB ich bin „nur“ Amateurmusiker und muss mich in der Rolle als Notenwart mit diesem Thema rumschlagen (tue ich eigentlich recht gern).  In meinem normalen Beruf baue ich Satelliten, zuständig für Navigation, Lageregelung, Software, „Operations“ und Missionsanforderungen. Einige von euch haben vielleicht von der Rosett Satelliten der auf eine Kometen gelandet ist gehört, das war ein von "meinen" satelliten.  Unter anderen müssen wir hier eine s.g. User Manual schreiben wo alles absolut eindeutig, klar, fehlerfrei und komplett alles beschrieben werden muss (insgesamt mindestens 100000 Seiten obwohl wir es heutzutage nie auf Papier drucken), das färbt mich ein wenig.

harm6

  • Gast
Re: Tuplet Number anzeigen oder nicht anzeigen
« Antwort #3 am: Donnerstag, 12. Januar 2017, 22:52 »
Nun, 100000 Seiten Dokumentation wäre für LilyPond nicht akzeptabel, selbst 1% davon (welches wir momentan ungefähr haben) erscheint vielen schon exorbitant. ;)
Aber die grundlegenden Sachen sind schon alle dokumentiert. Allerdings muß man unterscheiden zwischen
(1) context-properties
(2) grob-properties
(3) music-properties

Für (1) gibt es \set (zum rückgängig machen unset)
Für (2) \override bzw tweak (zum rückgängig machen revert, tweak ist sowieso one-time/item)
Für (3) verschiedenstes (zum rückgängig machen gibt es verschidenstes)

\omit TupletNumber setzt ein grob-property
Das muß man natürlich erstmal wissen, entweder aus der NR oder man läßt es sich anzeigen. In einem ly-file via
\displayLilyMusic \omit TupletNumber
oder gleich komplett im Terminal
Zitat von: terminal
lilypond scheme-sandbox
GNU LilyPond 2.19.52
Processing `/home/harm/lilypond/usr/share/lilypond/current/ly/scheme-sandbox.ly'
Parsing...
guile> (display-lily-music #{ \omit TupletNumber #})
\override TupletNumber.stencil = ##f

Mit anderen Worten, \omit TupletNumber ist syntactic-sugar für \override TupletNumber.stencil = ##f
Dieser override (auch in der omit-Variante) kann mit einem simplen revert rückgängig gemacht werden:
{
  \omit TupletNumber
  \times 2/3 { c'16 c' c' }
  \revert TupletNumber.stencil
  \times 2/3 { c'16 c' c' }
}

\undo macht eigentlich etwas leicht anderes, es nimmt nämlich einen genau passenden \override (oder \set) -Befehl zurück.
Deshalb kann man hier auch \undo \omit TupletNumber verwenden.

Das Ganze wird dann höchst interessant, wenn man unterscheiden will ob man ein property neu setzen will oder einen "stack" anlegen und eventuell zu früheren Werten in diesem "stack" zurückgehen will.

Wer mag kann ja mal ohne es zu kompilieren versuchen vorherzusagen welche Farbe der letzte (nicht auskommentierte) Notenkopf in beiden folgenden scores hat. (bzw nach und nach den Rest einkommentieren und natürlich vorher voraussagen) ;)
(Die entsprechende Syntax mit \undo \override NoteHead.color = #whatever-color habe ich bewußt nicht genannt, dann wäre die Aufgabe viiieeeel zu einfach ...) :D

\score {
  \new Staff
    \new Voice \with { \override NoteHead.color = #yellow }
    {
      \override NoteHead.color = #green
      c'1
      \override NoteHead.color = #red
      c'1
      \revert NoteHead.color
      c'1
      %\revert NoteHead.color
      %c'1
    }
  \layout { \override NoteHead.color = #cyan }
}
 
\score {
  \new Staff
    \new Voice \with { \override NoteHead.color = #yellow }
    {
      \temporary \override NoteHead.color = #green
      c'1
      \temporary \override NoteHead.color = #red
      c'1
      \revert NoteHead.color
      c'1
      %\revert NoteHead.color
      %c'1
      %\revert NoteHead.color
      %c'
      %\revert NoteHead.color
      %c'
    }
  \layout { \override NoteHead.color = #cyan }
}


\ottava ist eine music-function und setzt ein music-property.
Man könnte natürlich zum rückgängig machen
unsetOttava = #(make-music 'OttavaMusic 'ottava-number 0)
definieren und dokumentieren. Das ist aber tatsächlich nichts anderes als \ottava #0
Andere music-properties können auf diese und jene Weise gesetzt oder rückgängig gemacht werden.


Tatsächlich ist unsere Dokumentation sicherlich verbesserungsfähig und verbesserungswürdig.
Aber allein das was ich oben zu override, revert, temporary, omit, undo sagte, in eine Form zu bringen, die in die Dokumentation eingegliedert werden könnte, wäre eine Heidenarbeit, selbst wenn man davon absieht, daß meine Ausführungen absolut unvollständig* sind.

Ich halte es kaum für möglich allen denkbaren Verästellungen dokumentarisch nach zu gehen und noch ein im Umfang akzeptables Dokument zu behalten.
Insoweit würde ich eher dafür plädieren die Grundlagen darzustellen (dies ist zum gößeren Teil getan) aber mehr auf die Möglichkeiten einzugehen wie der user über seinen code mehr heraus finden kann, ohne gleich den source-code lesen (damit meine ich vor allem die diversen display-Funktionen) sowie darzustellen was man mit diesen Erkenntnissen dann anfangen kann. :)


Gruß,
  Harm

* Unvollständig sind nicht nur die Ausführungen zu den grob-properties. music-properties sind nur für das Beispiel ottava gestreift und context-properties eigentlich überhaupt nicht thematisiert.
Von anderem, wie \overrideProperty oder scheme-functionen wie ly:context-pushpop-property, mal ganz zu schweigen...
« Letzte Änderung: Donnerstag, 12. Januar 2017, 23:03 von harm6 »

swetom2011

  • Gast
Re: Tuplet Number anzeigen oder nicht anzeigen
« Antwort #4 am: Samstag, 14. Januar 2017, 17:11 »
Danke für die ausführliche Antwort. Der Anfang ist einfach schwer.  Trotzdem, Lilypond und in meinem Fall auch Frescobaldi gefällt mir.  Die Dokumentation ist auch nicht schlecht aber etwas zu suchen, wenn man der richtige Suchtext nicht kenne ist nicht einfach.  Lilypond erinnert mich an Matlab was ich ehe im Arbeit benutzen um Simulationen und Berechnungen für Satelliten zu machen.  Da kann man auch durch eine Art \include viele widerkehrende Sachen auslagern.

Nun, ich habe wieder ein Problem, diesmal mit Oktavierung und Triolen. In ein Stück die ich gerade arrangiere und setze kommt viele Triolen vor.  Diese setze ich mit tuplet 3/2 {fis8 ( fis,) fis-.} oder wie von fugenkomponist vorgeschlagen mit fis8*2/3 ( fis,) fis-.

Auf eine Stelle hört die Oktavierung nach dem ersten Ton in eine Triole auf, siehe angefügten Bild (triole_original.png).  Wenn ich dann \ottava #0 eingebe nach dem ersten Ton in diese Triole, hört Lilypond mit einer Fehlermeldung auf.  Ich kann natürlich die Oktavierung nach Ende der Triole auch eingeben, siehe beigefügte Bild (triole_ly.png). Siehe auch beigefügte Lilypond-Beispiel, aber das sieht sehr unschön aus. Gibt es hierfür eine Lösung?

RobUr

  • Gast
Re: Tuplet Number anzeigen oder nicht anzeigen
« Antwort #5 am: Samstag, 14. Januar 2017, 17:27 »
Zitat von: swetom2011
Wenn ich dann \ottava #0 eingebe nach dem ersten Ton in diese Triole, hört Lilypond mit einer Fehlermeldung auf.
Bei mir nicht:
\version "2.18.2"

\relative c'' {
\key g \major
\time 2/4
cis,4 b
\ottava #1
\tuplet 3/2 { fis'''8 \p ( fis') fis-. }
\tuplet 3/2 { fis8-. fis-. fis-. }
\tuplet 3/2 {fis8 ( \ottava #0 fis,) fis-. }
\tuplet 3/2 { fis8 fis fis-. }
\tuplet 3/2 { fis8 ( b,,) b-. }
\tuplet 3/2 { b8-. b-. b-. }
\tuplet 3/2 { b8 ( ais) ais-. }
\tuplet 3/2 { ais8-. ais-. ais-. }

%neue Versuch
cis,4 b
\ottava #1
\tuplet 3/2 { fis'''8 \p ( fis') fis-. }
\tuplet 3/2 { fis8-. fis-. fis-. }
fis8*2/3 ( \ottava #0 fis,) fis-.
\tuplet 3/2 { fis8 fis fis-. }
\tuplet 3/2 { fis8 ( b,,) b-. }
\tuplet 3/2 { b8-. b-. b-. }
\tuplet 3/2 { b8 ( ais) ais-. }
\tuplet 3/2 { ais8-. ais-. ais-. }
}

Gruß, Robert

swetom2011

  • Gast
Re: Tuplet Number anzeigen oder nicht anzeigen
« Antwort #6 am: Samstag, 14. Januar 2017, 18:57 »
Danke, bei mir auch jetzt nicht mehr.  Allerdings es spielt sehr wohl eine Rolle ob man \ottava #0 vor oder nach der Klammer setzt.  Mit ". . . fis8 \ottava #0 ( . . . " erhalte ich eine Fehlermeldung aber mit " . . . {fis8  (\ottava #0 . . " nicht.  Was ist da der Unterschied?.  Trotzdem, es fällt vielleicht unter " so ist es geworden".

ingmar

  • Gast
re: Tuplet Number anzeigen oder nicht anzeigen
« Antwort #7 am: Samstag, 14. Januar 2017, 20:58 »
  >  Allerdings es spielt sehr wohl eine Rolle ob man \ottava #0 vor oder nach der Klammer setzt.

Sicher! Die Klammer gehört zur vorhergehenden Note; sie bedeutet: 'Mit dieser Note beginnt der Bogen'. Also muss links davon auch eine Note stehen und nichts anderes. Da steht also nicht irgendwas 'in Klammern' (und auch noch ohne die erste Note). Am besten gewöhnt man sich an, es auch so zu schreiben: c( d e f).


Gruß,
--ingmar

harm6

  • Gast
Re: Tuplet Number anzeigen oder nicht anzeigen
« Antwort #8 am: Samstag, 14. Januar 2017, 21:31 »
Zitat von: ingmar
Die Klammer gehört zur vorhergehenden Note; sie bedeutet: 'Mit dieser Note beginnt der Bogen'.

Zur Illustration kann man wieder display/write-Funtionen verwenden:

In einem ly-file führt

#(display #{ ( #})

zu (neu formatiert)

Zitat von: terminal
#<Prob: Music C++:
  Music((origin . #<location atest-47.ly:1803:2>)
        (span-direction . -1))
 ((display-methods #<procedure #f (event)>)
  (name . SlurEvent)
  (types post-event span-event event slur-event)) >

Interessant ist hier u.a. 'post-event', denn es bedeutet daß "(" zur vorangehenden Note gehört. Im übrigen können alle post-events mit einem vorangestellten "-" -Zeichen geschrieben werden (oder "_" bzw "^"), falls man 'direction manuell setzen will).
Dadurch wird es manchmal deutlicher.

Mit

\displayMusic c'-(

erhält man (neben einer Warnung, die hier ohne Bedeutung ist):

Zitat von: terminal
(make-music
  'NoteEvent
  'articulations
  (list (make-music
          'SlurEvent
          'span-direction
          -1))
  'duration
  (ly:make-duration 0)
  'pitch
  (ly:make-pitch 0 0))

Der Slur gehört also zu den 'articulations der vorangegangenen Note.

Zitat von: ingmar
Also muss links davon auch eine Note stehen und nichts anderes.

Oder andere post-events, tweaks, die Tondauer, Oktavbezeichner, o.ä.

{
c'
  -\tweak color #yellow
  ^\(
  -\tweak color #blue
  -~
  -\tweak color #red
  -1
  -\tweak color #green
  -\2
  -\tweak color #cyan
  ^(
c'-\)-)
}

Zitat von: ingmar
Am besten gewöhnt man sich an, es auch so zu schreiben: c( d e f).

Das kann man nicht genug betonen und oft genug empfehlen!!
Dergleichen für PhrasingSlur, Tie sowie diverse spanner, wie TextSpanner, Hairpin, etc, etc

Gruß,
  Harm





Manuela

  • Gast
Re: Tuplet Number anzeigen oder nicht anzeigen
« Antwort #9 am: Montag, 13. Februar 2017, 17:38 »

oder gleich komplett im Terminal
Zitat von: terminal
lilypond scheme-sandbox
GNU LilyPond 2.19.52
Processing `/home/harm/lilypond/usr/share/lilypond/current/ly/scheme-sandbox.ly'
Parsing...
guile> (display-lily-music #{ \omit TupletNumber #})
\override TupletNumber.stencil = ##f


Das muss ich mir unbedingt merken, sehr nützlich!

Direkt aus Frescobaldi aufrufen kann man es folgendermaßen:

#(display-lily-music #{ \omit TupletNumber #})
(ist auch für mich, damit ich es wiederfinde  ;) )
« Letzte Änderung: Montag, 13. Februar 2017, 17:42 von Manuela »