Autor Thema: Schlagzeugnoten mit Drum-Key  (Gelesen 4318 mal)

quadronado

  • Gast
Schlagzeugnoten mit Drum-Key
« am: Dienstag, 2. August 2011, 21:29 »
Ich möchte gerne vor dem eigentlichen Schlagzeugstück ein Drum-Key einfügen - also eine kurze Zeichenerklärung, welche Note für welches Instrument steht. Ich habe dafür schon etwas rumprobiert, bin aber noch überhaupt nicht zufrieden:

- Ich habe die Beschriftung in zwei unterschiedlichen Höhen vorgenommen weil ich dachte, dass ich so das ganze etwas zusammenschieben könnte, um Platz zu sparen. Aber leider gelingt mir das Zusammenschieben nicht. Wenn ich den Befehl "\textLengthOn" weglasse, sieht das ganze total chaotisch aus.
- Außerdem dachte ich, ich könnte eine Linie zwischen Text und Notenkopf einfügen, damit deutlich wird, auf welche Note sich die Beschriftung bezieht. Ich bekomme den Strich aber nicht mittig unter den Notenkopf sondern nur linksbündig. Außerdem habe ich es nicht geschafft, die Höhe auszurichten. Die Linie bleibt immer unterhalb des Systems.
- Ich habe versucht, den Drum-Key und die eigentlich Noten dadurch zu trennen, dass ich zwei mal einen \score gesetzt habe. Ich habe keine Ahnung, ob dies die korrekte Vorgehensweise ist. Jedenfalls scheint mir der Abstand zwischen Drum-Key und Stück etwas gering zu sein.
\version "2.12.3"

\header {
  title = "Drum-Übung mit Drum-Key"
}


mus = \drummode {
  \textLengthOn
   bd_\markup { \center-column {  \draw-line #'(0 . 1) "Bass Drum"  } }
   sn_\markup { \center-column {  \draw-line #'(0 . 3) "Snare Drum"  } }
   tommh_\markup { \center-column {  \draw-line #'(0 . 1) "High Tom" } }
   tomml_\markup { \center-column {  \draw-line #'(0 . 3) "Mid Tom" } }
   tomfh_\markup { \center-column {  \draw-line #'(0 . 1) "Low Tom" } }
   hhp_\markup { \center-column {  \draw-line #'(0 . 1) "Hi-Hat (w/foot)" } }
   hh_\markup { \center-column {  \draw-line #'(0 . 3) "Hi-Hat (closed)" } }
   hho_\markup { \center-column {  \draw-line #'(0 . 1) "Hi-Hat (open)" } }
   cymr_\markup { \center-column {  \draw-line #'(0 . 3) "Ride Cymbal" } }
   cymc_\markup { \center-column {  \draw-line #'(0 . 1) "Crash Cymbal" } }
 }
 
  drh = \drummode {
    cymc4 hh8 hh hh hh hh hh \repeat unfold 2 { hho8 hh hh hh hh hh hh hh  }
    tommh tommh tomml tomml tomfh tomfh cymc4 \bar ":|"
  }
  drl = \drummode {
    \repeat unfold 3 { bd4 sn bd  sn8 bd }
  }
 
\score {
  << \new DrumStaff \with {
       \remove Bar_engraver
       \remove Time_signature_engraver
       \override Stem #'transparent = ##t
     } \mus
  >>
}
\score {
  <<
   \new DrumStaff
   <<
     \set Staff.instrumentName = #"drums"
     \new DrumVoice { \stemUp \drh }
     \new DrumVoice { \stemDown \drl }
   >>
 >>
 }
Vielleicht bin ich auf der völlig falschen Fährte und es gibt eine viel einfachere Möglichkeit, einen Drum-Key zu erstellen. Ich hatte es zu erst mit lyrics versucht, bin dann aber auf \markup ausgewichten, weil ich dachte, ich könnte so platzsparender arbeiten. Jedenfalls bin ich für jeden Tipp dankbar!

harm6

  • Gast
Re: Schlagzeugnoten mit Drum-Key
« Antwort #1 am: Mittwoch, 3. August 2011, 01:09 »
Hallo quadronado,

ich habe da mal etwas gemacht, was Dir vielleicht gefallen könnte.

Im einzelnen:

Zitat
Ich habe die Beschriftung in zwei unterschiedlichen Höhen vorgenommen weil ich dachte, dass ich so das ganze etwas zusammenschieben könnte, um Platz zu sparen. Aber leider gelingt mir das Zusammenschieben nicht. Wenn ich den Befehl "\textLengthOn" weglasse, sieht das ganze total chaotisch aus.

Um das Problem zu umgehen habe ich zwei Stimmen benutzt.

Zitat
Außerdem dachte ich, ich könnte eine Linie zwischen Text und Notenkopf einfügen, damit deutlich wird, auf welche Note sich die Beschriftung bezieht. Ich bekomme den Strich aber nicht mittig unter den Notenkopf sondern nur linksbündig. Außerdem habe ich es nicht geschafft, die Höhe auszurichten. Die Linie bleibt immer unterhalb des Systems.

1. Der Befehl \center-column zentriert die markup-Zeilen im markup und das gesamte markup über den linken Rand der Note. Aber für Ganze Noten etc. ist das nichts. Insoweit habe ich das markup-command center-column-h geschrieben, um eine leichte Verschiebung einzubauen.

2. Um ein markup in das Notensystem zu bekommen braucht man:

  \override [DrumVoice.]TextScript #'padding = #0                 
  \override [DrumVoice.]TextScript #'staff-padding = #'()           
  \override [DrumVoice.]TextScript #'outside-staff-priority = ##f


Den padding-Wert muß man dann noch anpassen.
(Oder man benutzt \override TextScript #'extra-offset = #'(a . b))

Zitat
Ich habe versucht, den Drum-Key und die eigentlich Noten dadurch zu trennen, dass ich zwei mal einen \score gesetzt habe. Ich habe keine Ahnung, ob dies die korrekte Vorgehensweise ist. Jedenfalls scheint mir der Abstand zwischen Drum-Key und Stück etwas gering zu sein.

Grundsätzlich würde ich auch zwei scores setzen, um die Legende vom Stück zu trennen.
Zu den Abständen: Man kann im paper-Block eine ganze Reihe von Einstellungen vornehmen. Du nutzt allerdings noch version 2.12.3 und da ich auf der neuesten stable (2.14.2 mit grundlegend geändertem Abstands-Verfahren) bin, habe ich Dir da keine Vorschläge gemacht (außer: mach das upgrade). Stattdessen habe ich eine Definition von Nicolas Sceaux für \vspace eingefügt, nicht nur um die Abstände der Scores zu regeln, sondern auch, weil ich sie für das Einregeln der Linien im markup brauchte.(In 2.14.2 ist sie "eingebaut")

Zitat
Vielleicht bin ich auf der völlig falschen Fährte und es gibt eine viel einfachere Möglichkeit, einen Drum-Key zu erstellen.

Ansonsten fällt mir nur noch das Verfahren aus NR 2.5.1 (suche nach drum-style) ein.

Aber hier mein Code:
\version "2.12.3"

\header {
        title = "Drum-Übung mit Drum-Key"
}

\paper {
        ragged-right = ##f
}

#(define-markup-command (vspace layout props amount) (number?)
  "This produces a invisible object taking vertical space."
  (let ((amount (* amount 3.0)))
    (if (> amount 0)
        (ly:make-stencil "" (cons -1 1) (cons 0 amount))
        (ly:make-stencil "" (cons -1 1) (cons amount amount)))))
 
#(define-markup-command (center-column-h layout props args) (markup-list?)
  (define (general-column align-dir baseline mols)
    (let* ((aligned-mols (map (lambda (x) (ly:stencil-aligned-to x X align-dir)) mols)))
      (stack-lines -1 0.0 baseline aligned-mols)))
  (ly:stencil-translate-axis  (general-column CENTER 3 (interpret-markup-list layout props  args)) 0.65 X))

one = \drummode {
  \override DrumVoice.TextScript #'padding = #-1                 
  \override DrumVoice.TextScript #'staff-padding = #'()           
  \override DrumVoice.TextScript #'outside-staff-priority = ##f 
 
   bd_\markup { \center-column-h { \vspace #0.9 \draw-line #'(0 . 2) "Bass Drum"  } }
   s
   tommh_\markup { \center-column-h { \vspace #0.55 \draw-line #'(0 . 4) "High Tom" } }
   s
   tomfh_\markup { \center-column-h {  \vspace #0.9 \draw-line #'(0 . 2.5) "Low Tom" } }
   s
   hh_\markup { \center-column-h {  \vspace #0.2 \draw-line #'(0 . 5) "Hi-Hat (closed)" } }
   s
   cymr_\markup { \center-column-h { \vspace #0.2  \draw-line #'(0 . 5) "Ride Cymbal" } }
   s
 }
 
two = \drummode {
  \override  Script #'direction = #UP
  \override DrumVoice.TextScript #'padding = #0                 
  \override DrumVoice.TextScript #'staff-padding = #'()           
  \override DrumVoice.TextScript #'outside-staff-priority = ##f
 
   s
   sn_\markup { \center-column-h {  \vspace #0.2 \draw-line #'(0 . 7.9) "Snare Drum"  } }
   s
   tomml_\markup { \center-column-h { \vspace #0.5 \draw-line #'(0 . 7) "Mid Tom" } }
   s
   hhp_\markup { \center-column-h { \vspace #1.2  \draw-line #'(0 . 5) "Hi-Hat (w/foot)" } }
   s
   hho_\markup  { \center-column-h {  \draw-line #'(0 . 8.6) "Hi-Hat (open)" } }
   s
   cymc_\markup { \center-column-h {  \draw-line #'(0 . 8.6) "Crash Cymbal" } }
   
 }
 
  drh = \drummode {
    cymc4 hh8 hh hh hh hh hh \repeat unfold 2 { hho8 hh hh hh hh hh hh hh  }
    tommh tommh tomml tomml tomfh tomfh cymc4 \bar ":|"
  }
  drl = \drummode {
    \repeat unfold 3 { bd4 sn bd  sn8 bd }
  }

\markup \vspace #2

\score {
  << \new DrumStaff \with {
       \remove Bar_engraver
       \remove Time_signature_engraver
       \override Stem #'transparent = ##t
  }
    <<
     \new DrumVoice { \one }
     \new DrumVoice { \two }
    >>
  >>
  \layout {
          indent = 0
          %line-width = 160
  }
}

\markup \vspace #5

\score {
  <<
   \new DrumStaff
   <<
     \set Staff.instrumentName = #"drums"
     \new DrumVoice { \stemUp \drh }
     \new DrumVoice { \stemDown \drl }
   >>
 >>
 }

Gruß,
  Harm

P.S. Das Bild und das sonstige Testen habe ich mit 2.14.2 gemacht, ich hoffe da gibts keine Überraschungen auf 2.12.3.

« Letzte Änderung: Mittwoch, 3. August 2011, 01:12 von harm6 »

quadronado

  • Gast
Re: Schlagzeugnoten mit Drum-Key
« Antwort #2 am: Mittwoch, 3. August 2011, 09:33 »
Hallo quadronado,

ich habe da mal etwas gemacht, was Dir vielleicht gefallen könnte.
Hallo harm6,

Großartig, vielen Dank. Genauso habe ich mir das vorgestellt. Ich verstehe zwar viele Details des Codes noch nicht, aber so habe ich schon mal eine Vorlage, die ich für Schlagzeugnotation nutzen kann. Vielen, vielen Dank für deine Unterstützung!!

Grundsätzlich würde ich auch zwei scores setzen, um die Legende vom Stück zu trennen.
Zu den Abständen: Man kann im paper-Block eine ganze Reihe von Einstellungen vornehmen. Du nutzt allerdings noch version 2.12.3 und da ich auf der neuesten stable (2.14.2 mit grundlegend geändertem Abstands-Verfahren) bin, habe ich Dir da keine Vorschläge gemacht (außer: mach das upgrade). Stattdessen habe ich eine Definition von Nicolas Sceaux für \vspace eingefügt, nicht nur um die Abstände der Scores zu regeln, sondern auch, weil ich sie für das Einregeln der Linien im markup brauchte.(In 2.14.2 ist sie "eingebaut")
Ich habe die 2.12.3, weil das die aktuellste Version ist, die ubuntu mir anbietet. Auf dieser Seite wird mir auch maximal die 2.12 als stabile Version angeboten. 
Hier gibt es dann 2.14.2 für linux. Distributionsspezifisch wird aber nur die 2.12.2 angeboten. Verwirrend.
Wenn du mir empfiehlst, die 2.14.2 zu installieren, werde ich mal die 2.12.3 deinstallieren und auf die 2.14.2 wechseln. In wie fern ist denn bei der 2.14.2 das Abstandsverfahren geändert bzw. wo kann ich das nachlesen?

Gruß
quadronado


harm6

  • Gast
Re: Schlagzeugnoten mit Drum-Key
« Antwort #3 am: Mittwoch, 3. August 2011, 12:21 »
Hallo quadronado,

ich benutze ebenfalls ubuntu (version 10.04) mit lilypond 2.12.3 als neuester Version in der Distribution. Da ich aber unbedingt die neueste lily-stable-version haben wollte, habe ich 2.12.3 deinstalliert und 2.14. manuell installiert. Den link zur richtigen Seite hast Du ja schon.

2.14. bietet eine ganze Reihe neuer features, nachzulesen hier. Das geänderte spacing-procedere in NR 4. Abstände. Es gibt natürlich immer mal wieder schlecht oder gar nicht dokumentierte Änderungen. Das ist zwar ärgerlich, kommt aber bei jedem upgrade vor.

Nachteile von 2.14. : Neben den Umstellungsschwierigkeiten ist es ein sehr großes Manko, daß das LSR noch 2.12.2 benutzt und viele Snippets in 2.14. nicht mehr kompilierbar sind. Ich selber versuche dann diese Snippets anzupassen oder ein eigenes zu entwickeln (mir persönlich macht das großen Spaß). Falls ich nicht mehr weiter weiß, stell ich eben eine Frage im Forum. Eine andere Möglichkeit wäre es, verschiedene lilypond-versionen auf dem Rechner zu haben. Wie man damit umzugehen hat, weiß ich allerdings nicht aus eigener Erfahrung. Aber Du könntest ja hier im Forum recherchieren oder\und einen neuen Thread anfangen.

Gruß,
  Harm
« Letzte Änderung: Mittwoch, 3. August 2011, 12:23 von harm6 »