|
- 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
-
|
|