This quickstart introduction is not intended to take the place of the score11 manual, but only to help new users get started. Score11 is a Csound score file preprocessor (front-end), written in Pascal by Alexander Brinkman and designed to simplify the creation of Csound score (.sco) files. Instead of specifying all of the parameter values for note 1, then all the parameters for note 2, and so on, score11 allows us to deal globally with each score parameter for each instrument in an orchestra.

Score11 requires an input file that includes keywords and other syntactic conventions that cause various subroutines to be executed. On Linunx/Unix systems, score11 is a command line program run in a shell window. On ECMC systems score11 actually is run by a script that includes expansion and processing of some ECMC macros. On ECMC systems (and those with the Turn-Key Linux Audio installation) score11 is run with the command:

score11 inputfile

If you have downloaded a score11 binary for use on a non-ECMC system, you will have to precede the input file name with the input redirect symbol "<",like this:

score11 < inputfile

We suggest you place the score11 binary in the /usr/local/bin directory on your system. If you don't like using the input redirect sign you can create an alias in one of your shell environment variable files (~/.bashrc, /etc/profile, .cshrc , .tcshrc or whatever) like this:

alias score11 /usr/local/bin/score11 \< $1

and, after running a source or exec command on this file, from then on simply type:

score11 inputfile

On Macintosh systems the user-created input file is opened with a standard open dialogue box from within the application (drag-and-drop is not available). The output (Csound .sco) file created by score11 is called "sout" ("Score OUTput file"). Obviously this "sout" file can be renamed if desired:

mv sout violin3.sco

Within input files to score11:

1. Each line of code must be terminated by a semicolon. Input lines of code may extend over several physical lines, so long the semicolon that signals the end of input to a parameter occurs only at the end of the last line.

2. The comment symbol < can be introduced anywhere, "hiding" the rest of the line from score11.

3. Any character string preceded by an asterisk will be copied directly to the output file, with the asterisk stripped off. This is particularly userful for creating function definition statements.

Each instrument called by the score is delimited by an I Block (Instrument Block). The first line of this I Block specifies the instrument number, the start time for it to begin playing, and either the number of beats or the number of notes it is to play. This line is followed by one or more lines for each score parameter required by the instrument.

The I Block is terminated with an end; statement. A complete I Block, which typically will generate all of the notes for one isntrument within an orchestra, has a skeletal structure like this:


i1 0 5.5; < instrument 1 starts at time 0 and plays for five and a half beats
p3 blah blah blah; < determines starting times of notes
du blah blah blah ; < determines the durations of the notes

p4 blah blah blah; < optional comment about this parameter
end; < end of I block for instrument number 1


score11's parsing is robust. You can indent lines in any way you wish for ease of reading, include blank lines (as before p4 above), include lots of blank spaces, and make your input as pretty or ugly as you wish.

Some notes on the skeletal I block above:

1. The first line of the I block contains either 3 or 4 arguments.

    • Argument 1 (i1) specifies the instrument number.
    • Argument 2 (0) specifies the starting time, in beats, for this instrument. The default beat is the quarter note (this can be changed with a "beat" statement) and the default tempo is "quarter note = 60 beats per minute" (this can be changed with a "tempo" statement).
    • The third argument (5.5 above) specifies how many beats the instrument will play, or more precisely, the score time after which no new notes will be created. However, if this third argument is set to 0, and a fourth argument is included, the fourth argument specifies how many notes the instrument will play.
Examples:
i5 2. 0 12; < instrument 5 starts on beat 2 and plays exactly 12 notes
instr 22 2.5 0 7; < instrument 22 starts at beat 2.5 and plays 7 notes

2. The way in which starting times and durations for each note are specified may initially seem counterintuitive, or just plain "wrong," to experienced Csound users. p2 is not used in score11. Instead, p3 determines the starting times of the notes (p2 in the "sout" Csound score file), while "du" ("duty factor") determines the durations of these notes (p3 in the "sout" Csound score file). Learn to live with this. The default duration, if no duty factor definition is included, is "until the next note."

3. As with Csound, all parameters beginning with p4 have no fixed meaning. Rather, the purpose of the parameter is defined in the instrument definition within the orchestra file.

Here are some elementary score11 input files, each followed by the resulting score11 output "sout" file, that illustrate just a few of the features of score11:
(1)
instr 2 0 5; < instr 2 plays for 5 beats (the last note starts no < later than beat 5)
p3 .5; < notes will begin 1/2 beat apart
du nu 2./1./.5; < these 3 values will loop; durations will be < 1 second, .5 seconds and .25 seconds
end;

resulting "sout" file:
i2 0.000 1.000
i2 0.500 0.500
i2 1.000 0.250
i2 1.500 1.000
i2 2.000 0.500
i2 2.500 0.250
i2 3.000 1.000
i2 3.500 0.500
i2 4.000 0.250
i2 4.500 1.000
e
-------------------------
(2) Identical to preceding example except that the tempo is raised to quarter note = 90 :

te 90;
instr 2 0 5; < instr 2 plays for 5 beats
p3 .5; < notes will begin 1/2 beat apart
du nu 2./1./.5; < these 3 values will loop; durations will be < 1 second, .5 seconds and .25 seconds
end;

resulting "sout" file:
i2 0.000 0.667
i2 0.333 0.333
i2 0.667 0.167
i2 1.000 0.667
i2 1.333 0.333
i2 1.667 0.167
i2 2.000 0.667
i2 2.333 0.333
i2 2.667 0.167
i2 3.000 0.667
e
-----------------------------
(3) Additional parameters are added for pitch (p4) and amplitude (p5) :

* f1 0 1024 10 1.; < sinewave
* f20 0 129 5 .001 128 1.; < exponential rise
*f10 0 524288 -1 "/sflib/voice/sop1.b3" 0 0 0; < read a soundfile into RAM

i11 0 0 8 ; < 8 notes
p3 rh 4./ 16// (4= 8*3)/ -8/8,2; < dotted quarter, two 16th notes, 3 eighth
< note triplets, eighth rest, eighth note tied to half note
du numbers 100.1*3/ .5 * 3/ 1/1; < first 3 notes overlap by .1 second, the triplets are "staccato,"
p4 notes c4/ d/e/ f/g/a/ /b4; < pitch: up a C major scale starting on middle C
< output is in octave pitch class
p5 movex 3.5 10000 25000; < amplitude:
< increase exponentially from 10000 to 25000
end;

resulting "sout" file:
f1 0 1024 10 1.
f20 0 129 5 .001 128 1.
f10 0 524288 -1 "/sflib/voice/sop1.b3" 0 0 0
i11 0.000 1.600 8.00 10000
i11 1.500 0.350 8.02 14810
i11 1.750 0.350 8.04 15811
i11 2.000 0.167 8.05 16881
i11 2.333 0.167 8.07 18420
i11 2.667 0.167 8.09 20100
ci11 3.000 0.500 8.09 21933 <rest>
i11 3.500 2.500 8.11 25000
e

-----------------------------
(4) Pseudo-random score generation: I'll set the global ranges for
each parameter and let score11 do the ant work of picking exact values

i2 0 12;
rs 5183; < reseed random number generator; any other value will produce a
< different output; this seed value (5183) always produced the same output
p3 .5 .2 .3 .5 1. 1.5; < half the notes begin between .2 and .3 seconds
< after the preceding note, and half begin between 1. and 1.5 seconds after
< the preceding note

du 1. 300.5 302. ; < note durations vary between .5 and 2 seconds

p4 sets 6. c2 b2 fs3 f4 e5/ 6. d4 f5 e6; < one octave pitch class collection
< is used for the first 6 beats, another collection for the last 6 beats
p5 .7 3000 6000 .3 23000 15000 ; < amplitude; 70 % of the notes
< are "soft" (between 3000 and 6000 peak amp.) and 30 % are "loud"
p6 1. .05 .15; < amplitude rise times vary between 50 and 150 milliseconds
p7 mo 12. .1 .2 .2 .3; < amlitude decay times begin within a range of .1
< to .2 seconds and increase over 12 beats to a range between .2 and .3 seconds
end;

resulting "sout" file:
i2 0.000 0.576 8.05 18174 0.133 0.169
i2 0.239 0.630 7.06 16003 0.086 0.189
i2 0.465 0.727 9.04 18487 0.097 0.148
i2 1.709 1.483 7.06 20527 0.099 0.136
i2 1.964 0.642 6.00 3298 0.136 0.175
i2 3.282 1.595 8.05 15434 0.066 0.206
i2 4.617 1.590 9.04 5439 0.089 0.155
i2 5.638 0.770 6.00 3017 0.145 0.234
i2 5.857 1.582 8.05 4345 0.098 0.203
i2 6.068 1.460 8.02 4613 0.113 0.157
i2 6.296 1.558 9.05 18877 0.069 0.205
i2 7.588 0.703 10.04 4630 0.083 0.244
i2 8.779 1.076 9.05 19719 0.100 0.208
i2 10.102 1.669 8.02 4719 0.059 0.205
i2 11.554 1.168 10.04 17835 0.149 0.224
i2 11.822 1.269 8.02 4778 0.052 0.229
e
-------------------------------------------------

Many of these simple examples are rather trivial, musically, and probably would result in music I would not want to hear, but I hope they provide some ideas on how score11 can be used, and that they will encourage you to read the manual.

A.S.
Last updated April 25, 2000
(reformat and additions, KME, August 15, 2002