[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: An unusual feature request concerning FiguredBass
From: |
Robert Blackstone |
Subject: |
Re: An unusual feature request concerning FiguredBass |
Date: |
Sun, 29 Apr 2018 22:33:19 +0200 |
Hi Kieren,
Your version did help me enormously. Thank you very much.
The whole score is now what it should be.
I usually work with separate voices to be collected in the score, but with the
extra BC-line I could not get it right. I spent most of this day wondering
what the hell the error messages told me.
Since I expect that more scores like this will be coming my way I have saved
the skeleton as a template.
Thanks again.
Best regards,
Robert Blackstone
On 29 Apr 2018, at 19:06 , Kieren MacMillan <address@hidden> wrote:
> Hi Robert,
>
>> Whatever I tried, it stubbornly kept "bass" for both staves. What am I doing
>> wrong?
>
> There’s a spurious instrument name setting. But given the structure of your
> code, it’s very hard to spot.
>
> Might I suggest putting all of your note code into variables, then building
> them together in the score later, so that the code is easier [for a human] to
> parse? Something like:
>
> %%% SNIPPET BEGINS
> \version "2.19.80"
>
> #(define-markup-command (stack layout props args) (markup-list?)
> (interpret-markup layout props
> #{ \markup \tiny \raise #0.5 \general-align #Y #CENTER
> \override #'(baseline-skip . 2) \right-column #args #}))
>
> sha = \markup { \fontsize #-3 \sharp }
> natu = \markup { \fontsize #-3 \natural }
> fla = \markup { \fontsize #-3 \flat }
>
> theMelody = {
> \clef "treble"
> \key f \major
> \time 4/2
> \set Staff.instrumentName = #"Cantus"
> \set Staff.timeSignatureFraction = 2/2
> d''1 d''2 cis''2 | %P1V1-1
> d''1 f''1 | %P1V1-2
> cis''2 d''2 e''1 | %P1V1-3
> d''2 \rest e''2 e''2 d''2 | %P1V1-4
> }
>
> theLyrics = \lyricmode {
> \set associatedVoice = "melody"
> TO1 heare2 me,2 Lord,1 be1 thou2 in-2 cline'd;1 2
> My2 thoughts2 O2
> }
>
> theBass = {
> \clef "bass"
> \key f \major
> \time 4/2
> \set Staff.timeSignatureFraction = 2/2
> d1 d2 a2| %P4V1-1
> bes1 f1| %P4V1-2
> a2 d2 a,1 | %P4V1-3
> g,2 \rest a,2 c2 d2 | %P4V1-4
> }
>
> figures_upper = \figuremode {
> < Pretonal >2 < _ >2 < _ >2 < _ >2 | %BC-1
> < 5 >2 < 6 >2 < 6 >2 < _ >2 | %BC-2
> < _ >2 < _ >2 < \sha >2 < _ >2 | %BC-3
> < _ >2 < 5 >2 < 5 >2 < 5 >2 | %BC-4
> }
>
> figures_lower = \figuremode {
> < Tonal >2 < _ >2 < _ >2 < _ >2 %1
> < 6 >2 < _ >2 < _ >2 < _ >2 %2
> < _ >2 < _ >2 < _ >2 < _ >2 %3
> < _ >2 < 5 >2 < 6 >2 < 6 >2 %4
> }
>
> \score {
> \new StaffGroup
> <<
> \new Staff
> <<
> \new Voice = "melody" \theMelody
> \new Lyrics \theLyrics
>>>
> \new Staff
> \with {
> instrumentName = "Bass"
> \override VerticalAxisGroup.staff-staff-spacing.basic-distance = 5
> }
> \new Voice \theBass
> \new FiguredBass
> \with {
> \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing =
> #'((basic-distance . 0) (minimum-distance . 0) (padding . 0.5)
> (stretchability . 10))
> }
> \figures_upper
> \new RhythmicStaff s1*8
> \new FiguredBass
> \with {
> \override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
> #'((basic-distance . 0) (minimum-distance . 0) (padding . 0.5)
> (stretchability . 5))
> }
> \figures_lower
>>>
> \layout {
> \context {
> \RhythmicStaff
> \omit TimeSignature
> \omit BarLine
> }
> }
> }
> %%% SNIPPET ENDS
>
> I’ve done a couple of other things to simplify the \score block — such as
> tweaking the \RhythmicStaff context in the layout block rather than inline —
> and there are more things you could (and I would!) do to take this philosophy
> even further.
>
>> The vertical line at the beginning of the figured bass lines does not bother
>> me, but I would like to be able to interrupt the horizontal line between the
>> two BC-variants in sections whre ther is no second set of figures. Would
>> that be possible at all?
>
> No doubt! I just don’t have time to look at that right now.
>
> Hope this helps!
> Kieren.
> ________________________________
>
> Kieren MacMillan, composer
> ‣ website: www.kierenmacmillan.info
> ‣ email: address@hidden
>