[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: in what unit is shift_amount measured? (preparing fix for 1546)
From: |
Janek Warchoł |
Subject: |
Re: in what unit is shift_amount measured? (preparing fix for 1546) |
Date: |
Sun, 25 Sep 2011 22:11:12 +0200 |
Looks like i've asked too many questions...
I'll try to prepare some draft and put it up to Rietveld.
cheers,
Janek
2011/9/13 Janek Warchoł <address@hidden>:
> 2011/9/13 Han-Wen Nienhuys <address@hidden>:
>> 2011/9/12 Janek Warchoł <address@hidden>:
>>> i'm pretty confused about how note columns shift is measured (line 277
>>> and following in note-collision.cc). I tried modifying the values
>>> there, but the results were quite unexpected; i tried to trace in what
>>> unit is shift_amount measured but to no avail. Could you enlighten
>>> me?
>>> (my idea to fix 1546 is to include X-extent of the left note column in
>>> shift_amount).
>>
>> see Note_collision_interface::calc_positioning_done (SCM smob); it's
>> width of the notehead of clashgroup 0.
>
> i see something... is it line 387: wid = ... ?
> I think the problem is precisely that we read the x-extent of
> clashgroup 0 (the one in the structurally highest voice, i.e. in
> voiceOne) which doesn't have to be the one that will end up on the
> left.
> Hmm... all this looks very complicated, and i think it qualifies for
> a partial rewrite.
>
> I'd say that it should work like this:
> get the colliding notecolumns (it's notecolumns that the code is
> working on, isn't it?)
> decide which goes on the left
> calculate amount of shift
> apply this shift (or a user-overridden one)
>
> Some more questions to clarify things:
> how do i know which clashgroup (or whatever else is appropriate) ends
> on the left?
> How does shift work - does it only move the column on the right by the
> shift_amount, or does it try to move both columns, each by half
> shift_amount?
> What is amount, amounts and tups?
> What's a slice and what does it do here?
> Is Note_collision_interface::calc_positioning_done the top-most
> function? (i.e. the one that is called from outside - sort of main() -
> and everything else in note-collision.cc is it's "descendant"?)
> When a "full collision" occurs?
> Is all ASCII-art correct? I don't see what "illustrations" on lines
> 125 and 510 could mean.
>
> Sorry for noobish questions, but i'm reading this file for an hour and
> still don't understand it. It's like a Gordian Knot to me.
>
> thanks,
> Janek
>