ID:1312375
 
BYOND Version:499.1197
Operating System:Windows 7 Pro 64-bit
Web Browser:Chrome 28.0.1500.63
Applies to:Dream Seeker
Status: Open

Issue hasn't been assigned a status value.
Code:
mob/var/sound/sound

mob/verb/test1()
sound = sound('dry voice.ogg', 1, 0, 1, 30)
sound.environment = -1
sound.x = 0
sound.y = 0
sound.z = 0
sound.status = SOUND_STREAM
src << sound

mob/verb/test2()
var/sound/other_sound = sound('clap.ogg', 0, 0, 2, 40)
other_sound.environment = 7
src << other_sound


http://files.byondhome.com/FIREking/sound_test_src.zip

Use verb test1() and hear the dry voice. Use verb test2() and hear the clap with reverb. Now keep listening and you'll hear that the reverb has been unexpectedly added to the first sound...
Environment is global; echo is per channel. You'll want to use echo for this.
Oh god =[

Edit: Is there a way to make a few channels not go through global? You don't want ogg music to be affected by the reverb and still be able to use the handy .environment variable for other sound effects.
My sound playground demo should be good for grabbing the parameters you need for an echo list.
Hmm, its not working for me. No matter what I do to the settings in the Sound Playground, the sound sounds the same.
This does not work:

mob/verb/test2()
var/sound/other_sound = sound('clap.ogg')

var/list/test = list(1.9, 1.00, -1000, -454, 0, 0.40, 0.83, 1.0, -1646, 0.002, 53, 0.003, 0.250, 0.00, 0.25, 0.000, -5.0, 5000.0, 250.0, 0.0, 100.0, 100.0, 0x3f)

other_sound.echo = test

src << other_sound
If I play that back to back with a non-echo version of the same sound, I hear a difference. It's a little subtle but it's there.
I am not hearing any "echo" or reverb... Only volume differences
proc/build_random_echo()
var/list/echo[18]
echo[1] = rand(-10000, 1000) //direct
echo[2] = rand(-10000, 0) //direct hf
echo[3] = rand(-10000, 1000) //room
echo[4] = rand(-10000, 0) //room hf
echo[5] = rand(-10000, 0) //obstruction
echo[6] = rand(0, 100) * 0.01 //obstruction lf ratio
echo[7] = rand(-10000, 0) //occlusion
echo[8] = rand(0, 100) * 0.01 //occlusion lf ratio
echo[9] = rand(0, 100) * 0.1 //occlusion room ratio
echo[10] = rand(0, 100) * 0.1 //occlusion direct ratio
echo[11] = rand(-10000, 0) //exclusion
echo[12] = rand(0, 100) * 0.01 //exclusion lf ratio
echo[13] = rand(-10000, 0) //outside volume hf
echo[14] = rand(0, 100) * 0.1 //doppler factor
echo[15] = rand(0, 100) * 0.1 //rolloff factor
echo[16] = rand(0, 100) * 0.1 //room roll off factor
echo[17] = rand(0, 100) * 0.1 //air absorption factor
echo[18] = 0x3f //flags

return echo

mob/verb/test2()
var/sound/dry = sound('clap.ogg')
var/sound/wet = sound('clap.ogg')

wet.echo = build_random_echo()

src << dry
sleep(10)
src << wet