The random algorithm in the preprocessor is adjustable. When it is set low, the system will retry the random functions a certain number of times until it gets a different result from the last time through. For example setting the “p” pattern to p0, the randomizer is called until it picks a result that it has never used before, ensuring coverage of all the options over time, but in a random pattern. p values of 1 through 8 try hard to return a different result, but sometimes repeat. p values between 9 and 31 increasingly return the same result. There are special p values. p32 always returns the same result. p33 goes forward through a list, and p34 goes backwards. p35 is the Markov Chain Drunkard’s Walk algorithm.
This version of Machine2 uses the following structure:
p22&how-many-1m*. p35&how-many-1f*. &how-many-*. &how-many-*. &how-many-*.
p8&how-many-*. p12&how-many-*. p18&how-many-*. p20&how-many-*.
p22&how-many-*. p35&how-many-*. &how-many-*. &how-many-*. p33&how-many-*.
p28&how-many-1m*. p30&end-many-1p*. p30&end-many-1p*.
It calls a routine called &how-many-*. which is a list that looks like this:
.how-many-5f &pick-rhy-*.&pick-key-*.&loudness-f*.&combine-480-*. &combine-480-*. &combine-480-*. &combine-480-*. &chorus-480-*. &vel.d480d*5
.how-many-5m &pick-rhy-*.&pick-key-*.&loudness-m*.&combine-480-*. &combine-480-*. &combine-480-*. &combine-480-*. &chorus-480-*. &vel.d480d*5
.how-many-4f &pick-rhy-*.&pick-key-*.&loudness-f*.&combine-480-*. &combine-480-*. &combine-480-*. &chorus-480-*. &vel.d480d*4
.how-many-4m &pick-rhy-*.&pick-key-*.&loudness-m*.&combine-480-*. &combine-480-*. &combine-480-*. &chorus-480-*. &vel.d480d*4
.how-many-2f &pick-rhy-*.&pick-key-*.&loudness-f*.&combine-480-*. &chorus-480-*. &vel.d480d*2
.how-many-2m &pick-rhy-*.&pick-key-*.&loudness-m*.&combine-480-*. &chorus-480-*. &vel.d480d*2
.how-many-2p &pick-rhy-*.&pick-key-*.&loudness-p*.&combine-480-*. &chorus-480-*. &vel.d480d*2
.how-many-6f &pick-rhy-*.&pick-key-*.&loudness-f*.&combine-480-*. &combine-480-*. &combine-480-*. &combine-480-*. &combine-480-*. &chorus-480-*. &vel.d480d*6
.how-many-6m &pick-rhy-*.&pick-key-*.&loudness-m*.&combine-480-*. &combine-480-*. &combine-480-*. &combine-480-*. &combine-480-*. &chorus-480-*. &vel.d480d*6
.how-many-3f &pick-rhy-*.&pick-key-*.&loudness-f*.&combine-480-*. &combine-480-*. &chorus-480-*. &vel.d480d*3
.how-many-3m &pick-rhy-*.&pick-key-*.&loudness-m*.&combine-480-*. &combine-480-*. &chorus-480-*. &vel.d480d*3
.how-many-3p &pick-rhy-*.&pick-key-*.&loudness-p*.&combine-480-*. &combine-480-*. &chorus-480-*. &vel.d480d*3
.how-many-1f &pick-rhy-*.&pick-key-*.&loudness-f*.&combine-480-*. &chorus-480-*. &chorus-480-*. &vel.d480d*3
.how-many-1m &pick-rhy-*.&pick-key-*.&loudness-m*.&combine-480-*. &chorus-480-*. &chorus-480-*. &vel.d480d*3
.end-many-1pp &pick-rhy-*.&pick-key-*.&loudness-pp*.&combine-480-*. &chorus-480-*. &vel.d480d*2
.how-many-8f &pick-rhy-*.&pick-key-*.&loudness-f*.&combine-480-*. &combine-480-*. &combine-480-*. &combine-480-*. &combine-480-*. &combine-480-*. &chorus-480-*. &vel.d480d*7
.how-many-8m &pick-rhy-*.&pick-key-*.&loudness-m*.&combine-480-*. &combine-480-*. &combine-480-*. &combine-480-*. &combine-480-*. &combine-480-*. &chorus-480-*. &vel.d480d*7
&how-many*. is a list of different lengths, from 1 to 8 measures in a random rhythm and key and loudness (lists of these are elsewhere in the code). It might return only one 480 beat measure, and the bridge, or it might stay in the key for 8 480 beat measures, followed by the bridge.
The &how-many*. macros are prefaced by different p values. p22 is heavy on repetition. p35 is the Markov Chain Drunkard’s Walk. p8 is the default randomness. p12 is a bit more repetition, but less than 22. The p value increases with each call to p22, which is very repetitive. The last line has p set to 28 and 30, which are almost an ostinato. It makes a nice ending with a quiet loudness level.
or download here:
Machine 2 – v10