Score.mesa
Copyright (C) 1983, 1984 Xerox Corporation. All rights reserved.
Author: John Maxwell
Last Edited by: Maxwell, November 21, 1983 9:39 am
Last Edited by: Doug Wyatt, June 16, 1984 3:14:12 pm PDT
DIRECTORY
Imager USING [Context],
MusicDefs USING [Accidental, LookCommand, NotePTR, ScorePTR, SheetPTR, Time, TimeSignature],
Rope USING [ROPE];
Score: CEDAR DEFINITIONS
= BEGIN
OPEN MusicDefs;
ROPE: TYPE ~ Rope.ROPE;
****************************************************************************
procedures
****************************************************************************
Initialize: PROC[score: ScorePTR, context: Imager.Context];
BuildCache: PROC[score: ScorePTR, time: Time];
Draw: PROC[score: ScorePTR, erase: BOOLTRUE];
Redraw: PROC[score: ScorePTR, t1, t2: Time];
Print: PROC[score: ScorePTR, splines: BOOL];
SetKey: PROC[score: ScorePTR, key: INTEGER, time1, time2: Time];
GetKey: PROC[score: ScorePTR, t: Time] RETURNS[key: INTEGER];
GetAccidental: PROC[score: ScorePTR, n: NotePTR] RETURNS[Accidental];
SetMetronome: PROC[score: ScorePTR, m: INTEGER, time1, time2: Time];
GetMetronome: PROC[score: ScorePTR, t: Time] RETURNS[metronome: INTEGER];
DrawMetronome: PROC[score: ScorePTR, metronome: INTEGER, time: Time];
SetTimeSignature: PROC[score: ScorePTR, ts: TimeSignature, time1, time2: Time];
GetTimeSignature: PROC[score: ScorePTR, t: Time] RETURNS[TimeSignature];
DrawTimeSignature: PROC[score: ScorePTR, ts: TimeSignature, time: Time];
SetStyle: PROC[score: ScorePTR, index: INTEGER, t1, t2: Time];
GetStyle: PROC[score: ScorePTR, time: Time] RETURNS[INTEGER];
SetClef: PROC[score: ScorePTR, pitch, staff: INTEGER, time: Time];
SetOctava: PROC[score: ScorePTR, pitch, staff, height: INTEGER, t1, t2: Time];
Justify: PROC[score: ScorePTR, begin, end: Time];
LogicalToPhysical: PROC[score: ScorePTR, begin, end: Time];
ScalePhysical: PROC[score: ScorePTR, n: INTEGER];
ShowLogical: PROC[score: ScorePTR, firstEvent, lastEvent: CARDINAL];
Look: PROC[score: ScorePTR, look: LookCommand, switch: BOOLTRUE, n: INTEGER ← 0];
key specific procedures
AddToPitch: PROC[key, pitch, delta: INTEGER] RETURNS[INTEGER];
KeyHeight: PROC[key, pitch: INTEGER] RETURNS[INTEGER];
NormalAcc: PROC[key, pitch: INTEGER] RETURNS[Accidental];
PriorNote: PROC[score: ScorePTR, pitch, height: INTEGER, index: CARDINAL] RETURNS[NotePTR];
ShowPitch: PROC[sheet: SheetPTR, pitch: INTEGER, spelled: Accidental, key: INTEGER] RETURNS[INTEGER];
****************************************************************************
utility procedures
****************************************************************************
FileIn: PROC[fileName: ROPE] RETURNS[ScorePTR];
FileOut: PROC[score: ScorePTR, fileName: ROPE] RETURNS[BOOL];
FileStats: PROC[score: ScorePTR];
InitializeSynthesizer: PROC;
StartListening: PROC[score: ScorePTR];
StartPlaying: PROC[score: ScorePTR, first: CARDINAL, physical: BOOL,
displayCursor: PROC[score: ScorePTR, time: Time]];
displayCursor may raise Piece.Overflow
StopListening: PROC[score: ScorePTR];
StopPlaying: PROC[score: ScorePTR];
Test: PROC[score: ScorePTR] RETURNS[errors: BOOL];
END.