Adding echos to sounds

Remember walking through areas in Cyan's ages and hearing your footsteps echo off the walls of the room you were in? remember hearing the soft echo of pylon rubber bounce around you as you kicked a cone across the courtyard? With the newest release of PyPRP it's possible to set up your own ages so that those with EAX Capable hardware can hear those sounds again in your ages.

EAX Listener

An EAX Listener Modifier is a modifier that is attached to a soft volume in your age. The modifier takes the approximate definitions of the room, and creates a reverb effect to simulate echos that are bouncing off the walls of the room.

Logic

To set up a EAXListener you're going to need a few things first. First you'll need to create a Soft Volume that the EAXListener will be attached to.

Once you've created your soft volume, you'll need to set up a logic modifier for the soft volume that looks like this:

MySoftVolumeMesh:
    logic:
        actions:
          - type: eaxlistener
            name: EaxListenerExample
            eaxlistener:
                softregion: softvolume:MySoftVolumeMesh
                environ:
                environsize:
                enviorondif:
                room:
                roomhf:
                roomlf:
                decaytime:
                decayhfrate:
                decaylfrate:
                reflections:
                reflectdelay:
                reverb:
                reverbdelay:
                echotime:
                echodepth:
                modtime:
                moddepth:
                airabsorption:
                HFReference:
                LFReference:
                roomrolloff:   

Now, this looks like ALOT of settings to fill in. The good news is that, by default, pyprp will export a soft volume with the same settings as the eax listener in relto's hut. So if you don't want to specify settings, the only thing you'll need is to reference your soft volume.

MySoftVolumeMesh:
   logic:
       actions:
         - type: eaxlistener
           name: EaxListenerExample
           eaxlistener:
               softregion: softvolume:MySoftVolumeMesh

However, if you'd like to adjust settings, and really take advantage of what the eax listener mod has to offer, the attached settings, based upon style of room, and the materials it's supposed to be built upon will give you an idea of what setting's you'll need

Advanced Settings

Generic Rooms

Room Style environ environsize environdif room roomhf roomlf decaytime decayhfrate decaylfrate reflections reflectdelay reverb reverbdelay echotime echodepth modtime moddepth airabsorption hfreference lfreference roomrolloff
Generic 0 7.5 1.000 -1000 -100 0 1.49 0.83 1.00 -2602 0.007 200 0.011 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Padded Cell 1 1.4 1.000 -1000 -6000 0 0.17 0.10 1.00 -1204 0.001 207 0.002 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Room 2 1.9 1.000 -1000 -454 0 0.40 0.83 1.00 -1646 0.002 53 0.003 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
BathRoom 3 1.4 1.000 -1000 -1200 0 1.49 0.54 1.00 -370 0.007 1030 0.011 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Living Room 4 2.5 1.000 -1000 -6000 0 0.50 0.10 1.00 -1376 0.003 -1104 0.004 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Stoneroom (Default Setting) 5 11.6 1.000 -1000 -300 0 2.31 0.64 1.00 -711 0.007 83 0.017 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Auditorium 6 21.6 1.000 -1000 -476 0 4.32 0.59 1.00 -789 0.020 -289 0.030 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Concert Hall 7 19.6 1.000 -1000 -500 0 3.92 0.70 1.00 -1230 0.020 -2 0.029 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Cave 8 14.6 1.000 -1000 0 0 2.91 1.30 1.00 -602 0.015 302 0.022 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Arena 9 36.2 1.000 -1000 -698 0 7.24 0.33 1.00 -1166 0.020 16 0.030 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00f
Hanger 10 50.3 1.000 -1000 -1000 0 10.05 0.23 1.00 -602 0.020 198 0.030 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Carpeted Hallway 11 1.9 1.000 -1000 -4000 0 0.30 0.10 1.00 -1831 0.002 -1630 0.030 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Hallway 12 1.8 1.000 -1000 -300 0 1.49 0.59 1.00 -1219 0.007 441 0.011 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Stone Corridor 13 13.5 1.000 -1000 -237 0 2.70 0.79 1.00 -1214 0.013 395 0.020 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Alley 14 7.5 0.300 -1000 -270 0 1.49 0.86 1.00 -1204 0.007 -4 0.011 0.125 0.950 0.250 0.000 -5.0 5000.0 250.0 0.00
Forest 15 38.0 0.300 -1000 -3300 0 1.49 0.54 1.00 -2560 0.162 -229 0.088 0.125 1.000 0.250 0.000 -5.0 5000.0 250.0 0.00
City 16 7.5 0.500 -1000 -800 0 1.49 0.67 1.00 -2273 0.007 -1691 0.011 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Mountains 17 100.0 0.270 -1000 -2500 0 1.49 0.21 1.00 -2780 0.300 -1434 0.100 0.250 1.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Quarry 18 17.5 1.000 -1000 -1000 0 1.49 0.83 1.00 -10000 0.061 500 0.025 0.125 0.700 0.250 0.000 -5.0 5000.0 250.0 0.00
Plain 19 42.5 0.210 -1000 -2000 0 1.49 0.50 1.00 -2466 0.179 -1926 0.100 0.250 1.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Parking Lot 20 8.3 1.000 -1000 0 0 1.65 1.50 1.00 -1363 0.008 -1153 0.012 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Sewer Pipe 21 1.7 0.800 -1000 -1000 0 2.81 0.14 1.00 429 0.014 1023 0.021 0.250 0.000 0.250 0.000 -5.0 5000.0 250.0 0.00
Underwater 22 1.8 1.000 -1000 -4000 0 1.49 0.10 1.00 -449 0.007 1700 0.011 0.250 0.000 1.180 0.348 -5.0 5000.0 250.0 0.00
Drugged 23 1.9 0.500 -1000 0 0 8.39 1.39 1.00 -115 0.002 985 0.030 0.250 0.000 0.250 1.000 -5.0 5000.0 250.0 0.00
Dizzy 24 1.8 0.600 -1000 -400 0 17.23 0.56 1.00 -1713 0.020 -613 0.030 0.250 1.000 0.810 0.310 -5.0 5000.0 250.0 0.00
Psychotic 25 1.0 0.500 -1000 -151 0 7.56 0.91 1.00 -626 0.020 774 0.030 0.250 0.000 4.000 1.000 -5.0 5000.0 250.0 0.00}