Notationsspezifisch > Noten für Schlagzeug

Ghost Notes Global Ändern

(1/3) > >>

schlomo:
liebe lilypond-Experten,
ich würde gerne für eine Schlagzeugnotation eine "Funktion" oder etwas ähnliches schreiben, welche Global im gesamten Dokument das Erscheinnungsbild der Ghost-Notes ändert die ich mit dem Befehl "\parenthesize" erstellet habe.
Normalerweise werden  bei "\parenthesize" die bestehenden Notenköpfe in Klammern gesetzt. Ich würde gerne einfach den Notenkopf (und die Klammern) ausblenden.

Ist so etwas überhaut möglich mit lylipond?

Ich habe schon versucht statt "\parenthesize" einfach Manuell mit "\once \override NoteHead #'transparent = ##t" den Notenkopf auszublenden.
Allerdings funktioniert das nicht wenn ich mehrere Noten untereinander platziere:
<< \once \override NoteHead #'transparent = ##t snare8 bassdrum8>>
dann werden nämlich immer ALLE Noten in "<<  ... >>" ohne Notenkopf dargestellt

 
Schlomo



harm6:
Hallo Schlomo,

willkommen im Forum!

Im Moment kann ich mich nicht mit Deiner Frage beschäftigen, frühestens heute abend/nacht.
Es würde mir aber sehr helfen, wenn Du ein kurzes kompilierbares Beispiel mit Angabe der Versionsnummer posten könntest welches das Problem und Deine bisherigen Lösungsversuche zeigt. (Das solltest Du übrigens immer machen!!)


--- Zitat ---Ist so etwas überhaut möglich mit lylipond?
--- Ende Zitat ---

Meine Devise: lily kann alles! ;)

Gruß,
  Harm

Arnold:
Hallo,

schon mal »\tweak« angesehen. Damit kann man Attribute zu einzelnen Notenköpfen eines Akkords ändern. Die Standardbeispiele machen's mit Farbe bzw. Notenkopfgröße.
Und es gibt Beispiele, wie der lange tweak-Text als Scheme-Funktion definiert werden kann, so wie im gerade laufenden Thread »Vorzeichen in Akkorden«.

Aber vielleicht liefert Harm ja schon bis heute abend die fertige Lösung.

schlomo:
Hallo harm6,
danke für die flinke Antwort!


--- Zitat von: harm6 am Donnerstag,  8. März 2012, 12:40 ---Es würde mir aber sehr helfen, wenn Du ein kurzes kompilierbares Beispiel mit Angabe der Versionsnummer posten könntest welches das Problem und Deine bisherigen Lösungsversuche zeigt. (Das solltest Du übrigens immer machen!!)

--- Ende Zitat ---

Hier ist mein Code:


\version "2.14.0"  % necessary for upgrading to future LilyPond versions.
\layout {
}

\header { tagline = ##f }
#(set-global-staff-size 20)

\paper  {
   system-system-spacing #'basic-distance = #20
   indent = #(* mm 0)
   top-margin = #(* mm 20)
}

\layout {
  \context {
    \Score
    %\remove "Bar_number_engraver"
  }
}

#(define mydrums '(
      (bassdrum      default            #f         -5)
      (snare         default            #f          0)
      (hihat         cross            #f          5)
      (pedalhihat      cross            #f         -3)
      (openhihat      xcircle            #f          5)
      (lowtom         default            #f          1)
      (hightom      default            #f          3)
      (lowfloortom   default            #f         -1)
      (ridecymbal      harmonic-black      #f          6)
      (ridebell      harmonic-black      #f          5)
      (crashcymbal   harmonic-black      #f          7)
      )
)

oben = \drummode {
\numericTimeSignature
\time 4/4
   {
   \override TextScript #'script-priority = #100
   cymc8\upbow rb
   rb16 rb16 rb8
   rb8 rb16 rb16
   rb8 rb16 rb16
   }
}

unten = \drummode
   {
   bd16 hhp sn hhp
   sn16 hhp8 << sn16 hhp >>
   %Hier ist der Fehler. sn16 wird ohne Notenkopf dargestellt. Leider aber auch hhp
   bd16 << \once \override NoteHead #'transparent = ##t sn16  hhp >> << \parenthesize sn >> hhp
   r16 << sn8 hhp >> hhp16
   }

\new DrumStaff <<
  \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
  \new DrumVoice { \voiceOne \oben }
  \new DrumVoice { \voiceTwo \unten }
>>



Danke
Gruß
Schlomo


PS:
Du kannst mir bei der Gelegenheit sicher auch verraten wie ich im unteren Drummode alle Notenbalken Waagrecht und auf gleicher Höhe verlaufen lassen kann ;)

harm6:
Hallo Schlomo,

also ein kurzes Beispiel in diesem Sinne war das jetzt nicht. ;) Aber es war auch nicht so lang, das einem die Lust vergeht dran zu arbeiten. (Als Negativ-Beispiel denke ich noch mit Schaudern an einen Post auf der englischen Liste: ~8000 Zeilen Code, in Worten: achttausend!).
Aber benutze bitte den "Code einfügen"-Button, wenn Du Code posten möchtest, der länger als zwei Zeilen ist.

Zum Problem:

* Transparenz: Wie Arnold schon sagte, der tweak-Befehl muß hier zur Anwendung kommen. Bitte beachte die < ... > Klammern!

* Bebalkung: Ich finde die default-Bebalkung eigentlich völlig in Ordnung.
Aber falls Du immer waagerechte Balken haben willst: \override Beam #'damping = #+inf.0 Sie sind dann allerdings nicht immer auf gleicher Höhe.
Ansonsten benutze: \override Beam #'positions = #'(-5 . -5) Bei gleichen Werten ist der Balken waagerecht und da das ein dauerhafter Befehl ist (bis zur Aufhebung), sind die Balken auch auf gleicher Höhe.

* Ich wäre ein bißchen Vorsichtig mit dem << ... >> -Konstrukt (zumindest so wie Du es anwendest). Irgenwo in meinem Hinterkopf läutet eine kleine Alarmglocke. Ich kann mich aber beim besten Willen nicht mehr erinnern warum, vielleicht versteckt sich irgendwo ein bug, der manchmal erscheint. Irgendwie sowas war das.
Deshalb, warum nicht normale Akkorde notieren mit < ... > -Klammern?
Der Code:


--- Code: ---\version "2.14.0"  % necessary for upgrading to future LilyPond versions.
\layout {
}

\header { tagline = ##f }
#(set-global-staff-size 20)

\paper  {
   system-system-spacing #'basic-distance = #20
   indent = #(* mm 0)
   top-margin = #(* mm 20)
}

\layout {
  \context {
    \Score
    %\remove "Bar_number_engraver"
  }
}

#(define mydrums '(
      (bassdrum      default            #f         -5)
      (snare         default            #f          0)
      (hihat         cross            #f          5)
      (pedalhihat      cross            #f         -3)
      (openhihat      xcircle            #f          5)
      (lowtom         default            #f          1)
      (hightom      default            #f          3)
      (lowfloortom   default            #f         -1)
      (ridecymbal      harmonic-black      #f          6)
      (ridebell      harmonic-black      #f          5)
      (crashcymbal   harmonic-black      #f          7)
      )
)

oben = \drummode {
\numericTimeSignature
\time 4/4
   {
   \override TextScript #'script-priority = #100
   cymc8\upbow rb
   rb16 rb16 rb8
   rb8 rb16 rb16
   rb8 rb16 rb16
   }
}

unten = \drummode
   {
           %\override Beam #'damping = #+inf.0
           \override Beam #'positions = #'(-5 . -5)
   bd16 hhp sn hhp
   sn16 hhp8 << sn16 hhp >>
   %Hier ist der Fehler. sn16 wird ohne Notenkopf dargestellt. Leider aber auch hhp
   % \tweak löst das Problem!
   bd16 << <\tweak #'transparent  ##t sn>16  hhp >> << \parenthesize sn >> hhp
   r16 << sn8 hhp >> hhp16
   }

\new DrumStaff <<
  \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
  \new DrumVoice { \voiceOne \oben }
  \new DrumVoice { \voiceTwo \unten }
>>
--- Ende Code ---

Aber eigentlich heißt der Thread ja "Ghost Notes Global Ändern". Der \tweak-Befehl wirkt jedoch punktuell, also völlig entgegengesetzt. Ob man da irgenwas globales machen kann, weiß ich noch nicht.

HTH,
  Harm

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln