示例#1
0
/* ----- def_hd2 ------- */
void def_hd2 (FILE *fp)
{

  float p[14][2] = {
    {8.0, 0.0},  {8.0, 8.5},  {-8.0, 8.5},  {-8.0, 0.0},  {-8.0, -8.5},  
    {8.0, -8.5},  {8.0, 0.0},  {7.0, 0.0},  {7.0, -4.0},  {-7.0, -4.0}, 
    {-7.0, 0.0},  {-7.0, 4.0},  {7.0, 4.0},  {7.0, 0.0} };

/*  float phi; */
  float c,s,xx,yy,f1,f2;
  int i;

/*phi=0.5;
  c=cos(phi);
  s=sin(phi); */

  c=0.878; s=0.479;

  for (i=0;i<14;i++) {
    xx = c*p[i][0] - s*p[i][1];
    yy = s*p[i][0] + c*p[i][1];
    p[i][0]=xx;
    p[i][1]=yy;
  }
  
  f1=f2=6.0/12.0;
  fprintf (fp, "\n/Hd { %% x y Hd - open head for half\n"
           "  dup /y exch def exch dup /x exch def exch moveto\n");
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,2);
  add_mv (fp,f1,f2,p,7);
  add_cv (fp,f1,f2,p,8,2);
  fprintf (fp, "   fill\n} bind def\n");
}
示例#2
0
/* ----- def_flags2 ------- */
void def_flags2 (FILE *fp)
{

  float p[13][2] = {
    {0.0, 0.0},  
    {2.0, -5.0},  {9.0, -6.0},  {7.5, -18.0},  
    {7.5, -9.0},  {1.5, -6.5},  {0.0, -6.5},  
    {2.0, -14.0},  {9.0, -14.0}, {7.5, -26.0}, 
    {7.5, -17.0},  {1.5, -14.5},  {0.0, -14.0},
  };

  float f1,f2;
  int i;

  f1=f2=6.0/9.0;                       /* up flags */
  fprintf (fp, "\n/f2u { %% len f2u - double flag up\n"
           "  y add x %.1f add exch moveto\n", STEM_XOFF); 
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,4);
  fprintf (fp, "   fill\n} bind def\n");

  f1=1.2*f1;                           /* down flags */
  for (i=0;i<13;i++) p[i][1]=-p[i][1];
  fprintf (fp, "\n/f2d { %% len f2d - double flag down\n"
           "  neg y add x %.1f sub exch moveto\n", STEM_XOFF); 
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,4);
  fprintf (fp, "   fill\n} bind def\n");

}  
示例#3
0
/* ----- def_flags1 ------- */
void def_flags1 (FILE *fp)
{
  float p[13][2] = {
    {0.0, 0.0},  {1.5, -3.0},  {1.0, -2.5},  {4.0, -6.0},  {9.0, -10.0},  
    {9.0, -16.0},  {8.0, -20.0},  {7.0, -24.0},  {4.0, -26.0},  
    {6.5, -21.5},  {9.0, -15.0},  {4.0, -9.0},  {0.0, -8.0} } ;

  float f1,f2;
  int i;

  f1=f2=6.0/9.0;
  fprintf (fp, "\n/f1u { %% len f1u - single flag up\n"
           "  y add x %.1f add exch moveto\n", STEM_XOFF); 
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,4);
  fprintf (fp, "   fill\n} bind def\n");

  f1=1.2*f1;
  for (i=0;i<13;i++) p[i][1]=-p[i][1];
  fprintf (fp, "\n/f1d { %% len f1d - single flag down\n"
           "  neg y add x %.1f sub exch moveto\n", STEM_XOFF); 
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,4);
  fprintf (fp, "   fill\n} bind def\n");
  
}
示例#4
0
/* ----- def_hd3 ------- */
void def_hd3 (FILE *fp)
{

  float p[13][2] = {
    {11.0, 0.0}, {11.0, 2.0},  {6.0, 6.5},  {0.0, 6.5},  {-6.0, 6.5}, 
    {-11.0, 2.0},  {-11.0, 0.0},  {-11.0, -2.0},  {-6.0, -6.5}, 
    {0.0, -6.5},  {6.0, -6.5},  {11.0, -2.0},  {11.0, 0.0}  };

  float q[8][2] = {
    {11.0, 0.0},  {5.0, 0.0},  {5.0, -5.0},  {-5.0, -5.0},  {-5.0, 0.0},  
    {-5.0, 5.0},  {5.0, 5.0},  {5.0, 0.0}};
           
/*  float phi; */
  float c,s,xx,yy,f1,f2;
  int i;

/*phi=2.5;
  c=cos(phi);
  s=sin(phi); */
  
  c=-0.801; s=0.598;

  for (i=1;i<8;i++) {
    xx = c*q[i][0] - s*q[i][1];
    yy = s*q[i][0] + c*q[i][1];
    q[i][0]=xx;
    q[i][1]=yy;
  }
  
  f1=f2=6.5/12.0;
  fprintf (fp, "\n/HD { %% x y HD - open head for whole\n"
           "  dup /y exch def exch dup /x exch def exch moveto\n");
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,4);
  add_mv (fp,f1,f2,q,1);
  add_cv (fp,f1,f2,q,2,2);
  fprintf (fp, "   fill\n} bind def\n");

  /* brevis (round and square) and longa */
  fprintf (fp,
           "\n/HDD { %% x y HDD - double note\n"
           "  HD\n"
           "  x y moveto -6 -4 rmoveto 0 8 rlineto stroke\n"
           "  x y moveto 6 -4 rmoveto 0 8 rlineto stroke\n"
           "} bind def\n");
  fprintf (fp,
           "\n/brevis { %% x y brevis - square brevis\n"
           "  2 copy /y exch def /x exch def moveto\n"
           "  2.5 setlinewidth -6 -2.7 rmoveto 12 0 rlineto\n"
           "  0 5.4 rmoveto -12 0 rlineto stroke\n"
           "  0.8 setlinewidth x y moveto -6 -5 rmoveto 0 10 rlineto\n"
           "  x y moveto 6 -5 rmoveto 0 10 rlineto stroke\n"
           "} bind def\n");
  fprintf (fp,
           "\n/longa { %% x y longa\n"
           "  brevis x y moveto 6 -10 rmoveto 0 15 rlineto stroke\n"
           "} bind def\n");
}
示例#5
0
/* ----- def_hd1 ------- */
void def_hd1 (FILE *fp)
{
  float p[7][2] = {
    {8.0, 0.0},  {8.0, 8.0},  {-8.0, 8.0},  {-8.0, 0.0},  {-8.0, -8.0},  
    {8.0, -8.0},  {8.0, 0.0} };

  float c,s,xx,yy,f1,f2;
  int i;
/*float phi; */
  
/*phi=0.6;
  c=cos(phi);
  s=sin(phi); */
  
  c=0.825; s=0.565;

  for (i=0;i<7;i++) {
    xx = c*p[i][0] - s*p[i][1];
    yy = s*p[i][0] + c*p[i][1];
    p[i][0]=xx;
    p[i][1]=yy;
  }
  
  f1=f2=6.0/12.0;
  fprintf (fp, "\n/hd { %% x y hd - full head\n"
           "  dup /y exch def exch dup /x exch def exch moveto\n");
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,2);
  fprintf (fp, "   fill\n} bind def\n");
}
示例#6
0
/* ----- def_gclef ------- */
void def_gclef (FILE *fp)
{
  float p[71][2]={
    {-6, 16},  {-8, 13},  {-14, 19},  {-10, 35},  {2, 35},  {8, 37},  
    {21, 30},  {21, 17},  {21, 5},  {10, -1},  {0, -1},  {-12, -1},  
    {-23, 5},  {-23, 22},  {-23, 29},  {-22, 37},  {-7, 49},  {10, 61},  
    {10, 68},  {10, 73},  {10, 78},  {9, 82},  {7, 82},  {2, 78},  
    {-2, 68},  {-2, 62},  {-2, 25},  {10, 18},  {11, -8},  {11, -18}, 
    {5, -23},  {-4, -23},  {-10, -23},  {-15, -18},  {-15, -13},  
    {-15, -8},  {-12, -4},  {-7, -4},  {3, -4},  {3, -20},  {-6, -17},
    {-5, -23},  {9, -20},  {9, -9},  {7, 24},  {-5, 30},  {-5, 67}, 
    {-5, 78},  {-2, 87},  {7, 91},  {13, 87},  {18, 80},  {17, 73},  
    {17, 62},  {10, 54},  {1, 45},  {-5, 38},  {-15, 33},  {-15, 19}, 
    {-15, 7},  {-8, 1},  {0, 1},  {8, 1},  {15, 6},  {15, 14},  {15, 23},
    {7, 26},  {2, 26},  {-5, 26},  {-9, 21},  {-6, 16} };

  float f1,f2;
  
  f1 = f2 = 24.0/65.0;
  fprintf (fp, "\n/gclef { %% x n gclef - G clef on line n\n"
           "  2 sub 6 mul moveto\n"); /*shift to line n*/
  add_mv (fp,f1,f2,p,0);
  add_sg (fp,f1,f2,p,1,1);
  add_cv (fp,f1,f2,p,2,23);
  fprintf (fp, "   fill\n} bind def\n");
  fprintf (fp, "\n/sgclef {\n"
           "  0.85 div exch 0.85 div exch" /*compensate scale*/
           " gsave 0.85 0.85 scale gclef grestore\n"
           "} bind def\n");
}
示例#7
0
/* ----- def_csig ------- */
void def_csg (FILE *fp)
{
  float p[25][2]={
  {0,26},  
  {4,26}, {11,23},  {11,14}, 
  {11,20},  {5,19}, {5,14}, 
  {5,9}, {12,9}, {12,15}, 
  {12,25}, {6,28},  {0,28}, 
  {-15,28}, {-25,17}, {-25,2}, 
  {-25,-10}, {-10,-28}, {11,-8}, 
  {-6,-20}, {-18,-11}, {-18,2}, 
  {-18,14}, {-14,26}, {0,26} };

  float f1,f2;
  int i;
  
  for (i=0;i<25;i++) {
    p[i][0]=p[i][0]+4;
    p[i][1]=p[i][1]+43;
  }
  f1 = f2 = 0.25;
  fprintf (fp, "\n/csig { %% x csig - C timesig \n"
           "  0 moveto\n"); 
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,8);
  fprintf (fp, "   fill\n} bind def\n");

  fprintf (fp, "\n/ctsig { %% x ctsig - C| timesig \n"
           "  dup csig 4 moveto 0 16 rlineto stroke\n"
           "} bind def\n");
}
示例#8
0
/* ----- def_deco1 ------- */
void def_deco1 (FILE *fp)
{

  float p[8][2] = {     /* for hold sign */
    {-15,0},{-15,23},{15,23},{15,0},
    {14.5,0},{12,18},{-12,18},{-14.5,0} };

  float q[8][2] = {    /* for down bow sign */
    {-4,0},{-4,9},{4,9},{4,0},
    {-4,6},{-4,9},{4,9},{4,6} };

  float r[3][2] = {    /* for up bow sign */
    {-3.2,11},{0,0},{3.2,11} };

  float f1,f2;

  f1=f2=0.5;
  fprintf (fp, "\n/hld { %% x y hld - hold sign\n"
           "  2 copy moveto 2 copy 1.5 add 1.3 0 360 arc moveto\n");
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,1);
  add_sg (fp,f1,f2,p,4,1);
  add_cv (fp,f1,f2,p,5,1);
  fprintf (fp, "   fill\n} bind def\n");

  f1=f2=0.8;
  fprintf (fp, "\n/dnb { %% x y dnb - down bow\n"
           "  moveto\n");
  add_mv (fp,f1,f2,q,0);
  add_sg (fp,f1,f2,q,1,3);
  fprintf (fp, "   currentpoint stroke moveto\n");
  add_mv (fp,f1,f2,q,4);
  add_sg (fp,f1,f2,q,5,3);
  fprintf (fp, "   fill\n} bind def\n");

  fprintf (fp, "\n/upb { %% x y upb - up bow\n"
           "  moveto\n");
  add_mv (fp,f1,f2,r,0);
  add_sg (fp,f1,f2,r,1,2);
  fprintf (fp, "   stroke\n} bind def\n");

  fprintf (fp, "\n/brth { %% x y brth - breath mark\n"
           "  gsave 0.8 setlinewidth\n"
           "  moveto -1 -3 rmoveto 2 7 rlineto stroke grestore\n"
           "} bind def\n");

}
示例#9
0
uint32_t Ppc405Iss::do_addi( uint32_t opl, uint32_t opr, uint32_t ca, bool need_ca )
{
    bool cout, vout;
    uint32_t tmp = add_cv(opl, opr, ca, cout, vout);
    r_gp[m_ins.d.rd] = tmp;
    if ( need_ca )
        caSet( cout );
    return tmp;
}
示例#10
0
/* ----- def_brace ------- */
void def_brace (FILE *fp)
{
  float p[8][2]={
    {7.2,60}, {-7,39}, {17,17}, {-1,0}, 
    {-1.4,0}, {13,13}, {-11,39}, {7,60} };

  float q[8][2]={
    {-3,0}, {2,0}, {4,1}, {5.5,5}, 
    {5.9,4.7}, {4.7,1.2}, {3.2,-.4}, {-1,-1.2} };

  float f1,f2;

  f1 = 0.9;
  f2 = 1.0;
  fprintf (fp, "\n/bracehalf {\n");
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,1);
  add_sg (fp,f1,f2,p,4,1);
  add_cv (fp,f1,f2,p,5,1);
  fprintf (fp, "  fill\n} bind def\n");

  fprintf (fp,
           "\n/brace {   %% scale x0 y0 brace\n"
           "   3 copy moveto gsave 1 exch scale bracehalf grestore\n"
           "   moveto gsave neg 1 exch scale bracehalf grestore\n"
           "} bind def\n");

  f1 = 1.0;
  f2 = 1.0;
  fprintf (fp, "\n/brackhead {\n");
  add_mv (fp,f1,f2,q,0);
  add_cv (fp,f1,f2,q,1,1);
  add_sg (fp,f1,f2,q,4,1);
  add_cv (fp,f1,f2,q,5,1);
  fprintf (fp, "  fill\n} bind def\n");

  fprintf (fp,
           "\n/bracket {   %% h x0 y0 bracket\n"
           "   3 copy moveto 0 exch rmoveto brackhead\n"
           "   3 copy moveto pop gsave 1 -1 scale brackhead grestore \n"
           "   moveto -3 0 rlineto 0 exch rlineto 3 0 rlineto fill\n"
           "} bind def \n");

}
示例#11
0
/* ----- def_fclef ------- */
void def_fclef (FILE *fp)
{
  float p[42][2]={
    {-2.3,3}, {6,7}, {10.5,12}, {10.5,16},
    {10.5,20.5}, {8.5,23.5}, {6.2,23.3},
    {5.2,23.5}, {2,23.5}, {0.5,19.5},
    {2,20}, {4,19.5}, {4,18},
    {4,17}, {3.5,16}, {2,16},
    {1,16}, {0,16.9}, {0,18.5},
    {0,21}, {2.1,24}, {6,24}, 
    {10,24}, {13.5,21.5}, {13.5,16.5},
    {13.5,11}, {7,5.5}, {-2.0,2.8},
    {14.9,21}, 
    {14.9,22.5}, {16.9,22.5}, {16.9,21},
    {16.9,19.5}, {14.9,19.5}, {14.9,21},
    {14.9,15},
    {14.9,16.5}, {16.9,16.5}, {16.9,15},
    {16.9,13.5}, {14.9,13.5}, {14.9,15} };
  
  int i;
  float f1,f2;

  for (i=0;i<42;i++) {p[i][0]-=7.5; p[i][1]-=0.5; }
  f1 = f2 = 1.0;
  fprintf (fp, "\n/fclef { %% x n fclef - F clef on line n\n"
           "  4 sub 6 mul moveto\n"); 
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,9);
  add_cv (fp,f1,f2,p,1,9);

  add_mv (fp,f1,f2,p,28);
  add_cv (fp,f1,f2,p,29,2);

  add_mv (fp,f1,f2,p,25);
  add_cv (fp,f1,f2,p,36,2);

  fprintf (fp, "fill\n} bind def\n");

  fprintf (fp, "\n/sfclef {\n"
           "  0.85 div exch 0.85 div exch" /*compensate scale*/
           " gsave 0.85 0.85 scale fclef grestore\n"
           "} bind def\n");
}
示例#12
0
/* ----- def_xflags ------- */
void def_xflags (FILE *fp)
{

  float p[7][2] = {
    {0.0, 0.0},  
    {2.0, -7.5},  {9.0, -7.5}, {7.5, -19.5}, 
    {7.5, -10.5},  {1.5, -8.0},  {0.0, -7.5}
  };

  float f1,f2;
  int i;

  f1=f2=6.0/9.0;                       /* extra up flag */
  fprintf (fp, "\n/xfu { %% len xfu - extra flag up\n"
           "  y add x %.1f add exch moveto\n", STEM_XOFF); 
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,2);
  fprintf (fp, "   fill\n} bind def\n");

  f1=1.2*f1;                           /* extra down flag */
  for (i=0;i<7;i++) p[i][1]=-p[i][1];
  fprintf (fp, "\n/xfd { %% len xfd - extra flag down\n"
           "  neg y add x %.1f sub exch moveto\n", STEM_XOFF); 
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,2);
  fprintf (fp, "   fill\n} bind def\n");

  fprintf (fp, 
           "\n/f3d {dup f2d 9.5 sub xfd} bind def\n");

  fprintf (fp, 
           "\n/f4d {dup dup f2d 9.5 sub xfd 14.7 sub xfd} bind def\n");

  fprintf (fp, 
           "\n/f3u {dup f2u 9.5 sub xfu} bind def\n");

  fprintf (fp, 
           "\n/f4u {dup dup f2u 9.5 sub xfu 14.7 sub xfu} bind def\n");

}  
示例#13
0
void Ppc405Iss::do_add( uint32_t opl, uint32_t opr, uint32_t ca, bool need_ca )
{
    bool cout, vout;
    uint32_t tmp = add_cv(opl, opr, ca, cout, vout);
    r_gp[m_ins.xo.rd] = tmp;

    if ( need_ca )
        caSet( cout );
    if ( m_ins.xo.oe )
        ovSet( vout );
    if ( m_ins.xo.rc )
        crSetSigned( 0, tmp, 0 );
}
示例#14
0
/* ----- def_cclef ------- */
void def_cclef (FILE *fp)
{
  float p[30][2]={
    {0,0}, {2,5.5}, 
    {9,4.5}, {12,10}, {12,15.5},
    {12,19.5}, {11,23.3}, {6.5,23.5},
    {5.2,23.5}, {2,23.5}, {0.5,19.5},
    {2,20}, {4,19.5}, {4,18},
    {4,17}, {3.5,16}, {2,16},
    {1,16}, {0,16.9}, {0,18.5},
    {0,21}, {2.1,24}, {6,24},
    {12,24}, {15,21.5}, {15,16.5},
    {15,10}, {10,4.5}, {4,5},
    {3,0} };
  int i;
  float f1,f2;

  for (i=0;i<30;i++) p[i][1]+=24;

  f1 = 0.6;
  f2 = 0.5;
  fprintf (fp, "\n/cchalf {\n"
           "  0 moveto\n"); 
  add_mv (fp,f1,f2,p,0);
  add_sg (fp,f1,f2,p,1,1);
  add_cv (fp,f1,f2,p,2,9);
  add_sg (fp,f1,f2,p,29,1);
  fprintf (fp, "fill\n} bind def\n");

  fprintf (fp,
           "\n/cclef {   %% x n cclef - C clef on line n\n"
           "   gsave 0 exch 3 sub 6 mul translate\n"
           "   dup dup dup\n"
           "   cchalf 0 24 translate 1 -1 scale cchalf\n"
           "   6.5 sub 0 moveto 0 24 rlineto 3 0 rlineto 0 -24 rlineto fill\n"
           "   1.8 sub 0 moveto 0 24 rlineto 0.8 setlinewidth stroke grestore \n"
           "} bind def\n");
           
  fprintf (fp, "\n/scclef { cclef } bind def\n");
}
示例#15
0
/* ----- def_gnote ------- */
void def_gnote (FILE *fp)
{
  /* parameter for filled head */
  float p[7][2] = {
    {0,10}, {16,10}, {16,-10}, {0,-10}, {-16,-10}, {-16,10}, {0,10} };

  /* parameter for half note head */
  float ph[14][2] = {
    {8.0, 0.0},  {8.0, 8.5},  {-8.0, 8.5},  {-8.0, 0.0},  {-8.0, -8.5},  
    {8.0, -8.5},  {8.0, 0.0},  {7.0, 0.0},  {7.0, -4.0},  {-7.0, -4.0}, 
    {-7.0, 0.0},  {-7.0, 4.0},  {7.0, 4.0},  {7.0, 0.0} };

  /* parameter for whole note head */
  float pw[13][2] = {
    {11.0, 0.0}, {11.0, 2.0},  {6.0, 6.5},  {0.0, 6.5},  {-6.0, 6.5}, 
    {-11.0, 2.0},  {-11.0, 0.0},  {-11.0, -2.0},  {-6.0, -6.5}, 
    {0.0, -6.5},  {6.0, -6.5},  {11.0, -2.0},  {11.0, 0.0}  };
  float qw[8][2] = {
    {11.0, 0.0},  {5.0, 0.0},  {5.0, -5.0},  {-5.0, -5.0},  {-5.0, 0.0},  
    {-5.0, 5.0},  {5.0, 5.0},  {5.0, 0.0}};

/*  float phi; */
  float c,s,xx,yy,f1,f2,fh,fw;
  int i;
  
/*phi=0.7;
  c=cos(phi);
  s=sin(phi); */
  
  c=0.765; s=0.644;
  for (i=0;i<7;i++) {
    xx = c*p[i][0] - s*p[i][1];
    yy = s*p[i][0] + c*p[i][1];
    p[i][0]=xx;
    p[i][1]=yy;
  }
  for (i=0;i<14;i++) {
    xx = c*ph[i][0] - s*ph[i][1];
    yy = s*ph[i][0] + c*ph[i][1];
    ph[i][0]=xx;
    ph[i][1]=yy;
  }

  c=-0.801; s=0.598;
  for (i=1;i<8;i++) {
    xx = c*qw[i][0] - s*qw[i][1];
    yy = s*qw[i][0] + c*qw[i][1];
    qw[i][0]=xx;
    qw[i][1]=yy;
  }
  
  
  f1=f2=2./10.0;

  fprintf (fp, "\n/gn16 { %% x y l gn16 - single sixteenth grace note\n"
           "  3 1 roll 2 copy moveto\n");
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,2);
  fprintf (fp, "  fill moveto %.2f 0 rmoveto 0 exch rlineto currentpoint\n"
           "  3 -4 4 -5 3 -8 rcurveto -5 2 rmoveto stroke\n"
           "  3.4 sub moveto\n"
           "  3 -4 4 -5 2 -8 rcurveto -5 2 rmoveto stroke\n",
           GSTEM_XOFF);
  fprintf (fp, "} bind def\n");

  fprintf (fp, "\n/gn8 { %% x y l gn8 - single eighth grace note\n"
           "  3 1 roll 2 copy moveto\n");
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,2);
  fprintf (fp, "  fill moveto %.2f 0 rmoveto 0 exch rlineto\n"
           "3 -4 4 -5 2 -8 rcurveto -5 2 rmoveto\n"
           "stroke\n",
           GSTEM_XOFF);
  fprintf (fp, "} bind def\n");

  fprintf (fp, "\n/gn8s { %% x y l gn8s - single eighth grace note with stroke\n"
           "  3 1 roll 2 copy moveto\n");
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,2);
  fprintf (fp, "  fill moveto %.2f 0 rmoveto 0 exch rlineto\n"
           "3 -4 4 -5 2 -8 rcurveto -5 2 rmoveto 7 4 rlineto\n"
           "stroke\n",
           GSTEM_XOFF);
  fprintf (fp, "} bind def\n");

  fprintf (fp, "\n/gnt { %% x y l gnt - grace note without flag\n"
           "  3 1 roll 2 copy moveto\n");
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,2);
  fprintf (fp, "  fill moveto %.2f 0 rmoveto 0 exch rlineto stroke\n",
           GSTEM_XOFF);
  fprintf (fp, "} bind def\n");

  fprintf (fp, "\n/gn2 { %% x y l gn2 - grace half note\n"
           "  3 1 roll 2 copy moveto\n");
  fh=8.0/25.0;
  add_mv (fp,fh,fh,ph,0);
  add_cv (fp,fh,fh,ph,1,2);
  add_mv (fp,fh,fh,ph,7);
  add_cv (fp,fh,fh,ph,8,2);
  fprintf (fp, "  fill moveto %.2f 0 rmoveto 0 exch rlineto stroke\n",
           GSTEM_XOFF);
  fprintf (fp, "} bind def\n");

  fprintf (fp, "\n/gn1 { %% x y gn1 - whole grace note\n"
           "  2 copy moveto\n");
  fw=9.0/25.0;
  add_mv (fp,fw,fw,pw,0);
  add_cv (fp,fw,fw,pw,1,4);
  add_mv (fp,fw,fw,qw,1);
  add_cv (fp,fw,fw,qw,2,2);
  fprintf (fp, "  fill\n");
  fprintf (fp, "} bind def\n");

  fprintf(fp, "\n/gbm1 { %% x1 y1 x2 y2 gbm1 - single note beam\n"
          "  gsave 1.4 setlinewidth\n"
          "  0.5 sub moveto 0.5 sub lineto stroke grestore\n"
          "} bind def\n");

  fprintf(fp, "\n/gbm2 { %% x1 y1 x2 y2 gbm2 - double note beam\n"
          "  gsave 1.4 setlinewidth\n"
          "  4 copy 0.5 sub moveto 0.5 sub lineto stroke\n"
          "  3.4 sub moveto 3.4 sub lineto stroke grestore\n"
          "} bind def\n");

  fprintf(fp, "\n/gbm3 { %% x1 y1 x2 y2 gbm3 - triple gnote beam\n"
          "  gsave 1.2 setlinewidth\n"
          "  4 copy 0.3 sub moveto 0.3 sub lineto stroke\n"
          "  4 copy 2.5 sub moveto 2.5 sub lineto stroke\n"
          "  4.7 sub moveto 4.7 sub lineto stroke grestore\n"
          "} bind def\n");

  fprintf(fp, "\n/ghl { %% x y ghl - grace note ledger line\n"
          "   gsave 0.7 setlinewidth moveto \n"
          "   -3 0 rmoveto 6 0 rlineto stroke grestore\n"
          "} bind def\n");

  fprintf(fp, "\n/gsl { %% x1 y2 x2 y2 x3 y3 x0 y0 gsl\n"
          "  moveto curveto stroke\n"
          "} bind def\n");

  fprintf(fp, "\n/gsh0 { %% x y gsh0\n"
          "gsave translate 0.7 0.7 scale 0 0 sh0 grestore\n"
          "} bind def\n");

  fprintf(fp, "\n/gft0 { %% x y gft0\n"
          "gsave translate 0.7 0.7 scale 0 0 ft0 grestore\n"
          "} bind def\n");

  fprintf(fp, "\n/gnt0 { %% x y gnt0\n"
          "gsave translate 0.7 0.7 scale 0 0 nt0 grestore\n"
          "} bind def\n");

  fprintf(fp, "\n/gdf0 { %% x y gdf0\n"
          "gsave translate 0.7 0.6 scale 0 0 dft0 grestore\n"
          "} bind def\n");

  fprintf(fp, "\n/gds0 { %% x y gds0\n"
          "gsave translate 0.7 0.7 scale 0 0 dsh0 grestore\n"
          "} bind def\n");
}
示例#16
0
/* ----- def_rests ------- */
void def_rests (FILE *fp)
{
  float p[14][2]={  
    {-1,17}, {15,4}, {-6,8}, {6.5,-5}, {-2,-2}, {-5,-11}, {1,-15},
    {-9,-11}, {-6,0}, {1,-1},   {-9,7}, {7,5}, {-1,17} };
  float q[16][2]={  
    {8,14}, {5,9}, {3,5}, {-1.5,4},
    {4,11}, {-9,14}, {-9,7},
    {-9,4}, {-6,2}, {-3,2},
    {4,2}, {5,7}, {7,11},
    {-1.8,-20},  {-0.5,-20}, {8.5,14}};
  float r[29][2]={  
    {8,14}, {5,9}, {3,5}, {-1.5,4},
    {4,11}, {-9,14}, {-9,7},
    {-9,4}, {-6,2}, {-3,2},
    {4,2}, {5,7}, {7,11},
    {8,14}, {5,9}, {3,5}, {-1.5,4},
    {4,11}, {-9,14}, {-9,7},
    {-9,4}, {-6,2}, {-3,2},
    {4,2}, {5,7}, {7.3,11},
    {-1.8,-21},  {-0.5,-21}, {8.5,14} };
  float f1,f2;
  int i;

  fprintf (fp, "\n/r4 { %% x y r4 - quarter rest\n"
           "   dup /y exch def exch dup /x exch def exch moveto\n");
  f1=f2=6.0/11.5;
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,4);
  fprintf (fp, "  fill\n } bind def\n");

  fprintf (fp, "\n/r8 { %% x y r8 - eighth rest\n"
           "   dup /y exch def exch dup /x exch def exch moveto\n");
  f1=f2=7/18.0;
  add_mv (fp,f1,f2,q,0);
  add_cv (fp,f1,f2,q,1,4);
  add_sg (fp,f1,f2,q,13,3);
  fprintf (fp, "  fill\n } bind def\n");

  for (i=13;i<26;i++) { r[i][0]-=4.2; r[i][1]-=14; }
  fprintf (fp, "\n/r16 { %% x y r16 - 16th rest\n"
           "   dup /y exch def exch dup /x exch def exch moveto\n");
  f1=f2=7/18.0;
  add_mv (fp,f1,f2,r,0);
  add_cv (fp,f1,f2,r,1,4);
  add_sg (fp,f1,f2,r,13,1);
  add_cv (fp,f1,f2,r,14,4);
  add_sg (fp,f1,f2,r,26,3);
  fprintf (fp, "  fill\n } bind def\n");

  fprintf (fp, 
           "\n/r00 { %% x y r00 - longa rest\n"
           "  2 copy /y exch def /x exch def moveto\n"
           "  -1 6 rmoveto 0 -12 rlineto 3 0 rlineto 0 12 rlineto fill\n"
           "} bind def\n");

  fprintf (fp, 
           "\n/r0 { %%	x y r0	-  brevis rest\n"
           "  6 add dup /y exch def exch dup /x exch def exch moveto\n"
           "  -1 0 rmoveto 0 -6 rlineto 3 0 rlineto 0 6 rlineto fill\n"
           "} bind def\n");

  fprintf (fp, 
           "\n/r1 { %% x y r1 - whole rest\n"
           "  dup /y exch def exch dup /x exch def exch moveto\n"
           "  -3 6 rmoveto 0 -3 rlineto 6 0 rlineto 0 3 rlineto fill\n"
           "} bind def\n");

  fprintf (fp, 
           "\n/r2 { %% x y r2 - half rest\n"
           "  dup /y exch def exch dup /x exch def exch moveto\n"
           "  -3 0 rmoveto 0 3 rlineto 6 0 rlineto 0 -3 rlineto fill\n"
           "} bind def\n"
           );
  
  /* get 32nd, 64th rest by overwriting 8th and 16th rests */
  fprintf (fp,
           "\n/r32 {\n"
           "2 copy r16 5.5 add exch 1.6 add exch r8\n"
           "} bind def\n");
  fprintf (fp,
           "\n/r64 {\n"
           "2 copy 5.5 add exch 1.6 add exch r16\n"
           "5.5 sub exch 1.5 sub exch r16\n"
           "} bind def\n");

  fprintf (fp,
	   "\n/brest { %% nb_measures x y brest\n"
	   "   gsave T 0.8 setlinewidth\n"
	   "   0 -6 moveto 0 12 rlineto 40 -6 moveto 0 12 rlineto stroke\n"
	   "   3 setlinewidth 0 0 moveto 40 0 rlineto stroke\n"
	   "   /Times-Bold 13 selectfont 20 16 moveto cshow grestore\n"
	   "} bind def \n");  

}
示例#17
0
/* ----- def_acc ------- */
void def_acc (FILE *fp)
{
  float p[12][2]={  
    {-2,3},{6,6.5},{6,-1},{-2,-4.5},{4,0},{4,4},{-2,2},{-2,10},{-2,-4}};  
  float q[14][2]={  
    {4,4},{4,7},{-4,5},{-4,2},{4,4},{4,-5},{4,-2},{-4,-4},{-4,-7},{4,-5}, 
    {2,-10},{2,11.5},{-2,-11.5},{-2,10} };
  float r[14][2]={  
    {-2.5,-6}, {2.5,-5}, {2.5,-2}, {-2.5,-3}, {-2.5,6},  
    {-2.5,2}, {2.5,3}, {2.5,6}, {-2.5,5}, {-2.5,2},
    {-2.5,11}, {-2.5,-5.5},  
    {2.5,5.5}, {2.5,-11} };
  float s[25][2]={
    {0.7,0},{3.9,3},{6,3},{6.2,6.2},{3,6},{3,3.9},
    {0,0.7},{-3,3.9},{-3,6},{-6.2,6.2},{-6,3},{-3.9,3},
    {-0.7,0},{-3.9,-3},{-6,-3},{-6.2,-6.2},{-3,-6},{-3,-3.9},
    {0,-0.7},{3,-3.9},{3,-6},{6.2,-6.2},{6,-3},{3.9,-3},
    {0.7,0} };


  float f1,f2;
  
  f2=8.0/9.0;
  f1=f2*0.9;
  fprintf (fp, "\n/ft0 { %% x y ft0 - flat sign\n"
           "  moveto\n"); 
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,2);
  fprintf (fp, "  currentpoint fill moveto\n");
  add_mv (fp,f1,f2,p,7);
  add_sg (fp,f1,f2,p,8,1);
  fprintf (fp, "  stroke\n } bind def\n");
  fprintf (fp, "/ft { %% dx ft - flat relative to head\n"
           " neg x add y ft0 } bind def\n");
  
  f2=8.0/9.0;    /* more narrow flat sign for double flat */
  f1=f2*0.8;
  fprintf (fp, "\n/ftx { %% x y ftx - narrow flat sign\n"
           "  moveto\n"); 
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,2);
  fprintf (fp, "  currentpoint fill moveto\n");
  add_mv (fp,f1,f2,p,7);
  add_sg (fp,f1,f2,p,8,1);
  fprintf (fp, "  stroke\n } bind def\n");

  fprintf (fp, "/dft0 { %% x y dft0 ft - double flat sign\n"
           "  2 copy exch 2.5 sub exch ftx exch 1.5 add exch ftx } bind def\n"
           "/dft { %% dx dft - double flat relative to head\n"
           "  neg x add y dft0 } bind def\n");


  f2=6.5/9.0;
  f1=f2*0.9;
  fprintf (fp, "\n/sh0 { %% x y sh0 - sharp sign\n"
           "  moveto\n"); 
  add_mv (fp,f1,f2,q,0);
  add_sg (fp,f1,f2,q,1,4);
  add_mv (fp,f1,f2,q,5);
  add_sg (fp,f1,f2,q,6,4);
  fprintf (fp, "  currentpoint fill moveto\n");
  add_mv (fp,f1,f2,q,10);
  add_sg (fp,f1,f2,q,11,1);
  fprintf (fp, "  currentpoint stroke moveto\n");
  add_mv (fp,f1,f2,q,12);
  add_sg (fp,f1,f2,q,13,1);
  fprintf (fp, "  stroke\n } bind def\n");
  fprintf (fp, "/sh { %% dx sh - sharp relative to head\n"
           " neg x add y sh0 } bind def\n");
  fprintf (fp, "/sh1 { %% sh1 - sharp inline at currentpos\n"
           "  currentpoint\n"
           "  currentpoint moveto 3.5 4.6 rmoveto gsave 0.75 0.75 scale currentpoint sh0 grestore\n"
           "  moveto 7 0 rmoveto\n"
           "} bind def\n"
           "/ft1 { %% ft1 - flat inline at currentpos\n"
           "  currentpoint\n"
           "  currentpoint moveto 3.7 3.1 rmoveto gsave 0.75 0.75 scale currentpoint ft0 grestore\n"
           "  moveto 7 0 rmoveto\n"
           "} bind def\n"
           "/nt1 { %% nt1 - natural inline at currentpos\n"
           "  currentpoint\n"
           "  currentpoint moveto 4 4 rmoveto gsave 0.75 0.75 scale currentpoint nt0 grestore\n"
           "  moveto 7 0 rmoveto\n"
           "} bind def\n"
           );


  f2=6.5/9.0;
  f1=f2*0.9;
  fprintf (fp, "\n/nt0 { %% x y nt0 - neutral sign\n"
           "  moveto\n"); 
  add_mv (fp,f1,f2,r,0);
  add_sg (fp,f1,f2,r,1,4);
  add_mv (fp,f1,f2,r,5);
  add_sg (fp,f1,f2,r,6,4);
  fprintf (fp, "  currentpoint fill moveto\n");
  add_mv (fp,f1,f2,r,10);
  add_sg (fp,f1,f2,r,11,1);
  fprintf (fp, "  currentpoint stroke moveto\n");
  add_mv (fp,f1,f2,r,12);
  add_sg (fp,f1,f2,r,13,1);
  fprintf (fp, "  stroke\n } bind def\n");
  fprintf (fp, "/nt { %% dx nt - neutral relative to head\n"
           " neg x add y nt0 } bind def\n");

  f1=5.0/9.0;
  f2=f1;
  fprintf (fp, "\n/dsh0 { %% x y dsh0 - double sharp \n"
           "  moveto\n"); 
  add_mv (fp,f1,f2,s,0);
  add_sg (fp,f1,f2,s,1,24);
  fprintf (fp, "  fill\n } bind def\n");
  fprintf (fp, "/dsh { %% dx dsh - double sharp relative to head\n"
           " neg x add y dsh0 } bind def\n");
}
示例#18
0
/* ----- def_deco ------- */
void def_deco (FILE *fp)
{

  float p[7][2] = {
    {-10,-2},{0,15},{1,-11},{10,2},{0,-15},{-1,11},{-10,-2} };

/*  float q[7][2] = {
    {-13,0},{-2,9},{2,9},{13,0},{3,5},{-3,5},{-13,-0} }; */

/*  float q[7][2] = {
    {-11,0},{-9,10},{9,10},{11,0},{5,7},{-5,7},{-11,-0} }; */

  /* Walsh suggestion, scale 1.8 in y */ 
  float q[7][2] = {
    {-13,0},{-12,9},{12,9},{13,0},{10,7.4},{-10,7.4},{-13,-0} };

  float s[7][2] = {
    {-8,-4.8},{-6,-5.5},{-3,-4.6},{0,0},{-2.3,-5},{-6,-6.8},{-8.5,-6} };

  float f1,f2;
  int i;

  f1=0.5;
  f2=0.5;

  fprintf (fp, "\n/grm { %% x y grm - gracing mark\n"
           "  moveto\n"); 
  add_mv (fp,f1,f2,p,0);
  add_cv (fp,f1,f2,p,1,2);
  fprintf (fp, "   fill\n} bind def\n");
  fprintf (fp, "\n/stc { %% x y stc - staccato mark\n"
           "  1.2 0 360 arc fill } bind def\n");

  fprintf (fp, "\n/hat { %% x y hat\n"
           "  moveto\n"
           "  -4 -2 rmoveto 4 6 rlineto currentpoint stroke moveto\n"
           "  4 -6 rlineto -2 0 rlineto -3 4.5 rlineto fill\n"
           " } bind def\n");

  fprintf (fp, "\n/att { %% x y att\n"
           "  moveto\n"
           "  -4 -3 rmoveto 8 3 rlineto -8 3 rlineto stroke\n"
           " } bind def\n");

  f2=f2*1.8;

  if (temp_switch==3) { f1=0.8*f1; f2=0.8*f2; }
  else                { f1=0.9*f1; f2=0.9*f2; }
  
  fprintf (fp, "\n/cpu { %% x y cpu - roll sign above head\n"
           "  moveto\n"); 
  add_mv (fp,f1,f2,q,0);
  add_cv (fp,f1,f2,q,1,2);
  fprintf (fp, "   fill\n} bind def\n");

  for (i=0;i<7;i++) q[i][1]=-q[i][1];

  fprintf (fp, "\n/cpd { %% x y cpd - roll sign below head\n"
           "  moveto\n"); 
  add_mv (fp,f1,f2,q,0);
  add_cv (fp,f1,f2,q,1,2);
  fprintf (fp, "   fill\n} bind def\n");

  f1=0.9;
  f2=1.0;
  fprintf (fp, "\n/sld { %% y dx sld - slide\n"
           "  x exch sub exch moveto\n"); 
  add_mv (fp,f1,f2,s,0);
  add_cv (fp,f1,f2,s,1,2);
  fprintf (fp, "   fill\n} bind def\n");
  
  fprintf (fp, "\n/emb { %% x y emb - tenuto sign\n"
           "  gsave 1.4 setlinewidth 1 setlinecap\n"
           "  moveto -3.5 0 rmoveto 7 0 rlineto stroke grestore\n"
           "} bind def\n");

  fprintf (fp, "\n/trl { %% x y trl - trill sign\n"
           "  gsave /Times-BoldItalic 14 selectfont\n"
           "  moveto (tr) cshow grestore\n"
           "} bind def\n");

  fprintf (fp, "\n/sgno { %% x y sgno - segno\n"
		   "  moveto gsave\n"
		   "  0 3 rmoveto currentpoint currentpoint currentpoint\n"
		   "  2.8 -0.54 2.89 1.18 1.39 1.63 rcurveto\n"
		   "  -2.2 -0.9 -1.4 -3.15 2.76 -2.48 rcurveto\n"
		   "  3.1 2.4 2.54 6.26 -7.71 13.5 rcurveto\n"
		   "  0.5 3.6 3.6 3.24 5.4 2.5 rcurveto\n"
		   "  -2.8 0.54 -2.89 -1.18 -1.39 -1.63 rcurveto\n"
		   "  2.2 0.9 1.4 3.15 -2.76 2.48 rcurveto\n"
		   "  -3.1 -2.4 -2.54 -6.26 7.71 -13.5 rcurveto\n"
		   "  -0.5 -3.6 -3.6 -3.24 -5.4 -2.5 rcurveto\n"
		   "  fill\n"
		   "  moveto 0.6 setlinewidth -5.6 1.6 rmoveto 12.5 12.5 rlineto stroke\n"
		   "  7.2 add exch -5.6 add exch 1 0 360 arc fill\n"
		   "  8.4 add exch 7 add exch 1 0 360 arc fill grestore\n"
		   "} bind def\n");
  
  fprintf (fp, "\n/coda { %% x y coda - coda \n"
                   "  gsave 1.2 setlinewidth 2 copy moveto 0 20 rlineto\n"
		   "  2 copy 10 add exch -10 add exch moveto 20 0 rlineto stroke\n"
		   "  10 add 6 0 360 arc 1.8 setlinewidth stroke grestore\n"
		   "} bind def\n");

  fprintf (fp, "\n/umrd { %% x y umrd - upper mordent\n"
           "  4 add moveto\n"
           "  2.2 2.2 rlineto 2.1 -2.9 rlineto 0.7 0.7 rlineto\n"
           "  -2.2 -2.2 rlineto -2.1 2.9 rlineto -0.7 -0.7 rlineto\n"
           "  -2.2 -2.2 rlineto -2.1 2.9 rlineto -0.7 -0.7 rlineto\n"
           "  2.2 2.2 rlineto 2.1 -2.9 rlineto 0.7 0.7 rlineto fill\n"
           "} bind def\n");

  fprintf (fp, "\n/lmrd { %% x y lmrd - lower mordent\n"
           "  2 copy umrd 8 add moveto\n"
           "  0.6 setlinewidth 0 -8 rlineto stroke\n"
           "} bind def\n");

  fprintf (fp, "\n/turn { %% x y turn - doppelschlag\n"
           "  moveto 5.2 8 rmoveto\n"
           "  1.4 -0.5 0.9 -4.8 -2.2 -2.8 rcurveto\n"
           "  -4.8 3.5 rlineto\n"
           "  -3.0 2.0 -5.8 -1.8 -3.6 -4.4 rcurveto\n"
           "  1.0 -1.1 2.0 -0.8 2.1 0.1 rcurveto\n"
           "  0.1 0.9 -0.7 1.2 -1.9 0.6 rcurveto\n"
           "  -1.4 0.5 -0.9 4.8 2.2 2.8 rcurveto\n"
           "  4.8 -3.5 rlineto\n"
           "  3.0 -2.0 5.8 1.8 3.6 4.4 rcurveto\n"
           "  -1.0 1.1 -2 0.8 -2.1 -0.1 rcurveto\n"
           "  -0.1 -0.9 0.7 -1.2 1.9 -0.6 rcurveto\n"
           "  fill\n"
           "} bind def\n");

  fprintf(fp, "\n/wedge { %% x y wedge \n"
          "  moveto 1.4 7 rlineto\n"
          "  -0.8 2 -1.2 2 -2.8 0 rcurveto\n"
          "  1.4 -7 rlineto fill\n"
          "} bind def\n");

  fprintf (fp, "\n/plus { %% x y plus - plus sign\n"
           "  1 add moveto gsave 1 setlinewidth\n"
           "  0 10 rlineto currentpoint stroke moveto\n"
           "  -5 -5 rmoveto 10 0 rlineto stroke grestore\n"
           "} bind def\n");

  fprintf (fp, "\n/cross { %% x y cross - x shaped cross\n"
           "  gsave 1.2 setlinewidth 1 setlinecap\n"
           "  moveto -3 1 rmoveto 6 8 rlineto currentpoint stroke moveto\n"
           "  0 -8 rmoveto -6 8 rlineto stroke grestore\n"
           "} bind def\n");

  fprintf (fp, "\n/dyn { %% (s) x y cross - dynamic mark s\n"
           "  /Times-BoldItalic 16 selectfont 5 add moveto cshow\n"
           "} bind def\n");
}