The sketch provides a simple interactive window (example window shown at right) allowing the user to: (1) modify the volume of a simple sound; (2) modify the pitch of that sound (indirectly using harmonic samples, taking 1/2, 1/3, 1/4, etc., of the available sound information); (3) change from a “continuous” to “manual” mode of rendition; and (4) produce echoes of the original sound.
The echoes are particularly fun, but have a built in 2^n decay that cannot be adusted.
(1) Some control console interactions among buttons/sliders. I'v reduced the problems over time but a few (non-terminal) interactions remain.
(2) Enfuriating problems finally led to the inclusion of the channel.in() and channel.out() calls at the end of the shiftFrequency() and echo() functions, although it's not clear exactly what they do nor just why they should be necessary.
Click the example screen image below to go to the applet version and see the underlying Processing code: