Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: hurrlipurr am Sonntag, 9. Dezember 2018, 08:59

Titel: Lead Sheets für verschiedene Instrumente
Beitrag von: hurrlipurr am Sonntag, 9. Dezember 2018, 08:59
Guten Morgen,

ich erstelle gerade ein paar Lead Sheets und benötige die Ausgabe jeweils für C, Bb und Eb (normal und transponiert für Tenor- und Altsaxophon). Zur Zeit mache ich das jeweils mit transpose-commands im Quelltext, das ist aber relativ aufwändig. Gibt es da eine elegante Methode, jeweils in einem Durchgang drei PDF Dokumente  zu erzeugen?

VG Oliver
Titel: Antw:Lead Sheets für verschiedene Instrumente
Beitrag von: Malte am Sonntag, 9. Dezember 2018, 10:56
Ja, das geht. Hast du ein Minimalbeispiel? Ansonsten kann das ungefähr so aussehen:

akkorde = \chordmode { ... }
melodie = \relative { ... }
text = \lyricmode { ... }

sheet = <<
  \new ChordNames \akkorde
  \new Staff \melodie \addlyrics \text
>>

\header { ... }

\layout { ... }

\book { \bookOutputSuffix "C" \sheet }
\book { \bookOutputSuffix "B" \transpose c bes, \sheet }
\book { \bookOutputSuffix "Es" \transpose c es \sheet }
Titel: Antw:Lead Sheets für verschiedene Instrumente
Beitrag von: hurrlipurr am Sonntag, 9. Dezember 2018, 13:23
Ok, das werde ich gleich mal ausprobieren.

Es funktioniert! :-) Allerdings muss man in die andere Richtung transponieren, also z.B.  c->d für die Bb-Notation.

Ideal wäre noch, wenn die PDF-Files in verschiedene Unterverzeichnisse geschrieben würden. (Das kann ich aber auch per Skript erledigen.)

Vielen Dank!
Titel: Antw:Lead Sheets für verschiedene Instrumente
Beitrag von: Malte am Sonntag, 9. Dezember 2018, 17:18
Stimmt, die Transposition hab ich falsch rum gedacht, hab den Code ohne Probieren hingeschrieben ;) Im Zweifelsfall würde ich dann aber statt
\transpose c d
lieber
\transpose bes, c
schreiben, das find ich in diesem Fall leserlicher.

Wegen der Verzeichnisse: Du könntest probieren, statt \bookOutputSuffix \bookOutputName zu verwenden und sowas wie
\bookOutputName "Es/Autumn_leaves_Es"
zu schreiben. Hab ich aber ebenfalls nicht getestet. Alternativ ist das Verschieben ins entsprechende Verzeichnis im Terminal (Linux/Mac OS) leicht gemacht:
mv *-Es.pdf Es/
Das schiebt alle Dateien, die auf -Es.pdf enden, in das Verzeichnis Es (welches existieren muß). Ähnliches sollte auch mit Windows möglich sein, da kenn ich die Syntax nicht.
Titel: Antw:Lead Sheets für verschiedene Instrumente
Beitrag von: hurrlipurr am Sonntag, 9. Dezember 2018, 17:37
Hallo Malte,

die erste Lösung hat den Nachteil, dass jedesmal der Filename explizit angegeben werden muss - und noch schlimmer man ggf. auch mal eine frühere Datei versehentlich überschreibt, wenn man es nicht anpasst.

Ich habe in einem anderen Forum noch folgende Lösung gefunden:

\book { \bookOutputName $(string-append "C/" (ly:parser-output-name)) \bookOutputSuffix "C" \sheet }


Da ich aber mit Linux und vim arbeite, gefällt mir dein zweiter Vorschlag besser, da ich den dann gleich mit einer passenden Tastenkombination in der .vimrc eintragen kann.
Titel: Antw:Lead Sheets für verschiedene Instrumente
Beitrag von: hurrlipurr am Donnerstag, 20. Dezember 2018, 12:46
Zusatzaufgabe!  ;D

Ich brauche jetzt auch noch die Sheets für Posaune im Bass-Schlüssel.

Fällt euch dazu auch eine elegante Lösung ein, den Workflow zu erweitern?

VG Oliver
Titel: Antw:Lead Sheets für verschiedene Instrumente
Beitrag von: Malte am Donnerstag, 20. Dezember 2018, 16:24
Zwei Ideen:

sheet = <<
  \new ChordNames \akkorde
  \new Staff \melodie \addlyrics \text
>>

sheetPos = <<
  \new ChordNames \akkorde
  \new Staff { \clef bass \melodie } \addlyrics \text
>>

\book { \bookOutputSuffix "C" \sheet }
\book { \bookOutputSuffix "B" \transpose c bes, \sheet }
\book { \bookOutputSuffix "Es" \transpose c es \sheet }
\book { \bookOutputSuffix "Pos" \sheet \sheetPos }


melodie = \relative { \tag pos \clef bass ... }

\book { \bookOutputSuffix "C" \removeWithTag pos \sheet }
\book { \bookOutputSuffix "B" \removeWithTag pos \transpose c bes, \sheet }
\book { \bookOutputSuffix "Es" \removeWithTag pos \transpose c es \sheet }
\book { \bookOutputSuffix "Pos" \keepWithTag pos \sheet }

Vielleicht gibts noch ne einfachere Möglichkeit, die ähnlich den Tags funktioniert, aber ohne ein explizites \removeWithTag auskommt, das müßte ich aber zu Hause mal ausprobieren ...
Titel: Antw:Lead Sheets für verschiedene Instrumente
Beitrag von: hurrlipurr am Freitag, 21. Dezember 2018, 15:30
Danke, Malte.

Mir ist noch ein Problem aufgefallen: ich schreibe z.T. die Texte unter die Leadsheets, aber so wie ich es mache, klappt das nicht mit den \book commands, es wird ein separates Sheet ausgegeben.


sheet = {
      <<
          ...
      >>

\markup {
  \fill-line {
    \hspace #1
    \column {
      \line{Beautiful love, you're all a mystery}
       ....
    }
    \hspace #2
    \column {
        .....
    }
    \hspace #1
  }
}
}
\book { \bookOutputName $(string-append "PDF/" (ly:parser-output-name)) \bookOutputSuffix "C" \sheet }
Titel: Antw:Lead Sheets für verschiedene Instrumente
Beitrag von: harm6 am Freitag, 21. Dezember 2018, 17:15
ZitatMir ist noch ein Problem aufgefallen: ich schreibe z.T. die Texte unter die Leadsheets, aber so wie ich es mache, klappt das nicht mit den \book commands, es wird ein separates Sheet ausgegeben.

Natürlich. Falls explizite \book-commands da sind und anderer toplevel Stoff, so werden mehrere books ausgegeben.
Eins für jedes \book und eins für den sonstigen toplevel-Stoff.

Pack das markup ins book bei dem Du's haben willst.

Gruß,
  Harm

Titel: Antw:Lead Sheets für verschiedene Instrumente
Beitrag von: hurrlipurr am Freitag, 21. Dezember 2018, 18:57
Ups, wenn man vor lauter Bäumen den Wald nicht mehr sieht.  :-[