Make audio come from a surface, not a point

Godot Version



Thanks to all of you who are looking at this post.
I’m figuring out how to sound out running water in a stream using AudioStreamPlayer2D.
My problem is that the audio is coming from one point (transform x,y) and can only be heard in a circle around it (max distance). I would need it to come out of each Area2D part equally (the whole area, not the point), as my intention was to plot a path around the stream. The player should hear the sound of the stream as they approach it.
Is this somehow more solvable than creating a bunch of Area2D side by side and wasting computational resource?

Guys, I still haven’t figured this out. A help would be greately appreciated.

You could move the AudioStreamPlayer2D along a Path2D, still not a “surface” but a line at least. The stream splitting is tricky still though; maybe just having two “audio paths” will do.

extends Path2D
class_name AudioPath

@onready var audio_stream = $AudioStreamPlayer2D
@export var target: Node2D # player or camera to follow

func _process(_delta: float) -> void:
    audio_stream.global_position = curve.get_closest_point(target.global_position)