Autor Thema: Allgemeine Probleme mit einem Stück  (Gelesen 6477 mal)

lilypiet

  • Gast
Allgemeine Probleme mit einem Stück
« am: Mittwoch, 22. Mai 2013, 19:49 »
Hallo Forum,
ich habe mehrere Probleme bei einem Stück, dass ich gesetzt habe. Das soll für kleinere Kinder sein. Ich habe das Stück Happy Birthday genommen und ziemlich leicht gesetzt:

#(set-global-staff-size 45)
#(set-default-paper-size "a4" 'landscape)

\header {
  title = "Happy Birthday"
  tagline = ""
}

upper = \relative c'' {
  \clef treble
  \key c \major
  \time 4/4
  \override Rest #'transparent = ##t

  r4 r2 r2 c, r1 | r4 r2 r2 d c1 |
  r4 g'2 e2 c8 \noBeam c r2 r2 f8 \noBeam f e2 c d c1
}

lower = \relative c {
  \clef bass
  \key c \major
  \time 4/4
  \override Rest #'transparent = ##t
  g'8 \noBeam g a2 g r2 b1 | g8 \noBeam g a2 g r2 r1 |
  g8 \noBeam g r2 r2 r4 b2 a c8 \noBeam c g2 r2 b2 r1
 
}

\score {
  \new PianoStaff <<
      \new Staff = "upper" \upper
      \new Staff = "lower" \lower
    >>

  \layout {
    indent = 0\in
    \context {
      \Staff
      \remove "Time_signature_engraver"
  \remove "Rest_engraver"
%      \remove "Clef_engraver"
      \remove "Bar_engraver"
    }
    \context {
      \Score
      \remove "Bar_number_engraver"
    }
  }

}

\paper {
  ragged-last-bottom = ##f
%  line-width = 7.5\in
  left-margin = 2.5\cm
  bottom-margin = 1.5\cm
  top-margin = 2\cm
}

\version "2.16.0"  % necessary for upgrading to future LilyPond versions.


Ich habe mal meine Probleme damit hier aufgeschrieben. Es wäre schön, falls der eine oder andere mich in die richtige Richtung führen kann:

1. Beim pdf-Build sehe ich in der zweiten Zeile nicht mehr die Notenschlüssel? Vielleicht liegt das an den ganzen weggenommenen engravern, aber die sollen auch weg.

2. Am Zeilenende sollten Abschlusslinien sein. Nun habe ich ganz bewusst den Bar_engraver weggenommen, aber ich hätte das Notensystem gerne abgeschlossen, am Ende sollte auch ein "Lied Ende" Symbol kommen - ein doppelter Strich

3. Valenthin Engel hat in seinen Klavierschulbüchern eigene Notenköpfe definiert, damit Kinder einen leichteren Zugang dazu finden. Also ich möchte die Dinger nachmalen. Das geht nur mit den scheme Funktionen? Make-stencil wäre das Zauberwort?
Ich möchte statt der schönen Notenköpfe einfache Kreise darstellen, die später mit Gesichtern etc. verziert werden, je nach Notenhöhe.

LG
Peter

fugenkomponist

  • Gast
Re: Allgemeine Probleme mit einem Stück
« Antwort #1 am: Mittwoch, 22. Mai 2013, 20:40 »
Hallo Peter,

ich kann dir keine deiner Fragen auf Anhieb beantworten (nur den Hinweis geben, daz irgendwie das Entfernen des Bar_engravers auch die Notenschlüssel ab der 2. Zeile verschwinden lässt). Ich habe aber ein paar andere Anmerkungen:
• „Happy Birthday“ ist ein Lied im 3/4-Takt (oder 3/2, wenn du willst), nicht 4/4. Deine Takte sind auch nicht 4/4 lang, deshalb schlagen die Barchecks (also die Stellen, wo du | schreibst, um LilyPond zu sagen „hier müsste eigentlich ein Taktstrich sein, wenn ich mich nicht irre“) fehl. Außerdem passt der Rhythmus noch nicht: entweder du machst aus dem Auftakt zwei Viertel statt zwei Achtel, oder du machst halt alle anderen Noten kürzer.
• Einen Auftakt der Länge einer Viertel bekommst du mit \partial 4, entsprechend für eine Halbe \partial 2 etc.
• Statt Pausen transparent zu machen und den Engraver zu entfernen (es wäre sowieso nur eins von beiden nötig), kannst du einfach statt r2 etc. s2 schreiben, das überspringt die angegebene Dauer, ohne ein Pausenzeichen zu setzen.
• Wenn du mehrere Noten, Pausen etc. von gleicher Länge hast, reicht es, die Dauer nur bei der ersten anzugeben. Statt c2 r2 s2 e2 d2 kann man also schreiben c2 r s e d.
• Statt dauernd \noBeam zu sagen, kannst du auch einfach einmaligss \autoBeamOff schreiben.
• Wenn du eine einstimmige Melodie hast, die beim Überschreiten des mittleren c das System wechseln soll (hast du hier jetzt nicht ganz, zum Schluss hast du ja Noten in beiden Händen), kannst du dir mal \autochange anschauen.

Ich hoffe, dir helfen diese Anregungen, auch wenn sie nicht deine Fragen beantworten ;)

Arnold

  • Gast
Re: Allgemeine Probleme mit einem Stück
« Antwort #2 am: Donnerstag, 23. Mai 2013, 09:11 »
Hallo:

Kreise als Notenköpfe (ohne Berücksichtigung der Notendauter) geht (grob beschreiben) so:
Ein Markup definieren, welches in der Y-Ausdehnung von -0.5 bis + 0.5 reicht, wenn es genau den Linienabstand füllen soll (\draw-circle),
im Notehead den Parameter text auf dieses Markup setzen,
und ebenfalls im Notehead den stencil auf ly:text-interface::print setzen.

Im 2.17.14-er Notation.pdf ist ein solches Beispiel im Kapitel »5.5.3 Modifying stencils« zu finden.

Arnold

lilypiet

  • Gast
Re: Allgemeine Probleme mit einem Stück
« Antwort #3 am: Donnerstag, 23. Mai 2013, 11:41 »
Und wieder bin ich begeistert von den Antworten. Vielen Dank, fugenkomponist, für die Anregungen. Werde ich alles berücksichtigen.
Danke, Arnold, für die genaue Stelle in der Doku!
Ich poste gern den Notentext an dieser Stelle, wenn er fertig ist.

LG
Peter

harm6

  • Gast
Re: Allgemeine Probleme mit einem Stück
« Antwort #4 am: Donnerstag, 23. Mai 2013, 23:02 »
Hallo Peter,

Zitat von: Peter
2. Am Zeilenende sollten Abschlusslinien sein. Nun habe ich ganz bewusst den Bar_engraver weggenommen, aber ich hätte das Notensystem gerne abgeschlossen, am Ende sollte auch ein "Lied Ende" Symbol kommen - ein doppelter Strich

Den Bar_engraver würde ich drin lassen. Ihn rauszunehmen ist die Ursache der fehlenden Schlüssel ab zweiter Zeile.
Du kannst über 'break-visibility gehen:

\version "2.16.2"

m =
\relative c' {
\repeat unfold 50 c'1
\bar "|."
}

\score {
  \new PianoStaff <<
  \new Staff \m
  \new Staff \m
  >>
  \layout {
    \context {
      \PianoStaff
      \override BarLine #'break-visibility = ##(#t #f #f)
    }
  }
}

HTH,
  Harm

Be-3

  • Gast
Re: Allgemeine Probleme mit einem Stück
« Antwort #5 am: Donnerstag, 23. Mai 2013, 23:21 »
Hallo Peter,

aus dem Thread Eigene Notenschlüssel sind ja nun die Hintergründe und Anforderungen bekannt.
Als Anhang das Ergebnis-PDF und die benötigte Schrift CircusNoteheads.
Die Schrift habe ich schnell per Look-Inside-Funktion aus dem zugrundeliegenden Lehrbuch zusammengemurkst, ihren Zweck sollte sie aber erfüllen. Sie enthält alle dort zu sehenden Notenköpfe.


L- und R-"Schlüssel"

Im Prinzip Harms Lösung mit kleinen Anpassungen. Trotz der geänderten Stencils werden treble- und (vor allem) bass-Schlüssel gesetzt, damit die Noten stimmen.


Geänderte Notenköpfe

Ähnlich wie mit den Schlüsseln wird der Notehead-Stencil geändert, und zwar so, daß im relevanten Bereich die Original-Funktion durch ein Zeichen aus dem CircusNotehead-Font ersetzt wird, dessen Zeichennummer aus der Tonhöhe (d. h. Notenname und Oktave) berechnet wird.


Rhyrhmische Sonder-Schreibweisen

Weil die "Circus-Notenköpfe" nicht zwischen gefüllten und ungefüllten Noten unterscheiden, braucht man wohl die "falschen" Achtelfähnchen, die eigentlich Viertel bedeuten sollen (!?).
Ich habe das ausgeglichen, indem ich ihre Länge durch den "Korrekturfaktor" *2 wieder geradegerückt habe. (also z. B. a8*2 ist wie a4, nur mit Fähnchen).

Das Spacing ist proportional eingestellt, damit die Notendauern klarer hervortreten (schön ist es nicht, aber darum geht es ja auch nicht).


Sonstige Kleinigkeiten

Ich habe den Abstand der Notenlinien leicht vergrößert, so daß die Notenköpfe größer werden können. Als Nebeneffekt stehen auch die beiden Systeme näher beieinander (wie in der "Vorlage").
Die Stärke der Notenlinien und Hilfslinien ist verringert und die Notenhälse sind etwas dicker gemacht.

Das war's im wesentlichen. Voilà:


\version "2.16.2"

#(set-global-staff-size 35)
#(set-default-paper-size "a4" 'landscape)

\header {
  title = \markup \sans "Happy Birthday"
  subtitle = \markup \sans "für Oma"
  tagline = ##f
}

\paper {
  top-margin = 15 \mm
  bottom-margin = 30 \mm
  markup-system-spacing #'basic-distance = 12\mm
  ragged-last-bottom = ##f
}


makeUnpurePureContainer =
#(ly:make-unpure-pure-container
  ly:grob::stencil-height
  (lambda (grob start end) (ly:grob::stencil-height grob))) 

#(define (new-markup-stencil mrkp)
   (lambda (grob)
     (grob-interpret-markup grob mrkp)))

newClef =
#(define-music-function (parser location mrkp)(markup?)
   #{
     \override Staff.Clef #'Y-extent = \makeUnpurePureContainer
     \override Staff.Clef #'X-extent = #'(-0.5 . 7)
     \override Staff.Clef #'stencil =
     #(lambda (grob)
        (new-markup-stencil mrkp))
   #})

rechts = \markup \lower #0.9 \fontsize #8 "R"
links = \markup \lower #3.3 \fontsize #8 "L"


#(define (circus-notehead grob)
   "stencil: circus noteheads"
   (let* ((pitch (ly:event-property (event-cause grob) 'pitch))
          (pitch-index (ly:pitch-notename pitch))
          (pitch-octave (ly:pitch-octave pitch))
          (charnum (+ #xe190 0 (- pitch-index 3) (* (+ pitch-octave 1) 7))))
     (if (and (>= charnum #xe190) (<= charnum #xe198))
         (begin (set! (ly:grob-property grob 'stem-attachment) '(1.0 . 0.1))
           (grob-interpret-markup grob
             (markup #:fontsize 3 #:override '(font-name . "CircusNoteheads") #:char charnum)))
         (ly:note-head::print grob))))


\layout {
  indent = 0
  \context {
    \Score
    \remove "Bar_number_engraver"
    proportionalNotationDuration = #(ly:make-moment 1 4)
  }
  \context {
    \PianoStaff
    \override BarLine #'break-visibility = ##(#t #f #f)
  } 
  \context {
    \Staff
    \remove "Time_signature_engraver"
    \override NoteHead #'stencil = #circus-notehead 
    \override NoteHead #'Y-extent = \makeUnpurePureContainer
    \override StaffSymbol #'thickness = #0.7
    \override StaffSymbol #'staff-space = #1.25
    \override StaffSymbol #'ledger-line-thickness = #'(2 . 0)
    \override Stem #'thickness = #2
  }
}



\score {
  \new PianoStaff <<
    \new Staff
    \relative c' {
      \newClef \rechts \clef treble
      s4 s s2 s c s1 s4 s s2 s d c1 
      s4 s g'2 e c8*2 c s2 s f8*2 f e2 c d c1 \bar "|."
    }
    \new Staff
    \relative c' {
      \newClef \links \clef bass
      g8*2 g a2 g s b1 g8*2 g a2 g s s1
      g8*2 g s2 s s4 s b2 a c8*2 c g2 s b s1
    }
  >>
  \layout {}
  \midi {}
}

Viele Grüße
Torsten


PS: Harm hat inzwischen auch geantwortet, während ich an meiner Antwort noch gebastelt habe.
Seine Taktstrich-Lösung mit BarLine #'break-visibility = ##(#t #f #f) ist viel eleganter als mein Notbehelf mit \cadenzaOn und manuell gesetzten Taktstrichen bei Zeilenumbrüchen.
Deshalb habe ich das flugs eingebaut. ;)
« Letzte Änderung: Donnerstag, 23. Mai 2013, 23:28 von Be-3 »

lilypiet

  • Gast
Re: Allgemeine Probleme mit einem Stück
« Antwort #6 am: Freitag, 24. Mai 2013, 11:00 »
Was soll ich da noch sagen! Vielen vielen Dank für diese intensive Auseinandersetzung mit meinen Problemchen. Da war ich gestern abend ein kleines Stückchen weitergekommen (hatte die Kreise immerhin schon gemalt und die Notenhälse angepasst und diverse Anmerkungen von fugenkomponist eingearbeitet), auf einmal flattert die Komplettlösung herein. :-)

Mein einziges Problem war noch die Installation des Fonts, so wie es aussieht, bindet Lilypond auf dem Mac nicht standardmäßig ~/Library/Fonts ein. Aber auch das ließ sich dann schnell lösen.

Ich hoffe V. Engel meckert nicht wegen evtl. Urheberrechte, vielleicht sollten wir zumindest den Font wieder rausnehmen, um Ärger zu vermeiden.

Die Komplettlösung ist wohl ein schönes Lehrstück, sollte nicht verloren gehen :-)

Liebe Grüße
Peter

harm6

  • Gast
Re: Allgemeine Probleme mit einem Stück
« Antwort #7 am: Freitag, 24. Mai 2013, 11:20 »
Hallo Torsten,

erstmal: KLASSE!!

Da ich heute vormittag nicht viel Zeit habe nur kurz ein paar Anmerkungen:
  • Das nötige \layout vorausgesetzt führt folgendes zu einem falsch Positionierten Hals, sowie zum Fehlen einer Hilflinie:
    \relative c' { b2 }
  • Ein Zeichen scheint nicht verwendet zu werden.
    \markup  \fontsize #8 \override #'(font-name . "CircusNoteheads") \char #57752
  • In
    (charnum (+ #xe190 0 (- pitch-index 3) (* (+ pitch-octave 1) 7)))
    ist (zumindest im Moment) die 0 überflüssig.
  • Vielleicht sollte man die neuen Notenköpfe nicht auf eine Oktave beschränken.

Darüber hinaus habe ich keine Ahnung was man braucht bzw können muß, um eine eigene Schrift zu entwerfen.
Bin aber interessiert mein Wissen in diese Richtung zu erweitern.
Ebenso denke ich, daß neue Notenköpfe als neue Schrift einen eigenen Thread verdienen, schon allein um das Thema besser wieder zu finden.

Insoweit schlage ich vor ein neues Thema im Abschnitt "spezielle Projekte" zu eröffnen.
Was meinst Du?

Gruß,
  Harm

Be-3

  • Gast
Re: Allgemeine Probleme mit einem Stück
« Antwort #8 am: Freitag, 24. Mai 2013, 23:17 »
Ich hoffe V. Engel meckert nicht wegen evtl. Urheberrechte, vielleicht sollten wir zumindest den Font wieder rausnehmen, um Ärger zu vermeiden.

Ich hoffe mal nicht... ;)
Die Zeichen sind ja "abgezeichnet", und wenn jemand schon eine eigene (?) Notenschrift in einem Kinder-Lehrbuch vermittelt, muß man sie auch verwenden dürfen. Der Name "CircusNoteheads" ist hoffentlich nicht geschützt - das wäre problematischer.
Man kann allerdings davon ausgehen, daß der Notensetzer, der - gelinde gesagt - aus unvorstellbar wohlhabendem Hause stammt, im Zweifelsfall über gute Anwälte verfügt.  :o


  • Das nötige \layout vorausgesetzt führt folgendes zu einem falsch Positionierten Hals, sowie zum Fehlen einer Hilflinie:
    \relative c' { b2 }

Oh, tatsächlich, stimmt! Das hat mich erst einmal verwirrt, dann kam die Erkenntnis:
Dieses erstaunliche Phänomen wird dadurch verursacht, daß ich bei dem "h-Huhn" vergessen hatte, die Breite zu setzen: dieses Zeichen hat die Breite 0, weshalb der Hals-Ansatz falsch aussieht und die Hilfslinie fehlt. -> Fehler im Font.
In der üblichen Verwendung liegt das h aber in der linken Hand, da fällt's nicht auf  :-[
Übrigens wäre es auch besser, stem-attachment für die kugeligen Köpfe abhängig von direction zu setzen, die stimmen vertikal auch noch nicht genau, weil Lilypond wohl immer von schrägliegenden Notenköpfen ausgeht.

  • Ein Zeichen scheint nicht verwendet zu werden.
    \markup  \fontsize #8 \override #'(font-name . "CircusNoteheads") \char #57752
  • Vielleicht sollte man die neuen Notenköpfe nicht auf eine Oktave beschränken.

Die Ausschnitte, die in Peters verlinktem Buch per look-inside-Funktion sichtbar sind, beschränken sich auf den Tonbereich f bis c' (linke Hand) und c' bis g' (rechte Hand), wobei jeder Stammton seinen eigenen Notenkopf hat.
Das geht los bei f (Frosch), g (Gesicht), a (Apfel) bis zu f' (Fisch) und g' (Gitarre).
Hier mein Beispiel mit allen existierenden Noten aus dem anderen Thread (da ging es eigentlich nur um die Notenschlüssel):



All diese Köpfe sind auch im Buch zu sehen. Sie liegen willkürlich auf den Zeichen #xe190 bis #xe198. Diese Köpfe müssen nicht unbedingt alle im Happy-Birthday-Beispiel vorkommen (aber das #xe198 bzw. 57752 (das g') schon... :)

Um den Tonumfang erweitern zu können, ohne von evenutellen Konventionen abzuweichen, setzt die Kenntnis dieser Konventionen voraus.
Vielleicht kann Peter ja Licht ins Dunkel bringen - er besitzt ja das Buch...


  • In
    (charnum (+ #xe190 0 (- pitch-index 3) (* (+ pitch-octave 1) 7)))
    ist (zumindest im Moment) die 0 überflüssig.

Stimmt. Es ist sinnlos, 0 zu addieren... Habe ich beim Aufräumen übersehen!
Ansonsten zur Erläuterung: #xe190 ist momentan die niedriste Zeichennummer und entspricht dem f, also pitch-notename 3 und octave -1. Jeder weitere Stammton liegt jeweils eine Character-Nummer weiter.


Darüber hinaus habe ich keine Ahnung was man braucht bzw können muß, um eine eigene Schrift zu entwerfen.
Bin aber interessiert mein Wissen in diese Richtung zu erweitern.

Ich habe einfach das Programm FontForge benutzt. Große Kunst und Präzision ist es in diesem Fall nicht, denn es handelt sich ja um "handgemalt" aussehende Zeichen. Alle Köpfe sind 425 Einheiten breit, die Grundlinie geht durch ihre Mitte.


Ebenso denke ich, daß neue Notenköpfe als neue Schrift einen eigenen Thread verdienen, schon allein um das Thema besser wieder zu finden.

Insoweit schlage ich vor ein neues Thema im Abschnitt "spezielle Projekte" zu eröffnen.
Was meinst Du?

Das war eigentlich ein "Schnellschuß", damit eine Fünfjährige ihrer Oma Geburtstagsständchen spielen kann. Meine theoretischen Kenntnisse dieser Schrift beschränken sich auf das, was ich anhand der Beispiele aus dem Buch sehen konnte...
Vielleicht erfahren wir hier im Thread noch mehr über die Hintergründe dieser Schreibweise, dann könnte man bei den "speziellen Projekten" etwas mit Hand und Fuß einstellen...

Viele Grüße
Torsten


Edit:
Die manchmal seltsam nach unten verschobenen Notenhälse liegen an den asymmetrischen Formen von manchen Notenköpfen: Sobald ein Schwänzchen untendran hängt, verschiebt sich der Halsansatz.
Als heilsam erweist sich, den Y-extent des notehead-Stencils explizit zu setzen.
« Letzte Änderung: Samstag, 25. Mai 2013, 14:21 von Be-3 »

lilypiet

  • Gast
Re: Allgemeine Probleme mit einem Stück
« Antwort #9 am: Montag, 27. Mai 2013, 11:47 »
Zitat
Die Zeichen sind ja "abgezeichnet",

Na dann ist ja gut. Gegen Abzeichnen kann man kaum etwas haben :-)

Ich bin wirklich beeindruckt von eurer Vertiefung in das Thema. Meine Tochter hat das Stück schon ganz gut drauf.


Zur Pädagogik und zum Notenraum:
Zitat
Um den Tonumfang erweitern zu können, ohne von evenutellen Konventionen abzuweichen, setzt die Kenntnis dieser Konventionen voraus.
Vielleicht kann Peter ja Licht ins Dunkel bringen - er besitzt ja das Buch...
Mehr Noten gibt's nicht in dem Buch. Das sind die 9 Noten, die mit beiden Händen ohne Umsetzen gespielt werden (5 + 5 = 9). Diese Noten werden erstmal ausgeschöpft und Stücke bis zur Vierstimmigkeit präsentiert. Danach geht der Autor allmählich auf die echten Noten über, d.h. er schreibt in Stücken mit zwei hintereinander folgenden gleichen Noten zuerst die Circus-Note, dann die echte. Ich dachte erst, das sei Quatsch. Allerdings ist es erstaunlich, das zumindest meine Tochter mit den echten Noten kaum etwas anfangen kann bzw. dass es sehr mühsam ist, diese zu lesen. So wichtig scheinen die Bildchen zu sein.

Eine Erweiterung scheint mit persönlich auch nicht sinnvoll, man sollte ja schon irgendwann auf die echten Noten umsteigen.

Das blöde an der Pädagogik allgemein: ich würde ja gern den anderen Ansatz mit den echten Noten ausprobieren, das geht natürlich mit demselben Kind nicht ein zweites Mal :-)

Torsten, vielen Dank für die Erläuterungen bzgl. FontForge! War echt eine eindrucksvolle Arbeit, das Teil zu setzen!

LG
Peter