<> <> <> <> <> DIRECTORY Graphics USING [Context], MusicDefs; Sheet: CEDAR DEFINITIONS = BEGIN OPEN MusicDefs; Draw: PROC; DrawClef: PROC[pitch, staff: INTEGER, time: Time]; DrawOctava: PROC[pitch, staff, height: INTEGER, t1, t2: Time]; FindLine: PROC[t: Time] RETURNS[INTEGER]; FindSection: PROC[t: Time] RETURNS[INTEGER]; GetStyle: PROC[time: Time] RETURNS[INTEGER]; HiLite: PROC[tex: Texture, t1, t2: Time]; Initialize: PROC[dc: Graphics.Context]; Reset: PROC; Scale: PROC[newScale: INTEGER]; Scroll: PROC[lines: INTEGER]; -- "currentLine _ currentLine+lines" SetBegin: PROC[now: Time]; SetClef: PROC[pitch, staff: INTEGER, time: Time]; SetOctava: PROC[pitch, staff, height: INTEGER, t1, t2: Time]; SetStyle: PROC[index: INTEGER, t1, t2: Time]; <<(formerly) INLINE Procedures>> Last: PROC[l: CARDINAL] RETURNS[CARDINAL]; LineNumber: PROC[l: CARDINAL] RETURNS[n: CARDINAL _ 1]; NextLine: PROC[l: CARDINAL] RETURNS[CARDINAL]; NextStaff: PROC[s: CARDINAL, t: Time] RETURNS[CARDINAL]; NormalPitch: PROC[staff: CARDINAL] RETURNS[INTEGER]; PriorLine: PROC[l: CARDINAL] RETURNS[CARDINAL]; PriorStaff: PROC[s: CARDINAL, t: Time] RETURNS[CARDINAL]; OctavaHeight: PROC[pitch, height: INTEGER] RETURNS[INTEGER]; <<*************************************************************************>> <> <<*************************************************************************>> < [Time, Pitch, Staff] => [Time, Height] => ScreenPoint; UNAMBIGUOUSLY!>> <<[Time, Height] <= ScreenPoint; ambiguous when point is between lines>> <<[Time, Pitch, Staff] <= [Time, Height]; ambiguous when between staffs >> <> default: INTEGER = 1000; AlternateTime: PROC[t1: Time, h1, lines: INTEGER] RETURNS[time: Time, height: INTEGER]; Height: PROC[t: Time, pitch: INTEGER _ default, staff: CARDINAL] RETURNS[INTEGER]; NearestStaff: PROC[t: Time, height: INTEGER] RETURNS[INTEGER]; NearestTime: PROC[x, y: INTEGER _ default] RETURNS[time: Time, height: INTEGER]; Map: PROC[t: Time, pitch: INTEGER _ default, staff: CARDINAL] RETURNS[x, y: INTEGER]; MapHeight: PROC[t: Time, height: INTEGER] RETURNS[x, y: INTEGER]; MapNote: PROC[n: NotePTR] RETURNS[x, y: INTEGER]; Pitch: PROC[t: Time, height: INTEGER, staff: CARDINAL] RETURNS[INTEGER]; ScreenPoint: PROC RETURNS[x, y: INTEGER]; END.