tapout~

Calculating Doppler shift for moving virtual sound sources

A stereo spatialization effect can be achieved using x,y coordinates to determine intensity and delay for the sound at each speaker at each moment. The hypothetical listener is placed at a point equidistant from the two speakers. The speakers are each assumed to be at some angle from the listener between 0 and pi radians, with 0 radians being straight to the right, pi/2 radians being directly in front of the listener, and pi radians being to the left.

Abstraction for delay with stereo panning

This abstraction encapsulates delay, gain control, and stereo panning in a single object that can be used in some other "parent" patch. It assumes that its first inlet will be connected to a tapin~ object in the parent patch. That tapin~ object will send a tapconnect message when MSP audio is turned on, thus linking the tapout~ object in this abstraction to the memory buffer of the tapin~ object in the parent patch.

Abstraction for crossfading delay times of a remote tapin~ object

If we want to use the delay crossfading technique shown in "Abstraction for crossfading between delay times" for multiple different delays of the same sound, the simplest solution is just to make multiple copies of that abstraction and send the same audio signal to each one. However, that's a bit inefficient in terms of memory usage because each subpatch would have its own tapin~ object, each of which would be containing the same audio data.