Autor Thema: Quelltext optimieren  (Gelesen 6521 mal)

himatt

  • Member
Quelltext optimieren
« am: Sonntag, 31. Mai 2009, 00:31 »
ich habe nun meine erste note geschrieben - danke für eure hilfen!!  :)

nun habe ich das sicher an vielen stellen recht umständlich geschrieben und möchte fragen wo bzw. ob man das an der einen oder anderen stelle vereinfachen kann.

ich lade dazu mal die komplette datei mit zugehörigem .png hier hoch.

danke nochmal
matthias

ding-dong

  • Member
Re: Quelltext optimieren
« Antwort #1 am: Montag, 1. Juni 2009, 11:06 »
mir gefällt das sehr gut!

ich habe erst später erkannt, was die aufteilung der stimmen bezweckte; das könnte vielleicht auch mit dem folgenden schnipsel gelöst werden http://lsr.dsi.unimi.it/LSR/Snippet?id=336, das würde die aufteilung der stimme in 3 teile vermeiden.

persönlich schreibe ich in den einzelnen stimmen vorerst nur die melodie, also z.b.
TenorEinsNotenA=\relative {a b c d e f g … }TenorEinsNotenB=\relative {a b c d e f g … }zusammengefasst:
tenorEins={ \tenorEinsNotenA \tenorEinsNotenB … etc.}
und später erst die spezifischen eigenschaften, also etwa
oder
\score {
  …
    \context Voice="Tenor Eins" { \voiceOne \set midi... \TenorEinsNotenA \tenorEinsNotenB}
  …
  }
- das spart ein bisschen code und erhöht die übersicht!

vielleicht könnte man die doppelten Staff's vereinfachen zu
  \context Staff <<
    \context Voice="1" …
    \context Voice="2" …
    >>

das alles ist auch geschmacksache!
weiterhin viel erfolg!


himatt

  • Member
Re: Quelltext optimieren
« Antwort #2 am: Dienstag, 2. Juni 2009, 21:02 »
hallo ding-dong - DANKE für deine mühe!!

ich habe angefangen zu "verbessern" jedoch habe ich gleich zu beginn fehler. ich habe nur die eigenschaften \set midi und \voiceOne aus den stimmendefinitionen entfernt und in die score eingetragen. schon das gibt fehler in der verteilung der jeweils 1. bzw. 2 stimmen. da muss dann wohl noch mehr getan werden...

die neue (fehlerhafte) datei lege ich mal bei. vielleicht hab ich ja auch einfach was falsch gemacht...

mit dem schnipsle kann ich wahrlich nichts anfangen :D wenn ich da mal hinkomm - welche freude drauf!!

und:
vielleicht könnte man die doppelten Staff's vereinfachen zu
Code:

  \context Staff <<
    \context Voice="1" …
    \context Voice="2" …
    >>

da hab ich auch versucht. komme zu keinem ergebnis. vielleicht ja eben wegen der vielen, für mich notwendigen, melodieschnipsel. ich denke auch dass das bestimmt besser geht. die einfachste lösung wäre ja meine erste gewesen (siehe problem "eigenartiges pausenverhalten" im bereich "funktionen") das war für mich gut verständlich ;)

aber nochmal zu meinem ursprünglichen text:

am ende würde ich gern die pausen zusammenfassen. zu beginn hab ich mir mit einer unsichtbaren note geholfen. da war die pause in einer stimme günstiger positioniert. das könnt ich sicher wieder tun und die andere mit (viel mühe!!) in eine günstigere position verschieben. gibt es eine einfache, lilypond-selbstlösende variante?

auch mit der platzeinteilung auf der seite bin ich nicht zufrieden und hab da ewig probiert. aber das liegt wohl an dem logo...
ich hätte gern ein system mehr. es geht recht eng in einer zeile zu und platz wäre auf der seite ...

« Letzte Änderung: Dienstag, 2. Juni 2009, 21:14 von himatt »

ding-dong

  • Member
Re: Quelltext optimieren
« Antwort #3 am: Dienstag, 2. Juni 2009, 23:52 »
also mal ganz grundsätzlich:

die unterste \context einheit sind stimmen (Voice) dann kommt der context Staff, dann Score oder PianoStaff oder ChoirStaff - sieh dir mal die #"context-example.eps" im NR an.

in einem Staff kannst du also mehrere stimmen darstellen - zb. tenöre!

das ergibt dann:
\context Staff="Tenöre" <<
  \context Voice="Tenor 1" { \voiceOne \set … }
  \context Voice="Tenor 2" { \voiceTwo … }
  >>

hier kannst du nun für jede Voice die definitionen \voiceOne, …Two, \set midiInstrument usw. vornehmen

ebenso verfährt man mit den bässen, die dann integriert werden:
\contexgt ChoirStaff <<
  \context Staff="Tenöre" <<
    \context Voice="Tenor 1" { \voiceOne \set … }
    \context Voice="Tenor 2" { \voiceTwo … }
    >>
  \context Staff="Bässe" <<
    \context Voice="Bass 1" { \voiceOne \set … }
    \context Voice="Bass 2" { \voiceTwo … }
    >>
  >>
da beide tenöre bzw bässe den gleichen schlüssel und die gleiche tonart haben, könnten diese vor den Voices eingefügt werden!

wenn das alles funktioniert, machen wir uns an die details und spitzfindigkeiten (anwendung des schnipsels für die pausen)

die seiteneinteilung würde ich erst ganz am schluss behandeln, da sich änderungen im satz sofort wieder auswirken!

ding-dong

  • Member
Re: Quelltext optimieren
« Antwort #4 am: Mittwoch, 3. Juni 2009, 06:17 »
hallo nochmals!
wir haben hier den etwas speziellen fall, dass stimmen aneinandergehängt werden und logischerweise muss in jedem Voice-context alles spezifische definiert werden. ich habe deshalb nun neue variablen definiert: globalTenorEins und globalTenorZwei, die dann einfach integriert werden können.
die tenorstimmen habe ich in diesem sinne überarbeitet (s. anhang). man könnte dabei noch weitergehen und noch mehr variablen definieren!

himatt

  • Member
Re: Quelltext optimieren
« Antwort #5 am: Mittwoch, 3. Juni 2009, 11:26 »
hallo ding-dong ... mannomann - DANKE! bin arbeiten, hab noch nicht reingeguckt. aber du hast hoffentlich nicht die ganze nacht dran gesessn  ;D

bis später, wenn ich wieder dran gebastelt hab
matthias

himatt

  • Member
Re: Quelltext optimieren
« Antwort #6 am: Donnerstag, 4. Juni 2009, 14:09 »
hab nun ein stück gebastelt. bevor ich die textschnipsel für den bass einfüge ... wie bekomme ich denn die strophen wieder zwischen das system?? ich denke die klammern stehen alle am richtigen platz  ??? --> datei
matthias

ding-dong

  • Member
Re: Quelltext optimieren
« Antwort #7 am: Donnerstag, 4. Juni 2009, 15:31 »
ja, da bin ich nicht ganz unschuldig … die \context Lyrics gehören nämlich auf das gleiche level wie \contex Staff
\score {
  \new ChoirStaff  {
    <<
      \context Staff="Tenöre"  {
        \global
        \clef "treble_8"
        <<
          \TenEinsNoten
          \TenZweiNoten
          >>
        }
      \context Lyrics ="lyricseins" \lyricsto "TENA" { \VersEins }
      \context Lyrics ="lyricszwei" \lyricsto "TENA" { \VersZwei }
      \context Lyrics ="lyricsrefr" \lyricsto "TENB" { \Refrain }
      \context Lyrics ="lyricsdrei" \lyricsto "TENA" { \VersDrei }
      \context Staff="Bass"  {
        \global
        \clef "bass"
        <<
          { \BassEinsNotenA r \BassEinsNotenA \BassEinsNotenB}
          { \BassZweiNotenA \BassZweiNotenAa \BassZweiNotenA \BassZweiNotenAb
            \BassZweiNotenBa \BassZweiNotenBb \BassZweiNotenBc \BassZweiNotenBd    \BassZweiNotenBe}
          >>
        }
      >>
    }



himatt

  • Member
Re: Quelltext optimieren
« Antwort #8 am: Freitag, 5. Juni 2009, 17:31 »
jetzt siehts wieder gut aus :) - lege die datei wieder bei

1.
das pausen-schnipsel: ist natürlich eine menge text - aber eine feine sache!! (auch wenn ich natürlich den text nicht im detail durchschaue...).
eigentlich könnte das doch standard sein für lilypond. wo kann ich denn diese datei speichern, damit sie immer gilt bzw. eben nur aufrufen muss. könnt sie irgendwo speichern und dann immer einbinden - ja - aber sicher gehts intelligenter.

2.
Zitat
ich habe erst später erkannt, was die aufteilung der stimmen bezweckte; das könnte vielleicht auch mit dem folgenden schnipsel gelöst werden http://lsr.dsi.unimi.it/LSR/Snippet?id=336, das würde die aufteilung der stimme in 3 teile vermeiden.
der link bezog sich ja auf das pausenschipsel ...
@ding-dong: was meintest du eigentlich mit
Zitat
das würde die aufteilung der stimme in 3 teile vermeiden.
? war da noch ein anders snippet?

3.
problem noch: der midi Staff_performer funktioniert nun nicht mehr  ???

4.
die einstellungen im \paper -block sind ja auch eine bastelei ... und endlich zufrieden bin ich nicht bzw. durchschaue ichs nicht ganz. z.b. die größe des logos ... da oben wäre ja noch eine menge platz ... aber unwichtig jetzt.

5.
für spätere notenblätter: wenn meine systeme auf z.b. 2 seiten verteilt stehen habe ich meine beiden fußzeilen auch auf beide seiten verteilt. das gefällt mir natürlich nicht ...


ding-dong und andere spezialisten hier - ich danke euch für diese lehrhilfe!!! vielleicht/hoffentlich können auch andere foren-nutzer davon profitieren. gern können wir noch weitere verbesserungen demonstrieren. ich jedenfalls bin weiter gespannt auf die tollen möglichkeiten hier mit lilypond und meine nächste übungspartitur. hab schon jetzt gesehen, welche vorteile "lilypond" bspw. gegenüber "finale" bringt... :)

herzliche grüße
matthias
« Letzte Änderung: Freitag, 5. Juni 2009, 18:38 von himatt »

ding-dong

  • Member
Re: Quelltext optimieren
« Antwort #9 am: Freitag, 5. Juni 2009, 19:08 »
@ 1: entweder \include "mySchnipsels.ly" in jedem ….ly oder aufruf von lilypond generell mit -I "folder.mySchnipsels.ly"
@ 2: ja, das war ein bisschen viel aufs mal - es ist ja nur im bass nötig, die stimmen für die texte so aufzuteilen…
@ 3: müsste man mal untersuchen: Voice ist die unterste midi stufe, oder? - und midi ist hier wohl nur ein kleines hilfsmittel, nicht für echte performance gedacht!
@ 4: muss ich mir nochmals genauer ansehen; generell gilt: möglichst viel lilypond überlassen und erst am schluss herumbasteln!
muss leider dringend weg!
gruss + BIS SPÄTER!

ding-dong

  • Member
Re: Quelltext optimieren
« Antwort #10 am: Samstag, 6. Juni 2009, 01:05 »
ich hab mal das \paper-layout auf ein paar anweisungen minimalisiert, resp. lilypond die arbeit und die entscheidungen überlassen:
\paper {
  indent = 0
  ragged-last-bottom = ##f
  page-count = 1
  system-count = 4
  }
schau dir mal das resultat an!

im übrigen würde ich bald einmal die einzelnen teile in files verlegen, die dann mit \include eingefügt werden!

himatt

  • Member
Re: Quelltext optimieren
« Antwort #11 am: Sonntag, 7. Juni 2009, 14:43 »
super ... page-count und system-cout waren die befehle die ich brauchte! danke. das andere herumgebastel war ja wirklich nervig...

das aulagern der einzelnen bausteine werd ich noch machen, auch um stimmenauszuege incl midi zu bekommen. da können die sänger mal selber üben ;)
der midi saff-performer ... ich habe das im partiturdokument schon auf verschieden weise versucht - noch ohne ergebnis. aber ich denke das wird wieder. schön wäre es schon in den einzelnen globaldefinitionen ...

schönen  sonntag
matthias