View Issue Details

IDProjectCategoryView StatusLast Update
0003340The Dark ModSoundpublic14.03.2013 23:31
ReporterSpringheel Assigned Tograyman  
PrioritynormalSeveritynormalReproducibilityhave not tried
Status resolvedResolutionopen 
Product VersionTDM 2.00 
Target VersionTDM 2.00Fixed in VersionTDM 2.00 
Summary0003340: Sound is leaking out of area it shouldn't
DescriptionI've been doing a lot of testing in Outpost, and I've noticed recently that when I'm in the priest's room on the top floor, I can hear the snoring of the sleeper on the second floor. It can also be heard clearly when you stand outside his closed door on the second floor. I didn't remember that happening before.

I loaded up the map in 1.08 and could not hear the sleeper anywhere as long as the door to his room was closed.

This seems to suggest something has changed due to the recent changes to sound and visportals?
TagsNo tags attached.

Activities

Springheel

Springheel

10.03.2013 01:34

administrator   ~0005144

Last edited: 10.03.2013 01:35

Hmm, I've noticed this in Chalice of Kings as well...sounds seem to be traveling further than they used to. Has the default value for sound loss on doors been changed? The sound of the machine outside used to disappear as soon as you got a few steps inside the mansion, but now I can hear it for quite a while.

grayman

grayman

10.03.2013 02:58

viewer   ~0005146

Sound occlusion is done differently now, so that it's more realistic, and to bring it in line with how the AI-heard sounds propagate. (And to eliminate all the problems we were having.) So, yes, the default value for sound loss on doors has changed because the math was replaced entirely.

When you say "a few steps inside the mansion" is that with the door open or closed? Is it a bad thing that the machine is louder?

Wrt the snoring, I can experiment with an extra dampening factor on visportaled doors. This will affect all sounds, however. I was happy with the results in the test map, but there might be a few sounds that are louder than they should be, but were cut off using the old math and not cut off using the new.
Springheel

Springheel

10.03.2013 15:05

administrator   ~0005148

Last edited: 10.03.2013 15:07

Well, specifically the snoring sounds quite loud when you are standing on the third floor of the priest's room in Outpost. The snoring guard is in a room below you, but there is no direct route from the snorer to the player. It basically sounds like what I would expect if there were an internal leak and the sound was going straight through the floor, but no such leak exists.

In Chalice, I could hear the sounds of the door at the bottom of the spiral stairs being shut when I was out in the courtyard. It sounded like it was going straight to me, even though it should have had to travel through at least 3 closed doors to get to me.

While the machine isn't a big deal, neither of the above are trivial issues...it sounds to the player like those noises are in the immediate area when in fact they shouldn't really be heard at all.

Let me know if there's any specific testing I can do to help.

grayman

grayman

12.03.2013 20:54

viewer   ~0005159

If you go into the sleeper's room using 1.08, can you hear him snoring?

I'm testing this now, and I can hear him snoring in SVN, but he makes no sleeping sounds at all in 1.08. I stood next to him for about 4 mins w/o a peep.

I checked the sound code while standing in the hall with the door closed in SVN, and the 10dB loss from the door is getting applied.
Springheel

Springheel

12.03.2013 23:27

administrator   ~0005160

Last edited: 12.03.2013 23:45

Hmm, you're right, I can't. That may have been the vocal set that didn't have a sleep sound in 1.08..I remember fixing a few like that. Ok, that obviously invalidates that map as a test case. There's still the door sound in Chalice. I'll try to find some other examples, but wouldn't it be nice if there weren't any?

edit: I went back to Chalice in 1.08, and you can actually hear the door from the courtyard...it's just not as loud as it is with the SVN build. So perhaps it's not that sound is going where it should not; it's just not being occluded by doors quite as much as it was before.

grayman

grayman

13.03.2013 00:16

viewer   ~0005161

Last edited: 13.03.2013 00:18

Changing the default "loss_closed" from "10" to "20" on doors puts the volume of Chalice's machinery sound when heard indoors back to where it was in 1.08. You can try this yourself by changing the spawnarg for atdm:mover_door in tdm_mover_doors.def.

Most of the "loss_closed" values set in existing maps are 20 or more. One good test of whether the higher default value bothers existing maps is to run through your own released mission, where you have lots of doors set to 25. You probably did this to keep AI sounds from propagating, so the question is, will the settings of 25 still give you the right volume for sounds you hear through doors.

If that's acceptable, then that's the solution.

If it isn't, I'm not sure what else to do. The only other thing to do is to increase the sound loss on doors in the DLL, but that amounts to the same thing.

grayman

grayman

13.03.2013 00:19

viewer   ~0005162

"edit: I went back to Chalice in 1.08, and you can actually hear the door from the courtyard...it's just not as loud as it is with the SVN build. So perhaps it's not that sound is going where it should not; it's just not being occluded by doors quite as much as it was before."

Yes, there's no leakage of sound going on. The issue is the amount of sound that's coming through the door, which can be fixed by changing the sound loss on the door.
grayman

grayman

13.03.2013 00:41

viewer   ~0005163

Outpost still isn't behaving correctly.

The snoring appears to not be following the occlusion rules. If I stand outside his door, and noclip through it in the middle of his snore, there's no volume change. The volume is the same whether I'm standing next to him, outside in the hall with the door closed, or upstairs with the door closed. It all sounds the same.

The only thing I can think of is that the origin of the sound is not ON the sleeping guard. It's above his feet, embedded in the ceiling between him and the loft. Perhaps if a sound's origin is in the void, the engine plays it as if there's no occlusion. It's an oddity of sleeping and sitting guards that their origins and mouth positions have nothing to do with where the animations put them; they're off somewhere else, as if the AI is still standing.

The low ceiling over the sleeper pushes his snoring origin into the void.

I'll redesign his room and push him down enough so that his snoring origin drops out of the void. Perhaps that will solve the problem.
grayman

grayman

13.03.2013 01:00

viewer   ~0005164

I lowered the sleeper's floor and furniture to pull his sound origin down out of the ceiling, and his snoring now obeys the occlusion rules. I can hear a difference if I noclip through his door in the middle of a snore, and I can no longer hear him up in the priest's room.

So this issue is now a matter of correcting where the sound issues from for sleepers.
grayman

grayman

13.03.2013 13:37

viewer   ~0005166

It might be better to leave the default "sound_loss" at "10" for doors, and instead apply a 2x factor when processing sounds the player hears. Or it might be appropriate to add 10dB to the loss instead.

That way sound propagation to AI will not be affected.
Springheel

Springheel

13.03.2013 14:38

administrator   ~0005167

I tested a sound_loss of 20, and while it sounds reasonable to the player, it occludes too much for the AI...I can shoot a fire arrow at a closed door and AI inside the next room don't react to it. So a solution that doesn't affect soundprop to AI gets my vote.
grayman

grayman

14.03.2013 23:31

viewer   ~0005179

One sleeping AI in Outpost sounded like he was everywhere when he snored. This was because the code was originating his sound from his eye position as if he were standing on the bed he was sleeping in. This eye position was in the ceiling brush for the room, which caused the sound to be heard everywhere.

Changed the code so that a sleeping AI will generate sounds from his origin, which is technically not where his mouth is, but it’s better than the previous method.

rev. 5714:

Actor.cpp

Issue History

Date Modified Username Field Change
09.03.2013 02:05 Springheel New Issue
09.03.2013 02:08 Springheel Description Updated
10.03.2013 01:34 Springheel Note Added: 0005144
10.03.2013 01:35 Springheel Note Edited: 0005144
10.03.2013 02:58 grayman Note Added: 0005146
10.03.2013 02:58 grayman Assigned To => grayman
10.03.2013 02:58 grayman Status new => assigned
10.03.2013 15:05 Springheel Note Added: 0005148
10.03.2013 15:06 Springheel Note Edited: 0005148
10.03.2013 15:07 Springheel Note Edited: 0005148
12.03.2013 20:54 grayman Note Added: 0005159
12.03.2013 23:27 Springheel Note Added: 0005160
12.03.2013 23:37 Springheel Note Edited: 0005160
12.03.2013 23:45 Springheel Note Edited: 0005160
13.03.2013 00:16 grayman Note Added: 0005161
13.03.2013 00:18 grayman Note Edited: 0005161
13.03.2013 00:19 grayman Note Added: 0005162
13.03.2013 00:41 grayman Note Added: 0005163
13.03.2013 01:00 grayman Note Added: 0005164
13.03.2013 13:37 grayman Note Added: 0005166
13.03.2013 14:38 Springheel Note Added: 0005167
14.03.2013 23:31 grayman Note Added: 0005179
14.03.2013 23:31 grayman Status assigned => resolved
14.03.2013 23:31 grayman Fixed in Version => TDM 2.00
14.03.2013 23:31 grayman Target Version => TDM 2.00