I am using managed directx to produce sound in a 3D space. The I have the "Listener" at the origin, and the sound source at some fixed distance away along the positive Z axis. I have a inner cone angle of 30 degrees, and an outer cone angle of 90 degrees. The outer cone volume is set to -100 dB (-10000 mB).

In real time, the program slowly rotates the cone orientation in a horizontal (XZ) plane. When the cone points directly at the listener, the sound is maximum volume. When it's pointed in some direction away from the listener, the sound is low volume.

I would expect the volume to fade in and out gradually as the cone rotates, but it switches abruptly. I thought the volume is supposed to change gradually between the inner and outer cones.