The sound object, on demand, will loop through all turfs in range. For each tile, it will check to see whether any tiles between it and the sound object are obstructed. If the line between the two points is obstructed, then that tile is added to a list as obstructed. If not, then that tile is added to the list as clear.
Once the object has added all tiles within range to a list, it will loop through each tile and perform another check to determine whether each tile will play the object's sound as direct, obstruction, exclusion or occlusion:

If the tile is obstructed:
If other tiles nearby are obstructed:
Then this tile uses Occlusion.
If other tiles nearby are clear:
Then this tile uses Obstruction.
If the tile is clear:
If other tiles nearby are obstructed:
Then this tile ues Exclusion.
If other tiles nearby are clear:
Then this tile uses Direct.
Then when the player is within range of the object, the object sends the sound to the player, and the sound constantly updates itself to reflect the way it should be played from the tile its on, until the player is no longer within range of the sound object.
That way you could have things on the map such as waterfalls, which play a constant repeating sound, but that sound will be influenced by where you stand in relation to the waterfall.
My only question now is what's a good way to determine which "other tiles nearby" to consider.