Re-implement gradual volume change using g_timeout_add()