This might be a little bit of a long winded way of doing this, but you could have the player have a private variable called something like, 'shotCounter' and do something like the following:
when player has shoot button down:
--->add timedelta to shotCounter
if shotcounter is equal or greater then 200 (you may want to raise or lower this value)
--->play the sound
--->put your shoot code here
--->set shotCounter to 0
If that doesn't work, you could put the trigger once while true as a subevent to the shotCounter > 200ish with the sound action within that
Hope that helped
EDIT: The only real benefit to using this way over the way you mentioned, is that you can at least make it so it fires STRAIGHT when you click, rather than waiting a little sometimes
EDIT2: You could also apply this to enemies if you want them to fire are their own independent rates, rather than all shooting at the same time