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: Thomas Morley
Subject: Re: Help with Scheme engraver please
Date: Sat, 10 Sep 2016 00:31:23 +0200

Hi Trevor,

2016-09-08 0:07 GMT+02:00 Trevor Daniels <address@hidden>:
>
> ----- Original Message -----
> From: "Thomas Morley" <address@hidden>
> To: "Trevor Daniels" <address@hidden>
> Cc: "Lily-Devel List" <address@hidden>
> Sent: Sunday, September 04, 2016 7:28 AM
> Subject: Re: Help with Scheme engraver please
>
>
>> 2016-09-03 19:29 GMT+02:00 Thomas Morley <address@hidden>:
>>
>>> I've put some work on it. See attached duration-as-markup-5b-harm.ly
>>> The general work should be clear from comments and descriptions.
>>> There's some ugly code in it, although it works so far, wide room for
>>> improvements still there.
>>> Nevertheless it works now even in polyphonic.
>>
>> Please replace the coding in `stop-translation-timestep' with:
>>
> [snip]
>>
>> This will cure a bug with last notes starting at some moment, but with
>> different durations.
>
> Thanks  Harm, for this and the preceding mail.  I've found them very
> helpful.  In particular, a simpler way to set stringTuning and how to set
> persistent variables within engravers.  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.

You seems to be of different opinion, for some cases you let
explicitely print the warning:
"Polyphony is not supported in lute tab"


> Actually I'd got quite a bit further than the simple example I posted,
> and my current state is attached, extracting durations and pitches
> from note-events, and detecting the start of bars by acknowledging
> barline grobs.  This version draws duration grobs whenever the
> duration changes, and at the start of every bar, bass course
> grobs below the tab, adds fingering and laissez vibrer slurs (I think
> that's what they are used for.)

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?

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
https://sourceforge.net/p/testlilyissues/issues/4768/
sufficient?

Didn't dive into it further, hopefully during the upcoming weekend ...

Cheers,
  Harm



reply via email to

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