I don't know anything about
AudioServer, so this may not be what you're looking for.
In my current projects, I achieve fade outs and fade ins of
Basically, I have functions which tween up or down the volume.
onready var tween_out = get_node("Tween")
export var transition_duration = 1.00
export var transition_type = 1 # TRANS_SINE
# tween music volume down to 0
tween_out.interpolate_property(stream_player, "volume_db", 0, -80, transition_duration, transition_type, Tween.EASE_IN, 0)
# when the tween ends, the music will be stopped
func _on_TweenOut_tween_completed(object, key):
# stop the music -- otherwise it continues to run at silent volume