*************************************** ***** ***** ***** Manual/Sample-score for ***** ***** ***** ***** <> ***** ***** ***** ***** A Csound score generator ***** ***** for use in the creation ***** ***** of percussion tracks. ***** ***** ***** *************************************** # Comments begin with '#', '*', or ';', * and can occur ; in the middle of a line. # To create a Csound score out of this file, # invoke drumachine in this manner: # # drumachine < manual > sco # # see the file 'dscore' for a more realistic # version of this score without the text. # Any line beginning with '!' is copied # directly to the score. I use this # primarily for function definitions: !f105 0 0 1 "drum_sounds/909cymb1.aif" 0 0 0 !f106 0 0 1 "drum_sounds/909hh1.aif" 0 0 0 !f111 0 0 1 "drum_sounds/909kick1.aif" 0 0 0 !f118 0 0 1 "drum_sounds/909oh1.aif" 0 0 0 !f120 0 0 1 "drum_sounds/909rcym1.aif" 0 0 0 !f128 0 0 1 "drum_sounds/909sd1.aif" 0 0 0 !f100 0 0 1 "drum_sounds/909toml.aif" 0 0 0 ! reverb 99 3; # See the file 'Reference' for an explanation. # Also see 'orc' to look at inst 99 # A line starting with an 's' (sound/sample) # describes an 'instrument', which has an # identification number, a csound orchestra # destination number, and then any number ( < 50) # of pfields. This is really the template for # the actual csound notes that will be output # when drumachine is run. #instr# csinst# p3 p4 p5 p6..... s1 1 1 1 1.5 106 .4 ; hh s2 1 1 1 .9 128 .4 ; snare s3 1 1 1 1 111 .6 ; bass s4 1 2 1 1 105 .2 ; cym s5 1 1 1 1 118 .7 ; op s6 1 2 .5 1 120 .2 ; rc # The keyword 'pattern' followed by an integer # designates the current destination pattern number # for future timing/amplitude definitions. # Any feature of the score can occur at any time in # the definition file, but it would be an # error for instance to call for the activation of # a sample which had not yet been defined. # The actual timing/amplitude statements define # entirely relative parameters for the score events # to be generated; The smallest unit of time in a # pattern (represented in the definition file by the unit # character postition) and the actual absolute amplitudes are # adjusted both in the sample definitions, and the track # statements (described below). # Patterns are defined (after a 'pattern x' statement) as follows: # An integer at the beginning of a line denotes which # sample (must be previously defined) will # be used to render the following events. # Following, is a list of characters bound in '{}'s which # define the timing and amplitude of the events. # A space (' ') represents no event at that relative position. # A digit (0-9) represents an event with a volume whose relative # value can range from 1 to 10 (0 = 10) # A '.' carries the volume of the previous event to the current event # A '-' or a '+' indicate that the a note should occur there # with a volume that is 1/2 of a volume step lower or higher # than its predecessor. # A 'u' or a 'd' describe steps of one unit above or below the # previous volume. # A 'U' or a 'D' describe steps of two units above or below the # previous volume. # # Here is a simple rock & roll type pattern: pattern 1 # {1 . , . ; . , . 2 . , . ; . , . 3 . , . ; . , . 4 . , . ; . , . } 6 {5 - - - 5 - - - 5 - - - 5 - - - } 4 {5} 1 {0 ddd d 7 d d d 8 ddd d 6 d d d 0 ddd d 7 d d d 8 ddd d 6 d d } 5 { 5 } 2 { 6 D U D U D U D } 3 {6 . . . . . . . . .. } pattern 2 # |...,...;...,...|...,...;...,...|...,...;...,...|...,...;...,... 1 {9 4 4 4 5 4 4 4 6 3 2 3 9 7 8 7 7 7 6 7 5 7 4 7 4 7 6 4 } 2 { 6 D 6 D 6 D - 6 } 3 {9 5 5 5 5 5 } pattern 3 4 {5} 3 {6} 6 {7 D D D } # The longest row in a pattern designates the minimum length for # a row, and the others are extended. # Here the previously defined patterns are # called into action. volume .5 volume .5 5 tempo 1.6; ;pattern# start_time volume smallest_value_in_seconds p1 0 130 .25 # A negative start time positions the pattern in # the score just after the end of the previous # pattern. The '+' symbol may also be used for the same # purpose, as it is used in standard csound scores. # The third value is a multiplier for the p4 of the sample # definition. # The fourth value is the amount of time in seconds # between consecutive character postition of the # pattern definition. This is further affected by # any preceding tempo statements. This fourth value # may optionally be expressed as a fraction for convenience. volume 1 tempo 1.8 p2 -1 130 .25 / 2 tempo 1.4 tempo 1.7 volume 1 p1 + 130 .25 volume .5 p3 + 130 .25 # tempo 1.7 [0.0] # volume 1.2 [0.5] # tempo statements can occur anywhere. The first parameter # is the tempo adjustment. A value of 1 causes no change # in tempo, while 2 would mean twice as fast. The second # (optional) parameter is the time in the score that this # tempo change should occur. This parameter is usually # only necessary when the change must happen in the middle # of a pattern. Otherwise the time is implied by the # position of the tempo statement in the score; the time # of the tempo change is taken from the endpoint of the # last pattern played. # When more than one tempo statement appears in a score, # Csound will automatically generate a smooth tempo change # from one value to the next. In order to specify instantaneous # changes in tempo, one must reiterate the first tempo just # before the second: ; tempo 1 ; ; ; ; ; tempo 1 ; tempo 1.5 ; ; ; # The 'volume' statement behaves much like # the tempo statement. See the file # 'Reference' for more info # Let me know what you think. # Toby Shepard # toby@rcsreg.com