06-randoms.py - Exploring random generators. ============================================================================================================================================ This example presents two more generators that randomly choose values. **EventChoice** :: EventChoice(values, occurrences=inf, stopEventsWhenDone=True) EventChoice randomly pick a new value in a list of possible values. **EventDrunk** :: EventDrunk(values, maxStep=2, occurrences=inf, stopEventsWhenDone=True) EventDrunk performs a random walk over a list of values. The 'maxStep' argument determine the larger step in the list the walk can do between two successive events. A negative 'maxStep' is the same but repetition are not allowed. .. code-block:: python from pyo import * s = Server().boot() scl = [5.00, 5.02, 5.03, 5.05, 5.07, 5.08, 5.10, 6.00, 6.02, 6.03, 6.05, 6.07] # Random walk for the melody. e1 = Events( degree=EventDrunk(scl, maxStep=-2), beat=1 / 4.0, db=-6, attack=0.001, decay=0.05, sustain=0.5, release=0.005, ).play() # Choose randomly for the bass. e2 = Events( degree=EventChoice(scl), beat=1, db=-6, transpo=-12, attack=0.001, decay=0.05, sustain=0.5, release=0.005, ).play() s.gui(locals())