
The bend filter allows temporary time-domain
distortion of the sound stream;  the song can 
be stretched to a lower speed, sped up, rewound,
or rubbed.  When the user is done with the bend,
the song will jump back to the position it
would otherwise have been, thus preserving
synchronization.

The main interface to the bend filter is the bend 
adjustment. This adjustment controls the speed of
the sound, and sits at a value of 1.0.  Dragging
this adjustment to the right will increase the
speed of the song; dragging it to the left will 
slow the song to a stall, and then play it in 
reverse.  When the user lets go of this control,
the speed will return to 1.0, and the song will
jump to its proper position.

Several other controls allow other effects.  The
'Rewind' button will immediately start the song
playing in reverse.  The 'Rub' button will play
a small section of sound back and forth.  The
rub width is determined by an adjustment, and
defaults to 4 * 1/8 beats.  Both the rewind and
rub effects default to a rate of 1.0, but this
value can be changed.

The bend filter has a maximum buffer size, which
determines how far the sound can be bent in practice.
For instance, by default a filter keeps only a few 
seconds of sound backed up, and so the song can
only be rewound a small amount before hitting
this limit.  Each time the bender is released and
jumps back to its proper position, the buffer is
reset.

The bend filter need not keep track of its
position.  If the "free" button is checked,
the filter will forego maintaining its
overall position, and after each bend will
begin playing back from wherever it was left.

For those with hardware input, there is a second 
bend adjustment which does not automatically return
itself to 100% speed on release (because unlike a
mouse press, a hardware event may have no clear
endpoint.)  There is a 'jump' button to cause the
filter to seek to its overall position after a bend,
and an adjustment which changes the position/rate
response of the second bend adjustment.  By default,
the rate varies from 0.0 to 1.0, but this can be 
changed to -2.0 to 2.0, etc.

