I recently tried to redo a score such that my ties did not intersect with ...
12 years, 10 months ago
(2011-05-13 00:40:23 UTC)
#1
I recently tried to redo a score such that my ties did not intersect with time
signatures. I got it to work with buggy code and a lot of kludges, so I thought
I'd propose a modified version with less kludges (though still buggy code).
The code is getting the bezier t points wrong in Tie::make_keep_regions, which
makes the X-extent of the two bezier extracts wrong. It does not do Y-extent
checking yet, but I'll sort that out once I get the X-extent stuff right. Below
is a test file I've been using which shows both ok(ish) and bad results. I also
have a comment and a pretty print in the code to help anyone willing to take a
stab at why the X-extents are slightly off.
Any help with the X-extent problem would be appreciated! This code is obviously
generalizable outside of ties and I'll get to that in due time, but first I want
to nail the X-extent problem.
\version "2.15.0"
% bad
\relative c'' {
\tieUp
a1 ~ \time 8/8 a1 |
}
% ok
\relative c'' {
\time 4/4 r2... d16 ~ \time 8/8 d16 r2... |
}
% ok
\relative c'' {
\tieUp
\time 8/8 r2... g16 ~ \time 4/4 g16 r2... |
}
% ok
\relative c'' {
\tieUp
\time 8/8 r2.. g8 ~ \time 4/4 g8 r2.. |
}
% ok
\relative c'' {
\tieUp
\time 8/8 r2. g4 ~ \time 4/4 g4 r2. |
}
% bad
\relative c'' {
<< { \time 8/8 r2. g4 ~ \time 4/4 g4 r2. } \\ { \repeat unfold 64 { d32
\noBreak } } >>
}
I didn't follow everything you've done, because I didn't have time to look through it ...
12 years, 10 months ago
(2011-05-13 02:52:47 UTC)
#2
I didn't follow everything you've done, because I didn't have time to look
through it all in detail.
You should be aware, however, that the points for the tie are different from the
extents. The left end of a tie will be at t = -delta, rather than at t=0. This
is because of the width of the curve; the bezier curve goes through the center
of the ink; there's a non-zero width to the bezier.
I'm not sure if this is responsible for your difficulties, but I think it may
be.
HTH,
Carl
Thanks Carl! I changed my code to use the extent method from Bezier, and it ...
12 years, 10 months ago
(2011-05-13 09:30:37 UTC)
#3
Thanks Carl!
I changed my code to use the extent method from Bezier, and it looks like
nothing (or not much) changed in the visuals. Will post a new version once I get
home. In the meantime, if anyone has a chance to play around with it, lemme know
if you can get a good result and/or other suspicions as to why the result is
bad.
~Mike
On May 12, 2011, at 22:52, Carl.D.Sorensen@gmail.com wrote:
> I didn't follow everything you've done, because I didn't have time to
> look through it all in detail.
>
> You should be aware, however, that the points for the tie are different
> from the extents. The left end of a tie will be at t = -delta, rather
> than at t=0. This is because of the width of the curve; the bezier
> curve goes through the center of the ink; there's a non-zero width to
> the bezier.
>
> I'm not sure if this is responsible for your difficulties, but I think
> it may be.
>
> HTH,
>
> Carl
>
>
> http://codereview.appspot.com/4528061/
>
> _______________________________________________
> lilypond-devel mailing list
> lilypond-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-devel
Issue 4528061: Start towards fixing the tie / time signature collision problem.
(Closed)
Created 12 years, 10 months ago by MikeSol
Modified 12 years, 10 months ago
Reviewers: carl.d.sorensen_gmail.com, mike_apollinemike.com
Base URL:
Comments: 0