// The NotePath object contains, for each note, all possible playable locations on the fretboard // we will use NotePath to build a TabEntry for which all notes can be played (ie) No two notes // should be playable on the same string. Also, we would like to minimize the fret distance // between playable notes. We need to do this because the fretboard is tuned in fourths, except // for the fifth string which is tuned in third. The point is that for a given midi note (pitch) // there are overlapping locations on the fretboard where the note can be played. This is not // a problem with the keyboard because, theoretically, the entire keyboarded can be voiced // at once. The fretboard is different. If we voice a note on the first string at the fifth // fret, we cannot at the same time, voice a note on the first string at the fourth fret. // Along the same lines, if we build a TabEntry that contains a voicing on the first string // at the fifth fret, it is illegal to add another entry to the tab that voices a note on // the first string at the sixth fret. Allowing this would nullify the previous TabEntry. // // The other objective is to handle the fret-range problem. In building the optimal path, // we would like to overcome the problem wherebye, for instance, a note is voiced on the // first string at the fifth fret and, in overcoming the voicing of a competing note on the // first string at say the fourth fret, we might arbitrarily choose to voice a note that // cannot possibly be played by an individual because the note poses an expansive fret // traveral. This should be overcome by choosing a NotePath space that minimizes the // distance requried to play the desired notes. This alone should alleviate the problem. // // There is a third problem which address how many notes are voiced simultaneously. // This problem also revolves around the mechanical differences between instruments // used to create MIDI files, and the guitar. For instance, the keyboard is capable // of simultaneously voicing all 188 keys. In other words, a chord can be build on // the keyboard that repeats the root, third, and fifth, many times (ie) ten notes // played sumultaneously (eleven if the pianist uses his toe). We need to limit the // number of simultaneous voices for the guitar to six. We do not want to exclude // important notes in the elimination process. We would also like to retain key // note pitches in order to reproduce the original sound as accurately as possible.