athenaCL Tutorial Manual: Third Edition, Version 2.0.0a15 | ||
---|---|---|
Prev | Appendix C. ParameterObject Reference and Examples | Next |
binaryAccent, pulseList
Description: Deploys two Pulses based on event pitch selection. Every instance of the first pitch in the current set of a Texture's Path is assigned the second Pulse; all other pitches are assigned the first Pulse. Amplitude values of events that have been assigned the second pulse are increased by a scaling function.
Arguments: (1) name, (2) pulseList {a list of Pulse notations}
Sample Arguments: ba, ((3,1,1),(3,2,1))
convertSecond, parameterObject
Description: Allows the use of a Generator ParameterObject to create rhythm durations. Values from this ParameterObject are interpreted as equal Pulse duration and sustain values in seconds. Accent values are fixed at 1. Note: when using this Rhythm Generator, tempo information (bpm) has no effect on event timing.
Arguments: (1) name, (2) parameterObject {duration values in seconds}
Sample Arguments: cs, (ru,0.25,2.5)
convertSecondTriple, parameterObject, parameterObject, parameterObject
Description: Allows the use of three Generator ParameterObjects to directly specify duration, sustain, and accent values. Values for duration and sustain are interpreted as values in seconds. Accent values must be between 0 and 1, where 0 is a measured silence and 1 is a fully sounding event. Note: when using this Rhythm Generator, tempo information (bpm) has no effect on event timing.
Arguments: (1) name, (2) parameterObject {duration values in seconds}, (3) parameterObject {sustain values in seconds}, (4) parameterObject {accent values between 0 and 1}
Sample Arguments: cst, (ws,e,30,0,0.25,2.5), (ws,e,60,0.25,0.25,2.5), (bg,rc,(0,1,1,1))
gaRhythm, pulseList, crossover, mutation, elitism, selectionString, populationSize
Description: Uses a genetic algorithm to create rhythmic variants of a source rhythm. Crossover rate is a percentage, expressed within the unit interval, of genetic crossings that undergo crossover. Mutation rate is a percentage, expressed within the unit interval, of genetic crossings that undergo mutation. Elitism rate is a percentage, expressed within the unit interval, of the entire population that passes into the next population unchanged. All rhythms in the final population are added to a list. Pulses are chosen from this list using the selector specified by the control argument.
Arguments: (1) name, (2) pulseList {a list of Pulse notations}, (3) crossover, (4) mutation, (5) elitism, (6) selectionString {'randomChoice', 'randomWalk', 'randomPermutate', 'orderedCyclic', 'orderedCyclicRetrograde', 'orderedOscillate'}, (7) populationSize
Sample Arguments: gr, ((3,1,1),(3,1,1),(6,1,1),(6,3,1),(3,1,0)), 0.7, 0.06, 0.01, oc, 20
iterateRhythmGroup, parameterObject, parameterObject
Description: Allows the output of a source Rhythm ParameterObject to be grouped (a value is held and repeated a certain number of times), to be skipped (a number of values are generated and discarded), or to be bypassed. A numeric value from a control ParameterObject is used to determine the source ParameterObject behavior. A positive value (rounded to the nearest integer) will cause the value provided by the source ParameterObject to be repeated that many times. After output of these values, a new control value is generated. A negative value (rounded to the nearest integer) will cause that many number of values to be generated and discarded from the source ParameterObject, and force the selection of a new control value. A value of 0 is treated as a bypass, and forces the selection of a new control value. Note: if the control ParameterObject fails to produce positive values after many attempts, a value will be automatically generated from the selected ParameterObject.
Arguments: (1) name, (2) parameterObject {source Rhythm Generator}, (3) parameterObject {group or skip control Generator}
Sample Arguments: irg, (l,((4,3,1),(4,3,1),(4,2,0),(8,1,1),(4,2,1),(4,2,1)),oc), (bg,rc,(-3,1,-1,5))
iterateRhythmHold, parameterObject, parameterObject, parameterObject, selectionString
Description: Allows a variable number of outputs from a source Rhythm ParameterObject, collected and stored in a list, to be held and selected. Values are chosen from this list using the selector specified by the selectionString argument. A numeric value from a size ParameterObject is used to determine how many values are drawn from the source ParameterObject. A numeric value from a refresh count ParameterObject is used to determine how many events must pass before a new size value is drawn and the source ParameterObject is used to refill the stored list. A refresh value of zero, once encountered, will prohibit any further changes to the stored list. Note: if the size ParameterObject fails to produce a non-zero value for the first event, an alternative count value will be assigned.
Arguments: (1) name, (2) parameterObject {source Rhythm Generator}, (3) parameterObject {size Generator}, (4) parameterObject {refresh count Generator}, (5) selectionString {'randomChoice', 'randomWalk', 'randomPermutate', 'orderedCyclic', 'orderedCyclicRetrograde', 'orderedOscillate'}
Sample Arguments: irh, (pt,(bg,rc,(4,2)),(bg,oc,(5,4,3,2,1)),(c,1),(ru,0.75,1.25)), (bg,rc,(2,3,4)), (bg,oc,(4,5,6)), oc
Example C-181. iterateRhythmHold Demonstration 1
iterateRhythmHold, (pulseTriple, (basketGen, randomChoice, (4,2)), (basketGen, orderedCyclic, (5,4,3,2,1)), (constant, 1), (randomUniform, (constant, 0.75), (constant, 1.25))), (basketGen, randomChoice, (2,3,4)), (basketGen, orderedCyclic, (4,5,6)), orderedCyclic
iterateRhythmWindow, parameterObjectList, parameterObject, selectionString
Description: Allows a Rhythm ParameterObject, selected from a list of Rhythm ParameterObjects, to generate values, to skip values (a number of values are generated and discarded), or to bypass value generation. A numeric value from a control ParameterObject is used to determine the selected ParameterObject behavior. A positive value (rounded to the nearest integer) will cause the selected ParameterObject to produce that many new values. After output of these values, a new ParameterObject is selected. A negative value (rounded to the nearest integer) will cause the selected ParameterObject to generate and discard that many values, and force the selection of a new ParameterObject. A value equal to 0 is treated as a bypass, and forces the selection of a new ParameterObject. ParameterObject selection is determined with a string argument for a selection method. Note: if the control ParameterObject fails to produce positive values after many attempts, a value will be automatically generated from the selected ParameterObject.
Arguments: (1) name, (2) parameterObjectList {a list of Rhythm Generators}, (3) parameterObject {generate or skip control Generator}, (4) selectionString {'randomChoice', 'randomWalk', 'randomPermutate', 'orderedCyclic', 'orderedCyclicRetrograde', 'orderedOscillate'}
Sample Arguments: irw, ((l,((4,3,1),(4,3,1),(4,2,0),(8,1,1),(4,2,1),(4,2,1)),oc),(cs,(ru,1.5,4))), (bg,rc,(-3,6,-1,15)), oc
loop, pulseList, selectionString
Description: Deploys a fixed list of rhythms. Pulses are chosen from this list using the selector specified by the selectionString argument.
Arguments: (1) name, (2) pulseList {a list of Pulse notations}, (3) selectionString {'randomChoice', 'randomWalk', 'randomPermutate', 'orderedCyclic', 'orderedCyclicRetrograde', 'orderedOscillate'}
Sample Arguments: l, ((3,1,1),(3,1,1),(8,1,1),(8,1,1),(8,3,1),(3,2,0)), oc
markovPulse, transitionString, parameterObject
Description: Produces Pulse sequences by means of a Markov transition string specification and a dynamic transition order generator. The Markov transition string must define symbols that specify valid Pulses. Markov transition order is specified by a ParameterObject that produces values between 0 and the maximum order available in the Markov transition string. If generated-orders are greater than those available, the largest available transition order will be used. Floating-point order values are treated as probabilistic weightings: for example, a transition of 1.5 offers equal probability of first or second order selection.
Arguments: (1) name, (2) transitionString, (3) parameterObject {order value}
Sample Arguments: mp, a{3,1,1}b{2,1,1}c{3,2,0}:{a=3|b=4|c=1}, (c,0)
markovRhythmAnalysis, parameterObject, pulseCount, maxAnalysisOrder, parameterObject
Description: Produces Pulse sequences by means of a Markov analysis of a rhythm provided by a source Rhythm Generator ParameterObject; the analysis of these values is used with a dynamic transition order Generator to produce new values. The number of values drawn from the source Rhythm Generator is specified with the pulseCount argument. The maximum order of analysis is specified with the maxAnalysisOrder argument. Markov transition order is specified by a ParameterObject that produces values between 0 and the maximum order available in the Markov transition string. If generated-orders are greater than those available, the largest available transition order will be used. Floating-point order values are treated as probabilistic weightings: for example, a transition of 1.5 offers equal probability of first or second order selection.
Arguments: (1) name, (2) parameterObject {source Rhythm Generator}, (3) pulseCount, (4) maxAnalysisOrder, (5) parameterObject {output order value}
Sample Arguments: mra, (l,((4,3,1),(4,3,1),(4,2,0),(8,1,1),(4,2,1),(4,2,1)),oc), 12, 2, (cg,u,0,2,0.25)
pulseSieve, logicalString, sieveLength, pulse, selectionString, articulationString
Description: Using the user-supplied logical string, this Generator produces a Xenakis sieve segment within the z range of zero to one less than the supplied length. This sieve, as a binary or width segment, is interpreted as a pulse list. The length of each pulse and the presence of rests are determined by the user-provided Pulse object and the articulationString argument. An articulationString of 'attack' creates durations equal to the provided Pulse for every non-zero binary sieve segment value; an articulationString of 'sustain' creates durations equal to the Pulse times the sieve segment width, or the duration of all following rests until the next Pulse. Values are chosen from this list using the selector specified by the selectionString argument.
Arguments: (1) name, (2) logicalString, (3) sieveLength, (4) pulse {a single Pulse notation}, (5) selectionString {'randomChoice', 'randomWalk', 'randomPermutate', 'orderedCyclic', 'orderedCyclicRetrograde', 'orderedOscillate'}, (6) articulationString {'attack', 'sustain'}
Sample Arguments: ps, 3|4|5@2, 60, (3,1,1), oc, a
pulseTriple, parameterObject, parameterObject, parameterObject, parameterObject
Description: Produces Pulse sequences with four Generator ParameterObjects that directly specify Pulse triple values and a sustain scalar. The Generators specify Pulse divisor, multiplier, accent, and sustain scalar. Floating-point divisor and multiplier values are treated as probabilistic weightings. Note: divisor and multiplier values of 0 are not permitted and are replaced by 1; the absolute value is taken of all values.
Arguments: (1) name, (2) parameterObject {pulse divisor}, (3) parameterObject {pulse multiplier}, (4) parameterObject {accent value between 0 and 1}, (5) parameterObject {sustain scalar greater than 0}
Sample Arguments: pt, (bg,rc,(6,5,4,3)), (bg,rc,(1,2,3)), (bg,rc,(1,1,1,0)), (ru,0.5,1.5)
Example C-188. pulseTriple Demonstration 1
pulseTriple, (basketGen, randomChoice, (6,5,4,3)), (basketGen, randomChoice, (1,2,3)), (basketGen, randomChoice, (1,1,1,0)), (randomUniform, (constant, 0.5), (constant, 1.5))
Example C-189. pulseTriple Demonstration 2
pulseTriple, (constant, 4), (caList, f{s}k{2}r{1}i{center}x{81}y{120}w{6}c{-2}s{0}, (constant, 109), (constant, 0.01), sumRow, orderedCyclic), (caValue, f{s}k{2}r{1}i{center}x{81}y{120}w{3}c{8}s{0}, (constant, 109), (constant, 0.003), sumRow, (constant, 0), (constant, 1), orderedCyclic), (constant, 1)
rhythmSieve, logicalString, sieveLength, selectionString, parameterObject
Description: Using the user-supplied logical string, this Generator produces a Xenakis sieve segment within the z range of zero to one less than the supplied length. The resulting binary sieve segment is used to filter any non-rest Pulse sequence generated by a Rhythm ParameterObject. The sieve is interpreted as a mask upon the ordered positions of the generated list of Pulses, where a sieve value retains the Pulse at the corresponding position, and all other Pulses are converted to rests. Note: any rests in the generated Pulse sequence will be converted to non-rests before sieve filtering.
Arguments: (1) name, (2) logicalString, (3) sieveLength, (4) selectionString {'randomChoice', 'randomWalk', 'randomPermutate', 'orderedCyclic', 'orderedCyclicRetrograde', 'orderedOscillate'}, (5) parameterObject {Rhythm Generator}
Sample Arguments: rs, 3|4|5, 60, rw, (l,((3,1,1),(3,1,1),(3,5,1)))