2008 102

From XPUB & Lens-Based wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

1.02 Finite State (Design) Machines

So far we have seen how:

  1. 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.

About: Finite_State_Machines

You can download the [:Audio Cutup PD Patch: audio sample fsm patch here].


Resources

  • SoX sound editing command line tool
  • LibriVox Public domain spoken books project

Exercises

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.