DIRECTORY MusicDefs; MusicFileDefs: CEDAR DEFINITIONS = BEGIN OPEN MusicDefs; versionID: INTEGER = 3; ID: TYPE ~ MACHINE DEPENDENT {nullID(0), scoreID(1), eventID(2), noteID(3), chordHeapID(4), chordID(5), beamHeapID(6), beamID(7), viewID(8), tieID(9), (CARDINAL.LAST)}; EventFormat: TYPE = MACHINE DEPENDENT RECORD[ identifier: ID _ eventID, time: Time _ 0, type: EventType _ notes, exception: BOOL _ FALSE, spare1: [0..1000) _ 0, value: INTEGER _ 0, spare2: CARDINAL _ 0, length: CARDINAL _ 0 ]; SheetFormat: TYPE = MACHINE DEPENDENT RECORD[ junk: NotePTR _ NIL, height, offset: INTEGER _ 0, sl: CARDINAL _ 0, staff: ARRAY [0..6) OF Staff ]; NoteFormat: TYPE = MACHINE DEPENDENT RECORD[ identifier: ID _ noteID, pitch: INTEGER _ 40, voice: CARDINAL _ 0, value: NoteValue _ unknown, --3 bits spelled: Accidental _ inKey, --3 bits rest: BOOL _ FALSE, dotted: BOOL _ FALSE, doubleDotted: BOOL _ FALSE, grace: BOOL _ FALSE, stemUp: BOOL _ FALSE, exception: BOOL _ FALSE, embellish: Embellishment _ none, --3 bits tie: BOOL _ FALSE, show: BOOL _ FALSE, spare4: [0..2000) _ 0, staff: [0..16) _ 1, spare2: CARDINAL _ 0, --legato, stacatto, accents spare3: CARDINAL _ 0, toc: LONG CARDINAL, duration: CARDINAL ]; ChordFormat: TYPE = MACHINE DEPENDENT RECORD[ identifier: ID _ chordID, stemUp: BOOL, exception: BOOL _ FALSE, spare1: [0..16000) _ 0, exceptionPTR: CARDINAL _ 0, spare2: INTEGER _ 0, length: CARDINAL, notePTRs: ARRAY [0..0) OF RelativePTR ]; BeamFormat: TYPE = MACHINE DEPENDENT RECORD[ identifier: ID _ beamID, tilt: REAL, beamed: BOOL, exception: BOOL _ FALSE, ntuple: [0..128), against: [0..128), height: INTEGER, invisible: BOOL _ FALSE, spare1: [0..1024) _ 0, staff: [0..32), spare2: CARDINAL _ 0, length: CARDINAL, chordPTRs: ARRAY [0..0) OF RelativePTR ]; TieFormat: TYPE = MACHINE DEPENDENT RECORD[ identifier: ID _ tieID, height: INTEGER _ 0, heap: CARDINAL _ 0, index: CARDINAL _ 0 ]; RelativePTR: TYPE = MACHINE DEPENDENT RECORD[ heap: CARDINAL, index: CARDINAL ]; beams: CARDINAL = 64000; -- special heap value in RelativePTR chords: CARDINAL = 64001; -- special heap value in RelativePTR ViewFormat: TYPE = MACHINE DEPENDENT RECORD[ identifier: ID _ viewID, scale: INTEGER, accidental: BOOL, notehead: BOOL, sync: BOOL, display: DisplayMode, noCarry: BOOL _ FALSE, hardcopy: BOOL, spare1: [0..512) _ 0, sheet: INTEGER _ 0, --will later be made obsolete speed: INTEGER _ 0, --will later be made obsolete key: INTEGER _ 0, --will later be made obsolete spare5: INTEGER _ 0, spare6: INTEGER _ 0 ]; END. LMusicFileDefs.mesa Copyright (C) 1981, 1984 Xerox Corporation. All rights reserved. Author: John Maxwell last modified: April 20, 1981 1: 10 PM Edited by Doug Wyatt, June 14, 1984 4:55:52 pm PDT MusicFile is never actually used, it is a conceptual tool that helps one understand the file format. MusicFile: TYPE = MACHINE DEPENDENT RECORD[ version: INTEGER, score: MACHINE DEPENDENT RECORD[ identifier: ID _ scoreID, length: CARDINAL, events: ARRAY [0..0) OF EventFormat], chordHeap: MACHINE DEPENDENT RECORD[ identifier: ID _ chordHeapID, length: CARDINAL, chords: ARRAY [0..0) OF ChordFormat], beamHeap: MACHINE DEPENDENT RECORD[ identifier: ID _ beamHeapID, length: CARDINAL, beams: ARRAY [0..0) OF BeamFormat], spare1: ID _ nullID, --all spares are set to zero until needed spare2: ID _ nullID, --these spares are for: ties, slurs, spare3: ID _ nullID, --eventExeptions, noteExceptions, and strings. spare4: ID _ nullID, spare5: ID _ nullID, spare6: ID _ nullID, spare7: ID _ nullID, spare8: ID _ nullID, spare9: ID _ nullID, view: ViewFormat]; notes: ARRAY [0..length) OF NoteFormat Ê/˜šœ™Jšœ@™@Jšœ™Jšœ'™'J™2J˜—šÏk ˜ Jšœ ˜ J˜—Jšœœ ˜ Jšœœœ ˜J˜Jšœ œ˜J˜š œœœ œ|œœ˜¨J˜—JšœE™EJšœ™š œ œœ œœ™+Jšœ œ™šœœ œœ™ Jšœ œ ™Jšœœ™Jšœœœ™%—šœ œ œœ™$Jšœ œ™Jšœœ™Jšœœœ™%—šœ œ œœ™#Jšœ œ™Jšœœ™Jšœœœ ™#—Jšœœ Ïc)™>Jšœœ ž$™9Jšœœ ž/™DJšœœ ™Jšœœ ™Jšœœ ™Jšœœ ™Jšœœ ™Jšœœ ™J™J™—š œ œœ œœ˜-Jšœ œ ˜J˜J˜Jšœ œœ˜J˜Jšœœ˜Jšœœ˜Jšœœ˜Jšœ&™&Jšœ˜—J™J˜š œ œœ œœ˜-Jšœœ˜Jšœœ˜Jšœœ˜Jšœœœ˜Jšœ˜J˜—š œ œœ œœ˜,Jšœ œ ˜Jšœœ˜Jšœœ˜Jšœž˜%Jšœž˜%Jšœœœ˜Jšœœœ˜Jšœœœ˜Jšœœœ˜Jšœœœ˜Jšœ œœ˜Jšœ!ž˜)Jšœœœ˜Jšœœœ˜J˜J˜Jšœœž˜1Jšœœ˜Jšœœœ˜Jšœ ˜Jšœ˜J˜—š œ œœ œœ˜-Jšœ œ ˜Jšœœ˜ Jšœ œœ˜J˜Jšœœ˜Jšœœ˜Jšœœ˜Jšœ œœ ˜%Jšœ˜J˜—š œ œœ œœ˜,Jšœ œ ˜Jšœœ˜ Jšœœ˜ Jšœ œœ˜J˜J˜Jšœœ˜Jšœ œœ˜J˜J˜Jšœœ˜Jšœœ˜Jšœ œœ ˜&Jšœ˜J˜—š œ œœ œœ˜+Jšœ œ ˜Jšœœ˜Jšœœ˜Jšœœ˜Jšœ˜J˜—š œ œœ œœ˜-Jšœœ˜Jšœ˜Jšœ˜—Jšœœ ž$˜>Jšœœ ž$˜?J˜š œ œœ œœ˜,Jšœ œ ˜Jšœœ˜Jšœ œ˜Jšœ œ˜Jšœœ˜ J˜Jšœ œœ˜Jšœ œ˜J˜Jšœœž˜2Jšœœž˜2Jšœœž˜0Jšœœ˜Jšœœ˜Jšœ˜J˜J˜—Jšœ˜—…— îi