lilypond-auto
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Lilypond-auto] [LilyIssues-auto] [testlilyissues:issues] Re: #3692 Fing


From: Auto mailings of changes to Lily Issues via Testlilyissues-auto
Subject: [Lilypond-auto] [LilyIssues-auto] [testlilyissues:issues] Re: #3692 Fingering collision with accidentals
Date: Fri, 03 Aug 2018 14:20:00 -0000

A fingering number should always (!) be attached to a specific note, never to a chord in general.

Why do you think so?
Recently I've typeset a flamenco piece, where I rather wished my right hand fingerings (indicating strokes of one finger for the whole chord) would have been accepted by a chord in general.
Adding it to a specific note in the chord is ofcourse possible, but against the musical sense.
Instead I used TextScript for those indications, but TextScript doesn't support 'add-stem-support, afaict. So the result is sub-optimal.
Admittedly this is about StrokeFingers, but there may be the case where you want to demonstrate alternative fingerings. Which is very conveniant using both fingerings to every note and to the chord in general.
Maybe other use-cases are possible as well...

Additionally I made some experiments resetting Fingerings x-parent to the NoteColumn via ScriptColumn.
It slows down compilation (at least when integrating StringNumber and StrokeFinger). So it might not be the best approach. Nevertheless I'll post it below, so everyone can watch the results without recompiling the source.

#(define RH rightHandFinger)
chrdI = <e'' f'' cis'''>1.-1-2-5 \1\2\3 -\RH #1 \RH #2 -\RH #3 -.--
chrdII = <e''-1\1-\RH #1 f''-2\2-\RH #2 cis'''-5\3-\RH #3 > -.--
%% comment next line to test StringNumbers and StrokeFingers as well
chrdII = <e''-1 f''-2 cis'''-5 > -.--

mus = {
  <>^"chord fingering"
  \chrdI
  <>^"in-chord fingerings"
  \set fingeringOrientations = #'(up)
  \set stringNumberOrientations = #'(up)
  \set strokeFingerOrientations = #'(up)
  \chrdII
  \set fingeringOrientations = #'(down)
  \set stringNumberOrientations = #'(down)
  \set strokeFingerOrientations = #'(down)
  \chrdII
  \set fingeringOrientations = #'(left)
  \set stringNumberOrientations = #'(left)
  \set strokeFingerOrientations = #'(left)
  \chrdII
  \set fingeringOrientations = #'(right)
  \set stringNumberOrientations = #'(right)
  \set strokeFingerOrientations = #'(right)
  \chrdII
}

#(define set-certain-scripts-x-parents-to-nc
  (lambda (grob)
    (let* ((scripts (ly:grob-object grob 'scripts))
           (fingerings
             (if (null? scripts)
                 '()
                 (filter
                   (lambda (f)
                     (or
                       (grob::has-interface f 'finger-interface)
                       (grob::has-interface f 'stroke-finger-interface)
                       (grob::has-interface f 'string-number-interface))
                       )
                   (ly:grob-array->list scripts))))
           (x-par (ly:grob-parent grob X))
           (nc 
             (filter
               (lambda (nc)
                 (grob::has-interface nc 'note-column-interface))
               (ly:grob-array->list (ly:grob-object x-par 'elements)))))

    (for-each
      (lambda (f) (ly:grob-set-parent! f X (car nc)))
      fingerings))))

resetCertainScriptsParents =   
\override Staff.ScriptColumn.after-line-breaking = 
  #set-certain-scripts-x-parents-to-nc

{
  \time 3/2
  \mus
  \break
  \resetCertainScriptsParents
  \mus
}    

Up/down fingerings should actually be aligned on top of each other in one single column. The solution presented above avoids collisions, but still is incorrect.

Agreed.


[issues:#3692] Fingering collision with accidentals

Status: Started
Created: Sat Nov 30, 2013 09:17 AM UTC by Anonymous
Last Updated: Fri Aug 03, 2018 02:00 PM UTC
Owner: Torsten Hämmerle
Attachments:

Originally created by: *anonymous

Originally created by: address@hidden

Fingerings do not take accidentals into account, and fingerings align over the first note inout of a chord, rather than centering over the whole chord.
\version "2.17.96"

{
  <e'' f'' cis'''>1 ^1^2^5
}

From Keith Ohara:
"Unfortunately this is a different bug -- or two -- so it will
not be fixed at the same time as collisions between Fingerings.

(1) LilyPond has never looked at Accidentals when placing Fingering;
until recently that caused only small overlaps with sharps because
the Fingering did not previously fit so close to the chord.

(2) Fingering on a chord as a whole should center over the main column
of note-heads; instead it centers over the first-input note.

So, you can do the same as we did when using version 2.12: rearrange
the order of pitches in the chord so a main-column note comes first.

{ <f'' e'' cis'''>1 ^1^2^5 }

***********
From Janek :

This is similar to issues
https://code.google.com/p/lilypond/issues/detail?id=2245
https://code.google.com/p/lilypond/issues/detail?id=2451
https://code.google.com/p/lilypond/issues/detail?id=2452

and i believe to solve it in a general way we would have to teach
lilypond about different kinds of extents - see:

http://lists.gnu.org/archive/html/lilypond-devel/2012-06/msg00230.html
https://code.google.com/p/lilypond/issues/detail?id=3239 (sorry, that
issue got pretty messy).

Currently the work i started on this is waiting until 2.18.0 is out...
What about leaving it for now and attacking this together after 2.18?
************
Possibly a Known Issue in NR 1.7.1 would be in order.


Sent from sourceforge.net because address@hidden is subscribed to https://sourceforge.net/p/testlilyissues/issues/

To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/testlilyissues/admin/issues/options. Or, if this is a mailing list, you can unsubscribe from the mailing list.

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Testlilyissues-auto mailing list
address@hidden
https://lists.sourceforge.net/lists/listinfo/testlilyissues-auto

reply via email to

[Prev in Thread] Current Thread [Next in Thread]