bool canHammerOnOrPullOff(const Voice &voice, int position, const Note &note)
{
    const Note *nextNote = getNextNote(voice, position, note.getString());
    return nextNote && nextNote->getFretNumber() != note.getFretNumber();
}
bool canTieNote(const Voice &voice, int position, const Note &note)
{
    const Note *prevNote = getPreviousNote(voice, position, note.getString());
    return prevNote && prevNote->getFretNumber() == note.getFretNumber();
}