💾 Archived View for runjimmyrunrunyoufuckerrun.com › src › foreign › pmw › contrib › FigBass captured on 2021-12-17 at 13:26:06.
View Raw
More Information
-=-=-=-=-=-=-
@ This set of macros shows one way of handling figured bass notation in PMS.
@ Philip Hazel, February 1994. Updated February, April 1998, March 1999.
@ There is a basic macro called b, which prints its argument below the stave, at
@ the underlay level, using text size 2. This can be used directly if required,
@ in simple cases, for example:
@ &b(4) g &b(5) a
@ To cope with two numbers in a vertical stack, the macro d is defined to move
@ down an appropriate amount; it is used after the second call to b, for example,
@ &b(7)&b(9)&d
@ prints a 9 below a 7 under the next note.
textsizes 10 9 2.5
- define d /d9
- define b() "\rm\&&1"/bu/s2
@ The effect of using the underlay level is that all the figurings on a given
@ line are printed at the same level. If you don't want this, then "bu" can be
@ changed to "b" to print below each individual note. If you do this, the d
@ macro becomes irrelevant, since PMS automatically prints multiple
@ non-underlay strings below each other. Either remove the references to &d
@ below, or define it to be null, for example:
@ *define d
@ *define b() "\rm\&&1"/b/s2
@ The remaining macros are all defined in terms of b and d. Note that, because
@ macros are handle in a single pass in PMS, you cannot nest macro calls. That
@ is, you cannot use a call to one macro inside the argument of a call to
@ another. That is why the accidental strings are written out explicitly in
@ several cases.
@ When accidentals occur as part of the figuring, they have to be printed at an
@ appropriate size and positioned nicely with respect to any adjacent figures.
@ These three macros are defined in terms of the b macro, and print solitary
@ accidentals, at available sizes that I think look reasonable. This is a fudge
@ to avoid having to define different text strings in order to use other sizes.
@ The sharp and natural use the full-size music font, but reduced to the "small
@ cap" size, while the flat uses the reduced music font.
@ These define a flat, natural, and sharp, respectively. The same strings are
@ used when an accidental is required in one of the composite figures defined
@ afterwards.
- define bf &b(\mu\z~v')
- define bn &b(\mf\\sc\zxv\40\)
- define bs &b(\mf\\sc\zxv%)
@ These are shorthands for common figurings. Well, they were common in a set of
@ examples that I happened to be printing when I originally defined these, and
@ they have been added to subsequently. You can easily extend them further by
@ copying and modifying.
- define 3 &b(3)
- define 3f &b(3\mu\z~v')
- define 3n &b(3\mf\\sc\zxv\40\)
- define 4 &b(4)
- define 42 &b(4)&b(2)&d
- define 4c2 &b(\mf\k)&b(2)&d
@ This version built from a 4 and a +
- define 4cp2 &b(4\mu\yy\135\)&b(2)&d
- define 43 &b(4)&b(3)&d
- define 4f &b(4\mu\z~v')
- define 4f3 &b(4\mu\z~v')&b(3)&d
- define 4n2 &b(4\mf\\sc\zxv\40\)&b(2)&d
- define 4n3 &b(4\mf\\sc\zxv\40\)&b(3)&d
- define 4s &b(4\mf\\sc\zxv%)
- define 5 &b(5)
- define 53 &b(5)&b(3)&d
- define 54 &b(5)&b(4)&d
- define 5c &b(\mf\\179\)
@ This version uses a 5 and a +
- define 5cp &b(5\mu\x~vyyy\135\)
- define 5csb &b(\mf\\179\)&bs&d
@ This version uses a 5 and a +
- define 5cpsb &b(5\mu\x~vyyy\135\)&bs&d
- define 5f &b(5\mu\z~v')
- define 5sb &b(5)&bs&d
- define 6 &b(6)
- define 6c &b(\mf\s)
@ This version uses a 6 and a rotated thick barline
@ *define 6cp &b(6)&b(\mf\\66\)/s3/u4.5/r3.9/rot70
@ This version uses a 6 and a rotated +
- define 6cp &b(6)&b(\mu\\135\)/u3.5/r2/rot25
- define 64 &b(6)&b(4)&d
- define 64c &b(6)&b(\mf\k)&d
@ This version uses a 4 and a +
- define 64cp &b(6)&b(4\mu\yy\135\)&d
- define 642 &b(6)&b(4)&d&b(2)&d&d
- define 65 &b(6)&b(5)&d
- define 6f &b(6\mu\z~v')
- define 6fb &b(6)&bf&d
- define 6f4 &b(6\mu\z~v')&b(4)&d
- define 6n &b(6\mf\\sc\zxv\40\)
- define 6s &b(6\mf\\sc\zxv%)
- define 7 &b(7)
- define 72f &b(7)&b(2\mu\z~v')&d
- define 742 &b(7)&b(4)&d&b(2)&d&d
- define 75 &b(7)&b(5)&d
- define 75c2 &b(7)&b(\mf\\179\)&d&b(2)&d&d
@ This version uses a 5 and a +
- define 75cp2 &b(7)&b(5\mu\x~vyyy\135\)&d&b(2)&d&d
- define 7c &b(\mf\j)
- define 7nb &b(7)&bn&d
- define 7s &b(7\mf\\sc\zxv%)
- define 7sb &b(7)&bs&d
- define 7s3 &b(7)&bs/l4&d&b(3)&d
- define 7u &b(7_)
- define 86 &b(8)&b(6)&d
- define 95 &b(9)&b(5)&d
- define 97 &b(9)&b(7)&d
- define 9fsb &b(9\mu\z~v')&bs&d
- define bu &b(\mf\~\rm\_)
- define bus &b(\mf\~\rm\_)&bs&d
@ End of figured bass macros.