<> <> <> <> <> <<>> DIRECTORY MusicDefs USING [BeamPTR, ChordHeapPTR, ChordPTR, NotePTR, ScorePTR, SheetPTR]; Chord: CEDAR DEFINITIONS = BEGIN OPEN MusicDefs; default: INTEGER = 1000; Draw: PROC[score: ScorePTR, c: ChordPTR, stem: INTEGER _ default]; <> Adjust: PROC[sheet: SheetPTR, c: ChordPTR]; SetDefaultStem: PROC[sheet: SheetPTR, c: ChordPTR]; Sort: PROC[c: ChordPTR, up: BOOLEAN] RETURNS[n: CARDINAL]; AddNote: PROC[score: ScorePTR, chord: ChordPTR, note: NotePTR]; <> <> <> <> RemoveNote: PROC[score: ScorePTR, chord: ChordPTR, note: NotePTR, free: BOOLEAN _ TRUE]; <> <> New: PROC[score: ScorePTR, length: CARDINAL _ 10] RETURNS[chord: ChordPTR]; Free: PROC[score: ScorePTR, chord: ChordPTR]; <> <> Beam: PROC[c: ChordPTR] RETURNS[BeamPTR] ~ INLINE { n: NotePTR ~ c.note[0]; RETURN[IF n=NIL THEN NIL ELSE n.beam] }; SetBeam: PROC[c: ChordPTR, b: BeamPTR]; GetHeapIndex: PROC[heap: ChordHeapPTR, c: ChordPTR] RETURNS[CARDINAL]; Grace: PROC[c: ChordPTR] RETURNS[BOOLEAN]; InVoice: PROC[c: ChordPTR, voice: CARDINAL] RETURNS[BOOLEAN]; Length: PROC[c: ChordPTR] RETURNS[CARDINAL] = INLINE {RETURN[c.length]}; Width: PROC[c: ChordPTR] RETURNS[INTEGER] = INLINE {RETURN[IF Grace[c] THEN 5 ELSE 8]}; END.