--Author: John Maxwell --last modified: April 20, 1981 1:10 PM DIRECTORY MusicDefs: FROM "MusicDefs"; MusicFileDefs: DEFINITIONS= BEGIN OPEN MusicDefs; versionID:INTEGER = 3; nullID:INTEGER = 0; scoreID:INTEGER = 1; eventID:INTEGER = 2; noteID:INTEGER = 3; chordHeapID:INTEGER = 4; chordID:INTEGER = 5; beamHeapID:INTEGER = 6; beamID:INTEGER = 7; viewID:INTEGER = 8; tieID:INTEGER = 9; --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:INTEGER _ scoreID, length:CARDINAL, events:ARRAY [0..0) OF EventFormat], chordHeap:MACHINE DEPENDENT RECORD[ identifier:INTEGER _ chordHeapID, length:CARDINAL, chords:ARRAY [0..0) OF ChordFormat], beamHeap:MACHINE DEPENDENT RECORD[ identifier:INTEGER _ beamHeapID, length:CARDINAL, beams:ARRAY [0..0) OF BeamFormat], spare1:INTEGER _ nullID, --all spares are set to zero until needed spare2:INTEGER _ nullID, --these spares are for: ties, slurs, spare3:INTEGER _ nullID, --eventExeptions, noteExceptions, and strings. spare4:INTEGER _ nullID, spare5:INTEGER _ nullID, spare6:INTEGER _ nullID, spare7:INTEGER _ nullID, spare8:INTEGER _ nullID, spare9:INTEGER _ nullID, view:ViewFormat]; EventFormat:TYPE = MACHINE DEPENDENT RECORD[ identifier:INTEGER _ eventID, time:Time_0, type:EventType_notes, exception:BOOLEAN _ FALSE, spare1:[0..1000) _ 0, value:INTEGER _ 0, spare2:CARDINAL _ 0, length:CARDINAL _ 0]; -- notes:ARRAY [0..length) OF NoteFormat 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:INTEGER _ noteID, pitch:INTEGER_40, voice:CARDINAL_0, value:NoteValue_unknown, --3 bits spelled:Accidental_inKey, --3 bits rest:BOOLEAN_FALSE, dotted:BOOLEAN_FALSE, doubleDotted:BOOLEAN _ FALSE, grace:BOOLEAN _ FALSE, stemUp:BOOLEAN_FALSE, exception:BOOLEAN _ FALSE, embellish:Embellishment _ none, --3 bits tie:BOOLEAN _ FALSE, show:BOOLEAN _ 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:INTEGER _ chordID, stemUp:BOOLEAN, exception:BOOLEAN _ 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:INTEGER _ beamID, tilt:REAL, beamed:BOOLEAN, exception:BOOLEAN _ FALSE, ntuple: [0..128), against: [0..128), height:INTEGER, invisible:BOOLEAN_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:INTEGER _ tieID, height:INTEGER _ 0, heap:CARDINAL_0, index:CARDINAL_0]; RelativePTR:TYPE = MACHINE DEPENDENT RECORD[ heap:CARDINAL, index:CARDINAL]; beams:CARDINAL = 64000; -- used in RelativePTR chords:CARDINAL = 64001; -- used in RelativePTR ViewFormat:TYPE = MACHINE DEPENDENT RECORD[ identifier:INTEGER _ viewID, scale:INTEGER, accidental:BOOLEAN, notehead:BOOLEAN, sync:BOOLEAN, display:DisplayMode, noCarry:BOOLEAN _ FALSE, hardcopy:BOOLEAN, spare1:[0..512) _ 0, sheet:INTEGER _ 0, --will later be made obselete speed:INTEGER _ 0, --will later be made obselete key:INTEGER _ 0, --will later be made obselete spare5:INTEGER _ 0, spare6:INTEGER _ 0]; END. e6(1792)\480i104I470i39I29i34I29i45I409i39I139i1I141i8I32i6I212i8I121i26I21i1I892i21I28i21I259i27I24i27I22i27I