1.02 Finite State (Design) Machines
So far we have seen how:
- Information (in the sense of Shannon's ["Information Theory"]) can be recorded, or represented, as patterns of bits (binary numbers, or a series of yes-no decisions)
- 2. Using ["Boolean Logic"], a few basic logical building blocks (and, or, not), can be chained together to build simple machines that do simple things like decoding a pattern or adding binary numbers.
Until now though though we've been dealing with simple "black boxes" -- machines that (seen from the outside) simply have inputs and outputs. Time has not yet played a significant role -- ideally when the input to the machine is given, the outputs immediately change to reflect the inputs. (In practice of course, even electricity takes some time to flow though a logic gate, but ideally it works as fast as possible.)
However, by explicitly making use time and a notion of our machine being in different states, it becomes possible to extend these simple black-box machines into ones that do more interesting kinds of things.
You can download the [:Audio Cutup PD Patch: audio sample fsm patch here].
simple fsm's in pd
- Create a simple tone sequencer FSM in PD
- Revise the above to include some non-deterministic (random) branches
- Revise the above to use one or more inputs (pd toggles, or other switches)
audio cutup fsm's in pd
- Using your selection from LibriVox, and the ["Audio Cutup PD Patch"] build an audio cutup FSM in PD, using Random transitions
- Revise the above to use one or more inputs in it's transitions
- Revise your design to use "category" nodes -- that is, nodes that correspond to a general category, of which you can connect a number of specific examples.