Sound travels ~1 ms/foot. Less than a ms of time difference from one ear to the other, but we can hear that.
Head-related transfer functions HRTF's: head-related filtering, sound will have a slightly different frequency content coming from different locations. Useful for headphones.
Straight linear crossfade results in it seeming sound is farther away when it's right in the middle--have to compensate for inverse square law. There's a perceived 3 dB drop in the middle, because there's a 6 dB amplitude drop in the middle. To account for that, take sqrt of left and right speaker values, and you'd get a more natural sound. A more efficient way is to look up value in a quarter of a cycle of a cosine wave and assign that to L channel, from sine wave to R channel. That way, 0-->1 is L to R. You can use the phase offset inlet (R inlet) of the cycle~ object to achieve that. Make sure you use a line~ object or rampsmooth~ object to interpolate between different dial settings, if you want to make a panning dial, or else you might get a bunch of clicks.
In real life, panning should result in a Doppler effect.
Within Max, there are a couple ways to use text based programming. (Max itself is written in C.)
js object--a JavaScript object, but internally you write it in a text-based program.
gen~ object--there's a language called Gen that lets you manipulate every single pixel of a video signal or every single sample of an audio signal
mgraphics--a way to use JavaScript to control graphics
Processing--a Java-like interface for doing 2D graphics
Next week: Jitter & 3D animation, an introduction
No comments:
Post a Comment