extends AudioStreamPlayer #@export var minimum_speed: float #@export var minimum_speed_hysteresis: float #@export var maximum_speed: float @export var speed_to_volume: Curve @export var speed_to_cutoff: Curve # for mapping the curves @export var max_speed: float = 50.0 # for pausing playback to save resources and avoid quiet hum all the time @export var min_speed: float = 5.0 @export var min_speed_hysteresis: float = 0.5 @onready var audio_bus = AudioServer.get_bus_index("WindSFX") @onready var audio_filter : AudioEffectFilter = AudioServer.get_bus_effect(audio_bus,1) # Called when the node enters the scene tree for the first time. func _ready(): speed_to_volume.bake() speed_to_cutoff.bake() func _physics_process(delta): var speed = get_parent().get_parent().motion_velocity.length() print("speed: ", speed) if speed > min_speed + min_speed_hysteresis / 2: stream_paused = false elif speed < min_speed - min_speed_hysteresis / 2: stream_paused = true volume_db = speed_to_volume.interpolate_baked(speed / max_speed) print(volume_db) audio_filter.cutoff_hz = speed_to_cutoff.interpolate_baked(speed / max_speed) * 10 # cnvert to 0-1 kHz range print(audio_filter.cutoff_hz)