The following shows you the configuration to use in the audio policy configuration file to use volume ramping.
Here's how the [VOL_RAMP] tag is used. The names that you can use are volume_mute, pause_resume, and ducking. The duration you set is in milliseconds. You can use the profile key-value pair to specify multiple sample percentages of the specified duration and volume increments (expressed as percentages) that can be used to curve the volume ramp; otherwise if you don't provide profile, the volume ramp is linear. For more information about the syntax, see Syntax of the audio policy configuration file in this chapter.
...
...
[vol_ramp]
name=volume_mute # When mixer API calls are made,
# such as snd_pcm_mixer_write()
duration=20 # Ramp in the span of 20 milliseconds
profile=20:10,60:80,20:10 # Defined are three linear segments.
# Segment 1 specifies 20% of the duration and increase the
# volume by 10% of the volume ramp. Segment 2 specifies
# 60% of the duration and 80% of the volume increase, and
# segment 3 specifies the remaining 20% duration
# and to increase the volume by the remaining 10%
[vol_ramp]
name=pause_resume # Whenever the user calls snd_pcm_*_resume() or
# snd_pcm_*_pause()
duration=30 # duration of 30 milliseconds
# No profile key-value is specified, so
# it's a linear ramp
[vol_ramp]
name=ducking # When ducking policies and preemption is used
duration=60 # Ramp time is 60 milliseconds
...
...