What you're doing is mapping the sound file with an identifier in your program (literally an index in your array). This isn't an antipattern if each individual file is unrelated with another.
However now you're introducing grade quality into the equation, so you end up with groups of sounds related to each other. In order to fix this, you're having to map your mapping. This hardly makes sense, as the mapping is arbitrary and entirely up to you on how to structure, so it makes sense to rearrange in such a way as to take this into consideration.
Logical sound grouping
One possible way might be creating subgroups of sounds. Rather than have an array of sounds [A, B, C, D], with A, B, C being different qualities of the same sound, you could group it as [[A, B, C], [D]]. The grade being passed now directly corresponds with the index in your subarray. Notice that D stands alone. If a high grade of sound D is requested, you can grab item at index min(gradeArr.length - 1, gradeParam)
, or in other words, grab the appropriate grade quality or the maximum available otherwise.
File naming approach
A second approach might be give a logical grouping to files belonging to the same sound grade. So for sound "birdChirping", to represent multiple sound grade qualities, the files birdChirping_01.mp3, birdChirping_02.mp3, and birdChirping_03.mp3 might be present in the same folder. In your program, you have only "birdChirping" as its name. Give the name and the sound grade, you can retrieve and play the appropriate file. In your program, rather than map every single sound, you map only the sound type (or in this case "birdChirping").
This is more dynamic in that you don't have to switch up your program for every new file, however you might run into problems when the caller asks for a sound grade which doesn't exist. You may need to list all files named birdChirping_*.mp3 to know what sound qualities are available done in this way. So while more dynamic, it is also less robust, so you should take that into consideration.
Conclusion
Make the data work for you. Don't be afraid to rearrange in more helpful configurations if you need to. You're right to think that the program shouldn't have ugly if else sections for grade. This is how you fix it. You make the program work off the data it's given without any further checks or mappings.
Hope that helps you!