TYPE: CHOP
TITLE: Beat CHOP

This realtime CHOP is used to manually tap the beat of a piece of music, and
automatically generate a repeating ramp or pulse that continues to keep time
with the music after the taps stop.

The CHOP computes the length of time (the period) of a beat. It can output 
five channels: a ramp from 0 to 1, a beat pulse, a beat count, and a constant
channel containing the period.

The input must contain two channels, a Listen channel followed by a Tap
channel. Often these channels are just two on/off keys on the computer keyboard
(from the Keyboard CHOP), or two keys on a MIDI keyboard (from the Midi In
CHOP).  "On" must be greater than zero, and  "off" must be zero or less.

When the "Listen" channel goes on, it means that you desire to change the
tempo, and the CHOP is ready to record the user's taps.  After Listen goes
on, the first tap on the Tap channel changes the output. A time slice or
frame is output at the current frame, containing the beat information.

The next taps change the period of the beat, which is the length of the CHOP.
The beat period is computed by taking the average time between taps.  While
the Listen channel is off, the output of the CHOP does not change.

If the Beat channel pulses are longer than one frame, only the time of the
first sample matters.

To produce multiples of the tempo (double, half, quarter, etc), use the
Tempo Scale menus to select a range of tempos. Tempos from 1/8th to 8x the
tapped tempo can be produced.

Hit the Tap channel at any time to synch the ramp to start at the current
frame. 

There are no local variables.

Parameters:
Beat
    Lower/Upper Tempo Scale - Allows a range of beat channels from 1/8th
                        of the input tempo to 8x the tempo.
    Output            - Beat outputs either a time slice or one frame.
    Synch Beat        - Resets the ramp on all taps, the first tap, or none.
    Grace Period      - If a tap occurs close to a beat, do not reset the 
			ramp if within the grace period. The units are
			based on ramp values; 0.1 means a grace period
			of ramp values above 0.9 and less than 0.1.
Channel
    Timer Ramp Name  - This channel is a ramp from 0 to 1. The position
		       within the beat cycle is represented as a value
		       from 0 (start of beat) to 1 (end of beat).
    Timer Pulse Name - This channel outputs a 1-sample pulse at
		       the start of the ramp cycle.
    Cycle Count Name - This channel counts the number of beats since
		       the first tap. Re-synching the beat will reset
		       this count to zero. 
    Period Name      - The name of the channel which contains
		       the value of the period. Depending on the
		       "Units" parameter in the Common page, it
		       will be in Seconds, Frames or Samples.
    Period Start Name - The name of the channel which contains the 
		       start sample/frame/time of the current ramp.
    Sample Rate      - The sample rate of the output channels.       /rate 

See also: Feedback, Gesture, Keyboard
