The tapin~ and tapout~ objects work together to delay sound. The tapin~ creates a place in memory for storing a circular buffer of the most recently received signal. Its argument specifies how many milliseconds of audio it should store. Any connected tapout~ object accesses that memory to get the recent past of an audio signal. Open a sound file in sfplay~ and play the file, and experiment with different delay times for tapout~.
A subtle feature of this tapin~ and tapout~ combination of objects is that the tapout~ object cannot access the current signal vector; that is, its minimum delay is one signal vector (the number of audio samples processed at a time by MSP, as specified in the Audio Status... dialog). The advantage of that restriction is that, because the output of tapout~ is not from the current signal vector, you can make a feedback loop back into tapin~ to make feedback echo effects, as shown here. Note that you'll usually want to reduce the amplitude of the feedback signal, by multiplying it by less than 1, before it goes back into tapin~, in order to avoid an infinitely increasing amplitude.
To create a flanging effect, you can control the delay time of tapout~ with a continuous signal, as is being shown in the upper right corner of the patch. If you want to hear that effect, edit the patch to connect the tapin~ obejct to that time-varying tapout~ delay.