Syntax

From MusiCAD
Revision as of 21:06, 17 March 2023 by Musys (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This is an informal description of the MusiCAD file syntax as well as the internal representation of music.

Every tune starts literally with: melodie "My Tune Name";

Comments

Everything left from an exclamation mark will be ignored (unless the second character is % or #).

Layout

Lines starting with: !# contain layout/setup information in the form:

<NAME1>=<VALUE1>;<NAME2>=<VALUE2>;

each item terminated with a semicolon

Objects

Notes (and other objects) are terminated with a semicolon.

Duration

notate as: 1/8; 3/16; etc or 0 for duration=0

denominators can be 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16, 20, 24, 28, 30, 32, 64, 128


Pitch

Every note has a non-zero pitch Rests are notated as R.

A#3 Note A-sharp in 3rd octave

+## shift note to the right

+##+## second parameter is stem length adjustment

R Rest.

R+## shift rest to the right

R+##+## second parameter is is vertical shift.

Enhancements

. staccato (at rest means"multi rest")
m mordent
~ prall
c long prall (MusiCAD2: 0xF7)
r trill
z Schleifer
^ fermate
p non-legato
s staccatissimo (also expansion-rest due to "multi rest" in a score)
e roll (MusiCAD2: ê = 0xEA)
e1 single roll
e2 double roll
e3 triple roll
e*
eO hi-hat open (drums)
O other (instrument specific signs)
boo up bow
on down bow
ok dynamic accent <
bog dynamic accent >
Loa marcato
Q tenuto
ox mordent-schleifer
v# fingering (# can be 0-9,a-Z)
$ enharmonic exchange (duration<>0), hide item (duration=0)
$$ alternate enharmonic exchange
& following note
{ grace note
' split cluster-notes
} clusterize
u force stem up
d force stem down
( start tie
) end tie
a courtesy accidental (MusiCAD2: 0xCE)
? hide note
i other note-forms (MusiCAD2: 0xA8)
iQ flageolet open
iZ flageolet closed
is cue note (MusiCAD2: 0xF9)
iD cross-shape (drums)
i/ slash shape (guitar)
f parenthesize (MusiCAD2: 0xAD)

Further specification for duration non zero

Clef:

=v treble clef
=b bass clef
=n tenor clef
=a alto clef
=s drum clef
=e none (no clef)
=+ 8va
=- 8va-basso
=. loco
=_ 15ma-bassa
=*

Key

=Bb B-flat
=F#m F-sharp-minor

Meter

=3/4 triple meter
=2+3/8 compound meter 5/8 displayed 2+3/8
=2+3+2)/16 compound meter 7/16 displayed 7/16
=04/4 common meter: C
=002/2 alla-breve, divided common meter

Text

+ Lyrics 1
- Lyrics 2
T Lyrics 3
L Lyrics 4
` Directions 1
i Directions 2
P Directions 3
# Bar text
, Dynamics
_ Chord symbols
t Tempo change (MusiCAD2: ë 0xEB)
M MIDI-event (MusiCAD2:û 0xFB)
K color change
Q Symbols (from MusiCAD-font)
r cipher at multi rest (MusiCAD2: O 0xF7)
DJ Section
^ Text-files inclusion

Every text may be shifted: 0-3+4 +"Tekstje"

-3 3 vertical units to the left

+4 4 horizontal units up

Text may be sized: 0 +<3>"Tekstje"

<3> 3 units larger than default for the text..

Special objects

@A Arpeggio
@< Crescendo (obsolete)
@> Decrescendo (obsolete)
@P Pedal
@X End-pedal
@K Comma
@O Coda
@S Segno
@B Paragraph-sign
@C al Coda
@D Da-capo
@G Dal-Segno
@c Da-capo al Fine
@s Dal-Segno al Fine
@F Fine
@I Intro
@Z Bar-repeat
@z Phraze-repeat

example:

0-3+2 @S;

Segno-sign 3 units left and two up

*1
*2
%## whitespace (obsolete)
/ new line
// new page
(pipe-symbol) thick bar line
l thin bar line
I conditional line break/page break
: repeat signs at bar line example: 0-1 l; bar line decreasing automatic bar numbering with one

two-item objects

[<1 start crescendo number 1 (numbering is needed for overlap)
]<1 end crescendo number 1
> decrescendo
_ line (underscore)
fat line
p dotted line
( slur below
) slur above
[ hooked line below
] hooked line above
~ Glissando

example

0+5-2 [>0 start decrescendo number 0, 5 units right and two down.