Stereophony - what it consists of? Most people, even some engineers and producers would say that, for any individual source in a recording, some level difference between left and right speakers is enough to make someone pinpoint that source more to the left or right from the middle of the perceived sonic image, as they sit in front of their system, in the famous "stereo triangle".
Well, it turns out to be more complicated and I won't be trying to make some dissertation on binaural recording and reproduction systems, as it's not the place, plus those are not practical for the average PC musician (whew!). Suffice to say it's based on the fact that sound from a source placed more to the right or left in relation to the listener will reach the contralateral ear not only with reduced pressure, i. e. level, volume, but also with a time delay. It seems trivial because it can be easily represented, yet the difference we're talking here (an order of 1-5ms) is so small it's been ignored in many instances by music people.
So... here I am, an amateur trying to tackle the issue.
When talking about stereo audio the effect of delaying one side versus the other with a difference that small is called the precedence effect or Haas effect, by the discoverer's name. Basically, when you apply such delay, the sound will appear coming from the opposite side to the delayed one.
Interestingly, as of recent years, for the computer music community at large there's been an offer of Haas effect solutions, in the form of dedicated VST plugins, or even included in other, more complex spatialization plugins - not named as such, but as "Inter-aural Time Differences" (ITD) options, whereas the simple act of panning induces "Inter-aural Level Differences" (ILD). Such plugins have been met with enthusiasm and subsequently praised - I have listened some too and the guys behind them know what they're doing. With those plugs, the stereo sound becomes really "stereo" ("solid" in ancient Greek). Unfortunately the full products cost some and are CPU-intensive.
So, panning and Haas effect in conjunction - that's what works best. But how it's done? A quick Web search leads us to the books written by the late John Eargle, a big name in audio engineering of which I also found about only recently, and here's a quote from him specifically on the Haas effect:
The effect is a very basic one and has been observed throughout years of architectural acoustical design. Haas observed that the displacement of a sound source between two loudspeakers due to slight time delays could be compensated for by intensity imbalances. In the example of Figure 3-7, a time delay of 5 milliseconds in the right loudspeaker transmission channel results in localization at the left when both channels are fed the same signal level. However, if the leading channel is lowered in level some 10 dB, then the listener again perceives a phantom image in the middle of the array. The trade-off between delay and intensity is a useful one in sound recording and signal processing, and it is effective up to delays of about 25 to 30 milliseconds, as shown in Figure 3-8. As this graph indicates, time delays between frontal pairs of loudspeakers can be compensated by raising the level of the delayed channel by the corresponding amount. Beyond 25 to 30 milliseconds, the ear begins to hear the delayed sound as a distinct echo, and the trade-off is no longer effective in terms of restoring center localization.
(John M. Eargle, Handbook of Recording Engineering - as previewed on Google Books)
Spot on! We can see a relationship between the time difference and the level difference. Can we try to obtain the inverse? that is, to emphasize the displacement by decreasing the delayed channel's level by the specified amount? Can we do this in ABox?
Well, I've done this attempt, and the result, which I dare bring forth, in the attachment to this post, is a block that takes a mono signal, an oscillator's output for example, and routes it through 2 delay objects in parallel, one to give the Left, the other the Right signal respectively. Each delay has an external knob that you use to dial in the value. Further inside, in the control path, some arcane math translates this input and controls a muxer turned fader at the exit from the aforementioned delay. It does exactly what I've questioned above. The resulting pan value is shown on a readout.
Procedure: To pan a source gradually, from center to one side, leave the corresponding knob at 0* and turn the other knob while looking at the readout to see where the source is exactly. The knobs are made endless and the math gives the natural number value, so you can play with the knob continuously if you wish, with seemingly minimal artifacts.
(*otherwise you'd cause unnecessary level dropouts)
Limitations: Well, as I'm not an actual mathematician (very far from that), I couldn't come with a formula to give a proper fading curve; thus, when turning the knobs past ~339 samples value that side gets muted and the source appears 100% in the other channel; plus I didn't find (yet) any other correlations than the one cited above, and even if I did, again I don't know the math to make them work together. Still, a dropout of more than 10dB is less and less noticeable, compared to values above it, so I guess it would be a neverending game of approximations to build a "realistic" fading curve beyond that.
But the ears seem content with the result! Panning the instruments this way makes them sound like being spread out left-right a little more, expanding the sonic image outside the speaker line, all that as heard in some selected older recordings. I'm fascinated with good stereophony. I'm giving everybody an example so you can get a thorough impression of what happens.
Since I'm still poor at sequencing I decided to use, as demo, the jambot #33 from the library ("Introspection Extrovertion"), one of the more musical ones. With apologies to Mr. Turner.
This circuit is a mod to it containing both the spatialization of the melodic instruments with the mixer object and the one with the "Haas&Pan" blocks I've built (plus my mixer block), on toggle, with the same pan values in both versions so anyone can A-B the two methods. I took the liberty of spreading further apart a bit the harmony instruments, to better showcase the differences. Tip: if your stereo has any option of "virtual surround" or whatever it's called, try that as well!
Now... I hope it just works for other users as it works for me. Any suggestions welcome.
Enjoy,
Catalin