refactored the metronome view into a separate component because it was getting a bit unweildly