Autor Thema: vergessenes Auflösungszeiche (Fehler in LP?)  (Gelesen 3587 mal)

Arnold

  • Member
Re: vergessenes Auflösungszeiche (Fehler in LP?)
« Antwort #15 am: Mittwoch, 24. Februar 2016, 15:37 »
Hallo Erich.

Zitat
Aber dazu müssen doch die Beschreibungsmittel zuvor erweitert worden sein; ein "normales" LP-Script enthält doch nicht genügend explizite Information. Ich sage explizit im Wissen, dass man auch Programme entwickeln könnte, die eine musikalische Analyse eines Stückes leistet. Das liegt aber außerhalb der sinnvollen Erweiterungsmöglichkeiten von LP.

Stimmt, genauso wie das von dir erwähnte syntonische Komma nicht im standard-Lilypond definiert ist, mußt du alle Informationen, die du später für eine programmtechnische Auswertung benötigst, in die »ly:music?«-Datenstruktur einbringen.

Mein Augenmerk lag darin, die Vorzeichen für die Notenschrift (aber nicht für die MIDI-Ausgabe) "unscharf" zu betrachten, also statt einem exakten Pitch-Diff-Wert ein Vorzeichen zuzuordnen, einem Pitch-Diff-Bereich ein Vorzeichensymbol zuzuordnen. Damit nicht in die Engraver eingegriffen werden muß, würde ich die Engraver aber weiterhin mit exakten Pitch-Diff-Werten arbeiten lassen, und das "Zusammenfassen der Pitch-Diff-Bereiche" in ein "Runden zu den nominalen Pitch-Diff-Werten per musicMap-Funktion" auslagern.

Arnold

harm6

  • Member
Re: vergessenes Auflösungszeiche (Fehler in LP?)
« Antwort #16 am: Donnerstag, 25. Februar 2016, 00:43 »
Ich denke noch immer man sollte bei der default-skala ansetzen.

Ich hab' da mal was zusammengebraut, allerdings scheine ich nicht verstanden zu haben wie Du zu Deinen pitches und deren Alterationen kommst. D.h. der gedruckte output ist besser, aber hör Dir bloß nicht das midi an.

Ich poste es trotzdem, da ich denke den richtigen Ansatz zu verfolgen. Nötig wäre m.E. nur eine Korrektur der Berechnungen. Diese sind übrigens alle manuell ausgeführt und codiert, um sie leichter nachvollziehbar zu halten.

\version "2.18.2"
%% alternativen für 2.19 sind kommentiert

\paper {
 line-width = 190\mm
}
%
%\header {
% title =   "Impromptu in f-moll"
% subtitle = "D 935-1 (Opus 142 No 1.) Franz Schubert"
% }
%
%#(define-public CES     38269/100003)
%#(define-public C        7821/100003)
%#(define-public DX      36314/100003)
%#(define-public D        9776/100003)
%#(define-public EX      34359/100003)
%#(define-public E         978/100003)
%#(define-public FES     39246/100003)
%#(define-public F        6843/100003)
%#(define-public FIS     52934/100003)
%#(define-public GES     37291/100003)
%#(define-public G        8798/100003)
%#(define-public AX      35337/100003)
%#(define-public A           1/100003)
%#(define-public BX      44134/100003)
%#(define-public B        1957/100003)


pitch-names =
  #`(
      (ces  . ,(ly:make-pitch -1 0    (+ (+    0/200 7821/100003) -38269/100003)))
      (c    . ,(ly:make-pitch -1 0    0))
      (dx   . ,(ly:make-pitch -1 1    (+ (+  200/200 9776/100003) -36314/100003)))
      (d    . ,(ly:make-pitch -1 1    0))
      (ex   . ,(ly:make-pitch -1 2    (+ (+  400/200  978/100003) -34359/100003)))
      (e    . ,(ly:make-pitch -1 2    0))
      (fes  . ,(ly:make-pitch -1 3    (+ (+  500/200 6843/100003) -39246/100003)))
      (f    . ,(ly:make-pitch -1 3    0))
      (fis  . ,(ly:make-pitch -1 3    (+ (+  500/200 6843/100003)  52934/100003)))
      (ges  . ,(ly:make-pitch -1 4    (+ (+  700/200 8798/100003) -37291/100003)))
      (g    . ,(ly:make-pitch -1 4    0))
      (ax   . ,(ly:make-pitch -1 5    (+ (+  900/200    1/100003) -35337/100003)))
      (a    . ,(ly:make-pitch -1 5    0))
      (bx   . ,(ly:make-pitch -1 6    (+ (+ 1000/200 1957/100003) -44134/100003)))
      (b    . ,(ly:make-pitch -1 6    0))
    )
 
scalepitches =
#(vector (+    0/200 7821/100003 -7821/100003)   ; c
         (+  200/200 9776/100003 -7821/100003)   ; d
         (+  400/200  978/100003 -7821/100003)   ; e
         (+  500/200 6843/100003 -7821/100003)   ; f
         (+  700/200 8798/100003 -7821/100003)   ; g
         (+  900/200    1/100003 -7821/100003)   ; a
         (+ 1000/200 1957/100003 -7821/100003)   ; b
         )
#(ly:set-default-scale (ly:make-scale scalepitches))
   
pitchGlyphs =
  #`( ; 100003 is a prime number
      (,(+ (+    0/200 7821/100003) -38269/100003) . "accidentals.flat")   ; Cb
      (,(+ (+  200/200 9776/100003) -36314/100003) . "accidentals.flat")   ; Dx = Db
      (,(+ (+  400/200  978/100003) -34359/100003) . "accidentals.flat.arrowup")  ; Ex = E↑b
      (,(+ (+  500/200 6843/100003) -39246/100003) . "accidentals.flat")   ; Fb
      (,(+ (+  500/200 6843/100003)  52934/100003) . "accidentals.sharp")   ; F#
      (,(+ (+  700/200 8798/100003) -37291/100003) . "accidentals.flat")          ; Gb
      (,(+ (+  900/200    1/100003) -35337/100003) . "accidentals.flat.arrowup")  ; Ax = A↑b
      (,(+ (+ 1000/200 1957/100003) -44134/100003) . "accidentals.flat")   ; Bx = Bb
      (0 . "accidentals.natural"))

\layout {
  \context {
    \Score
    \override Accidental.glyph-name-alist           = \pitchGlyphs
    \override KeySignature.glyph-name-alist         = \pitchGlyphs
%    \override AccidentalCautionary.glyph-name-alist = \accidentalGlyphs
%    \override AccidentalCautionary.parenthesized = ##f
}}

#(ly:parser-set-note-names parser pitch-names)
%% 2.19:
%#(ly:parser-set-note-names pitch-names)

%%{
\score {
  \new PianoStaff
  <<
     \new Voice {
       \set Staff.keySignature =
       %% 2.19:
       %\set Staff.keyAlterations =
       #`(
          (6 . ,(+ (+ 1000/200 1957/100003) -44134/100003))
          (2 . ,(+ (+  400/200  978/100003) -34359/100003))
          (5 . ,(+ (+  900/200    1/100003) -35337/100003))
          (1 . ,(+ (+  200/200 9776/100003) -36314/100003)))
       \times 2/3 { c'16 [f' ax'] } c''4~ c''16 bx'16 ax'8.[ bx'16 g'8. ax'16 ]| % 1
       f'8. ges'16 ex'8. f'16 dx'8. ex'16 c'8. dx'16 | % 2
       bx8. c'16 ax8. bx16 ges8. ax 16 f8. g16| % 3
       e8 r8 <g' bx' dx''>8 r8 r2| % 4
     }
     
    \new Voice {
    \set Staff.keySignature =
    %% 2.19
      %\set Staff.keyAlterations =
      #`(
         (6 . ,(+ (+ 1000/200 1957/100003) -44134/100003))
         (2 . ,(+ (+  400/200  978/100003) -34359/100003))
         (5 . ,(+ (+  900/200    1/100003) -35337/100003))
         (1 . ,(+ (+  200/200 9776/100003) -36314/100003)))
        << {\clef "bass"
          <f, ax>2. <g, c>4 | % 1
          ax, a, bx, c | % 2
          dx c <bx, dx> <ax, c>|}\\
         {\clef "bass" \stemDown
            <f,~ c>1 <f,~ f> <f, f>2 s2 |}
       >> % 3
       <g, bx,>8 r <ex g bx dx'>8 r8 r2 | % 4
        }
  >>
 \layout {indent = 0\cm}
 %\midi {\tempo 4=100}
}


Ansonsten habe ich diese Imslp-preview gefunden



Da sieht man ja einige Unterschiede.
Besonders
Takt 1 Unterstimme: 4. Viertel e nicht c
Takt 2 Unterstimme: Auflösungszeichen vor 2. Viertel
Takt 4 Unterstimme: 2.Viertel Dein `ex' kann nicht richtig sein.


Gruß,
  Harm
 

erich

  • Member
Re: vergessenes Auflösungszeiche (Fehler in LP?)
« Antwort #17 am: Donnerstag, 25. Februar 2016, 09:05 »
Grüß Dich harm

Zitat
Ich denke noch immer man sollte bei der default-skala ansetzen.

Darüber denke ich auch schon nach; hoffentlich ist die Parametrisierung so wie ich sie mir vorstelle, das würde dann einiges vereinfachen. Ich werde aber erst am Wochenende dazu kommen - zu Deinen Ausführungen vielleicht früher.

Danke Erich

p.s. Deine Anmerkungen zu den Fehlern sind korrekt; der eine resultiert noch aus der Zeit, als ich noch kein work around für das Auflösungszeichen kannte.

Kannst Du mir vielleicht sagen, wie man den Vorschlag in

zu interpretieren hat.

Da Du eine zuverlässigere Ausgabe der Schubert-Noten hast als ich, kannst Du bitte überprüfen,
ob die Takte 44-45 so stimmen.
« Letzte Änderung: Donnerstag, 25. Februar 2016, 11:38 von erich »

erich

  • Member
Re: vergessenes Auflösungszeiche (Fehler in LP?)
« Antwort #18 am: Donnerstag, 25. Februar 2016, 16:45 »
Hallo allen,

ich habe mal versucht,  nach dem Munster von harm das Script mit  modifizierten scalepitches umzuschreiben. Das führt zwar zu einem brauchbaren Notensatz aber die MIDI-Ausgabe ist leider vollkommen unbrauchbar.

\version "2.18.2"
scalepitches =
#(vector (+    0/200 7821/100003)   
         (+  200/200 9776/100003)   
         (+  400/200  978/100003)   
         (+  500/200 6843/100003)   
         (+  700/200 8798/100003)   
         (+  900/200    1/100003)   
         (+ 1000/200 1955/100003) 
         )
#(ly:set-default-scale (ly:make-scale scalepitches))

#(define-public SF   46091/100003) 
#(define-public SFK  56844/100003)

pitch-names =
  #`(
      (ces  . ,(ly:make-pitch -1 0 (- SF)))
      (c    . ,(ly:make-pitch -1 0 NATURAL))
      (cis  . ,(ly:make-pitch -1 0 SF))     
      (dx   . ,(ly:make-pitch -1 1 (- SF)))
      (d    . ,(ly:make-pitch -1 1 NATURAL))
      (ex   . ,(ly:make-pitch -1 2 (- SFK)))
      (e    . ,(ly:make-pitch -1 2 NATURAL))
      (fes  . ,(ly:make-pitch -1 3 (- SF)))
      (f    . ,(ly:make-pitch -1 3 NATURAL))
      (fis  . ,(ly:make-pitch -1 3 SF))
      (ges  . ,(ly:make-pitch -1 4 (- SF)))
      (g    . ,(ly:make-pitch -1 4 NATURAL))
      (gis  . ,(ly:make-pitch -1 4 SF))
      (ax   . ,(ly:make-pitch -1 5 (- SFK)))
      (a    . ,(ly:make-pitch -1 5 NATURAL))     
      (bx   . ,(ly:make-pitch -1 6 (- SF)))
      (b    . ,(ly:make-pitch -1 6 NATURAL))
    ) 


pitchGlyphs =
  #`(
      (-46091/100003 . "accidentals.flat")
      (  0 . "accidentals.natural")
      ( 46091/100003 . "accidentals.sharp")
      (-56844/100003 . "accidentals.flat.arrowup")
    ) 
 
accidentalGlyphs =
  #`(
      (-46091/100003 . "accidentals.natural")
      ( 46091/100003 . "accidentals.natural")
      (-56844/100003 . "accidentals.natural")
      ( 0 ."accidentals.natural")
    )
 
  \layout {
  \context {
    \Score
    \override Accidental.glyph-name-alist           = \pitchGlyphs
    \override KeySignature.glyph-name-alist         = \pitchGlyphs
    \override AccidentalCautionary.glyph-name-alist = \accidentalGlyphs
    \override AccidentalCautionary.parenthesized = ##f
}}

#(ly:parser-set-note-names parser pitch-names)



\score {
  <<
     \new Voice { \set Staff.keySignature = #`((6 . ,(- SF)) (5 . ,(- SFK)) (2 . ,(- SFK)) (1 . ,(- SF)))
       
      \times 2/3 {c'16 [f' ax']} c''4~ c''16 bx'16 ax'8.[ bx'16 g'8. ax'16 ]| % 1
       f'8. ges'16 ex'8. f'16 dx'8. ex'16 c'8. dx'16 | % 2
       bx8. c'16 ax8. bx16 ges8. ax 16 f8. g?16| % 3
       e8 r8 <g' bx' dx''>8 r8 r4 \times 2/3 {c''16 [dx'' ex'']} dx''16 c''16| % 4

     }
     
    \new Voice { \set Staff.keySignature = #`((6 . ,(- SF)) (5 . ,(- SFK)) (2 . ,(- SFK)) (1 . ,(- SF)))
       
        <<
         {\clef "bass" \stemDown
            <f,~ c>1 <f,~ f> <f, f>2 s2 |}\\
         {\clef "bass" \stemUp
          <f, ax>2. <g, e?>4 |
          ax, a,? bx, c |
          dx c <bx, dx> <ax, c>|}
       
       >>
       <g, bx,>8 r <e? g bx dx'>8 r8 r2 |
       

    }                                       
  >>
 \layout {indent = 0\cm}
 \midi {\tempo 4=100}
}

Mag sein, dass ich was  übersehen habe.

Gruß Erich