Hi there!
I have recently developed a similar concept of virtual musical instrument. Instead of using collisions, I used overlap events to trigger the sound when the stick hits the drum.
Set OverlapAllDynamic on both the drums and the sticks. Make sure Generate Overal Event is ticked. Within the drums Blueprint, track the Event OnBeginOverlap and cast the Other Actor to the stick blueprint to make sure the drum has been hit by the stick. At this point you can play the drum sound specific to the drum that has been hit (you can have many different drums). At this point you can also play an haptic feedback on the controllers to simulate the hit, but my tests have shown that if someone plays fast enough that would significantly lag behind. A potential solution would be to “predict” when the stick is going to hit the drum and play the haptic feedback a bit in advance (do a line trace in the direction of motion, check speed/distance, estimate hit time, play the haptic feedback)
A disadvantage of this method is that, in this way, the stick is able to go through the drum. On the other hand, the stick keeps following the position of the touch controller instead of being “left behind” on the surface of the drum, which is a much more intuitive behavior to the player. It turns out people can quickly learn this behavior and halt their downward hit motion as soon as the virtual stick hit the drum and the sound is produced. After a while it becomes intuitive to them.
Hope this helps. Feel free to post your progresses here if you need further help. Good luck with your school project!
Cheers,
Marco.