lilypond-devel
[Top][All Lists]
Advanced

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

Re: Help with Scheme engraver please


From: Trevor Daniels
Subject: Re: Help with Scheme engraver please
Date: Mon, 19 Sep 2016 11:32:38 +0100

Trevor Daniels wrote Saturday, September 17, 2016 9:57 PM

> Thomas Morley wrote Friday, September 09, 2016 11:31 PM
> 
>> 2016-09-08 0:07 GMT+02:00 Trevor Daniels <address@hidden>:
>>>
>>>  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 
> pair
> (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
> notes.
> 
> 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.
> 
> I need now to study your approach to polyphony in greater detail to understand
> the logic.

Having thought about polyphony in tab a little more I realise now there is a 
fundamental difficulty: it is quite possible to have an interval in time 
between two adjacent notes that cannot be represented as a single duration.  In 
staff representation ties would be used to do this, but I don't think ties were 
used in baroque tab, were they?  Even if they were, implementing them at this 
early stage would be a step too far, at least for me.  So I plan to sidestep 
polyphony at present and concentrate on implementing lute tab from a single 
voice.  There's plenty to do yet to achieve that in a form suitable for a LP 
patch.

Trevor

reply via email to

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