The MusicKit Allows Simple Language Constructs to Appear in a Scorefile

The MusicKit can read an extended scorefile format called ScoreFile that is actually a simple language supporting variables, expressions and operators. While ScoreFile is not intended as a means of entering musical data, it is useful for fine-tuning or making other minor modifications to a piece.

As a final example, here is a MusicKit scorefile with some ScoreFile constructs included:

info tempo:72;
part bell; 
bell synthPatch:"Fm1i" synthPatchCount:9; 

envelope ampFun =  [(0,0)(.005,0dB)(10,-40dB)|(14,0.0)(15,0)];
envelope freqFun =  [(0,1)(.005,bf4/a4)(.01,1)(10,1)|(14,.9,2)];
envelope indxFun =  [(0,2)(.005,1)(10,0,.3)|(14,0.0)];

waveTable wave1  = [{1,1}{3,.1}]; 

BEGIN;
bell (noteUpdate) waveform:wave1 m1Ratio:3.4
     m1Ind1:.4 amp:0.2 ampEnv:ampFun freqEnv:freqFun 	
     m1IndEnv:indxFun;

t .001;
bell (4.5) freq:c7 bearing:-45 + ran; /* ran returns a random number */
bell (4.5) freq:c7+4.5 bearing:0;
t +.1;
bell (4.4) freq:b6 bearing:-35 + ran;
bell (4.4) freq:b6+4.1 bearing:10;
t .2;
bell (4.3) freq:g6 bearing:-25;
bell (4.3) freq:g6+4.8 bearing:20;
t .3;
bell (4.2) freq:f6 bearing:-15;
bell (4.2) freq:f6+5.5 bearing:30;
t .4;
print "Last note coming up. Time is ",t,"\n"; 
bell (4.1) freq:d6 bearing:45;
END;