private void Chain(Beat beat)
{
if (Bar == null) return;
if (Bar.Index == 0 && beat.Index == 0)
{
// very first beat
beat.PreviousBeat = null;
}
else if (beat.Index == 0)
{
// first beat of bar
var previousVoice = Bar.PreviousBar.Voices[Index];
beat.PreviousBeat = previousVoice.Beats[previousVoice.Beats.Count - 1];
beat.PreviousBeat.NextBeat = beat;
}
else
{
// other beats of bar
beat.PreviousBeat = Beats[beat.Index - 1];
beat.PreviousBeat.NextBeat = beat;
}
}