僕も音ゲーを作ったときその壁に直面したのですが、BGMの内部変数を使うことで解決できました。 具体的には、内部変数を16分間隔で「0,1,0,1,…」と繰り返させて、それを元にタイミングを求めるというやり方です。