If a protocol only has discreet volume commands, ramping is still very possible, you just have to ramp it on the crestron program side, and track and send volume update commands as the volume is being ramped up/down.
As the previous posted mentioned, you can do this several ways.? I personally use an Analog Ramp (bounds limited) in most cases.? If the module supports an analog input, then great, otherwise, you can run the output of the Ramp into a Equate symbol for each value in the acceptible range, and have the Equate trigger a SIO that has a command for each volume level in it.
Feedback is a different story, but can also be done if needed.
-jason