| 1 | <HTML> |
| 2 | <HEAD><TITLE> |
| 3 | Lines and curves |
| 4 | </TITLE></HEAD> |
| 5 | <BODY> |
| 6 | <P> |
| 7 | <A HREF="prnttext.html"><-- previous page</A> |
| 8 | |
| 9 | <A HREF="index.html">Table of Contents</A> <A HREF="newscore.html">next page --></A> |
| 10 | </P> |
| 11 | |
| 12 | <H2> |
| 13 | Lines and curves |
| 14 | </H2> |
| 15 | <P> |
| 16 | The "line" statement is used for drawing lines. Its format is: |
| 17 | <BR><PRE> |
| 18 | <I>linetype</I> <B>line (</B><I>X1, Y1</I><B>) to (</B><I>X2, Y2</I><B>)</B> |
| 19 | </PRE><BR> |
| 20 | The <I>linetype</I> can be "wide," "medium," "wavy," "dotted," "dashed," |
| 21 | or it can be omitted, which means narrow. |
| 22 | The wavy line could be used for glissandos. It could also be used |
| 23 | for manually drawing rolls and trills, although it should rarely if ever |
| 24 | be necessary to resort to this, since the |
| 25 | <A HREF="roll.html">roll</A> |
| 26 | and |
| 27 | <A HREF="mussym.html">mussym</A> |
| 28 | statements will usually suffice and are much easier to use. |
| 29 | Narrow, dashed, or dotted lines would typically be used for voice crossings. |
| 30 | The medium line is about twice as wide as a |
| 31 | narrow line, and a wide line is about twice as wide as a medium line. |
| 32 | </P> |
| 33 | <P> |
| 34 | The X and Y coordinates are specified as was described |
| 35 | in the section on |
| 36 | <A HREF="tags.html">"Location tags."</A> |
| 37 | <BR><PRE> |
| 38 | score |
| 39 | vscheme=2f |
| 40 | staff2 clef=bass |
| 41 | |
| 42 | music |
| 43 | 1 1: c+ =c;e =e;g;c+; |
| 44 | 1 2: e =_e;g =_g;c =_c;s; |
| 45 | 2 1: 2.s;4g =_gg; |
| 46 | 2 2: 1ce; |
| 47 | line (c.e + 2, c.y) to (e.w - 2, e.y) |
| 48 | line (_e.e + 2, _e.y) to (_g.w - 2, _g.y) |
| 49 | dashed line (_c.e + 1, _c.y) to (_gg.w - 1, _gg.y) |
| 50 | bar |
| 51 | </PRE><BR> |
| 52 | <IMG SRC="mugex83.gif" ALT="Picture of Mup output"><BR> |
| 53 | </P> |
| 54 | <P> |
| 55 | It is possible to print a text string by the line by adding |
| 56 | <BR><PRE> |
| 57 | <B>with </B><I>fontfamily font </I><B>(</B><I>size</I><B>) "</B><I>string</I><B>"</B> |
| 58 | </PRE><BR> |
| 59 | at the end of the "line" statement. Only the keyword "with" and the |
| 60 | text string itself are required; the font and size information is optional. |
| 61 | As usual, the |
| 62 | <A HREF="param.html#fontfam">fontfamily,</A> |
| 63 | <A HREF="param.html#font">font,</A> |
| 64 | and |
| 65 | <A HREF="param.html#size">size</A> |
| 66 | parameter values are used to get values if the optional items are |
| 67 | omitted. The most common usage for printing a string with a line is probably |
| 68 | for glissandos. |
| 69 | <BR><PRE> |
| 70 | 1: 2d =n; g+ =m; |
| 71 | wavy line (n.e + 1.5, n.y) to (m.w - 1.5, m.y) with ital (9) "gliss." |
| 72 | bar |
| 73 | </PRE><BR> |
| 74 | <IMG SRC="mugex84.gif" ALT="Picture of Mup output"><BR> |
| 75 | </P> |
| 76 | <P> |
| 77 | Arbitrary curves can be drawn using the "curve" statement: |
| 78 | <BR><PRE> |
| 79 | <I>linetype</I> <B>curve (</B><I>X1,Y1</I><B>) to (</B><I>X2,Y2</I><B>) to (</B><I>X3,Y3</I><B>)</B> <I>...</I> |
| 80 | </PRE><BR> |
| 81 | When using this form of the "curve" statement, |
| 82 | at least three coordinates must be specified; more are permitted. |
| 83 | The <I>linetype</I> can be "medium," "wide," "dashed," |
| 84 | or "dotted," or omitted. |
| 85 | A curve will be drawn through the specified points in the specified order. |
| 86 | <BR><PRE> |
| 87 | score |
| 88 | staffs=2 |
| 89 | |
| 90 | staff 2 |
| 91 | clef=bass |
| 92 | |
| 93 | music |
| 94 | 1: 4.s;[=c] 8e; [=d] g; [=e] e;4s; |
| 95 | 2: [=a] 8c;g; [=b] c+;4.s; [=f] 8c+; [=g] c; |
| 96 | medium curve (a.x, a.n+1) to (b.x, b.n+15) to (c.x, c.n+4) \ |
| 97 | to (d.x, d.n+3) to (e.x, e.n+3) \ |
| 98 | to (f.x, f.n+11) to (g.x, g.n+1) |
| 99 | bar |
| 100 | </PRE><BR> |
| 101 | <IMG SRC="mugex85.gif" ALT="Picture of Mup output"><BR> |
| 102 | </P> |
| 103 | <P> |
| 104 | An alternative way to specify a curve is to only specify the two endpoints, |
| 105 | along one or more "bulge" values, given in stepsizes. |
| 106 | Suppose a single bulge value <I>n</I> is given. To find the midpoint of |
| 107 | the resulting curve, imagine a line is drawn between the two endpoints, |
| 108 | then from the midpoint of that line, move perpendicular to the line for |
| 109 | <I>n</I> stepsizes. |
| 110 | A positive <I>n</I> will cause the curve to bulge |
| 111 | to the left as you move from the start point to the end point, |
| 112 | while a negative <I>n</I> will make it bulge to the right. |
| 113 | If two bulge values are given, bulges are calculated from the 1/3 and |
| 114 | 2/3 point of the line between the endpoints; with three points, at 1/4, |
| 115 | 1/2, and 3/4, and so forth. Multiple bulge values are separated by commas. |
| 116 | <BR><PRE> |
| 117 | 1: c =_c1; f; f; d =_d1; |
| 118 | medium curve (_c1.x, _c1.y + 8) to (_d1.x, _d1.y + 10) bulge 3 |
| 119 | bar |
| 120 | |
| 121 | 1: g =_g1; e+; d+; a =_a1; |
| 122 | dotted curve (_g1.x, _g1.y - 2) to (_a1.x, _a1.y - 2) bulge -4.3 |
| 123 | bar |
| 124 | |
| 125 | 1: g =_g2; a; d+; c+ =_c2; |
| 126 | curve (_g2.x, _g2.y - 2) to (_c2.x, _c2.y + 2) bulge -2.5, 4 |
| 127 | bar |
| 128 | </PRE><BR> |
| 129 | <IMG SRC="mugex86.gif" ALT="Picture of Mup output"><BR> |
| 130 | </P> |
| 131 | <HR><P> |
| 132 | <A HREF="prnttext.html"><-- previous page</A> <A HREF="index.html">Table of Contents</A> <A HREF="newscore.html">next page --></A> |
| 133 | </P> |
| 134 | </BODY></HTML> |