private void Note(Beat beat)
{
// fret.string
var syData = _syData.ToString().ToLower();
if (_sy != AlphaTexSymbols.Number && !(_sy == AlphaTexSymbols.String
&& (syData == "x" || syData == "-")))
{
Error("note-fret", AlphaTexSymbols.Number);
}
var isDead = syData == "x";
var isTie = syData == "-";
int fret = (int)(isDead || isTie ? 0 : _syData);
NewSy(); // Fret done
if (_sy != AlphaTexSymbols.Dot)
{
Error("note", AlphaTexSymbols.Dot);
}
NewSy(); // dot done
if (_sy != AlphaTexSymbols.Number)
{
Error("note-string", AlphaTexSymbols.Number);
}
int @string = (int)_syData;
if (@string < 1 || @string > _track.Tuning.Length)
{
Error("note-string", AlphaTexSymbols.Number, false);
}
NewSy(); // string done
// read effects
var note = new Note();
beat.AddNote(note);
note.String = _track.Tuning.Length - (@string - 1);
note.IsDead = isDead;
note.IsTieDestination = isTie;
if (!isTie)
{
note.Fret = fret;
}
NoteEffects(note);
}