Hi Carl,

>
> Hi, Felipe.
>
> I've looked at your patch, but I'm having a bit of trouble seeing how the
> patch resolves the issues that are identified in issue 1278.
>
> I must admit that i've not yet fully understood Hans's emails on issue 1278.
>
> How do your new two-element alterations improve the situation?
>

You don't need to go back to those emails. I hope the attachment in my
last email can help. But for a simple example of how my patch works,
when you type, e.g., ciseh' in a LilyPond input file, this is mapped to a
pitch that has as alteration (1 . -1), meaning "one semitone minus one
quarter-tone", which might then be typeset as a sharp with a down-arrow.

In contrast, cih' has as alteration (0 . 1), which might be mapped to
a natural with an up-arrow.

The current representation cannot make that distinction, both alterations
would be 1/4 (for this reason ciseh is not even defined).

>
> It would be very helpful for me to discuss this patch if you had a test file
> that shows how the new features are used.
>

I am very sorry for forgetting to provide this. I am attaching some examples.

arrows.ly demonstrates the functionality requested in issue 1278.
dodecaphonic-adapted.ly is an adaptation of the snippet dodecaphonic.ly
using the new interfaces.

> It would be even better if there were a test file that compiled but didn't
> behave properly in 2.13.44, and then a corresponding file that does behave
> properly in your patch.
>

This is an enhancement request for which we have files that did not
compile in the previous version, but that now produce nice scores
(again, see arrows.ly).

Thanks,
Felipe
\version "2.13.45"

music = \relative c' {
      ceses4 ceseh ces cesih
      ceh c2 cih4
      ciseh4 cis cisih cisis
}

\score {
  \new Staff {
    \override Staff.Accidental #'glyph-name-alist = #arrow-alteration-glyph-name-alist
    \music
    \transpose c f { \music }
  }

  \midi { }
  \layout { }
}

%LSR originally contributed by Graham Breed for version "2.11.65"

% Dodecaphonic notation, after Erv Wilson, but probably an earlier idea.

\include "english.ly"

% set the nominals to be 12-equal
#(ly:set-default-scale (ly:make-scale '#((0 . 0) (0 . 0) (0 . 0) (0 . 0)
                                         (0 . 0) (0 . 0) (0 . 0) (0 . 0)
                                         (0 . 0) (0 . 0) (0 . 0) (0 . 0)
                                         (0 . 0)) 1/2 1/2 1/4))

% Set the pitches to 12-equal with enharmonic equivalences
% keep the original pitch names.
% Preserves quartertones as half-sharps.
dodecaPitchNames = #(map (lambda (pitchname)
             (let* ((pitch (cdr pitchname))
                    (quartertones (ly:pitch-quartertones pitch))
                    (fractional-steps (/ quartertones 2))
                    (steps (inexact->exact (floor fractional-steps))) ;; Not sure if inexact->exact is needed here
                    (alt (inexact->exact
                           (floor (* 2 (- fractional-steps steps))))))
                   (cons (car pitchname)
                         (ly:make-pitch 0
                                        steps
                                        (cons 0 alt)))))
              pitchnames)

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

\layout {
  \context {
    \Score
    \override StaffSymbol #'line-positions = #'(-5 -3 0 2 4)
    % hack to suppress ledger line, seems to have a lower limit
    \override StaffSymbol #'ledger-line-thickness = #'(0.0006 . 0)
  }
}
\score{
    \new Staff
    \relative c' {
        c d e f g a b c
        c, cs d ds e f fs g gs a as b c1
        c4 b bf a af g gf f e ef d df c1
        c4 cqs cs dqf d dqs ds eqf e eqs f fqs fs gqf g gqs gs aqf a aqs as bqf b bqs c1
        }
}
_______________________________________________
lilypond-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to