Thomas Morley wrote Friday, September 09, 2016 11:31 PM

Hi Harm

back now from my week away ...

> 2016-09-08 0:07 GMT+02:00 Trevor Daniels <>:
>>  But I don't understand why you
>> used a rather complicated procedure to obtain durations.  Could you
>> not simply extract the durations from note events?
> In my opinion the historic lute tablatures were written disregarding
> any polyphony as far as rhythmy are concerned, yes.
> But this polyphony was always _meant_ and the player should respect it.
> For our coding this means an example like
> upper = { d'2 d' }
> middle = { \override Rest.staff-position = #-1.5 r8 f r8 f r8 f r8 f }
> lower = { a,4\rest d a,4\rest d }
> \score {
>  <<
>   \new Staff << \clef "G_8" \upper \\ \lower \\ \middle >>
>   \new TabStaff
>   << \clef "G_8" \upper \\ \lower \\ \middle >>
>  >>
>  \layout {
>        \context {
>            \TabStaff
>          stringTunings = \stringTuning <a, d f a d' f'>
>        }
>  }
> }
> should return proper polyphonic in Staff, and in TabStaff only a
> single 8th indication for the overall rhythm should be printed.
> This can be achieved with my proposal and would warrant the principle
> of one source-code for Staff _and_ TabStaff.
> I didn't found a method to do so with simple durations.

OK, I see now why you need to extract the interval between a note and the
subsequent note even when they are split between several voices.  
This interval then should be displayed as the "duration" of the first of the 
(unless it is unchanged from the previous one, of course)

I agree this can't be done by looking solely at the duration of individual

However, your code doesn't quite work in all situations.  If you replace the
first f in the middle voice with a rest we should have a duration of 4 followed
by one of 8, but the 8 is missing.
> You seems to be of different opinion, for some cases you let
> explicitely print the warning:
> "Polyphony is not supported in lute tab"

Well, I meant it wasn't supported in my simple implementation, not
that it shouldn't be.

> Always printing the duration at the start of every bar even if
> unchanged happens sometimes, but sometimes not, Maybe let it depend on
> a context-property?

Yes, a sensible later step.
> For the bass courses.
> I didn't understand this point in your former mails. Now with your
> code its clearer to me.
> But why you do it this way? Isn't my implementation of
> sufficient?

Well, to be honest I'd forgotten about this.  But unfortunately it is 
with the nice fret number glyphs from Fronimo as that font doesn't include
a '/'.  However, as we can't adopt the Fronimo fonts anyway I'll revert to using
your implementation in any future work.

I need now to study your approach to polyphony in greater detail to understand
the logic.


lilypond-devel mailing list

Reply via email to