FW: music flow object classes

Subject: FW: music flow object classes
From: G Seshadri <SeshadriG@xxxxxxxxxxx>
Date: Tue, 25 Apr 2000 15:13:44 +0530

> -----Original Message-----
> From:	G Seshadri 
> Sent:	Tuesday, April 18, 2000 11:34 AM
> To:	'jade'
> Subject:	music flow object classes
> 
> hi,
> 
> i have complied a list of flow object classes and their attributes to
> describe music notation. I have generously borrowed from 
> http://ccrma-www.stanford.edu/CCRMA/Software/cmn/cmn.html. This is a
> common music notation software written in lisp and is more or less
> comprehensive. I hope someone will take a look at my attachment and send
> me comments. 
> 
> seshadri <<musicflow.txt>> 
This file describes the flow object classes for musical notation. 

Flow object classes for Musical Notation :

The flow object classes for musical notation are system,staff,bar and note. 
The character and paragraph flow objects will be used to display text and the simple-page sequence will be used to set the page properties.


			      System Flow object class
			      --------------------------
The system contains all the musical data. Each system is a group of related staves, normally bracketed together and separated vertically from other systems.

A system flow object class is formatted to produce the concatenation of areas produced by each of its children. It has a single principal port. It is displayed.

 The port shall accept flow objects of the following classes: system,staff,bar and note.

The applicable characteristics are :

--first-start-indent: is a length-spec giving an indent to be added to the start-indent for the first-line. The initial value is 0pt.

--start-indent: is a length-spec specifying the indent for the edge of the area at the start in the direction of the writing mode. The initial value os 0pt.

--end-indent: is a length-spec specifying the indent for the edge of the area at the end in the direction of the writng mode. The initial value is 0pt.

--space-before: is a length-spec specifying the margin to be inserted before , the placement direction the areas produced by the flow-object. This characteristic is not inherited and the defualt is for no margin to be inserted.

-space after:	is a length-spec specifying the margin to be inserted after , the placement direction the areas produced by the flow-object. This characteristic is not inherited and the defualt is for no margin to be inserted.

--grouped? : is either #f or one of the symbols brace or bracket specifying whether the rows shall be visually grouped with a left brace or bracket. The default value is #f.



				    Staff flow object
				    -----------------

This flow object describes the layout for a staff . 

--space-before: is a length-spec specifying the margin to be inserted before , the placement direction the areas produced by the flow-object. This characteristic is not inherited and the defualt is for no margin to be inserted.

-space after:	is a length-spec specifying the margin to be inserted after , the placement direction the areas produced by the flow-object. This characteristic is not inherited and the defualt is for no margin to be inserted.

-staff-lines: is an integer specifying the number of staff-lines per staff. The default value is 6.


-line-width: is a length-spec specifying the width of the staff-lines. The default value is 1pt.

-line-separation: is a length spec specifying the spacing between staff-lines. The default value is 2pt.

-staff-name: is either #f or a string prepended to the staff.

-staff-name-font: is valid only if staff-name attribute is set. the value is either #f indicating any font is applicable or a string giving the font-family property.



				   Bar flow-object
				   ---------------


The bar flow object contains note flow object as its children. It specifies the layout for a bar of music. The vertical bar symbols are drawn for bar endings only.

-bar-line-type: is one of the symbols normal,double-bar,interior-double-bar,dashed-bar, full-double-bar,full-bar, begin-repeat-bar,end-repeat-bar,begin-and-end-repeat-bar,full-interior-double-bar, begin-and-end-repeat-bar-without-thin-lines, begin-and-end-repeat-bar-with-one-thick-line. The default is normal. 

-bar-line-thickness: is a length-spec giving the width of the bar lines.

-bar-line-height : is a length-spec giving the height of the bar. If this value is not given then the top to bottom staff-lines will be used in drawing the bar.


-bar-line-broken: is a boolean that specifies if the bar continues across system breaks.

-bar-justification : is one of the symbols nil,right or left.

--clef-type : is either #f or one of the symbols french-violin,treble,tenor-treble, soprano, mezzo-soprano, alto, tenor, baritone, baritone-C, baritone-F, bass, sub-bass, double-bass, percussion. The default value is #f.

-meter : is either #f or one of the symbols twotwo,nineeight,threefour, twofour,sixeight,twelveeight, allabreve,cut-time,common-time, 

-meter-note-head-denominator: is a boolean which specifies whether the denominator will be a note-head. The default is #f.

-meter-suppressed-denominator: is a boolean which specifies whether the denominator will be suppressed. The default value is #f. 

-meter-scaling : is an integer that specifies the scaling-size of the meter

-key: is either #f or one of the symbols c-major, a-minor, cs-major, as-minor, df-major, bf-minor, d-major, b-minor, ef-major, c-minor, e-major, cs-minor, f-major, d-minor, fs-major, ds-minor, gf-major, ef-minor, g-major, e-minor, af-major, f-minor, a-major, fs-minor, bf-major, g-minor, b-major, gs-minor, cf-major, af-minor. The default value is #f and causes no key signature to appear in the current bar.

-rehearsal-number : is either #f or a positive integer . This appears attached to a bar line. If clef-type is specified it appears either over or below the clef.

-repeat-measure : is either #f or a positive integer. It results in the repaet measure to appear in the middle over the bar. 



				    Note flow object
				    ----------------


The note flow object specifies the layout for a note . It is allowed only inside a bar flow object.

-duration: is one of the symbols quarter,half,whole,doublewhole,eighth,sixteenth,thirty-second,sixty-fourth,one-twenty-eigth,triplet-sixteenth,triplet-eighth,triplet-quarter,triplet-half. This characteristic has to be specified.

-duration-dotted: is either #f or one of the symbols one,two,three. This indicates if the note is dotted which extends the duration by half the note. The defualt is #f.

-note-name: is the value of the note. The value is one of the symbols a, b, c, d, e, f, g or rest.  This characteristic has to be specified.

-note-position: is an integer from 0 to 8. This determines the different ocatves of the same note.

-note-accidental: is either #f or one of the symbols sharp, flat, natural, double-sharp, double-flat, small-sharp, small-flat, small-natural. The default is #f.


-note-head : is one of the symbols round,diamond,triangle,square,cross,circled-cross,artificial-harmonic,tremolo,slash,none. The default is round.

-stem-direction : is one of the symbols up,down. The defualt values for notes upto b4 is up. Notes above c5 have stem-direction up.

-dynamics : is either #f or one of the symbols ppp, pp,p, mp, mezzopiano, pppp, ffff, fff, ff,f, 
  mf, sff, spp, sf, fz, fp, rfz, sfp, sfz.

-articulation: is either #f or one of the symbols staccato, accent, little-swell, wedge, 
  tenuto, marcato, down-bow, up-bow, 
  detache, martele, thumb, natural-harmonic, 
  stopped-note, open-note, pedal, pedal-off,
  bartok-pizzicato, snap-pizzicato, left-hand-pizzicato. The default value is #f.

--fingering: is either #f or a positive integer . This causes the finger number to appear below the note.

--ornaments: is either #f or one of the symbols mordent, inverted-mordent, double-mordent, turn, 
  short-trill, trilled-turn, trill.

-ornament-sign: is either #f or one of the symbols sharp,flat,natural,double-sharp,double-flat,small-sharp,small-flat,small-natural. This attribute is valid only when ornaments attribute is not #f.
 

-pause: is either #f or one of the symbols breath-mark,general-pause,grand-pause,fermata,upside-down-fermata,hold,caesura,pause.

-slur : is either #f or a positive integer indicating the number of notes that are slurred. 

-beam: is either #f or a one of the symbols begin-beam, end-beam. The default is #f and causes no beam to be drawn . Beaming is done based on the note duration and whether a previous note has begin-beam attribute set.

-arpeggio: can be either #f or one of the symbols arrow-down, arrow-up , no-arpeggio. The last symbol causes a bracket to appear on the left side of the chord.

-grace-note: is a boolean and if #t is drwan as a grace note with a slur till the main note.





























Current Thread