Ofcourse it takes up processing power. But believe me, it's allmost nothing. If calculating the distance between you + the object/sound costs 3/4 frame rate, allmost no games would exist. The distance calculation is used in Math-Collision, RTS games (if range > distance then attack target), etc.
Here, try this example (you'll have to find and replace the 2 wav's though)
sync on
sync rate 0
sync
cls
sync
do
b = 0
for a=1 to 4
if sound exist(a)=1 then stop sound a : delete sound a
next a
while b=0
text 5,5,"Press 1 to switch to Normal Sound"
text 5,20,"Press 2 to switch to 3D Sound"
sync
x$ = inkey$()
if x$ = "1" or x$ = "2" then b=1
endwhile
if x$ = "1"
load sound "jet.wav", 1
load sound "jet.wav", 2
load sound "jet.wav", 3
load sound "space.wav", 4
else
load 3dsound "jet.wav", 1
load 3dsound "jet.wav", 2
load 3dsound "jet.wav", 3
load 3dsound "space.wav", 4
position listener 0.0,0.0,0.0
endif
for a=1 to 4
loop sound a
next a
while spacekey()=0
cls
text 5,5,"Press space to change settings"
v = screen fps()
text 5,20,"fps: "+str$(v)
if x$ = "2"
angle# = angle# + (60.0 / v)
position sound 4, 0.0, 0.0, 0.0
position sound 1, sin(angle#)*50.0, 0.0, cos(angle#)*50.0
position sound 2, 0.0, sin(angle#)*50.0, cos(angle#)*50.0
position sound 3, cos(angle#)*50.0, 0.0, sin(angle#)*50.0
endif
sync
endwhile
cls
loop
works in dbc and dbpro