Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

abcm2ps decorations to add support for variation notation modeled after Samuel Bayard's

License

NotificationsYou must be signed in to change notification settings

olets/bayard-variations

Repository files navigation

Theseabcm2ps "decos" add support for above the staff variation-marking notation toabc.

Click here to download a zip of these files.

For years in my fiddle transcriptions I marked variations with a superscripted letter (in abc, this was"^a..."). Finally I came across that exact idea in print in Jeff Todd Titon'sOld Time Kentucky Fiddle Tunes. Titon says he "and other scholars" trace the idea back toSamuel Bayard, in his 1944Hill Country Tunes: Instrumental Folk Music of Southwestern Pennsylvania. Bayard's notation was actually nicer, as it showed exactly which notes were varied (my crop):

After I'd been working on PostScript decorations to emulate Bayard for a while, Beáta Salamon'sMagyar népzenei dallamgyűjtemény came out… and what did I find in it but beautiful Bayard-type variation notation!

Thesebayard-variations are my own expansion on Bayard's and Salamon's designs.

Contents

Usage

Download at leastbayard-variations.fmt. Run abcm2ps with

abcm2ps INPUTFILE.abc -F bayard-variations.fmt

(See theabcm2ps readme for additional options.)

Usehbv-deco-chords.fmt to support writing guitar chords (e.g."A") with stacked variation decorations (seebelow). Simply download the file in addition tobayard-variations.fmt, and uncomment (remove the line-initial% from) the first line ofbayard-variations.fmt.

Variation decoration types

  1. var-x

    !var-x(! y0 AAA BBB !var-x)!

    printsx-------, over the notes AAA BBB

  2. var-xy

    !var-xy(! y0 AAA BBB !var-xy)!

    printsx, y----, over the notes and so on forvar-xyz,var-xyz1, andvar-xyz12

  3. var

    !var(! y0 AAA BBB !var)!

    prints,-------, over the notes

  4. varcontinues-x

    !varcontinues-x(! y0 AAA BBB !varcontinues-x)!

    printsx--------- over the notes (e.g. for use when a variation extends beyond the end of a staff).varcontinues-x is intended to pair with varcontinued

  5. varcontinues

    !varcontinues(! y0 AAA BBB !varcontinues)!

    prints,--------- over the notes (e.g. for use when a variation extends beyond the end of a staff).varcontinues is intended to pair with varcontinued

  6. varcontinued

    !varcontinued(! y0 AAA BBB !varcontinued)!

    prints--------, over the notes (e.g. for use when a variation started before the current staff.varcontinued is intended to pair with either varcontinues-x or varcontinues

Those decorations don't stack nicely with each other or with repeats (e.g.[1 ... ]). If you need to mark overlapping variations, or need to use these decorations within a repeat, use the_stack variants:

  1. var-x_stack

    !var-x_stack! !var-y_stack! y0 AAA !var-y_stack)! BBB !var-x_stack)!

    printsy----, overAAA and, above that,x---------, overAAA BBB

  2. varcont_stack

    !varcont_stack(! !var-x_stack! AAA !var-x_stack)! BBB !varcont_stack)!

    printsx----, overAAA and, over that, prints-----------, overAAA BBB

Notes:

  • guitar chords (in"" quotations)don't look good with stacked variationmarkers. Use the includedhbv-deco-chords.fmt to get around this - include that.fmt and replace any

     !var..._stack(! y0 "X" ... !var..._stack)!

    with

     !var..._stack(! y0 !X! y0 ... !var..._stack)!

    The first line ofbayard-variations.fmt importshbv-deco-chords.fmt, commented out. The easiest way to add!chord! support, if you don't already have a base.fmt file to import both files into, is to download both.fmts, put them in the same folder, and uncomment that first line ofbayard-variations.fmt.

  • I recommend always putting ay0 after the opening deco of a long decoration,e.g. after!var-x(!. It's sometimes a good idea to put one after the closingdeco!var-x)! and, in the case of variation markers stacked above guitar chords, after the!X! stackable guitar deco.

Customization

I use Monaco 9 for the label and a thin 60%-black dashed line

  • The font is defined before every occurrence of the postscript commandshow
  • The thickness of the line is defined before everySLW (abcm2ps shorthand forthe postscript commandsetlinewidth) (default:0.5)
  • The darkness of the line is defined before every non-zerosetgray (default:0.6)
  • The dash is defined before every non-[]setdash (default:[3 5], which is 3pxof line followed by 5px of space)

The line could be made e.g. solid and black by commenting out allsetdash andsetgray.

Included decorations

I've included a lot of decorations, which should cover most needs:

No referent:

  • the unnamed decorationvar

Single referent:

  • single-letter decorationsvar-a tovar-z
  • single-letter stackable decorationsvar-a_stack tovar-z_stack
  • single-number decorationsvar-0 tovar-9
  • single-number stackable decorationsvar-0_stack tovar-9_stack
  • an asterisk decorationvar-*

Two referents:

  • two-letter decorationsvar-ab tovar-yz for non-overlapping sequential pairs (e.g.var-bc, notvar-ac)
  • two-number decorationsvar-12,23,34,45
  • assorted other two-letter decorations I've needed (var-is,cm,be,fj,pq,bd,ei,z1)
  • assorted two-letter stackable decorations I've needed (var-bc_stack,de,ef,gh,ij,jk,lm,no,pq,z1)

Three referents:

  • three-letter decorationsvar-abc toklm (again, in non-overlapping sequential triplets - soabc anddef but notbcd orcde (though in that particular case, see immediately below))
  • assorted other three-letter decorations I've needed (var-bcd,cde,cgh,cdj,mno,rst,stu,tuv)
  • assorted stackable three-letter decorations I've needed (var-ghi_stack,opq,stu,tuv,vwx)

More than three referents:

  • some four-letter decorations I've needed (var-abcd,klmn,lmno,vwxy,wxyz)
  • some stackable four-letter decorations (var-efgh_stack,fghi)
  • some five-letter decorations (var-abcde,defgh,aemno)

Open-ended (no referent, or single- or multiple-referent):

  • the open-ended unnamed decorationvarcontinues
  • single-letter open-ended decorationsvarcontinues-a tovarcontinues-h
  • stackable unnamed open-ended decorationvarcons_stack
  • the open-start decorationvarcontinued
  • stackable open-start decorationvarcont_stack

Special:

  • var-first decoration for a first-time-through variation
  • var-last decoration for a last-time-through variation

If that doesn't meet your needs, you can always

Design your own

You'll need to add three lines per decoration, withinbeginps...endps:

/var-[name]{/varname ([marker text] def [1var/[2-5]vars]}!deco var-[name]( [5 for normal, 7 for stacking] - 17 0 0deco var-[name]) ["] var-[name] 17 0 0

One-Character Example:var-a

/var-a{/varname (a) def 1var}!deco var-a( 5 - 17 0 0deco var-a) 5 var-a 17 0 0

Two-Character Example:var-ab

/var-a{/varname (a, b) def 2vars}!deco var-ab( 5 - 17 0 0deco var-ab) 5 var-ab 17 0 0

Three-Character Example:var-abc

/var-abc{/varname (a, b, c) def 3vars}!deco var-abc( 5 - 17 0 0deco var-abc) 5 var-abc 17 0 0

Four-Character Example:var-abcd

/var-abcd{/varname(a, b, c, d) def 4vars}!deco var-abcd( 5 - 17 0 0deco var-abcd) 5 var-abc 17 0 0

Five-Character Example:var-abcde

/var-abcde{/varname (a, b, c, d, e) def 5vars}!deco var-abcde( 5 - 17 0 0deco var-abcde) 5 var-abcde 17 0 0

Custom Example:var-custom

/var-custom{/varname (a. bc!!) def 3vars}!deco var-custom( 5 - 17 0 0deco var-custom) 5 var-custom 17 0 0

Custom Stackable Example:var-custom2

/var-custom_stack{/varname (a. bc!!) def 3vars}!deco var-custom_stack( 7 - 17 0 0deco var-custom_stack) 7 var-custom_stack 17 0 0

Note:for custom variables, by default your marker text can be one, fourseven, ten, or thirteen characters long (using 1var, 2vars, 3vars, 4vars, and5vars, respectively). For marker text of other lengths you'll need to customize thevariable<adjust>, which determines the horizontal placement of the marker line's start.

Architecture

Here's the logic

  1. Named, bracketing at end
     decovar-[x[y[z[1[2]]]]][_stack](
     and
     decovar-[x[y[z[1[2]]]]][_stack])
      depend on
      /var-x
       depends on
       /[#]vars
        depends on
        /variation

  2. Unnamed, bracketing at start and end
     decovar(
      depends on
      \unnamedvar

  3. Open, named, extending a little further right than the default
     decovarcontinues-[x[y[z[1[2]]]]](
     and
     decovarcontinues-[x[y[z[1[2]]]]])
      depend on
      /varconts-a
       depends on
       /1contvar

  4. Open, unnamed, extending a little further right than the default
     decovarcontinues(
     and
     decovarcontinues)
      depend on
      /varcontsunnamed

  5. Open at left, extending a little further left than the default
     decovarcontinued(
     and
     decovarcontinued)
     and
     decovarcont_stack(
     and
     decovarcont_stack)
      depend on
      /varcontd

If something goes wrong

bayard-variations not working for you? Check to see if it's aknown issue. If it isn't, add it!

I'll mention one bug in particular: sometimes the decos may draw below the staff instead of above it. Just addI: dynamic 1 to each tune or, to cover the entire abc file, at the top of the file. I do this in the bayard-variations demo, and it's documented inissue #1.

 

License

bayard-variations byHenry Bley-Vroman is licensed underCC BY-NC-SA 4.0 with a human rights condition fromHippocratic License 2.1. Persons interested in using or adapting this work for commercial purposes should contact the author.

For the full text of the license, see theLICENSE file.

About

abcm2ps decorations to add support for variation notation modeled after Samuel Bayard's

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp