NAME - Some procedures for drawing musical symbols in PostScript


 (/home/wherever/ps/lib/ run
 % if run fails with invalidaccess you may need to use  gv --nosafer
 % to send it to a printer see include_run . . .

 140 400 600 20 stave    % xleft xright ytop staveheight
 140 600 580 20 bracket  % x ytop ybottom staveheight
 150 600 20 bassclef     % x ytop staveheight
 170 585 20 whiteblob    % x y staveheight
 220 595 20 blackblob    % x y staveheight
 216 595 575 20 quaverstemdown % x ytop ybottom staveheight
 235 600 20 blackblob
 231 600 580 20 quaverstemdown
 216 605 236 610 +1 20 slur % xl yl xr yr upordown staveheight
 245 590 20 crochetrest  % x y staveheight
 250 589 20 dot          % x y staveheight

 270 600 580 20 barline  % x ytop ybottom staveheight
 280 600 20 trebleclef   % x ytop staveheight
 300 595 20 whiteblob
 296 595 575 20 notestem % x ytop ybottom staveheight
 300 610 20 fermata      % x y staveheight
 350 590 20 crochetrest
 375 590 20 quaverrest
 387 590 20 semiquaverrest
 400 600 580 20 barline



This module offers, as a PostScript library, the procedures for drawing musical symbols as used by muscript
They are here made more robust for general use, by protecting each local variable with a local dictionary.


None of these procedures leave anything on the stack; they only paint.

 blackblob      usage: x y staveheight blackblob
 whiteblob      usage: x y staveheight whiteblob
 breve          usage: x y staveheight breve
 dot            usage: x y staveheight dot
 doubledot      usage: x y staveheight doubledot
 stave          usage: x_left x_right y_topline staveheight stave
 ledger         usage: x y staveheight ledger
 barline        usage: x y_top y_bot staveheight barline
 notestem       usage: x y_top y_bot staveheight notestem
 quaverstemup   usage: x y_top y_bot staveheight quaverstemup
 quaverstemdown usage: x y_top y_bot staveheight quaverstemdown
 beam           usage: x_mid_l y_mid_l x_mid_r y_mid_r staveheight beam
 tremolando     usage: n x_mid y_mid staveheight tremolando
 bracket        usage: x y_top y_bot staveheight bracket
 repeatmark     usage: x y_top staveheight repeatmark
 bassclef       usage: x y_top staveheight bassclef
 bass8vaclef    usage: x y_top staveheight bass8vaclef
 bass8vabclef   usage: x y_top staveheight bass8vabclef
 f_clef         usage: x y_f staveheight f_clef
 tenorclef      usage: x y_top staveheight tenorclef
 altoclef       usage: x y_top staveheight altoclef
 c_clef         usage: x y_middle_c staveheight c_clef
 trebleclef     usage: x y_top staveheight trebleclef
 treble8vaclef  usage: x y_top staveheight treble8vaclef
 treble8vabclef usage: x y_top staveheight treble8vabclef
 g_clef         usage: x y_g staveheight g_clef
 percussionclef usage: x y_top staveheight percussionclef
 timesig        usage (eg. for 6/8): x y_top staveheight (6) (8) timesig
 sharp          usage: x y staveheight sharp
 natural        usage: x y staveheight natural
 flat           usage: x y staveheight flat
 doublesharp    usage: x y staveheight doublesharp
 hemidemisemiquaverrest usage: x y staveheight hemidemisemiquaverrest
 demisemiquaverrest     usage: x y staveheight demisemiquaverrest
 semiquaverrest usage: x y staveheight semiquaverrest
 quaverrest     usage: x y staveheight quaverrest
 crochetrest    usage: x y staveheight crochetrest
 minimrest      usage: x y staveheight minimrest
 smbrest        usage: x y staveheight smbrest
 breverest      usage: x y staveheight breverest
 barnumber      usage: x y staveheight (string) barnumber
 crescendo      usage: x_left y_left x_right y_right staveheight crescendo
 diminuendo     usage: x_left y_left x_right y_right staveheight diminuendo
 slur           usage (updown=+1 or -1): x_l y_l x_r y_r updown staveheight slur
 fermata        usage: x y staveheight fermata
 mordent        usage: x y staveheight mordent
 trill          usage: x y staveheight trill
 trsharp        usage: x y staveheight trsharp
 trflat         usage: x y staveheight trflat
 trnat          usage: x y staveheight trnat
 turn           usage: x y staveheight turn
 tenuto         usage: x y staveheight tenuto
 emphasis       usage: x y staveheight emphasis
 segno          usage: x y staveheight segno
 upbow          usage: x y staveheight upbow
 downbow        usage: x y staveheight downbow
 guitar_string  usage: n x y staveheight guitar_string

Also defined are the following procedures also available in :

 rightshow      usage: x y font fontsize (string) rightshow
 leftshow       usage: x y font fontsize (string) leftshow
 centreshow     usage: x y font fontsize (string) centreshow
 centrexshow    usage: x y font fontsize (string) centrexshow

Also defined are the following fonts with ISOLatin1Encoding. They are also available in :



To install: go to and save the file to your local disc.
Rename it to and move it into some appropriate directory such as ~/ps/lib . . .
Or, first change directory to where you keep your PostScript libraries:
    cd /home/wherever/ps/lib/
(or wherever)   and then either:
    wget -O
    curl -o

Or, get it from gitlab:
    git clone


Peter J Billam


 20160627 130830 musical signs, developed from muscript


Back to P J B Computing or to . . .