Hermit, I think that it is necessary to separate the VelX from the VelY as the ball can go in a straight down/up direction and also right/left. At which point one of the other speeds would be close to zero and not adding up to 14. It could be vely = 7 and velx = 0 or the opposite at which point the ball is moving fast, but in only one direction.
Well the reason I have it adding the absolute VelX & VelY is to solve that problem!

As you have it, you are checking a square set of velocities, where as my version is checking a circle. Not particularly important but can seem a little inconsitent in triggering the sound. For example if the X & Y velocities are both 6 then the ball is moving at a total velocity of 12 almost double that of moving at 7 in one axis and 0 in the other yet makes no sound! I think a value of 10 in my version would be closer to what you were expecting you checks to do in yours.
Let me try and describe what I mean...
As I said the original code checks a square of values and mine checks a circle, which I consider feels more natural!

Anyway, picture a square inside a circle where the corners are touching the circle but do not break outside. All the values inside the circle, but not in the square are additional speeds that the sounds won't activate. So if I changed the BallVel check to 10 this will reduce the size of the circle so that the corners now stick out and the area inside those corners is close to the area inside the sections of the circle that are outside the square and will appear to work almost the same as the original. Why didn't I stick with 7? Well in that case the circle is fully in side the square and seemed to trigger to often...
Did that make sense? I think I confused myself there! lol
Any way the main reason that I went for the "circle check" method was so that you could use different volumes of the sound for different speeds to make it even more "authentic".
I really hope that I've made that understandable. I'd have attatched a pic but can't see any way to do that!
If you do decide to use directional spinning for the BallImage then yes you would need the SGNs of VelX & VelY. Again I would assign a variable for X with another for Y so that the If Then or what ever method you use doesn't have to recalculate it too often.
I can mock up an example if you like.