If you are using this expression to determine the volume:
System every tick -> Set volume(-distance(player.X, Player.Y, Sound.X, Sound.Y)/10 dB)
and you want the volume to be affected by the size of the sprites, why don't you subtract half the width of the sprite from the distance. Something like this:
System every tick -> Set volume((-distance(player.X, Player.Y, Sound.X, Sound.Y)-(sound.width/2))/10 dB)
Well, i get the idea but i'm too stupid to make it work...
System every tick -> Set volume((-distance(player.X, Player.Y, Sound.X, Sound.Y)+(sound.width/2))/10 dB)
Something like that works nice, if the object is square. But if it's not?... Player can come to the object from any side. And the object isn't square.