typedef enum { /* types of bar sign */ SINGLE_BAR, DOUBLE_BAR, BAR_REP, REP_BAR, BAR1, REP_BAR2, DOUBLE_REP, THICK_THIN, THIN_THICK, /* other things */ PART, TEMPO, TIME, KEY, REST, TUPLE, /* CHORD replaced by CHORDON and CHORDOFF */ NOTE, NONOTE, TEXT, SLUR_ON, SLUR_OFF, TIE, TITLE, CHANNEL, TRANSPOSE, RTRANSPOSE, GRACEON, GRACEOFF, SETGRACE, SETC, GCHORD, GCHORDON, GCHORDOFF, VOICE, CHORDON, CHORDOFF, SLUR_TIE, TNOTE, /* broken rhythm */ LT, GT, DYNAMIC, LINENUM, MUSICLINE, MUSICSTOP, WORDLINE, WORDSTOP } featuretype; /* note decorations */ #define DECSIZE 8 static char decorations[] = ".H~RuvML"; #define STACCATO 0 #define FERMATA 1 #define ORNAMENT 2 #define ROLL 3 #define BOWUP 4 #define BOWDOWN 5 #define TENUTO 6 #define LOUD 7 struct vstring { int len; int limit; char* st; };