private function getNextBeat(Voice $beat, $bIndex) { $next = null; for ($b = $bIndex + 1; $b < $beat->getBeat()->getMeasure()->countBeats(); $b++) { $current = $beat->getBeat()->getMeasure()->getBeat($b); if ($current->getStart() > $beat->getBeat()->getStart() && !$current->getVoice($beat->getIndex())->isEmpty()) { if ($next === null || $current->getStart() < $next->getBeat()->getStart()) { $next = $current->getVoice($beat->getIndex()); } } } return $next; }