Separating logic for triggering sound out of delegate callback