Autor Thema: Notenbuch erstellen  (Gelesen 4247 mal)

drm

  • Member
Notenbuch erstellen
« am: Donnerstag, 17. Februar 2011, 20:51 »
Hallo Forum!

Hab mich gerade hier angemeldet, um ein paar Fragen zu einem kleinen Projekt von mir zu klären. Ich lerne gerade Klavierspielen und befasse mich auch ein bisschen mit Harmonielehre, um zu begreifen, warum bestimmte Dinge so sind, wie sie sind :D. Um das spielen vom Blatt zu üben, spiele ich gerade kleine (~10 Takte) Choräle. Die Stücke stehen aber in einem sehr alten Buch (von 1931), das ich nicht beschmieren will. Daher kam mir der Gedanke, die Stücke einfach in Lilypond neu zu setzen, auch um das Notenlesen zu trainieren (zudem kann ich sie beliebig drucken, und die erstellten midis helfen natürlich auch). Meine abgetippten Stücke will ich dann später frei veröffentlichen, sie sind ja nach 70 Jahren gemeinfrei.

Bevor ich jetzt aber alle 301 Stücke abtippe, wollte ich mir hier noch Rat einholen,

  • ob mein Vorlage-Code ok ist und
  • wie ich die Stücke am Ende zu einem Buch zusammenfassen kann.

Den folgenden Code hab ich aus Beispielen zusammengesucht (siehe Anlage), wobei ich den auskommentierten paper-Teil nicht verstanden habe:
% \paper {
%   #(define dump-extents #t)
%   
%   indent = 0\mm
%   line-width = 160\mm - 2.0 * 0.4\in
%   ragged-right = ##t
%   force-assignment = #""
%   line-width = #(- line-width (* mm  3.000000))
% }
\paper {
  #(set-paper-size "a5")
  bookTitleMarkup = \markup {
    \fill-line {
      \fromproperty #'header:title
      \fromproperty #'header:composer
    }
  }
}

\layout {
 
}


\sourcefilename "01.ach_gott_und_herr.ly"
\sourcefileline 0
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
\version "2.12.3"

\header {
  title = "Ach Gott und Herr"
  composer = \markup \center-column { \small "(1625) Freiberg, 1655" }
  tagline = ""
}

global = {
  \key bes \major
  \time 6/4
}

soprano = \relative c'' {
  \clef treble
  \global
  \partial 2
   
  bes2
  a4 g f2 a4\rest f
  g a bes2 c2
  \time 4/4
  bes4 a g a
  \time 6/4
  g2 f bes
  a4 bes c2 a4\rest c
  d bes c2 f,
  \time 4/4
  g4 a bes d
  c2 bes \bar "|."
 
}

alto = \relative c' {
  \clef treble
  \global
 
  d2
  d4 bes d2 s4 c
  ees4 ees d2 f2
  % \time 4/4
  d4 c c c
  % \time 6/4
  c2 a d
  ees4 d f2 s4 f
  f4 d f2 f
  % \time 4/4
  ees4 ees f f
  f2 d
 
}


tenor = \relative c {
  \clef bass
  \global
  \partial 2
 
  f2
  f4 g bes2 s4 a
  bes4 c f,2 f
  f4 f e f
  f4( e) f2 f
  c'4 bes a2 s4 a
  a4 bes a2 bes
  bes4 c bes bes
  bes4 a bes2
 
}

bass = \relative c {
  \clef bass
  \global
  \partial 2
 
  bes2
  d4 ees bes2 c4\rest f
  ees4 c bes2 a
  bes4 f c' a
  c2 s2 bes
  c4 g' f2 c4\rest f
  d4 g f2 d
  ees4 c d bes
  f'2 bes,
}

\score {
  \new PianoStaff <<
    %\set PianoStaff.instrumentName = #"Piano  "
    \new Staff = "sopran-alt" \with {
      midiInstrument = "choir aahs"
    } <<
      \new Voice = "soprano" { \voiceOne \soprano }
      \new Voice = "alto" {\voiceTwo \alto }
    >>
 
    \new Staff = "tenor-bass" \with {
      midiInstrument = "choir aahs"
    } <<
      \new Voice = "tenor" { \voiceOne \tenor }
      \new Voice = "bass" { \voiceTwo \bass }
    >>
  >>
  \layout { }
  \midi { }
}


Bisher habe ich noch nie mit Lilypond gearbeitet, kenne aber Latex ganz gut. Es wäre nett, wenn ihr mal über meine Vorlage / das pdf gucken und mir eventuelle Verbesserungsvorschläge nennen könntet. Vielen Dank schonmal im Voraus!

Beste Grüße,
drm

fugenkomponist

  • Member
Re:Notenbuch erstellen
« Antwort #1 am: Freitag, 18. Februar 2011, 14:36 »
Hallo,

die Aufteilung mit den Stimmen sieht ganz gut aus (soweit ich das beurteilen kann). Ich würde aber die Stimmen nachher sopranoI, sopranoII, sopranoIII etc. für die verschiedenen Lieder nennen. Ansonsten würde ich die NR 3.1.2 und NR 3.3.1 empfehlen. Du kannst z.B. die Stimmen zu jedem Lied jeweils in eine eigene Datei schreiben, die du nachher in eine zentrale Datei einbindest.
Noch zwei Kleinigkeiten:
1. Das s2 in Takt 4 im Bass sieht merkwürdig aus. Wahrscheinlich hat der eigentlich auch ein kleines f zu singen/spielen (wie Sopran und Alt in Takt 6).
2. Die Pausen sitzen einen Ton zu tief. Das kannst du entweder manuell ändern oder folgendes Snippet verwenden: http://lsr.dsi.unimi.it/LSR/Item?id=336

Ich hoffe, das hilft...

drm

  • Member
Re:Notenbuch erstellen
« Antwort #2 am: Freitag, 18. Februar 2011, 15:43 »
Hallo Fugenkomponist :)

Schonmal vielen Dank für deine Antwort! Damit ich das mit dem Einbinden richtig verstehe: meinst du, ich soll die Stimmen für das Stück in soprano001, alto001, tenor001, bass001 umbenennen, diese dann in einer Datei speichern und dann am Ende in eine große "Buch"-Datei einbinden? Also

%Hauschoralbuch.ly
...
% Stück 001
\score {
  \include{001.ach_gott_und_herr}
}
% Stück 002
\score {
  \include{002.asdf}
}
...


Im ersten Stück hätten alle Stimmen das Suffix 001, im zweiten 002, etc. bis hin zu 301, und beim Einbinden aller 301 Dateien gäbe es keine Namenskonflikte? Sollte ja klappen, ich werds heute Abend mal versuchen.

Zu den Kleinigkeiten: Die Pause steht so in der Vorlage, habs nochmal nachgeguckt. Die anderen Pausen hab ich einfach "zusammengezogen" und auf a bzw. c gesetzt. Ist das von der Tonart abhängig? oder sollen sie einfach nur mittig angezeigt werden?

Beste Grüße,
drm
« Letzte Änderung: Freitag, 18. Februar 2011, 16:05 von drm »

fugenkomponist

  • Member
Re:Notenbuch erstellen
« Antwort #3 am: Freitag, 18. Februar 2011, 18:52 »
Hallo drm,

genau das meinte ich, Namenskonflikte verhindern ist immer gut. Allerdings sind bei Lilypond (zumindest bei Version 2.12 noch) keine Ziffern in Namen erlaubt, deshalb hätte ich römische Zahlen vorgeschlagen, also sopranoI, sopranoII, ..., sopranoCCCI. (Du kannst natürlich auch das 26er-System verwenden und zwei Buchstaben als Nummer nehmen, also aa, ab, ac, ..., az, ba, bb, bc, ..., lk, ll, lm, ln, lo).
Zu den Pausen: Es ist allgemein üblich, bei einstimmigen Stücken die Pausen mittig zu setzen, Lilypond macht das auch automatisch mit r4. Wenn man allerdings ein polyphones Stück hat, kann es sein, dass kein Platz für die Pausen ist, weil da andere Noten stehen. Dann werden sie hoch oder runtergesetzt, auch das macht Lilypond bei Eingabe von r4 automatisch. Mit dem Befehl \rest, der auf eine Note folgt, kann man die vertikale Position erzwingen, eben wie du es mit a'4\rest gemacht hast. Wenn du sie in die Mitte zwingen willst, muss es im Violinschlüssel aber b'4\rest und im Bassschlüssel d4\rest heißen.

Gruß
Malte

RobUr

  • Member
Re:Notenbuch erstellen
« Antwort #4 am: Sonntag, 20. Februar 2011, 16:21 »
Hallo drm,

herzlich willkommen im Forum!

Zum Thema „Buch erstellen“ verweise ich gern auf meinen Beitrag in Probleme mit Titelblatt. Die Variablen zu Beginn können natürlich in den einzelnen Dateien definiert werden, die du schon prima per \include einzubinden verstehst. Abzugrenzen wäre nur folgendes: Variablen dürfen nur Buchstaben enthalten; Dateinamen für Includes aber schon.

Viel Erfolg!

Grüße, Robert

drm

  • Member
Re:Notenbuch erstellen
« Antwort #5 am: Dienstag, 22. Februar 2011, 11:55 »
Hallo Robert,

vielen Dank für den Hinweis. Ich hab das jetzt soweit hinbekommen, hab aber noch ein paar Fragen. Zum einen binde ich die Stimmen am Anfang per \include ein, was auch wunderbar klappt. Allerdings muss ich dann für jedes Stück einzeln die \score-Umgebung angeben, sowie jedes Mal den Header mit 'piece' und 'composer'. Diese Daten kann ich ja nicht in die Stimm-Datei packen, wie würdet ihr es also machen? Für jedes Stück eine Stimm-, eine Header- und eine Scoredatei? Scheint mir gerade am sinnvollsten, denn ich will die Stücke ja auch mal einzeln (mit MIDI-Ausgabe, oder geht das auch für jedes Stück innerhalb einer \book-Umgebung separat?) erzeugen lassen. Ich würde mir dann ein Skript schreiben, dass je nach Wunsch die Buchvorlage mit Inhaltsverzeichnis etc. erstellt und alle Stücke einbindet, oder ein bestimmtes Stück aus den includes zusammensetzt und erstellt. Mit einem Skript müsste ich allerdings nicht jede Score-Umgebung einzeln erstellen, sondern könnte sie automatisch erzeugen lassen... Wie macht ihrs?

Dann hab ich noch ein Problem mit dem Layout. Im Original sind auf jeder Seite fünf Systeme(?) (PianoScore-Linien). Wie kann ich erzwingen, dass immer genau fünf Systeme auf einer Seite sind und dabei alle Umbrüche korrekt dargestellt werden? Wenn ich die Schriftgröße kleiner Stelle, passen zwar 5 auf eine Seite, sie sind dann aber nicht gleichmäßig auf der Seite verteilt und/oder total in die Länge gezogen, sodass ein Stück von vormals drei Zeilen auf sieben Zeilen gestreckt wird.

Vielen Dank schonmal für die nette Hilfe :)

Beste Grüße,
drm

ding-dong

  • Member
Re:Notenbuch erstellen
« Antwort #6 am: Dienstag, 22. Februar 2011, 12:45 »
hast du
max-systems-per-page = 5schon probiert?

zudem solltest du die \paper variablen ragged-bottom und ragged-last-bottom kontrollieren ( = ##f)

viel erfolg!

trulli

  • Member
Re:Notenbuch erstellen
« Antwort #7 am: Mittwoch, 23. Februar 2011, 16:18 »
@ding-dong
...was du immer so alles weißt  :) Trägt man das im \paper Block ein? Bei mir geht es dort nicht (Ver 2.12.13)... oder muss es #5 heißen?

@drm
Ich denke am einfachsten ist es vorher einzelne Zeilen zu definieren, z.B. Komponist = drm und dann im \header aufzurufen mit composer = \Komponist.

Zeilenumbrüche sind \break und Seitenumbrüche sind \pageBreak. Damit solltest du alles kontrollieren können. Nützlich ist auch manchmal system-count = #14, damit kannst du die Gesamtzahl der Systeme festlegen.

Alles wird gut und Grüße von Trulli

ding-dong

  • Member
Re:Notenbuch erstellen
« Antwort #8 am: Mittwoch, 23. Februar 2011, 16:23 »
Zitat
@ding-dong
...was du immer so alles weißt   Trägt man das im \paper Block ein? Bei mir geht es dort nicht (Ver 2.12.13)... oder muss es #5 heißen?

ja, natürlich! - #5  ???